Skip to content

Commit 8090e43

Browse files
committed
fix services & items filter from user healthfacility
1 parent d0e7ab0 commit 8090e43

14 files changed

Lines changed: 227 additions & 97 deletions

File tree

.DS_Store

2 KB
Binary file not shown.

.gitignore

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

8181
# Custom product flavours
8282
*custom-flavours.gradle
83+
84+
# DS_Store files
85+
*.DS_Store

claimManagement/.DS_Store

4 KB
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 26
2828
targetSdkVersion 32
2929
versionCode 4
30-
versionName "2.0.5"
30+
versionName "2.0.6"
3131
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
3232
}
3333
buildTypes {

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
@@ -50,11 +50,15 @@
5050
import org.openimis.imisclaims.usecase.FetchControls;
5151
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
5252
import org.openimis.imisclaims.usecase.FetchHealthfacilities;
53+
import org.openimis.imisclaims.usecase.FetchMedications;
5354
import org.openimis.imisclaims.usecase.FetchPaymentList;
55+
import org.openimis.imisclaims.usecase.FetchServices;
5456

5557
import java.io.File;
5658
import java.io.FileOutputStream;
5759
import java.util.ArrayList;
60+
import java.util.Calendar;
61+
import java.util.Date;
5862
import java.util.List;
5963

6064

@@ -584,40 +588,48 @@ public void run() {
584588

585589
if (officerCode != null) {
586590
PaymentList paymentList = new FetchPaymentList().execute(officerCode);
591+
Date date = Calendar.getInstance().getTime();
592+
587593
// insert services
588-
for (Service service : paymentList.getServices()) {
589-
sqlHandler.InsertService(service.getId(),
590-
service.getCode(),
591-
service.getName(), "S",
592-
String.valueOf(service.getPrice()),
593-
service.getPackageType(),
594-
service.getManualPrice()
595-
);
596-
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
597-
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
598-
599-
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
600-
List<SubServiceItem> subServices = service.getSubServices();
601-
for (SubServiceItem subService : subServices) {
602-
sqlHandler.InsertSubServices(subService.getId(),
603-
service.getId(), String.valueOf(subService.getQty()), subService.getPrice());
594+
if(paymentList.getServicesPricelistUuid() != null && !paymentList.getServicesPricelistUuid().isEmpty()){
595+
List<Service> services = new FetchServices().execute(paymentList.getServicesPricelistUuid(), date);
596+
for (Service service : services) {
597+
sqlHandler.InsertService(service.getId(),
598+
service.getCode(),
599+
service.getName(), "S",
600+
String.valueOf(service.getPrice()),
601+
service.getPackageType(),
602+
service.getManualPrice()
603+
);
604+
sqlHandler.InsertReferences(service.getCode(), service.getName(), "S", String.valueOf(service.getPrice()));
605+
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
606+
607+
if (service.getSubServices() != null && !service.getSubServices().isEmpty()) {
608+
List<SubServiceItem> subServices = service.getSubServices();
609+
for (SubServiceItem subService : subServices) {
610+
sqlHandler.InsertSubServices(subService.getId(),
611+
service.getId(), String.valueOf(subService.getQty()), subService.getPrice());
612+
}
604613
}
605-
}
606-
//insert subItems
607-
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
608-
List<SubServiceItem> subItems = service.getSubItems();
609-
for (SubServiceItem subItem : subItems) {
610-
sqlHandler.InsertSubItems(subItem.getId(),
611-
service.getId(), String.valueOf(subItem.getQty()), subItem.getPrice());
614+
//insert subItems
615+
if (service.getSubItems() != null && !service.getSubItems().isEmpty()) {
616+
List<SubServiceItem> subItems = service.getSubItems();
617+
for (SubServiceItem subItem : subItems) {
618+
sqlHandler.InsertSubItems(subItem.getId(),
619+
service.getId(), String.valueOf(subItem.getQty()), subItem.getPrice());
620+
}
612621
}
613622
}
614623
}
615624

616625
//insert Items
617-
for (Medication medication : paymentList.getMedications()) {
618-
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
619-
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
620-
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
626+
if(paymentList.getItemsPricelistUuid() != null && !paymentList.getItemsPricelistUuid().isEmpty()){
627+
List<Medication> medications = new FetchMedications().execute(paymentList.getItemsPricelistUuid(), date);
628+
for (Medication medication : medications) {
629+
sqlHandler.InsertReferences(medication.getCode(), medication.getName(), "I", String.valueOf(medication.getPrice()));
630+
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
631+
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
632+
}
621633
}
622634
}
623635

@@ -660,16 +672,21 @@ private void DownLoadServicesItemsPriceList(@NonNull final String claimAdministr
660672
public void run() {
661673
try {
662674
PaymentList paymentList = new FetchPaymentList().execute(claimAdministratorCode);
675+
String servicesPricelistUuid = paymentList.getServicesPricelistUuid();
676+
Date date = Calendar.getInstance().getTime();
677+
List<Service> services = new FetchServices().execute(servicesPricelistUuid, date);
678+
String itemsPriceListUuid = paymentList.getItemsPricelistUuid();
679+
List<Medication> medications = new FetchMedications().execute(itemsPriceListUuid, date);
663680
sqlHandler.ClearMapping("S");
664681
sqlHandler.ClearMapping("I");
665682

666683
//Insert Services
667-
for (Service service : paymentList.getServices()) {
684+
for (Service service : services) {
668685
sqlHandler.InsertMapping(service.getCode(), service.getName(), "S");
669686
}
670687

671688
//Insert Items
672-
for (Medication medication : paymentList.getMedications()) {
689+
for (Medication medication : medications) {
673690
sqlHandler.InsertMapping(medication.getCode(), medication.getName(), "I");
674691
}
675692
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
}

0 commit comments

Comments
 (0)