Skip to content

Commit 43aafbc

Browse files
committed
add program management in claim
1 parent 10e2cfe commit 43aafbc

25 files changed

Lines changed: 711 additions & 217 deletions

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
mavenCentral()
88
}
99
dependencies {
10-
classpath 'com.android.tools.build:gradle:7.3.1'
10+
classpath 'com.android.tools.build:gradle:8.13.0'
1111
classpath 'com.apollographql.apollo:apollo-gradle-plugin:2.5.14'
1212

1313
// NOTE: Do not place your application dependencies here; they belong

claimManagement/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ android {
6868
demoProd {
6969
applicationIdSuffix ".demoProd"
7070
resValue "string", "app_name_claims", "Claims Demo"
71-
buildConfigField "String", "API_BASE_URL", '"http://demo.openimis.org/"'
71+
buildConfigField "String", "API_BASE_URL", '"https://demo.openimis.org/"'
7272
dimension 'std'
7373
}
7474

@@ -180,6 +180,7 @@ android {
180180
packagingOptions {
181181
exclude 'META-INF/DEPENDENCIES'
182182
}
183+
namespace 'org.openimis.imisclaims'
183184
}
184185

185186
apollo {

claimManagement/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools"
4-
package="org.openimis.imisclaims">
3+
xmlns:tools="http://schemas.android.com/tools">
54

65
<uses-permission android:name="android.permission.INTERNET" />
76
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ query GetClaims($claim_administrator_code: String, $status_claim: Int, $visit_da
4848
adjustment
4949
explanation
5050
guaranteeId
51+
program {
52+
idProgram
53+
nameProgram
54+
}
5155
services {
5256
qtyProvided
5357
qtyApproved
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
query GetPrograms($first: Int) {
2+
program(first: $first){
3+
edges{
4+
node{
5+
idProgram
6+
code
7+
nameProgram
8+
}
9+
}
10+
}
11+
}

claimManagement/src/main/graphql/org.openimis.imisclaim/schema.graphqls

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,20 @@ type Query {
186186
usernameLength: Int
187187
_debug: DjangoDebug
188188
node("""The ID of the object""" id: ID!): Node
189+
program(first: Int): ProgramGQLTypeConnection
190+
}
191+
192+
type ProgramGQLTypeConnection {
193+
"""
194+
Pagination data for this connection.
195+
"""
196+
pageInfo: PageInfo!
197+
"""
198+
Contains the nodes in this connection.
199+
"""
200+
edges: [ProgramGQLTypeEdge]!
201+
totalCount: Int
202+
edgeCount: Int
189203
}
190204

191205
type ControlGQLTypeConnection {
@@ -444,6 +458,23 @@ type InteractiveUserGQLType implements Node {
444458
roles: [RoleGQLType]
445459
}
446460

461+
type ProgramGQLTypeEdge {
462+
"""
463+
The item at the end of the edge
464+
"""
465+
node: ProgramGQLType
466+
"""
467+
A cursor for use in pagination
468+
"""
469+
cursor: String!
470+
}
471+
472+
type ProgramGQLType {
473+
idProgram: String!
474+
code: String!
475+
nameProgram: String!
476+
}
477+
447478
type LanguageGQLType {
448479
code: String!
449480
name: String!
@@ -1472,6 +1503,7 @@ type ClaimGQLType implements Node {
14721503
dedrems(offset: Int, before: String, after: String, first: Int, last: Int): ClaimDedRemGQLTypeConnection!
14731504
clientMutationId: String
14741505
dateProcessedTo: Date
1506+
program: ProgramGQLType
14751507
}
14761508

14771509
type FeedbackGQLType {
@@ -5891,6 +5923,7 @@ input CreateClaimMutationInput {
58915923
services: [ClaimServiceInputType]
58925924
attachments: [ClaimAttachmentInputType]
58935925
clientMutationId: String
5926+
program: Int!
58945927
}
58955928

58965929
scalar ClaimCodeInputType

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public static Intent newIntent(@NonNull Context context, @NonNull String claimUU
7575
String patientCondition, visitType;
7676

7777
EditText etStartDate, etEndDate, etClaimCode, etHealthFacility, etInsureeNumber, etClaimAdmin, etGuaranteeNo;
78-
AutoCompleteTextView etDiagnosis, etDiagnosis1, etDiagnosis2, etDiagnosis3, etDiagnosis4, etReferalHF, etPatientCondition, etVisitType;
78+
AutoCompleteTextView etDiagnosis, etDiagnosis1, etDiagnosis2, etDiagnosis3, etDiagnosis4, etReferalHF, etPatientCondition, etVisitType, etProgram;
7979
TextView tvItemTotal, tvServiceTotal;
8080
Button btnPost, btnNew;
8181
RadioGroup rgVisitType;
@@ -124,6 +124,7 @@ protected void onCreate(Bundle savedInstanceState) {
124124
etPatientCondition = findViewById(R.id.patientCondition);
125125
etVisitType = findViewById(R.id.etVisitType);
126126
tfReferal = findViewById(R.id.tfReferal);
127+
etProgram = findViewById(R.id.etProgram);
127128

128129
String[] visitTypes = getResources().getStringArray(R.array.visitType);
129130
ArrayAdapter<String> visitTypeAdapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, visitTypes);
@@ -223,6 +224,11 @@ public void onItemClick(AdapterView<?> adapterView, View view, int position, lon
223224
return false;
224225
});
225226

227+
ProgramAdapter progamAdapter = new ProgramAdapter(ClaimActivity.this, sqlHandler);
228+
etProgram.setAdapter(progamAdapter);
229+
etProgram.setThreshold(1);
230+
etReferalHF.setOnItemClickListener(progamAdapter);
231+
226232
findViewById(R.id.ivAddItem).setOnClickListener(v -> addItem());
227233
findViewById(R.id.ivAddService).setOnClickListener(v -> addService());
228234

@@ -468,6 +474,7 @@ private void ClearForm() {
468474
etPatientCondition.setText("");
469475
etVisitType.setText("");
470476
etClaimCode.requestFocus();
477+
etProgram.setText("");
471478
}
472479

473480
private void disableForm() {
@@ -491,6 +498,7 @@ private void disableForm() {
491498
disableView(etPreAuthorization);
492499
disableView(etPatientCondition);
493500
disableView(etVisitType);
501+
disableView(etProgram);
494502
}
495503

496504
private void fillClaimFromRestore(Claim claim) {
@@ -522,6 +530,7 @@ private void fillClaimFromRestore(Claim claim) {
522530
etDiagnosis2.setText(sqlHandler.getDiseaseCode(claim.getSecDg2()));
523531
etDiagnosis3.setText(sqlHandler.getDiseaseCode(claim.getSecDg3()));
524532
etDiagnosis4.setText(sqlHandler.getDiseaseCode(claim.getSecDg4()));
533+
etProgram.setText(sqlHandler.getProgamName(claim.getClaimProgram()));
525534

526535
switch (claim.getVisitType() != null ? claim.getVisitType() : "") {
527536
case "E":
@@ -597,6 +606,7 @@ private void fillClaimFromDatabase(String claimUUID) {
597606
etDiagnosis3.setText(claimDetails.getString("ICDCode3"));
598607
etDiagnosis4.setText(claimDetails.getString("ICDCode4"));
599608
etReferalHF.setText(claimDetails.getString("ReferalHF"));
609+
etProgram.setText(claimDetails.getString("Program"));
600610
if(claimDetails.getInt("PreAuthorization") == 1){
601611
etPreAuthorization.setChecked(true);
602612
}else{
@@ -848,6 +858,7 @@ private boolean saveClaim() {
848858
claimCV.put("VisitType", etVisitType.getTag().toString());
849859
claimCV.put("ReferalHF", etReferalHF.getText().toString());
850860
claimCV.put("PatientCondition", etPatientCondition.getTag().toString());
861+
claimCV.put("Program", etProgram.getText().toString());
851862
if(etPreAuthorization.isChecked()){
852863
claimCV.put("PreAuthorization", 1);
853864
}else{

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.openimis.imisclaims.domain.entity.HealthFacility;
4545
import org.openimis.imisclaims.domain.entity.Medication;
4646
import org.openimis.imisclaims.domain.entity.PaymentList;
47+
import org.openimis.imisclaims.domain.entity.Program;
4748
import org.openimis.imisclaims.domain.entity.Service;
4849
import org.openimis.imisclaims.domain.entity.SubServiceItem;
4950
import org.openimis.imisclaims.tools.Log;
@@ -53,6 +54,7 @@
5354
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
5455
import org.openimis.imisclaims.usecase.FetchHealthfacilities;
5556
import org.openimis.imisclaims.usecase.FetchPaymentList;
57+
import org.openimis.imisclaims.usecase.FetchPrograms;
5658

5759
import java.io.File;
5860
import java.io.FileOutputStream;
@@ -614,6 +616,7 @@ public void run() {
614616
sqlHandler.ClearAll("tblItems");
615617
sqlHandler.ClearMapping("S");
616618
sqlHandler.ClearMapping("I");
619+
sqlHandler.ClearAll("tblPrograms");
617620
//Insert Diagnoses
618621
for (Diagnosis diagnosis : diagnosesServicesMedications.getDiagnoses()) {
619622
sqlHandler.InsertReferences(diagnosis.getCode(), diagnosis.getName(), "D", "");
@@ -663,6 +666,11 @@ public void run() {
663666
sqlHandler.InsertHealthFacilities(hf.getId(), hf.getCode(), hf.getName());
664667
}
665668

669+
List<Program> programs = new FetchPrograms().execute();
670+
for (Program program : programs) {
671+
sqlHandler.InsertPrograms(program.getIdProgram(), program.getCode(), program.getNameProgram());
672+
}
673+
666674
runOnUiThread(() -> {
667675
progressDialog.dismiss();
668676
if (officerCode != null) {
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package org.openimis.imisclaims;
2+
3+
import android.content.Context;
4+
import android.database.Cursor;
5+
import android.database.sqlite.SQLiteDatabase;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.view.ViewGroup;
9+
import android.widget.AdapterView;
10+
import android.widget.CursorAdapter;
11+
import android.widget.TextView;
12+
13+
import org.json.JSONArray;
14+
import org.json.JSONException;
15+
import org.openimis.imisclaims.tools.Log;
16+
17+
import java.util.ArrayList;
18+
import java.util.List;
19+
20+
public class ProgramAdapter extends CursorAdapter implements AdapterView.OnItemClickListener {
21+
SQLHandler sqlHandler;
22+
SQLiteDatabase db;
23+
24+
public ProgramAdapter(Context context, SQLHandler sqlHandler) {
25+
super(context, null, 0);
26+
this.sqlHandler = sqlHandler;
27+
}
28+
29+
@Override
30+
public View newView(Context context, Cursor cursor, ViewGroup parent) {
31+
return LayoutInflater.from(context).inflate(R.layout.program_list, parent, false);
32+
}
33+
34+
@Override
35+
public void bindView(View view, Context context, Cursor cursor) {
36+
final int descColumnIndex = cursor.getColumnIndexOrThrow("Name");
37+
String Suggestion = cursor.getString(descColumnIndex);
38+
TextView text1 = view.findViewById(R.id.text2);
39+
text1.setText(Suggestion);
40+
41+
}
42+
43+
@Override
44+
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
45+
if (getFilterQueryProvider() != null) {
46+
return getFilterQueryProvider().runQuery(constraint);
47+
}
48+
49+
return sqlHandler.SearchProgram((constraint != null ? constraint.toString() : ""));
50+
}
51+
52+
@Override
53+
public CharSequence convertToString(Cursor c) {
54+
return c.getString(c.getColumnIndexOrThrow("Name"));
55+
}
56+
57+
58+
@Override
59+
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
60+
}
61+
}

0 commit comments

Comments
 (0)