Skip to content

Commit b905632

Browse files
authored
Merge pull request #101 from mngoe/OP-2533
#OP-2533: add healthfacility validity verification on first connection
2 parents 485aa86 + 4c2b840 commit b905632

File tree

10 files changed

+104
-8
lines changed

10 files changed

+104
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,6 @@ fastlane/readme.md
8080

8181
# Custom product flavours
8282
*custom-flavours.gradle
83+
.DS_Store
8384

8485
*.DS_Store

claimManagement/src/main/graphql/org.openimis.imisclaim/GetHF.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
query GetHealthFacility ($offset: Int){
1+
query GetHealthFacilities ($offset: Int){
22
healthFacilities(offset: $offset) {
33
pageInfo {
44
hasNextPage
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetHealthFacility($code: String){
2+
healthFacilities(code: $code) {
3+
edges {
4+
node {
5+
id
6+
code
7+
name
8+
}
9+
}
10+
}
11+
}

claimManagement/src/main/java/org/openimis/imisclaims/MainActivity.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.openimis.imisclaims.domain.entity.Service;
4848
import org.openimis.imisclaims.domain.entity.SubServiceItem;
4949
import org.openimis.imisclaims.tools.Log;
50+
import org.openimis.imisclaims.usecase.CheckHealthFacility;
5051
import org.openimis.imisclaims.usecase.FetchClaimAdmins;
5152
import org.openimis.imisclaims.usecase.FetchControls;
5253
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
@@ -552,7 +553,7 @@ public void validateClaimAdminCode(final String claimAdminCode) {
552553
if (c.getCount() == 0 && c1.getCount() == 0) {
553554
try {
554555
progressDialog.dismiss();
555-
doLoggedIn(() -> DownLoadDiagnosesServicesItems(claimAdminCode));
556+
doLoggedIn(() -> CheckHealthFacility(claimAdminCode, HealthFacilityName));
556557
} catch (Exception e) {
557558
e.printStackTrace();
558559
}
@@ -563,6 +564,39 @@ public void validateClaimAdminCode(final String claimAdminCode) {
563564
}
564565
}
565566

567+
public void CheckHealthFacility (String claimAdminCode, String HfCode){
568+
String progress_message = getResources().getString(R.string.checkHfValidity);
569+
progressDialog = ProgressDialog.show(this, getResources().getString(R.string.application), progress_message);
570+
Thread thread = new Thread() {
571+
public void run() {
572+
try {
573+
boolean isValidHealthFacility = new CheckHealthFacility().execute(HfCode);
574+
Log.e("is valid", String.valueOf(isValidHealthFacility));
575+
if(isValidHealthFacility){
576+
runOnUiThread(() -> {
577+
progressDialog.dismiss();
578+
DownLoadDiagnosesServicesItems(claimAdminCode);
579+
});
580+
} else {
581+
runOnUiThread(() -> {
582+
progressDialog.dismiss();
583+
Toast.makeText(MainActivity.this, getResources().getString(R.string.InvalidHealthFacility), Toast.LENGTH_LONG).show();
584+
ClaimAdminDialogBox();
585+
});
586+
}
587+
} catch (Exception e) {
588+
e.printStackTrace();
589+
runOnUiThread(() -> {
590+
progressDialog.dismiss();
591+
Toast.makeText(MainActivity.this, e.getMessage() + "-" + getResources().getString(R.string.SomethingWentWrongServer), Toast.LENGTH_LONG).show();
592+
ClaimAdminDialogBox();
593+
});
594+
}
595+
}
596+
};
597+
thread.start();
598+
}
599+
566600
public void DownLoadDiagnosesServicesItems(@Nullable final String officerCode) {
567601
if (global.isNetworkAvailable()) {
568602
String progress_message = getResources().getString(R.string.Diagnoses) + ", " + getResources().getString(R.string.Services) + ", " + getResources().getString(R.string.Items) + "...";

claimManagement/src/main/java/org/openimis/imisclaims/network/request/GetHealthfacilitiesGraphQLRequest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
import androidx.annotation.NonNull;
33
import androidx.annotation.WorkerThread;
44
import com.apollographql.apollo.api.Input;
5-
import org.openimis.imisclaims.GetHealthFacilityQuery;
5+
6+
import org.openimis.imisclaims.GetHealthFacilitiesQuery;
67
public class GetHealthfacilitiesGraphQLRequest extends BaseGraphQLRequest{
78
@NonNull
89
@WorkerThread
9-
public GetHealthFacilityQuery.HealthFacilities get(@NonNull int page) throws Exception {
10-
return makeSynchronous(new GetHealthFacilityQuery(Input.fromNullable(page))).getData().healthFacilities();
10+
public GetHealthFacilitiesQuery.HealthFacilities get(@NonNull int page) throws Exception {
11+
return makeSynchronous(new GetHealthFacilitiesQuery(Input.fromNullable(page))).getData().healthFacilities();
1112
}
1213
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.openimis.imisclaims.network.request;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.WorkerThread;
5+
6+
import com.apollographql.apollo.api.Input;
7+
8+
import org.openimis.imisclaims.GetHealthFacilityQuery;
9+
10+
import java.util.List;
11+
12+
public class GetHealthfacilityGraphQLRequest extends BaseGraphQLRequest{
13+
@NonNull
14+
@WorkerThread
15+
public List<GetHealthFacilityQuery.Edge> get (@NonNull String HfCode) throws Exception {
16+
return makeSynchronous(new GetHealthFacilityQuery(Input.fromNullable(HfCode))).getData().healthFacilities().edges();
17+
}
18+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.openimis.imisclaims.usecase;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.WorkerThread;
5+
6+
import org.openimis.imisclaims.GetHealthFacilityQuery;
7+
import org.openimis.imisclaims.network.request.GetHealthfacilityGraphQLRequest;
8+
9+
import java.util.List;
10+
11+
public class CheckHealthFacility {
12+
@NonNull
13+
private final GetHealthfacilityGraphQLRequest request;
14+
15+
public CheckHealthFacility(){this(new GetHealthfacilityGraphQLRequest());}
16+
17+
public CheckHealthFacility(@NonNull GetHealthfacilityGraphQLRequest request){
18+
this.request = request;
19+
}
20+
21+
@WorkerThread
22+
@NonNull
23+
public boolean execute(String HfCode) throws Exception {
24+
List<GetHealthFacilityQuery.Edge> response = request.get(HfCode);
25+
return !response.isEmpty();
26+
}
27+
}

claimManagement/src/main/java/org/openimis/imisclaims/usecase/FetchHealthfacilities.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import androidx.annotation.NonNull;
33
import androidx.annotation.WorkerThread;
44
import org.apache.commons.codec.binary.Base64;
5-
import org.openimis.imisclaims.GetHealthFacilityQuery;
5+
import org.openimis.imisclaims.GetHealthFacilitiesQuery;
66
import org.openimis.imisclaims.domain.entity.HealthFacility;
77
import org.openimis.imisclaims.network.request.GetHealthfacilitiesGraphQLRequest;
88
import org.openimis.imisclaims.network.util.Mapper;
@@ -27,11 +27,11 @@ public List<HealthFacility> execute() throws Exception{
2727
int page = 0;
2828
boolean hasNextPage;
2929
do{
30-
GetHealthFacilityQuery.HealthFacilities response = hfRequest.get(page);
30+
GetHealthFacilitiesQuery.HealthFacilities response = hfRequest.get(page);
3131
healthFacilities.addAll(Mapper.map(
3232
response.edges(),
3333
dto ->{
34-
GetHealthFacilityQuery.Node node = Objects.requireNonNull(dto.node());
34+
GetHealthFacilitiesQuery.Node node = Objects.requireNonNull(dto.node());
3535
byte[] bytes = node.id().getBytes();
3636
String id = new String(Base64.decodeBase64(bytes)).split(":")[1];
3737
return new HealthFacility(

claimManagement/src/main/res/values-fr/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@
215215
<string name="newVersion">Nouvelle version </string>
216216
<string name="claimUpdate">Mise à jour Claims</string>
217217
<string name="getVersion">Téléchargement version </string>
218+
<string name="InvalidHealthFacility">Formation sanitaire de l\'administrateur invalide</string>
219+
<string name="checkHfValidity">Vérification de la formation sanitaire</string>
218220
<string name="NoServicesPricelist">La formation sanitaire n\'a pas de liste de prix pour les services </string>
219221
<string name="NoItemsPricelist">La formation sanitaire n\'a pas de liste de prix pour les produits </string>
220222
<string name="entered">Entrée</string>

claimManagement/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,8 @@
251251
<string name="newVersion">New version </string>
252252
<string name="claimUpdate">Update Claims</string>
253253
<string name="getVersion">Downloading version </string>
254+
<string name="InvalidHealthFacility">Invalid healthfacility for this claim admin</string>
255+
<string name="checkHfValidity">Check healthFacility validity</string>
254256
<string name="NoServicesPricelist">This healthfacility don\'t have services pricelist</string>
255257
<string name="NoItemsPricelist">This healthfacility don\'t have items pricelist</string>
256258
<string name="News">New changes:</string>

0 commit comments

Comments
 (0)