Skip to content

Commit ed3e561

Browse files
authored
Merge pull request #102 from mngoe/OP-2523
fix services & items filter from user healthfacility
2 parents 3bcbd16 + e187816 commit ed3e561

File tree

10 files changed

+223
-96
lines changed

10 files changed

+223
-96
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
query GetMedications($offset: Int) {
2-
medicalItems(offset: $offset) {
1+
query GetMedications($offset: Int, $pricelistUuid: UUID, $date: Date) {
2+
medicalItemsStr(offset: $offset, pricelistUuid: $pricelistUuid, date: $date) {
33
pageInfo{
44
hasNextPage
55
}

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

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,47 +6,25 @@ query GetPaymentList($claim_administrator_code: String) {
66
healthFacility {
77
code
88
servicesPricelist {
9+
uuid
910
details {
1011
edges {
1112
node {
1213
service {
13-
id
1414
code
1515
name
1616
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-
}
3917
}
4018
}
4119
}
4220
}
4321
}
4422
itemsPricelist {
23+
uuid
4524
details {
4625
edges {
4726
node {
4827
item {
49-
id
5028
code
5129
name
5230
price
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
query GetServices ($offset: Int, $pricelistUuid: UUID, $date: Date) {
2+
medicalServicesStr(offset: $offset, pricelistUuid: $pricelistUuid, date: $date) {
3+
pageInfo {
4+
hasNextPage
5+
}
6+
edges {
7+
node {
8+
id
9+
code
10+
name
11+
packagetype
12+
type
13+
price
14+
careType
15+
manualPrice
16+
serviceserviceSet {
17+
service {
18+
id
19+
code
20+
name
21+
}
22+
qtyProvided
23+
priceAsked
24+
}
25+
servicesLinked {
26+
item {
27+
id
28+
code
29+
name
30+
}
31+
qtyProvided
32+
priceAsked
33+
}
34+
}
35+
}
36+
}
37+
}

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

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,15 @@
5252
import org.openimis.imisclaims.usecase.FetchControls;
5353
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
5454
import org.openimis.imisclaims.usecase.FetchHealthfacilities;
55+
import org.openimis.imisclaims.usecase.FetchMedications;
5556
import org.openimis.imisclaims.usecase.FetchPaymentList;
57+
import org.openimis.imisclaims.usecase.FetchServices;
5658

5759
import java.io.File;
5860
import java.io.FileOutputStream;
5961
import java.util.ArrayList;
62+
import java.util.Calendar;
63+
import java.util.Date;
6064
import java.util.List;
6165

6266
import io.sentry.Sentry;
@@ -632,40 +636,48 @@ public void run() {
632636

633637
if (officerCode != null) {
634638
PaymentList paymentList = new FetchPaymentList().execute(officerCode);
639+
Date date = Calendar.getInstance().getTime();
640+
635641
// insert services
636-
for (Service service : paymentList.getServices()) {
637-
sqlHandler.InsertService(service.getId(),
638-
service.getCode(),
639-
service.getName(), "S",
640-
String.valueOf(service.getPrice()),
641-
service.getPackageType(),
642-
service.getManualPrice()
643-
);
644-
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
645-
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
646-
647-
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
648-
List<SubServiceItem> subServices = service.getSubServices();
649-
for (SubServiceItem subService : subServices) {
650-
sqlHandler.InsertSubServices(subService.getId(),
651-
service.getId(), String.valueOf(subService.getQty()), subService.getPrice());
642+
if(paymentList.getServicesPricelistUuid() != null && !paymentList.getServicesPricelistUuid().isEmpty()){
643+
List<Service> services = new FetchServices().execute(paymentList.getServicesPricelistUuid(), date);
644+
for (Service service : services) {
645+
sqlHandler.InsertService(service.getId(),
646+
service.getCode(),
647+
service.getName(), "S",
648+
String.valueOf(service.getPrice()),
649+
service.getPackageType(),
650+
service.getManualPrice()
651+
);
652+
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
653+
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
654+
655+
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
656+
List<SubServiceItem> subServices = service.getSubServices();
657+
for (SubServiceItem subService : subServices) {
658+
sqlHandler.InsertSubServices(subService.getId(),
659+
service.getId(), String.valueOf(subService.getQty()), subService.getPrice());
660+
}
652661
}
653-
}
654-
//insert subItems
655-
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
656-
List<SubServiceItem> subItems = service.getSubItems();
657-
for (SubServiceItem subItem : subItems) {
658-
sqlHandler.InsertSubItems(subItem.getId(),
659-
service.getId(), String.valueOf(subItem.getQty()), subItem.getPrice());
662+
//insert subItems
663+
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
664+
List<SubServiceItem> subItems = service.getSubItems();
665+
for (SubServiceItem subItem : subItems) {
666+
sqlHandler.InsertSubItems(subItem.getId(),
667+
service.getId(), String.valueOf(subItem.getQty()), subItem.getPrice());
668+
}
660669
}
661670
}
662671
}
663672

664673
//insert Items
665-
for (Medication medication : paymentList.getMedications()) {
666-
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
667-
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
668-
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
674+
if(paymentList.getItemsPricelistUuid() != null && !paymentList.getItemsPricelistUuid().isEmpty()){
675+
List<Medication> medications = new FetchMedications().execute(paymentList.getItemsPricelistUuid(), date);
676+
for (Medication medication : medications) {
677+
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
678+
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
679+
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
680+
}
669681
}
670682
}
671683

@@ -709,16 +721,21 @@ private void DownLoadServicesItemsPriceList(@NonNull final String claimAdministr
709721
public void run() {
710722
try {
711723
PaymentList paymentList = new FetchPaymentList().execute(claimAdministratorCode);
724+
String servicesPricelistUuid = paymentList.getServicesPricelistUuid();
725+
Date date = Calendar.getInstance().getTime();
726+
List<Service> services = new FetchServices().execute(servicesPricelistUuid, date);
727+
String itemsPriceListUuid = paymentList.getItemsPricelistUuid();
728+
List<Medication> medications = new FetchMedications().execute(itemsPriceListUuid, date);
712729
sqlHandler.ClearMapping("S");
713730
sqlHandler.ClearMapping("I");
714731

715732
//Insert Services
716-
for (Service service : paymentList.getServices()) {
733+
for (Service service : services) {
717734
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
718735
}
719736

720737
//Insert Items
721-
for (Medication medication : paymentList.getMedications()) {
738+
for (Medication medication : medications) {
722739
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
723740
}
724741
runOnUiThread(() -> {

claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/PaymentList.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.os.Parcelable;
55

66
import androidx.annotation.NonNull;
7+
import androidx.annotation.Nullable;
78

89
import java.util.List;
910

@@ -15,28 +16,40 @@ public class PaymentList implements Parcelable {
1516
private final List<Service> services;
1617
@NonNull
1718
private final List<Medication> medications;
19+
@Nullable
20+
private final String servicesPricelistUuid;
21+
@Nullable
22+
private final String itemsPricelistUuid;
1823

1924
public PaymentList(
2025
@NonNull String healthFacilityCode,
2126
@NonNull List<Service> services,
22-
@NonNull List<Medication> medications
27+
@NonNull List<Medication> medications,
28+
@Nullable String servicesPricelistUuid,
29+
@Nullable String itemsPricelistUuid
2330
) {
2431
this.healthFacilityCode = healthFacilityCode;
2532
this.services = services;
2633
this.medications = medications;
34+
this.servicesPricelistUuid = servicesPricelistUuid;
35+
this.itemsPricelistUuid = itemsPricelistUuid;
2736
}
2837

2938
protected PaymentList(Parcel in) {
3039
healthFacilityCode = in.readString();
3140
services = in.createTypedArrayList(Service.CREATOR);
3241
medications = in.createTypedArrayList(Medication.CREATOR);
42+
servicesPricelistUuid = in.readString();
43+
itemsPricelistUuid = in.readString();
3344
}
3445

3546
@Override
3647
public void writeToParcel(Parcel dest, int flags) {
3748
dest.writeString(healthFacilityCode);
3849
dest.writeTypedList(services);
3950
dest.writeTypedList(medications);
51+
dest.writeString(servicesPricelistUuid);
52+
dest.writeString(itemsPricelistUuid);
4053
}
4154

4255
@Override
@@ -59,6 +72,12 @@ public List<Medication> getMedications() {
5972
return medications;
6073
}
6174

75+
@Nullable
76+
public String getServicesPricelistUuid(){ return servicesPricelistUuid; }
77+
78+
@Nullable
79+
public String getItemsPricelistUuid(){ return itemsPricelistUuid; }
80+
6281
public static final Creator<PaymentList> CREATOR = new Creator<>() {
6382
@Override
6483
public PaymentList createFromParcel(Parcel in) {

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
import androidx.annotation.WorkerThread;
44
import com.apollographql.apollo.api.Input;
55
import org.openimis.imisclaims.GetMedicationsQuery;
6-
import java.util.List;
6+
7+
import java.util.Date;
78
public class GetMedicationsGraphQLRequest extends BaseGraphQLRequest{
89
@NonNull
910
@WorkerThread
10-
public GetMedicationsQuery.MedicalItems get(int page) throws Exception {
11-
return makeSynchronous(new GetMedicationsQuery(Input.fromNullable(page))).getData().medicalItems();
11+
public GetMedicationsQuery.MedicalItemsStr get(int page, String pricelistUuid, Date date) throws Exception {
12+
return makeSynchronous(new GetMedicationsQuery(Input.fromNullable(page), Input.fromNullable(pricelistUuid), Input.fromNullable(date))).getData().medicalItemsStr();
1213
}
1314
}
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.GetServicesQuery;
9+
10+
import java.util.Date;
11+
12+
public class GetServicesGraphQLRequest extends BaseGraphQLRequest{
13+
14+
@NonNull
15+
@WorkerThread
16+
public GetServicesQuery.MedicalServicesStr get(int page, String pricelistUUID, Date date) throws Exception {
17+
return makeSynchronous(new GetServicesQuery(Input.fromNullable(page), Input.fromNullable(pricelistUUID), Input.fromNullable(date))).getData().medicalServicesStr();
18+
}
19+
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.openimis.imisclaims.network.request.GetMedicationsGraphQLRequest;
88
import org.openimis.imisclaims.network.util.Mapper;
99
import java.util.ArrayList;
10+
import java.util.Date;
1011
import java.util.List;
1112
import java.util.Objects;
1213
public class FetchMedications {
@@ -22,12 +23,12 @@ public FetchMedications(
2223
}
2324
@WorkerThread
2425
@NonNull
25-
public List<Medication> execute() throws Exception {
26+
public List<Medication> execute(String pricelistUuid, Date date) throws Exception {
2627
List<Medication> items = new ArrayList<>();
2728
int page = 0;
2829
boolean hasNextPage;
2930
do{
30-
GetMedicationsQuery.MedicalItems response = request.get(page);
31+
GetMedicationsQuery.MedicalItemsStr response = request.get(page, pricelistUuid, date);
3132
items.addAll(
3233
Mapper.map(
3334
response.edges(),

0 commit comments

Comments
 (0)