Skip to content

Commit 292235a

Browse files
authored
Merge pull request #40 from mngoe/feature-32297
fix service filter from healthfacility
2 parents 363e1d6 + b982b9b commit 292235a

7 files changed

Lines changed: 117 additions & 87 deletions

File tree

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.3"
30+
versionName "1.1.4"
3131
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
3232
}
3333
buildTypes {

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,32 @@ query GetPaymentList($claim_administrator_code: String) {
1010
edges {
1111
node {
1212
service {
13+
id
1314
code
1415
name
1516
price
17+
packagetype
18+
type
19+
careType
20+
manualPrice
21+
serviceserviceSet {
22+
service {
23+
id
24+
code
25+
name
26+
}
27+
qtyProvided
28+
priceAsked
29+
}
30+
servicesLinked {
31+
item {
32+
id
33+
code
34+
name
35+
}
36+
qtyProvided
37+
priceAsked
38+
}
1639
}
1740
}
1841
}
@@ -23,6 +46,7 @@ query GetPaymentList($claim_administrator_code: String) {
2346
edges {
2447
node {
2548
item {
49+
id
2650
code
2751
name
2852
price

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

Lines changed: 44 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ public void validateClaimAdminCode(final String claimAdminCode) {
551551
if (c.getCount() == 0) {
552552
try {
553553
progressDialog.dismiss();
554-
doLoggedIn(() -> DownLoadDiagnosesServicesItems(null));
554+
doLoggedIn(() -> DownLoadDiagnosesServicesItems(claimAdminCode));
555555
} catch (Exception e) {
556556
e.printStackTrace();
557557
}
@@ -573,25 +573,54 @@ public void run() {
573573
saveLastUpdateDate(diagnosesServicesMedications.getLastUpdated());
574574
sqlHandler.ClearAll("tblReferences");
575575
sqlHandler.ClearAll("tblHealthFacilities");
576+
sqlHandler.ClearAll("tblServices");
577+
sqlHandler.ClearAll("tblSubServices");
578+
sqlHandler.ClearAll("tblSubItems");
579+
sqlHandler.ClearAll("tblItems");
576580
sqlHandler.ClearMapping("S");
577581
sqlHandler.ClearMapping("I");
578582
//Insert Diagnoses
579583
for (Diagnosis diagnosis : diagnosesServicesMedications.getDiagnoses()) {
580584
sqlHandler.InsertReferences(diagnosis.getCode(), diagnosis.getName(), "D", "");
581585
}
582586

583-
//Insert Services
584-
for (Service service : diagnosesServicesMedications.getServices()) {
585-
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
586-
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
587-
}
587+
if (officerCode != null) {
588+
PaymentList paymentList = new FetchPaymentList().execute(officerCode);
589+
// insert services
590+
for (Service service: paymentList.getServices()) {
591+
sqlHandler.InsertService(service.getId(),
592+
service.getCode(),
593+
service.getName(), "S",
594+
String.valueOf(service.getPrice()),
595+
service.getPackageType(),
596+
service.getManualPrice()
597+
);
598+
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
599+
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
600+
601+
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
602+
List<SubServiceItem> subServices = service.getSubServices();
603+
for (SubServiceItem subService: subServices) {
604+
sqlHandler.InsertSubServices(subService.getId(),
605+
service.getId(),String.valueOf(subService.getQty()),subService.getPrice());
606+
}
607+
}
608+
//insert subItems
609+
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
610+
List<SubServiceItem> subItems = service.getSubItems();
611+
for (SubServiceItem subItem: subItems) {
612+
sqlHandler.InsertSubItems(subItem.getId(),
613+
service.getId(), String.valueOf(subItem.getQty()),subItem.getPrice());
614+
}
615+
}
616+
}
588617

589-
//Insert Items
590-
List<Medication> medications = new FetchMedications().execute();
591-
for (Medication medication : medications) {
592-
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
593-
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
594-
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
618+
//insert medications or items
619+
for (Medication medication : paymentList.getMedications()) {
620+
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
621+
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
622+
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
623+
}
595624
}
596625

597626
List<HealthFacility> healthFacilities = new FetchHealthFacilities().execute();
@@ -601,7 +630,9 @@ public void run() {
601630

602631
runOnUiThread(() -> {
603632
progressDialog.dismiss();
604-
downloadServices(officerCode);
633+
if (officerCode != null) {
634+
DownLoadServicesItemsPriceList(officerCode);
635+
}
605636
});
606637
} catch (Exception e) {
607638
e.printStackTrace();
@@ -737,63 +768,4 @@ public void onAllRequirementsMet() {
737768
}
738769
refreshCount();
739770
}
740-
741-
public void downloadServices(@Nullable final String officerCode) {
742-
if (global.isNetworkAvailable()) {
743-
String progress_message = getResources().getString(R.string.Services);
744-
progressDialog = ProgressDialog.show(this, getResources().getString(R.string.initializing), progress_message);
745-
Thread thread = new Thread(() ->{
746-
try {
747-
List<Service> services = new FetchServices().execute();
748-
if (!services.isEmpty()) {
749-
sqlHandler.ClearAll("tblServices");
750-
sqlHandler.ClearAll("tblSubServices");
751-
sqlHandler.ClearAll("tblSubItems");
752-
for (Service service: services) {
753-
sqlHandler.InsertService(service.getId(),
754-
service.getCode(),
755-
service.getName(), "S",
756-
String.valueOf(service.getPrice()),
757-
service.getPackageType(),
758-
service.getManualPrice());
759-
760-
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
761-
List<SubServiceItem> subServices = service.getSubServices();
762-
for (SubServiceItem subService: subServices) {
763-
sqlHandler.InsertSubServices(subService.getId(),
764-
service.getId(),String.valueOf(subService.getQty()),subService.getPrice());
765-
}
766-
}
767-
//insert subItems
768-
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
769-
List<SubServiceItem> subItems = service.getSubItems();
770-
for (SubServiceItem subItem: subItems) {
771-
sqlHandler.InsertSubItems(subItem.getId(),
772-
service.getId(), String.valueOf(subItem.getQty()),subItem.getPrice());
773-
}
774-
}
775-
}
776-
runOnUiThread(() -> {
777-
progressDialog.dismiss();
778-
Toast.makeText(MainActivity.this, getResources().getString(R.string.installed_updates), Toast.LENGTH_LONG).show();
779-
if (officerCode != null) {
780-
DownLoadServicesItemsPriceList(officerCode);
781-
}
782-
});
783-
} else {
784-
runOnUiThread(() -> {
785-
progressDialog.dismiss();
786-
Toast.makeText(MainActivity.this, getResources().getString(R.string.downloadFail), Toast.LENGTH_LONG).show();
787-
});
788-
}
789-
} catch ( Exception e) {
790-
e.printStackTrace();
791-
runOnUiThread(() -> progressDialog.dismiss());
792-
}
793-
});
794-
thread.start();
795-
}else{
796-
ErrorDialogBox(getResources().getString(R.string.CheckInternet));
797-
}
798-
}
799771
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,12 @@ protected void publishResults(CharSequence constraint, FilterResults results) {
361361

362362
//FilteredList = new ArrayList<HashMap<String, Object>>();
363363
//FilteredList.clear();
364-
for (int i = 0; i < ItemList.size(); i++) {
365-
MapItems.this.ItemsList.add(ItemList.get(i));
366-
notifyDataSetInvalidated();
364+
if(ItemList != null){
365+
for (int i = 0; i < ItemList.size(); i++) {
366+
MapItems.this.ItemsList.add(ItemList.get(i));
367+
notifyDataSetInvalidated();
368+
}
367369
}
368-
369370
}
370371
}
371372
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -354,11 +354,12 @@ protected void publishResults(CharSequence constraint, FilterResults results) {
354354

355355
//FilteredList = new ArrayList<HashMap<String, Object>>();
356356
//FilteredList.clear();
357-
for (int i = 0; i < ItemList.size(); i++) {
358-
MapServices.this.ServiceList.add(ItemList.get(i));
359-
notifyDataSetInvalidated();
357+
if(ItemList != null){
358+
for (int i = 0; i < ItemList.size(); i++) {
359+
MapServices.this.ServiceList.add(ItemList.get(i));
360+
notifyDataSetInvalidated();
361+
}
360362
}
361-
362363
}
363364
}
364365
}

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

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import androidx.annotation.NonNull;
44
import androidx.annotation.WorkerThread;
55

6+
import org.apache.commons.codec.binary.Base64;
67
import org.openimis.imisclaims.GetPaymentListQuery;
8+
import org.openimis.imisclaims.GetServicesQuery;
79
import org.openimis.imisclaims.domain.entity.Medication;
810
import org.openimis.imisclaims.domain.entity.PaymentList;
911
import org.openimis.imisclaims.domain.entity.Service;
12+
import org.openimis.imisclaims.domain.entity.SubServiceItem;
1013
import org.openimis.imisclaims.network.request.GetPaymentListGraphQLRequest;
1114
import org.openimis.imisclaims.network.util.Mapper;
15+
import org.openimis.imisclaims.util.IdUtils;
1216

1317
import java.util.Collections;
1418
import java.util.Objects;
@@ -35,32 +39,60 @@ public PaymentList execute(@NonNull String claimAdministratorCode) throws Except
3539
GetPaymentListQuery.HealthFacility healthFacility = Objects.requireNonNull(node.healthFacility());
3640
GetPaymentListQuery.ServicesPricelist services = healthFacility.servicesPricelist();
3741
GetPaymentListQuery.ItemsPricelist medications = healthFacility.itemsPricelist();
42+
Mapper<GetPaymentListQuery.ServiceserviceSet, SubServiceItem> subServiceMapper = new Mapper<>(this::toSubService);
43+
Mapper<GetPaymentListQuery.ServicesLinked, SubServiceItem> subItemMapper = new Mapper<>(this::toSubItem);
3844
return new PaymentList(
3945
/* healthFacilityCode = */ healthFacility.code(),
40-
/* services = */ services != null ? Mapper.map(services.details().edges(), this::toService) : Collections.emptyList(),
46+
/* services = */ services != null ? Mapper.map(services.details().edges(), dto -> toService(dto,subServiceMapper, subItemMapper)) : Collections.emptyList(),
4147
/* medications = */ medications != null ? Mapper.map(medications.details().edges(), this::toMedication) : Collections.emptyList()
4248
);
4349
}
4450

4551
@NonNull
46-
private Service toService(@NonNull GetPaymentListQuery.Edge1 edge) {
52+
private Service toService(
53+
@NonNull GetPaymentListQuery.Edge1 edge,
54+
@NonNull Mapper<GetPaymentListQuery.ServiceserviceSet, SubServiceItem> subServiceMapper,
55+
@NonNull Mapper<GetPaymentListQuery.ServicesLinked, SubServiceItem> subItemMapper
56+
) {
4757
GetPaymentListQuery.Service service = Objects.requireNonNull(edge.node()).service();
4858
return new Service(
59+
/* id = */ String.valueOf(IdUtils.getIdFromGraphQLString(service.id())),
4960
/* code = */ service.code(),
5061
/* name = */ service.name(),
5162
/* price = */ service.price(),
52-
/* currency = */ "$"
63+
/* currency = */ "KMF",
64+
/* packageType = */ service.packagetype(),
65+
/* manualPrice = */ service.manualPrice() ? 1 : 0,
66+
/* subServices = */ subServiceMapper.map(service.serviceserviceSet()),
67+
/* subItems = */ subItemMapper.map(service.servicesLinked())
5368
);
5469
}
5570

5671
@NonNull
5772
private Medication toMedication(@NonNull GetPaymentListQuery.Edge2 edge) {
58-
GetPaymentListQuery.Item item = Objects.requireNonNull(edge.node()).item();
73+
GetPaymentListQuery.Item1 item = Objects.requireNonNull(edge.node()).item();
5974
return new Medication(
75+
/* id = */ String.valueOf(IdUtils.getIdFromGraphQLString(item.id())),
6076
/* code = */ item.code(),
6177
/* name = */ item.name(),
6278
/* price = */ item.price(),
63-
/* currency = */ "$"
79+
/* currency = */ "KMF"
80+
);
81+
}
82+
83+
private SubServiceItem toSubService(@NonNull GetPaymentListQuery.ServiceserviceSet service) {
84+
return new SubServiceItem(
85+
/* id = */ String.valueOf(IdUtils.getIdFromGraphQLString(service.service().id())),
86+
/* quantity = */ service.qtyProvided(),
87+
/* price = */ service.priceAsked()
88+
);
89+
}
90+
91+
private SubServiceItem toSubItem(@NonNull GetPaymentListQuery.ServicesLinked item) {
92+
return new SubServiceItem(
93+
/* id = */ String.valueOf(IdUtils.getIdFromGraphQLString(item.item().id())),
94+
/* quantity = */ item.qtyProvided(),
95+
/* price = */ item.priceAsked()
6496
);
6597
}
6698
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private Service toService(
5454
/* code = */ node.code(),
5555
/* name = */ node.name(),
5656
/* price = */ node.price(),
57-
"XAF",
57+
"KMF",
5858
/* packageType = */ node.packagetype(),
5959
/* manualPrice = */ node.manualPrice() ? 1 : 0,
6060
/* subServices = */ subServiceMapper.map(node.serviceserviceSet()),

0 commit comments

Comments
 (0)