1212import android .view .MenuInflater ;
1313import android .view .MenuItem ;
1414import android .view .View ;
15+ import android .widget .AdapterView ;
16+ import android .widget .ArrayAdapter ;
1517import android .widget .AutoCompleteTextView ;
1618import android .widget .Button ;
19+ import android .widget .CheckBox ;
1720import android .widget .DatePicker ;
1821import android .widget .EditText ;
1922import android .widget .ImageButton ;
2023import android .widget .RadioButton ;
2124import android .widget .RadioGroup ;
25+ import android .widget .Spinner ;
26+ import android .widget .Switch ;
2227import android .widget .TextView ;
2328
2429import androidx .annotation .NonNull ;
@@ -43,7 +48,6 @@ public class ClaimActivity extends ImisActivity {
4348 private static final int REQUEST_SCAN_QR_CODE = 1 ;
4449 static final int StartDate_Dialog_ID = 0 ;
4550 static final int EndDate_Dialog_ID = 1 ;
46-
4751 final Calendar cal = Calendar .getInstance ();
4852
4953 public static ArrayList <HashMap <String , String >> lvItemList ;
@@ -65,14 +69,16 @@ public static Intent newIntent(@NonNull Context context, @NonNull String claimUU
6569
6670 private int year , month , day ;
6771 int TotalItemService ;
72+ String patientCondition , visitType ;
6873
6974 EditText etStartDate , etEndDate , etClaimCode , etHealthFacility , etInsureeNumber , etClaimAdmin , etGuaranteeNo ;
70- AutoCompleteTextView etDiagnosis , etDiagnosis1 , etDiagnosis2 , etDiagnosis3 , etDiagnosis4 ;
75+ AutoCompleteTextView etDiagnosis , etDiagnosis1 , etDiagnosis2 , etDiagnosis3 , etDiagnosis4 , etReferalHF , etPatientCondition , etVisitType ;
7176 TextView tvItemTotal , tvServiceTotal ;
7277 Button btnPost , btnNew ;
7378 RadioGroup rgVisitType ;
7479 RadioButton rbEmergency , rbReferral , rbOther ;
7580 ImageButton btnScan ;
81+ CheckBox etPreAuthorization ;
7682
7783 @ Override
7884 protected void onCreate (Bundle savedInstanceState ) {
@@ -109,7 +115,64 @@ protected void onCreate(Bundle savedInstanceState) {
109115 rbEmergency = findViewById (R .id .rbEmergency );
110116 rbReferral = findViewById (R .id .rbReferral );
111117 rbOther = findViewById (R .id .rbOther );
118+ etReferalHF = findViewById (R .id .etReferalHF );
119+ etPreAuthorization = findViewById (R .id .etPreAuthorization );
120+ etPatientCondition = findViewById (R .id .patientCondition );
121+ etVisitType = findViewById (R .id .etVisitType );
122+
123+ String [] visitTypes = getResources ().getStringArray (R .array .visitType );
124+ ArrayAdapter <String > visitTypeAdapter = new ArrayAdapter <>(this , android .R .layout .simple_dropdown_item_1line , visitTypes );
125+ visitTypeAdapter .setDropDownViewResource (android .R .layout .select_dialog_singlechoice );
126+ etVisitType .setAdapter (visitTypeAdapter );
127+ etVisitType .setOnItemClickListener (new AdapterView .OnItemClickListener () {
128+ @ Override
129+ public void onItemClick (AdapterView <?> adapterView , View view , int position , long l ) {
130+ String item = adapterView .getItemAtPosition (position ).toString ();
131+ switch (item ){
132+ case "Emergency" :
133+ visitType = "E" ;
134+ etReferalHF .setVisibility (View .GONE );
135+ break ;
136+ case "Referral" :
137+ visitType = "R" ;
138+ etReferalHF .setVisibility (View .VISIBLE );
139+ break ;
140+ case "Other" :
141+ visitType = "O" ;
142+ etReferalHF .setVisibility (View .GONE );
143+ break ;
144+ default :
145+ visitType = "" ;
146+ break ;
147+ }
148+ }
149+ });
150+
151+ String [] patientConditions = getResources ().getStringArray (R .array .patientCondition );
152+ ArrayAdapter <String > patientConditionAdapter = new ArrayAdapter <>(this , android .R .layout .simple_dropdown_item_1line , patientConditions );
153+ etPatientCondition .setAdapter (patientConditionAdapter );
154+ etPatientCondition .setOnItemClickListener (new AdapterView .OnItemClickListener () {
155+ @ Override
156+ public void onItemClick (AdapterView <?> adapterView , View view , int position , long l ) {
157+ String item = adapterView .getItemAtPosition (position ).toString ();
158+ switch (item ){
159+ case "Healed" :
160+ patientCondition = "H" ;
161+ break ;
162+ case "Deceased" :
163+ patientCondition = "D" ;
164+ break ;
165+ case "Escaped" :
166+ patientCondition = "E" ;
167+ break ;
168+ case "Referral" :
169+ patientCondition = "R" ;
170+ break ;
171+ }
172+ }
173+ });
112174
175+ rgVisitType .setVisibility (View .GONE );
113176
114177 tvItemTotal .setText ("0" );
115178 tvServiceTotal .setText ("0" );
@@ -135,6 +198,14 @@ protected void onCreate(Bundle savedInstanceState) {
135198 etDiagnosis4 .setThreshold (1 );
136199 etDiagnosis4 .setOnItemClickListener (adapter );
137200
201+ HFAdapter hfAdapter = new HFAdapter (ClaimActivity .this , sqlHandler );
202+ etReferalHF .setAdapter (hfAdapter );
203+ etReferalHF .setThreshold (1 );
204+ etReferalHF .setOnItemClickListener (hfAdapter );
205+
206+ etPreAuthorization .setChecked (false );
207+ etReferalHF .setVisibility (View .GONE );
208+
138209 etStartDate .setOnTouchListener ((v , event ) -> {
139210 showDialog (StartDate_Dialog_ID );
140211 return false ;
@@ -373,7 +444,11 @@ private void ClearForm() {
373444 etDiagnosis2 .setText ("" );
374445 etDiagnosis3 .setText ("" );
375446 etDiagnosis4 .setText ("" );
447+ etPreAuthorization .setChecked (false );
448+ etReferalHF .setText ("" );
376449 rgVisitType .clearCheck ();
450+ etPatientCondition .setText ("" );
451+ etVisitType .setText ("" );
377452 etClaimCode .requestFocus ();
378453 }
379454
@@ -394,6 +469,10 @@ private void disableForm() {
394469 disableView (rbEmergency );
395470 disableView (rbReferral );
396471 disableView (rbOther );
472+ disableView (etReferalHF );
473+ disableView (etPreAuthorization );
474+ disableView (etPatientCondition );
475+ disableView (etVisitType );
397476 }
398477
399478 private void fillClaimFromRestore (Claim claim ) {
@@ -427,17 +506,17 @@ private void fillClaimFromRestore(Claim claim) {
427506 etDiagnosis4 .setText (sqlHandler .getDiseaseCode (claim .getSecDg4 ()));
428507
429508 switch (claim .getVisitType () != null ? claim .getVisitType () : "" ) {
430- case "Emergency " :
431- rgVisitType . check ( R . id . rbEmergency );
509+ case "E " :
510+ etVisitType . setText ( "Emergency" );
432511 break ;
433- case "Referral " :
434- rgVisitType . check ( R . id . rbReferral );
512+ case "R " :
513+ etVisitType . setText ( "Referral" );
435514 break ;
436- case "Other " :
437- rgVisitType . check ( R . id . rbOther );
515+ case "O " :
516+ etVisitType . setText ( "Other" );
438517 break ;
439518 default :
440- rgVisitType . clearCheck ( );
519+ etVisitType . setText ( "" );
441520 }
442521
443522 lvItemList .clear ();
@@ -499,19 +578,42 @@ private void fillClaimFromDatabase(String claimUUID) {
499578 etDiagnosis2 .setText (claimDetails .getString ("ICDCode2" ));
500579 etDiagnosis3 .setText (claimDetails .getString ("ICDCode3" ));
501580 etDiagnosis4 .setText (claimDetails .getString ("ICDCode4" ));
581+ etReferalHF .setText (claimDetails .getString ("ReferalHF" ));
582+ if (claimDetails .getInt ("PreAuthorization" ) == 1 ){
583+ etPreAuthorization .setChecked (true );
584+ }else {
585+ etPreAuthorization .setChecked (false );
586+ }
502587
503588 switch (claimDetails .getString ("VisitType" )) {
504589 case "E" :
505- rgVisitType . check ( R . id . rbEmergency );
590+ etVisitType . setText ( "Emergency" );
506591 break ;
507592 case "R" :
508- rgVisitType . check ( R . id . rbReferral );
593+ etVisitType . setText ( "Referral" );
509594 break ;
510595 case "O" :
511- rgVisitType .check (R .id .rbOther );
596+ etVisitType .setText ("Other" );
597+ break ;
598+ default :
599+ etVisitType .setText ("" );
600+ }
601+
602+ switch (claimDetails .getString ("PatientCondition" )) {
603+ case "H" :
604+ etPatientCondition .setText ("Healed" );
605+ break ;
606+ case "D" :
607+ etPatientCondition .setText ("Deceased" );
608+ break ;
609+ case "E" :
610+ etPatientCondition .setText ("Escaped" );
611+ break ;
612+ case "R" :
613+ etPatientCondition .setText ("Referral" );
512614 break ;
513615 default :
514- rgVisitType . clearCheck ( );
616+ etPatientCondition . setText ( "" );
515617 }
516618
517619 lvItemList .clear ();
@@ -531,6 +633,12 @@ private void fillClaimFromDatabase(String claimUUID) {
531633 }
532634 tvItemTotal .setText (String .valueOf (lvItemList .size ()));
533635
636+ if (etVisitType .getText ().equals ("Referral" )){
637+ etReferalHF .setEnabled (true );
638+ }else {
639+ disableView (etReferalHF );
640+ }
641+
534642 lvServiceList .clear ();
535643 if (claimObject .has ("services" )) {
536644 JSONArray services = claimObject .getJSONArray ("services" );
@@ -645,7 +753,12 @@ private boolean isValidData() {
645753 return false ;
646754 }
647755
648- if (rgVisitType .getCheckedRadioButtonId () == -1 ) {
756+ // if (rgVisitType.getCheckedRadioButtonId() == -1) {
757+ // showValidationDialog(rgVisitType, getResources().getString(R.string.MissingVisitType));
758+ // return false;
759+ // }
760+
761+ if (etVisitType .getText ().toString ().isEmpty ()){
649762 showValidationDialog (rgVisitType , getResources ().getString (R .string .MissingVisitType ));
650763 return false ;
651764 }
@@ -687,11 +800,10 @@ private boolean saveClaim() {
687800
688801 String claimDate = DateUtils .toDateString (new Date ());
689802
690- int SelectedId ;
691- SelectedId = rgVisitType .getCheckedRadioButtonId ();
692- RadioButton selectedTypeButton ;
693- selectedTypeButton = findViewById (SelectedId );
694- String visitType = selectedTypeButton .getTag ().toString ();
803+ //int SelectedId;
804+ //SelectedId = rgVisitType.getCheckedRadioButtonId();
805+ //RadioButton selectedTypeButton;
806+ //selectedTypeButton = findViewById(SelectedId);
695807
696808 ContentValues claimCV = new ContentValues ();
697809
@@ -712,6 +824,13 @@ private boolean saveClaim() {
712824 claimCV .put ("ICDCode3" , etDiagnosis3 .getText ().toString ());
713825 claimCV .put ("ICDCode4" , etDiagnosis4 .getText ().toString ());
714826 claimCV .put ("VisitType" , visitType );
827+ claimCV .put ("ReferalHF" , etReferalHF .getText ().toString ());
828+ claimCV .put ("PatientCondition" , patientCondition );
829+ if (etPreAuthorization .isChecked ()){
830+ claimCV .put ("PreAuthorization" , 1 );
831+ }else {
832+ claimCV .put ("PreAuthorization" , 0 );
833+ }
715834
716835 ArrayList <ContentValues > claimItemCVs = new ArrayList <>(lvItemList .size ());
717836 for (int i = 0 ; i < lvItemList .size (); i ++) {
0 commit comments