Skip to content

Commit 2fd6e9b

Browse files
authored
Merge pull request #41 from mngoe/feature-32412
check fosa validity
2 parents b7e6088 + 4526864 commit 2fd6e9b

16 files changed

Lines changed: 140 additions & 43 deletions

File tree

.DS_Store

0 Bytes
Binary file not shown.

.github/.DS_Store

0 Bytes
Binary file not shown.

claimManagement/.DS_Store

0 Bytes
Binary file not shown.

claimManagement/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ android {
2727
minSdkVersion 23
2828
targetSdkVersion 32
2929
versionCode 4
30-
versionName "1.1.5"
30+
versionName "1.1.6"
3131
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
3232
}
3333
buildTypes {

claimManagement/src/.DS_Store

0 Bytes
Binary file not shown.

claimManagement/src/main/.DS_Store

0 Bytes
Binary file not shown.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetFosa($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: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@
4545
import org.openimis.imisclaims.domain.entity.PaymentList;
4646
import org.openimis.imisclaims.domain.entity.Service;
4747
import org.openimis.imisclaims.domain.entity.SubServiceItem;
48+
import org.openimis.imisclaims.network.exception.HttpException;
4849
import org.openimis.imisclaims.tools.Log;
50+
import org.openimis.imisclaims.usecase.CheckHealthFacility;
51+
import org.openimis.imisclaims.usecase.FetchClaimAdmin;
4952
import org.openimis.imisclaims.usecase.FetchClaimAdmins;
5053
import org.openimis.imisclaims.usecase.FetchControls;
5154
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
@@ -56,6 +59,7 @@
5659

5760
import java.io.File;
5861
import java.io.FileOutputStream;
62+
import java.net.HttpURLConnection;
5963
import java.util.ArrayList;
6064
import java.util.Calendar;
6165
import java.util.Date;
@@ -553,7 +557,7 @@ public void validateClaimAdminCode(final String claimAdminCode) {
553557
if (c.getCount() == 0) {
554558
try {
555559
progressDialog.dismiss();
556-
doLoggedIn(() -> DownLoadDiagnosesServicesItems(claimAdminCode));
560+
doLoggedIn(() -> CheckHealthFacility(claimAdminCode, HealthFacilityName));
557561
} catch (Exception e) {
558562
e.printStackTrace();
559563
}
@@ -564,6 +568,34 @@ public void validateClaimAdminCode(final String claimAdminCode) {
564568
}
565569
}
566570

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

589621
if (officerCode != null) {
590622
PaymentList paymentList = new FetchPaymentList().execute(officerCode);
591-
String servicesPricelistUuid = paymentList.getServicesPricelistUuid();
592623
Date date = Calendar.getInstance().getTime();
593-
List<Service> services = new FetchServices().execute(servicesPricelistUuid, date);
594-
// insert services
595-
for (Service service: services) {
596-
sqlHandler.InsertService(service.getId(),
597-
service.getCode(),
598-
service.getName(), "S",
599-
String.valueOf(service.getPrice()),
600-
service.getPackageType(),
601-
service.getManualPrice()
602-
);
603-
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
604-
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
605-
606-
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
607-
List<SubServiceItem> subServices = service.getSubServices();
608-
for (SubServiceItem subService: subServices) {
609-
sqlHandler.InsertSubServices(subService.getId(),
610-
service.getId(),String.valueOf(subService.getQty()),subService.getPrice());
624+
if(paymentList.getServicesPricelistUuid() != null && !paymentList.getServicesPricelistUuid().isEmpty()){
625+
List<Service> services = new FetchServices().execute(paymentList.getServicesPricelistUuid(), date);
626+
627+
// insert services
628+
for (Service service: services) {
629+
sqlHandler.InsertService(service.getId(),
630+
service.getCode(),
631+
service.getName(), "S",
632+
String.valueOf(service.getPrice()),
633+
service.getPackageType(),
634+
service.getManualPrice()
635+
);
636+
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
637+
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
638+
639+
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
640+
List<SubServiceItem> subServices = service.getSubServices();
641+
for (SubServiceItem subService: subServices) {
642+
sqlHandler.InsertSubServices(subService.getId(),
643+
service.getId(),String.valueOf(subService.getQty()),subService.getPrice());
644+
}
611645
}
612-
}
613-
//insert subItems
614-
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
615-
List<SubServiceItem> subItems = service.getSubItems();
616-
for (SubServiceItem subItem: subItems) {
617-
sqlHandler.InsertSubItems(subItem.getId(),
618-
service.getId(), String.valueOf(subItem.getQty()),subItem.getPrice());
646+
//insert subItems
647+
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
648+
List<SubServiceItem> subItems = service.getSubItems();
649+
for (SubServiceItem subItem: subItems) {
650+
sqlHandler.InsertSubItems(subItem.getId(),
651+
service.getId(), String.valueOf(subItem.getQty()),subItem.getPrice());
652+
}
619653
}
620654
}
621655
}
622656

623-
String itemsPriceListUuid = paymentList.getItemsPricelistUuid();
624-
List<Medication> medications = new FetchMedications().execute(itemsPriceListUuid, date);
625-
//insert medications or items
626-
for (Medication medication : medications) {
627-
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
628-
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
629-
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
657+
if(paymentList.getItemsPricelistUuid() != null && !paymentList.getItemsPricelistUuid().isEmpty()){
658+
List<Medication> medications = new FetchMedications().execute(paymentList.getItemsPricelistUuid(), date);
659+
//insert medications or items
660+
for (Medication medication : medications) {
661+
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
662+
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
663+
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
664+
}
630665
}
666+
631667
}
632668

633669
List<HealthFacility> healthFacilities = new FetchHealthFacilities().execute();
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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.GetFosaQuery;
9+
10+
import java.util.List;
11+
12+
public class GetFosaGraphQLRequest extends BaseGraphQLRequest {
13+
14+
@NonNull
15+
@WorkerThread
16+
public List<GetFosaQuery.Edge> get (@NonNull String HfCode) throws Exception {
17+
return makeSynchronous(new GetFosaQuery(Input.fromNullable(HfCode))).getData().healthFacilities().edges();
18+
}
19+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.openimis.imisclaims.usecase;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.annotation.WorkerThread;
5+
6+
import org.openimis.imisclaims.GetFosaQuery;
7+
import org.openimis.imisclaims.network.request.GetFosaGraphQLRequest;
8+
9+
import java.util.List;
10+
11+
public class CheckHealthFacility {
12+
13+
@NonNull
14+
private final GetFosaGraphQLRequest request;
15+
16+
public CheckHealthFacility(){this(new GetFosaGraphQLRequest());}
17+
18+
public CheckHealthFacility(@NonNull GetFosaGraphQLRequest request){
19+
this.request = request;
20+
}
21+
22+
@WorkerThread
23+
@NonNull
24+
public boolean execute(String HfCode) throws Exception {
25+
List<GetFosaQuery.Edge> response = request.get(HfCode);
26+
return !response.isEmpty();
27+
}
28+
}

0 commit comments

Comments
 (0)