Skip to content

Commit d7df2b4

Browse files
authored
Merge pull request #23 from mngoe/feature-30098
send referralCode, referralHF, preAuthorization, patientCondition to graphql
2 parents d831834 + 356f3c0 commit d7df2b4

18 files changed

Lines changed: 1184 additions & 15 deletions
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mutation CreateClaim($input: CreateClaimMutationInput!) {
2+
createClaim(input: $input) {
3+
clientMutationId
4+
}
5+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetAdminId($code: String) {
2+
claimAdmins(
3+
code: $code
4+
) {
5+
edges {
6+
node {
7+
id
8+
}
9+
}
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetDiagnoseId($code: String) {
2+
diagnoses(
3+
code: $code
4+
) {
5+
edges {
6+
node {
7+
id
8+
}
9+
}
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetInsureeId($chfId: String) {
2+
insurees(
3+
chfId: $chfId
4+
) {
5+
edges {
6+
node {
7+
id
8+
}
9+
}
10+
}
11+
}

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

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static Intent newIntent(@NonNull Context context, @NonNull String claimUU
6767
private int year, month, day;
6868
int TotalItemService;
6969

70-
EditText etStartDate, etEndDate, etClaimCode, etHealthFacility, etInsureeNumber, etClaimAdmin, etGuaranteeNo;
70+
EditText etStartDate, etEndDate, etClaimCode, etHealthFacility, etInsureeNumber, etClaimAdmin, etGuaranteeNo, etReferralCode;
7171
AutoCompleteTextView etDiagnosis, etDiagnosis1, etDiagnosis2, etDiagnosis3, etDiagnosis4, etReferalHF;
7272
TextView tvItemTotal, tvServiceTotal;
7373
Button btnPost, btnNew;
@@ -118,6 +118,7 @@ protected void onCreate(Bundle savedInstanceState) {
118118
rbHealed = findViewById(R.id.rbHealed);
119119
rbReferal = findViewById(R.id.rbReferal);
120120
etPreAuthorization = findViewById(R.id.etPreAuthorization);
121+
etReferralCode = findViewById(R.id.etReferralCode);
121122

122123

123124
tvItemTotal.setText("0");
@@ -150,6 +151,18 @@ protected void onCreate(Bundle savedInstanceState) {
150151
etReferalHF.setOnItemClickListener(hfAdapter);
151152

152153
etPreAuthorization.setChecked(false);
154+
etReferalHF.setVisibility(View.GONE);
155+
etReferralCode.setVisibility(View.GONE);
156+
157+
rgVisitType.setOnCheckedChangeListener((radioGroup, i) -> {
158+
if(radioGroup.getCheckedRadioButtonId() == R.id.rbReferral){
159+
etReferalHF.setVisibility(View.VISIBLE);
160+
etReferralCode.setVisibility(View.VISIBLE);
161+
}else{
162+
etReferalHF.setVisibility(View.GONE);
163+
etReferralCode.setVisibility(View.GONE);
164+
}
165+
});
153166

154167
etStartDate.setOnTouchListener((v, event) -> {
155168
showDialog(StartDate_Dialog_ID);
@@ -391,6 +404,7 @@ private void ClearForm() {
391404
etDiagnosis4.setText("");
392405
etPreAuthorization.setChecked(false);
393406
etReferalHF.setText("");
407+
etReferralCode.setText("");
394408
rgVisitType.clearCheck();
395409
rgPatientCondition.clearCheck();
396410
etClaimCode.requestFocus();
@@ -413,6 +427,13 @@ private void disableForm() {
413427
disableView(rbEmergency);
414428
disableView(rbReferral);
415429
disableView(rbOther);
430+
disableView(etReferralCode);
431+
disableView(etReferalHF);
432+
disableView(etPreAuthorization);
433+
disableView(rbHealed);
434+
disableView(rbDiseased);
435+
disableView(rbEscaped);
436+
disableView(rbReferal);
416437
}
417438

418439
private void fillClaimFromRestore(Claim claim) {
@@ -492,7 +513,6 @@ private void fillClaimFromRestore(Claim claim) {
492513
private void fillClaimFromDatabase(String claimUUID) {
493514
new Thread(() -> {
494515
JSONObject claimObject = sqlHandler.getClaim(claimUUID);
495-
Log.e("claim", claimObject.toString());
496516
if (claimObject == null) {
497517
showDialog(getResources().getString(R.string.ClaimNotFound), (dialog, which) -> finish());
498518
} else {
@@ -520,6 +540,7 @@ private void fillClaimFromDatabase(String claimUUID) {
520540
etDiagnosis3.setText(claimDetails.getString("ICDCode3"));
521541
etDiagnosis4.setText(claimDetails.getString("ICDCode4"));
522542
etReferalHF.setText(claimDetails.getString("ReferalHF"));
543+
etReferralCode.setText(claimDetails.getString("ReferralCode"));
523544

524545
if(claimDetails.getInt("PreAuthorization") == 1){
525546
etPreAuthorization.setChecked(true);
@@ -558,6 +579,14 @@ private void fillClaimFromDatabase(String claimUUID) {
558579
rgPatientCondition.clearCheck();
559580
}
560581

582+
if(rgVisitType.getCheckedRadioButtonId() == R.id.rbReferral){
583+
etReferralCode.setEnabled(true);
584+
etReferalHF.setEnabled(true);
585+
}else{
586+
disableView(etReferalHF);
587+
disableView(etReferralCode);
588+
}
589+
561590
lvItemList.clear();
562591
if (claimObject.has("items")) {
563592
JSONArray items = claimObject.getJSONArray("items");
@@ -699,6 +728,13 @@ private boolean isValidData() {
699728
return false;
700729
}
701730

731+
if(rgVisitType.getCheckedRadioButtonId() == R.id.rbReferral){
732+
if(etReferralCode.getText().length() == 0){
733+
showValidationDialog(etReferralCode, getResources().getString(R.string.MissingReferralCode));
734+
return false;
735+
}
736+
}
737+
702738
return true;
703739
}
704740

@@ -737,11 +773,13 @@ private boolean saveClaim() {
737773
selectedTypeButton = findViewById(SelectedId);
738774
String visitType = selectedTypeButton.getTag().toString();
739775

740-
int PatientConditionId;
741-
PatientConditionId = rgPatientCondition.getCheckedRadioButtonId();
776+
String patientCondition = "";
777+
int PatientConditionId = rgPatientCondition.getCheckedRadioButtonId();
742778
RadioButton selectedPatientCondition;
743779
selectedPatientCondition = findViewById(PatientConditionId);
744-
String patientCondition = selectedPatientCondition.getTag().toString();
780+
if(selectedPatientCondition != null){
781+
patientCondition = selectedPatientCondition.getTag().toString();
782+
}
745783

746784
ContentValues claimCV = new ContentValues();
747785

@@ -763,6 +801,7 @@ private boolean saveClaim() {
763801
claimCV.put("ICDCode4", etDiagnosis4.getText().toString());
764802
claimCV.put("VisitType", visitType);
765803
claimCV.put("ReferalHF", etReferalHF.getText().toString());
804+
claimCV.put("ReferralCode", etReferralCode.getText().toString());
766805
claimCV.put("PatientCondition", patientCondition);
767806

768807
if(etPreAuthorization.isChecked()){
@@ -774,8 +813,10 @@ private boolean saveClaim() {
774813
ArrayList<ContentValues> claimItemCVs = new ArrayList<>(lvItemList.size());
775814
for (int i = 0; i < lvItemList.size(); i++) {
776815
ContentValues claimItemCV = new ContentValues();
816+
String itemId = sqlHandler.getItemId(lvItemList.get(i).get("Code"));
777817

778818
claimItemCV.put("ClaimUUID", claimUUID);
819+
claimItemCV.put("ItemId", itemId);
779820
claimItemCV.put("ItemCode", lvItemList.get(i).get("Code"));
780821
claimItemCV.put("ItemPrice", lvItemList.get(i).get("Price"));
781822
claimItemCV.put("ItemQuantity", lvItemList.get(i).get("Quantity"));
@@ -786,8 +827,10 @@ private boolean saveClaim() {
786827
ArrayList<ContentValues> claimServiceCVs = new ArrayList<>(lvServiceList.size());
787828
for (int i = 0; i < lvServiceList.size(); i++) {
788829
ContentValues claimServiceCV = new ContentValues();
830+
String serviceId = sqlHandler.getServiceId(lvServiceList.get(i).get("Code"));
789831

790832
claimServiceCV.put("ClaimUUID", claimUUID);
833+
claimServiceCV.put("ServiceId", serviceId);
791834
claimServiceCV.put("ServiceCode", lvServiceList.get(i).get("Code"));
792835
claimServiceCV.put("ServicePrice", lvServiceList.get(i).get("Price"));
793836
claimServiceCV.put("ServiceQuantity", lvServiceList.get(i).get("Quantity"));

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

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ public class SQLHandler extends SQLiteOpenHelper {
4040
private static final String CreateTableControls = "CREATE TABLE IF NOT EXISTS tblControls(FieldName TEXT, Adjustability TEXT);";
4141
private static final String CreateTableClaimAdmins = "CREATE TABLE IF NOT EXISTS tblClaimAdmins(Code TEXT, HFCode TEXT ,Name TEXT);";
4242
private static final String CreateTableReferences = "CREATE TABLE IF NOT EXISTS tblReferences(Code TEXT, Name TEXT, Type TEXT, Price TEXT);";
43-
private static final String createTableClaimDetails = "CREATE TABLE IF NOT EXISTS tblClaimDetails(ClaimUUID TEXT, ClaimDate TEXT, HFCode TEXT, ClaimAdmin TEXT, ClaimCode TEXT, GuaranteeNumber TEXT, InsureeNumber TEXT, StartDate TEXT, EndDate TEXT, ICDCode TEXT, Comment TEXT, Total TEXT, ICDCode1 TEXT, ICDCode2 TEXT, ICDCode3 TEXT, ICDCode4 TEXT, VisitType TEXT, ReferalHF TEXT, PatientCondition TEXT,PreAuthorization Int );";
44-
private static final String createTableClaimItems = "CREATE TABLE IF NOT EXISTS tblClaimItems(ClaimUUID TEXT, ItemCode TEXT, ItemPrice TEXT, ItemQuantity TEXT);";
45-
private static final String createTableClaimServices = "CREATE TABLE IF NOT EXISTS tblClaimServices(ClaimUUID TEXT, ServiceCode TEXT, ServicePrice TEXT, ServiceQuantity TEXT, ServicePackageType TEXT, SubServicesItems TEXT);";
43+
private static final String createTableClaimDetails = "CREATE TABLE IF NOT EXISTS tblClaimDetails(ClaimUUID TEXT, ClaimDate TEXT, HFCode TEXT, ClaimAdmin TEXT, ClaimCode TEXT, GuaranteeNumber TEXT, InsureeNumber TEXT, StartDate TEXT, EndDate TEXT, ICDCode TEXT, Comment TEXT, Total TEXT, ICDCode1 TEXT, ICDCode2 TEXT, ICDCode3 TEXT, ICDCode4 TEXT, VisitType TEXT, ReferalHF TEXT, ReferralCode TEXT, PatientCondition TEXT,PreAuthorization Int );";
44+
private static final String createTableClaimItems = "CREATE TABLE IF NOT EXISTS tblClaimItems(ClaimUUID TEXT, ItemId TEXT, ItemCode TEXT, ItemPrice TEXT, ItemQuantity TEXT);";
45+
private static final String createTableClaimServices = "CREATE TABLE IF NOT EXISTS tblClaimServices(ClaimUUID TEXT,ServiceId TEXT, ServiceCode TEXT, ServicePrice TEXT, ServiceQuantity TEXT, ServicePackageType TEXT, SubServicesItems TEXT);";
4646
private static final String createTableClaimUploadStatus = "CREATE TABLE IF NOT EXISTS tblClaimUploadStatus(ClaimUUID TEXT, UploadDate TEXT, UploadStatus TEXT, UploadMessage TEXT);";
4747
private static final String CreateTableServices = "CREATE TABLE IF NOT EXISTS tblServices(Id text, Code text, Name text, Type text, Price text, PackageType text);";
4848
private static final String CreateTableItems = "CREATE TABLE IF NOT EXISTS tblItems(Id text, Code text, Name text, Type text, Price text);";
@@ -431,7 +431,7 @@ public void deleteClaim(String claimUUID) {
431431

432432
public JSONObject getClaim(String claimUUID) {
433433
JSONArray claimDetails = getQueryResultAsJsonArray("tblClaimDetails",
434-
new String[]{"ClaimUUID", "ClaimDate", "HFCode", "ClaimAdmin", "ClaimCode", "GuaranteeNumber", "InsureeNumber", "StartDate", "EndDate", "ICDCode", "Comment", "Total", "ICDCode1", "ICDCode2", "ICDCode3", "ICDCode4", "VisitType", "ReferalHF", "PatientCondition", "PreAuthorization"},
434+
new String[]{"ClaimUUID", "ClaimDate", "HFCode", "ClaimAdmin", "ClaimCode", "GuaranteeNumber", "InsureeNumber", "StartDate", "EndDate", "ICDCode", "Comment", "Total", "ICDCode1", "ICDCode2", "ICDCode3", "ICDCode4", "VisitType", "ReferalHF", "ReferralCode", "PatientCondition", "PreAuthorization"},
435435
"LOWER(ClaimUUID) = ?",
436436
new String[]{claimUUID.toLowerCase(Locale.ROOT)});
437437

@@ -463,7 +463,7 @@ public JSONArray getAllPendingClaims() {
463463
// Rename InsureeNumber to CHFID
464464
// This is required to support legacy Rest API and Web App
465465
JSONArray claims = getQueryResultAsJsonArray(
466-
"SELECT ClaimUUID, ClaimDate, HFCode, ClaimAdmin, ClaimCode, GuaranteeNumber, InsureeNumber AS CHFID, StartDate, EndDate, ICDCode, Comment, Total, ICDCode1, ICDCode2, ICDCode3, ICDCode4, VisitType" +
466+
"SELECT ClaimUUID, ClaimDate, HFCode, ClaimAdmin, ClaimCode, GuaranteeNumber, InsureeNumber AS CHFID, StartDate, EndDate, ICDCode, Comment, Total, ICDCode1, ICDCode2, ICDCode3, ICDCode4, VisitType, ReferalHF, ReferralCode, PatientCondition, PreAuthorization " +
467467
" FROM tblClaimDetails cd" +
468468
" WHERE NOT EXISTS (SELECT cus.ClaimUUID FROM tblClaimUploadStatus cus WHERE cus.ClaimUUID = cd.ClaimUUID AND cus.UploadStatus != ?)",
469469
new String[]{CLAIM_UPLOAD_STATUS_ERROR}
@@ -500,7 +500,7 @@ public JSONArray getAllPendingClaims() {
500500
public JSONArray getClaimItems(String claimUUID) {
501501
return getQueryResultAsJsonArray(
502502
"tblClaimItems",
503-
new String[]{"ItemCode", "ItemPrice", "ItemQuantity"},
503+
new String[]{"ItemId","ItemCode", "ItemPrice", "ItemQuantity"},
504504
"ClaimUUID = ?",
505505
new String[]{claimUUID}
506506
);
@@ -510,7 +510,7 @@ public JSONArray getClaimItems(String claimUUID) {
510510
public JSONArray getClaimServices(String claimUUID) {
511511
return getQueryResultAsJsonArray(
512512
"tblClaimServices",
513-
new String[]{"ServiceCode", "ServicePrice", "ServiceQuantity","ServicePackageType","SubServicesItems"},
513+
new String[]{"ServiceId", "ServiceCode", "ServicePrice", "ServiceQuantity","ServicePackageType","SubServicesItems"},
514514
"ClaimUUID = ?",
515515
new String[]{claimUUID}
516516
);
@@ -718,6 +718,22 @@ public String getServiceId(String code) {
718718
return id;
719719
}
720720

721+
public String getItemId(String code) {
722+
String id = "";
723+
try (Cursor c = db.query("tblItems", new String[]{"Id"}, "LOWER(Code) = LOWER(?)", new String[]{code}, null, null, null, "1")) {
724+
c.moveToFirst();
725+
if (!c.isAfterLast()) {
726+
String result = c.getString(0);
727+
if (!TextUtils.isEmpty(result)) {
728+
id = result;
729+
}
730+
}
731+
} catch (SQLException e) {
732+
Log.d("ErrorOnFetchingData", String.format("Error while getting price of %s", code), e);
733+
}
734+
return id;
735+
}
736+
721737
public void InsertService(String Id, String Code, String Name, String Type, String Price, String PackageType) {
722738
try {
723739
ContentValues cv = new ContentValues();
@@ -912,4 +928,20 @@ public void InsertHealthFacilities(String Id, String Code, String Name) {
912928
e.printStackTrace();
913929
}
914930
}
931+
932+
public String getHfId(String code) {
933+
String id = "";
934+
try (Cursor c = db.query("tblHealthFacilities", new String[]{"Id"}, "LOWER(Code) = LOWER(?)", new String[]{code}, null, null, null, "1")) {
935+
c.moveToFirst();
936+
if (!c.isAfterLast()) {
937+
String result = c.getString(0);
938+
if (!TextUtils.isEmpty(result)) {
939+
id = result;
940+
}
941+
}
942+
} catch (SQLException e) {
943+
Log.d("ErrorOnFetchingData", String.format("Error while getting price of %s", code), e);
944+
}
945+
return id;
946+
}
915947
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
import org.json.JSONArray;
1313
import org.json.JSONException;
1414
import org.json.JSONObject;
15+
import org.openimis.imisclaims.domain.entity.Claim;
1516
import org.openimis.imisclaims.domain.entity.PendingClaim;
17+
import org.openimis.imisclaims.domain.entity.PendingClaimGQL;
1618
import org.openimis.imisclaims.tools.Log;
1719
import org.openimis.imisclaims.tools.StorageManager;
20+
import org.openimis.imisclaims.usecase.CreateClaims;
1821
import org.openimis.imisclaims.usecase.PostNewClaims;
1922
import org.openimis.imisclaims.util.DateUtils;
2023
import org.openimis.imisclaims.util.FileUtils;
24+
import org.openimis.imisclaims.util.JsonUtils;
2125
import org.openimis.imisclaims.util.XmlUtils;
2226
import org.openimis.imisclaims.util.ZipUtils;
2327
import org.xmlpull.v1.XmlSerializer;
@@ -30,6 +34,7 @@
3034
import java.util.Date;
3135
import java.util.List;
3236
import java.util.Locale;
37+
import java.util.Objects;
3338

3439
public class SynchronizeService extends JobIntentService {
3540
private static final int JOB_ID = 6541259; //Random unique Job id
@@ -109,7 +114,8 @@ private void handleUploadClaims() {
109114
}
110115

111116
try {
112-
List<PostNewClaims.Result> results = new PostNewClaims().execute(PendingClaim.fromJson(claims));
117+
//List<PostNewClaims.Result> results = new PostNewClaims().execute(PendingClaim.fromJson(claims));
118+
List<PostNewClaims.Result> results = new CreateClaims().execute(PendingClaimGQL.fromJson(claims), this);
113119
JSONArray claimStatus = processClaimResponse(results);
114120
broadcastSyncSuccess(claimStatus);
115121
} catch (Exception e) {

0 commit comments

Comments
 (0)