Skip to content

Commit 6f4580e

Browse files
committed
add fields in form
1 parent 639f618 commit 6f4580e

12 files changed

Lines changed: 314 additions & 5 deletions

File tree

claimManagement/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ android {
8181
comoresDev{
8282
applicationIdSuffix ".comoresDev"
8383
resValue "string", "app_name_claims", "Claims Comores"
84-
buildConfigField "String", "API_BASE_URL", '"https://test.amg.km/"'
84+
buildConfigField "String", "API_BASE_URL", '"https://dev.amg.km/"'
8585
dimension 'std'
8686
}
8787

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
query GetHealthFacility ($offset: Int){
2+
healthFacilities(offset: $offset) {
3+
pageInfo {
4+
hasNextPage
5+
}
6+
edges {
7+
node {
8+
id
9+
code
10+
name
11+
}
12+
}
13+
}
14+
}

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.view.View;
1515
import android.widget.AutoCompleteTextView;
1616
import android.widget.Button;
17+
import android.widget.CheckBox;
1718
import android.widget.DatePicker;
1819
import android.widget.EditText;
1920
import android.widget.ImageButton;
@@ -67,12 +68,13 @@ public static Intent newIntent(@NonNull Context context, @NonNull String claimUU
6768
int TotalItemService;
6869

6970
EditText etStartDate, etEndDate, etClaimCode, etHealthFacility, etInsureeNumber, etClaimAdmin, etGuaranteeNo;
70-
AutoCompleteTextView etDiagnosis, etDiagnosis1, etDiagnosis2, etDiagnosis3, etDiagnosis4;
71+
AutoCompleteTextView etDiagnosis, etDiagnosis1, etDiagnosis2, etDiagnosis3, etDiagnosis4, etReferalHF;
7172
TextView tvItemTotal, tvServiceTotal;
7273
Button btnPost, btnNew;
73-
RadioGroup rgVisitType;
74-
RadioButton rbEmergency, rbReferral, rbOther;
74+
RadioGroup rgVisitType, etPatientCondition;
75+
RadioButton rbEmergency, rbReferral, rbOther, rbHealed, rbDiseased, rbEscaped, rbReferal;
7576
ImageButton btnScan;
77+
CheckBox etPreAuthorization;
7678

7779
@Override
7880
protected void onCreate(Bundle savedInstanceState) {
@@ -109,6 +111,13 @@ protected void onCreate(Bundle savedInstanceState) {
109111
rbEmergency = findViewById(R.id.rbEmergency);
110112
rbReferral = findViewById(R.id.rbReferral);
111113
rbOther = findViewById(R.id.rbOther);
114+
etReferalHF = findViewById(R.id.etReferalHF);
115+
etPatientCondition = findViewById(R.id.rgPatientCondition);
116+
rbDiseased = findViewById(R.id.rbDeceased);
117+
rbEscaped = findViewById(R.id.rbEscaped);
118+
rbHealed = findViewById(R.id.rbHealed);
119+
rbReferal = findViewById(R.id.rbReferal);
120+
etPreAuthorization = findViewById(R.id.etPreAuthorization);
112121

113122

114123
tvItemTotal.setText("0");
@@ -135,6 +144,13 @@ protected void onCreate(Bundle savedInstanceState) {
135144
etDiagnosis4.setThreshold(1);
136145
etDiagnosis4.setOnItemClickListener(adapter);
137146

147+
HFAdapter hfAdapter = new HFAdapter(ClaimActivity.this, sqlHandler);
148+
etReferalHF.setAdapter(hfAdapter);
149+
etReferalHF.setThreshold(1);
150+
etReferalHF.setOnItemClickListener(hfAdapter);
151+
152+
etPreAuthorization.setChecked(false);
153+
138154
etStartDate.setOnTouchListener((v, event) -> {
139155
showDialog(StartDate_Dialog_ID);
140156
return false;
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
public class HFAdapter extends CursorAdapter implements AdapterView.OnItemClickListener {
14+
SQLHandler sqlHandler;
15+
SQLiteDatabase db;
16+
17+
public HFAdapter(Context context, SQLHandler sqlHandler) {
18+
super(context, null, 0);
19+
this.sqlHandler = sqlHandler;
20+
}
21+
22+
@Override
23+
public View newView(Context context, Cursor cursor, ViewGroup parent) {
24+
return LayoutInflater.from(context).inflate(R.layout.hf_list, parent, false);
25+
}
26+
27+
@Override
28+
public void bindView(View view, Context context, Cursor cursor) {
29+
final int itemColumnIndex = cursor.getColumnIndexOrThrow("Code");
30+
final int descColumnIndex = cursor.getColumnIndexOrThrow("Name");
31+
String Suggestion = cursor.getString(itemColumnIndex) + " " + cursor.getString(descColumnIndex);
32+
TextView text1 = view.findViewById(R.id.textHF);
33+
text1.setText(Suggestion);
34+
35+
}
36+
37+
@Override
38+
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
39+
if (getFilterQueryProvider() != null) {
40+
return getFilterQueryProvider().runQuery(constraint);
41+
}
42+
43+
return sqlHandler.SearchHF((constraint != null ? constraint.toString() : ""));
44+
}
45+
46+
@Override
47+
public CharSequence convertToString(Cursor c) {
48+
return c.getString(c.getColumnIndexOrThrow("Code"));
49+
}
50+
51+
52+
@Override
53+
public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
54+
}
55+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.openimis.imisclaims.domain.entity.Control;
4141
import org.openimis.imisclaims.domain.entity.DiagnosesServicesMedications;
4242
import org.openimis.imisclaims.domain.entity.Diagnosis;
43+
import org.openimis.imisclaims.domain.entity.HealthFacility;
4344
import org.openimis.imisclaims.domain.entity.Medication;
4445
import org.openimis.imisclaims.domain.entity.PaymentList;
4546
import org.openimis.imisclaims.domain.entity.Service;
@@ -48,6 +49,7 @@
4849
import org.openimis.imisclaims.usecase.FetchClaimAdmins;
4950
import org.openimis.imisclaims.usecase.FetchControls;
5051
import org.openimis.imisclaims.usecase.FetchDiagnosesServicesItems;
52+
import org.openimis.imisclaims.usecase.FetchHealthFacilities;
5153
import org.openimis.imisclaims.usecase.FetchMedications;
5254
import org.openimis.imisclaims.usecase.FetchPaymentList;
5355
import org.openimis.imisclaims.usecase.FetchServices;
@@ -570,6 +572,7 @@ public void run() {
570572
DiagnosesServicesMedications diagnosesServicesMedications = new FetchDiagnosesServicesItems().execute();
571573
saveLastUpdateDate(diagnosesServicesMedications.getLastUpdated());
572574
sqlHandler.ClearAll("tblReferences");
575+
sqlHandler.ClearAll("tblHealthFacilities");
573576
sqlHandler.ClearMapping("S");
574577
sqlHandler.ClearMapping("I");
575578
//Insert Diagnoses
@@ -591,6 +594,11 @@ public void run() {
591594
sqlHandler.InsertItem(medication.getId(),medication.getCode(),medication.getName(), "I", String.valueOf(medication.getPrice()));
592595
}
593596

597+
List<HealthFacility> healthFacilities = new FetchHealthFacilities().execute();
598+
for(HealthFacility hf: healthFacilities) {
599+
sqlHandler.InsertHealthFacilities(hf.getId(), hf.getCode(), hf.getName());
600+
}
601+
594602
runOnUiThread(() -> {
595603
progressDialog.dismiss();
596604
downloadServices(officerCode);

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class SQLHandler extends SQLiteOpenHelper {
4848
private static final String CreateTableItems = "CREATE TABLE IF NOT EXISTS tblItems(Id text, Code text, Name text, Type text, Price text);";
4949
private static final String CreateTableSubServices = "CREATE TABLE IF NOT EXISTS tblSubServices(ServiceId text, ServiceLinked text, Quantity text, Price text);";
5050
private static final String CreateTableSubItems = "CREATE TABLE IF NOT EXISTS tblSubItems(ItemId text, ServiceId text, Quantity text, Price text);";
51+
private static final String CreateTableHealthFacilities = "CREATE TABLE IF NOT EXISTS tblHealthFacilities(Id TEXT, Code TEXT, Name TEXT);";
5152

5253
public final String REFERENCE_UNKNOWN;
5354

@@ -198,6 +199,15 @@ public Cursor SearchDisease(String InputText) {
198199
return c;
199200
}
200201

202+
public Cursor SearchHF(String InputText) {
203+
Cursor c = db.rawQuery("SELECT Code as _id,Code, Name FROM tblHealthFacilities WHERE Code LIKE '%" + InputText + "%' OR Name LIKE '%" + InputText + "%'", null);
204+
if (c != null) {
205+
c.moveToFirst();
206+
}
207+
208+
return c;
209+
}
210+
201211
public String getDiseaseCode(String disease) {
202212
String code = "";
203213
try {
@@ -321,7 +331,7 @@ public void createTables() {
321331
String[] commands = {CreateTableControls, CreateTableReferences, CreateTableClaimAdmins,
322332
createTablePolicyInquiry, createTableClaimDetails, createTableClaimItems, createTableClaimServices,
323333
createTableClaimUploadStatus, CreateTableSubItems,
324-
CreateTableSubServices,CreateTableItems,CreateTableServices};
334+
CreateTableSubServices,CreateTableItems,CreateTableServices, CreateTableHealthFacilities};
325335
for (String command : commands) {
326336
try {
327337
db.execSQL(command);
@@ -890,4 +900,16 @@ public JSONObject getItem(String itemId) {
890900
}
891901
return resultSet;
892902
}
903+
904+
public void InsertHealthFacilities(String Id, String Code, String Name) {
905+
try {
906+
ContentValues cv = new ContentValues();
907+
cv.put("Id", Id);
908+
cv.put("Code", Code);
909+
cv.put("Name", Name);
910+
db.insert("tblHealthFacilities", null, cv);
911+
} catch (Exception e) {
912+
e.printStackTrace();
913+
}
914+
}
893915
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package org.openimis.imisclaims.domain.entity;
2+
import android.os.Parcel;
3+
import android.os.Parcelable;
4+
import androidx.annotation.NonNull;
5+
import androidx.annotation.Nullable;
6+
public class HealthFacility implements Parcelable {
7+
@NonNull
8+
private final String id;
9+
@Nullable
10+
private final String code;
11+
@Nullable
12+
private final String name;
13+
14+
public HealthFacility (
15+
@NonNull String id,
16+
@Nullable String code,
17+
@Nullable String name
18+
){
19+
this.id = id;
20+
this.code = code;
21+
this.name = name;
22+
}
23+
protected HealthFacility (Parcel in){
24+
id = in.readString();
25+
code = in.readString();
26+
name = in.readString();
27+
}
28+
@Override
29+
public int describeContents() {
30+
return 0;
31+
}
32+
@Override
33+
public void writeToParcel(Parcel dest, int flags){
34+
dest.writeString(id);
35+
dest.writeString(code);
36+
dest.writeString(name);
37+
}
38+
@NonNull
39+
public String getId (){
40+
return id;
41+
}
42+
@Nullable
43+
public String getCode(){
44+
return code;
45+
}
46+
@Nullable
47+
public String getName(){
48+
return name;
49+
}
50+
public static final Creator<HealthFacility> CREATOR = new Creator<>() {
51+
@Override
52+
public HealthFacility createFromParcel(Parcel in) {
53+
return new HealthFacility(in);
54+
}
55+
@Override
56+
public HealthFacility[] newArray(int size) {
57+
return new HealthFacility[size];
58+
}
59+
};
60+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.openimis.imisclaims.network.request;
2+
import androidx.annotation.NonNull;
3+
import androidx.annotation.WorkerThread;
4+
import com.apollographql.apollo.api.Input;
5+
import org.openimis.imisclaims.GetHealthFacilityQuery;
6+
public class GetHealthFacilitiesGraphQLRequest extends BaseGraphQLRequest{
7+
@NonNull
8+
@WorkerThread
9+
public GetHealthFacilityQuery.HealthFacilities get(@NonNull int page) throws Exception {
10+
return makeSynchronous(new GetHealthFacilityQuery(Input.fromNullable(page))).getData().healthFacilities();
11+
}
12+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package org.openimis.imisclaims.usecase;
2+
import androidx.annotation.NonNull;
3+
import androidx.annotation.WorkerThread;
4+
import org.apache.commons.codec.binary.Base64;
5+
import org.openimis.imisclaims.GetHealthFacilityQuery;
6+
import org.openimis.imisclaims.domain.entity.HealthFacility;
7+
import org.openimis.imisclaims.network.request.GetHealthFacilitiesGraphQLRequest;
8+
import org.openimis.imisclaims.network.util.Mapper;
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
import java.util.Objects;
12+
public class FetchHealthFacilities {
13+
@NonNull
14+
private final GetHealthFacilitiesGraphQLRequest hfRequest;
15+
public FetchHealthFacilities(){
16+
this(new GetHealthFacilitiesGraphQLRequest());
17+
}
18+
public FetchHealthFacilities(
19+
@NonNull GetHealthFacilitiesGraphQLRequest hfRequest
20+
) {
21+
this.hfRequest = hfRequest;
22+
}
23+
@WorkerThread
24+
@NonNull
25+
public List<HealthFacility> execute() throws Exception{
26+
List<HealthFacility> healthFacilities = new ArrayList<>();
27+
int page = 0;
28+
boolean hasNextPage;
29+
do{
30+
GetHealthFacilityQuery.HealthFacilities response = hfRequest.get(page);
31+
healthFacilities.addAll(Mapper.map(
32+
response.edges(),
33+
dto ->{
34+
GetHealthFacilityQuery.Node node = Objects.requireNonNull(dto.node());
35+
byte[] bytes = node.id().getBytes();
36+
String id = new String(Base64.decodeBase64(bytes)).split(":")[1];
37+
return new HealthFacility(
38+
id,
39+
node.code(),
40+
node.name()
41+
);
42+
}
43+
));
44+
hasNextPage = response.pageInfo().hasNextPage();
45+
page = page + 100;
46+
}while (hasNextPage);
47+
return healthFacilities;
48+
}
49+
}

0 commit comments

Comments
 (0)