From d02ad19258e139c15c544c27af7b976f6e6b2292 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 30 May 2019 16:30:31 +0300 Subject: [PATCH 01/50] add anc member profile activity --- .../chw/activity/AncMemberProfileActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java new file mode 100644 index 0000000000..6d54c547f9 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -0,0 +1,15 @@ +package org.smartregister.chw.activity; + +import android.app.Activity; +import android.content.Intent; + +import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; +import org.smartregister.chw.anc.util.MemberObject; + +public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { + public static void startMe(Activity activity, MemberObject memberObject) { + Intent intent = new Intent(activity, AncMemberProfileActivity.class); + intent.putExtra("MemberObject", memberObject); + activity.startActivity(intent); + } +} From 8f656b618c7288bb0c8c6efef048b13bddbab613 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 30 May 2019 16:31:47 +0300 Subject: [PATCH 02/50] add anc member serialized object --- .../chw/fragment/AncRegisterFragment.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 26a462ef74..12038498fe 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -13,8 +13,11 @@ import org.apache.commons.lang3.StringUtils; import org.smartregister.chw.R; import org.smartregister.chw.activity.AncHomeVisitActivity; +import org.smartregister.chw.activity.AncMemberProfileActivity; +import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; import org.smartregister.chw.anc.fragment.BaseAncRegisterFragment; import org.smartregister.chw.anc.util.DBConstants; +import org.smartregister.chw.anc.util.MemberObject; import org.smartregister.chw.custom_view.NavigationMenu; import org.smartregister.chw.model.AncRegisterFragmentModel; import org.smartregister.chw.presenter.AncRegisterFragmentPresenter; @@ -140,6 +143,12 @@ protected void openHomeVisit(CommonPersonObjectClient client) { AncHomeVisitActivity.startMe(getActivity(), baseEntityId); } + @Override + protected void openProfile(CommonPersonObjectClient client) { + MemberObject memberObject = new MemberObject(client.getColumnmaps().get("first_name")); + AncMemberProfileActivity.startMe(getActivity(), memberObject); + } + private void switchViews(View dueOnlyLayout, boolean isPress) { TextView dueOnlyTextView = dueOnlyLayout.findViewById(R.id.due_only_text_view); if (isPress) { @@ -149,6 +158,8 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { } } + + @Override public void onResume() { super.onResume(); From 69ee2c854b61e8154ef1ca113b3b575ea8ee559d Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 30 May 2019 16:34:44 +0300 Subject: [PATCH 03/50] add AncMemberProfileActivity to manifest activities --- opensrp-chw/src/main/AndroidManifest.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opensrp-chw/src/main/AndroidManifest.xml b/opensrp-chw/src/main/AndroidManifest.xml index fd8e5cea37..813d94d94f 100644 --- a/opensrp-chw/src/main/AndroidManifest.xml +++ b/opensrp-chw/src/main/AndroidManifest.xml @@ -26,6 +26,9 @@ + Date: Fri, 31 May 2019 10:48:07 +0300 Subject: [PATCH 04/50] add unique id to anc member profile --- .../chw/activity/AncMemberProfileActivity.java | 1 + .../chw/fragment/AncRegisterFragment.java | 14 +++++++++++--- .../chw/model/AncRegisterFragmentModel.java | 1 + .../java/org/smartregister/chw/util/Utils.java | 13 +++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 6d54c547f9..fd1b51abe8 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -8,6 +8,7 @@ public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { public static void startMe(Activity activity, MemberObject memberObject) { + Intent intent = new Intent(activity, AncMemberProfileActivity.class); intent.putExtra("MemberObject", memberObject); activity.startActivity(intent); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 12038498fe..bcad692a4d 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -14,7 +14,6 @@ import org.smartregister.chw.R; import org.smartregister.chw.activity.AncHomeVisitActivity; import org.smartregister.chw.activity.AncMemberProfileActivity; -import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; import org.smartregister.chw.anc.fragment.BaseAncRegisterFragment; import org.smartregister.chw.anc.util.DBConstants; import org.smartregister.chw.anc.util.MemberObject; @@ -145,7 +144,17 @@ protected void openHomeVisit(CommonPersonObjectClient client) { @Override protected void openProfile(CommonPersonObjectClient client) { - MemberObject memberObject = new MemberObject(client.getColumnmaps().get("first_name")); + + String memberName = Utils.getAncMemberNameAndAge( + client.getColumnmaps().get(DBConstants.KEY.FIRST_NAME), + client.getColumnmaps().get(DBConstants.KEY.MIDDLE_NAME), + client.getColumnmaps().get(DBConstants.KEY.LAST_NAME), + client.getColumnmaps().get(DBConstants.KEY.DOB)); + + MemberObject memberObject = new MemberObject(memberName); + + String chwMemberId = client.getColumnmaps().get(DBConstants.KEY.UNIQUE_ID); + AncMemberProfileActivity.startMe(getActivity(), memberObject); } @@ -159,7 +168,6 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { } - @Override public void onResume() { super.onResume(); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java index 34efa0f838..84221a7ee1 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java @@ -33,6 +33,7 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.MIDDLE_NAME); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.LAST_NAME); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.DOB); + columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.UNIQUE_ID); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.VILLAGE_TOWN); return columnList.toArray(new String[columnList.size()]); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java index aec375fcbf..3ccfd51d83 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java @@ -25,6 +25,7 @@ import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.Days; +import org.joda.time.Period; import org.smartregister.chw.BuildConfig; import org.smartregister.chw.R; import org.smartregister.chw.contract.FamilyCallDialogContract; @@ -220,4 +221,16 @@ public static String getLocalForm(String jsonForm) { String suffix = Locale.getDefault().getLanguage().equals("fr") ? "_fr" : ""; return MessageFormat.format("{0}{1}", jsonForm, suffix); } + + public static String getAncMemberNameAndAge(String firstName, String middleName, String surName, String age) { + int integerAge = new Period(new DateTime(age), new DateTime()).getYears(); + firstName = firstName.trim(); + middleName = middleName.trim(); + surName = surName != null ? surName.trim() : ""; + + if (StringUtils.isNotBlank(firstName) && StringUtils.isNotBlank(middleName) && StringUtils.isNotBlank(age)) { + return (firstName + " " + middleName + " " + surName).trim() + ", " + integerAge; + } + return ""; + } } From 1c80fa077c65db8ec178f5466a2595b620ef6ac8 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Fri, 31 May 2019 12:55:40 +0300 Subject: [PATCH 05/50] update member profile --- .../chw/activity/AncMemberProfileActivity.java | 3 ++- .../chw/fragment/AncRegisterFragment.java | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index fd1b51abe8..2287254aea 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -4,13 +4,14 @@ import android.content.Intent; import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; +import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.anc.util.MemberObject; public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { public static void startMe(Activity activity, MemberObject memberObject) { Intent intent = new Intent(activity, AncMemberProfileActivity.class); - intent.putExtra("MemberObject", memberObject); + intent.putExtra(Constants.ANC_MEMBER_OBJECTS.MEMBER_PROFILE_OBJECT, memberObject); activity.startActivity(intent); } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index bcad692a4d..b596898f88 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -11,6 +11,9 @@ import android.widget.TextView; import org.apache.commons.lang3.StringUtils; +import org.joda.time.DateTime; +import org.joda.time.Days; +import org.joda.time.format.DateTimeFormat; import org.smartregister.chw.R; import org.smartregister.chw.activity.AncHomeVisitActivity; import org.smartregister.chw.activity.AncMemberProfileActivity; @@ -144,6 +147,10 @@ protected void openHomeVisit(CommonPersonObjectClient client) { @Override protected void openProfile(CommonPersonObjectClient client) { + String lmp = client.getColumnmaps().get(DBConstants.KEY.LAST_MENSTRUAL_PERIOD); + int ga = Days.daysBetween(DateTimeFormat.forPattern("dd-MM-yyyy").parseDateTime(lmp), new DateTime()).getDays() / 7; + String uniqueId = String.format(getString(R.string.unique_id_text), client.getColumnmaps().get(DBConstants.KEY.UNIQUE_ID)); + String gest_age = String.format(getString(R.string.gest_age), String.valueOf(ga)) + " " + getString(R.string.gest_age_weeks); String memberName = Utils.getAncMemberNameAndAge( client.getColumnmaps().get(DBConstants.KEY.FIRST_NAME), @@ -151,9 +158,10 @@ protected void openProfile(CommonPersonObjectClient client) { client.getColumnmaps().get(DBConstants.KEY.LAST_NAME), client.getColumnmaps().get(DBConstants.KEY.DOB)); - MemberObject memberObject = new MemberObject(memberName); - - String chwMemberId = client.getColumnmaps().get(DBConstants.KEY.UNIQUE_ID); + MemberObject memberObject = new MemberObject(memberName, + gest_age, + client.getColumnmaps().get(DBConstants.KEY.VILLAGE_TOWN), + uniqueId); AncMemberProfileActivity.startMe(getActivity(), memberObject); } From f34a1eaab73bddba704a2668bf7e5463a5d69579 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Fri, 31 May 2019 12:56:16 +0300 Subject: [PATCH 06/50] add gestation age string resource --- opensrp-chw/src/main/res/values/strings.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index 68137efb89..11ab11953a 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -273,4 +273,6 @@ ANC Card Received Sleeping under a LLITN ANC Counseling + GA: %1$s + weeks From 252569aa1ea2ec37c8887b4bff8e1bb4f7fc258c Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 14:29:03 +0300 Subject: [PATCH 07/50] Updated HV Observation form encounter type --- .../src/wcaro/assets/json.form/anc_hv_observations.json | 4 ++-- .../src/wcaro/assets/json.form/anc_hv_tt_immunization.json | 0 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_observations.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_observations.json index 52471ec5b8..b590478f22 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_observations.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_observations.json @@ -1,6 +1,6 @@ { "count": "1", - "encounter_type": "Observations Illness", + "encounter_type": "Home Visit - Observations Illness", "entity_id": "", "metadata": { "start": { @@ -97,7 +97,7 @@ "openmrs_choice_ids": { "Managed": "140959AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "Referred": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "No action taken" : "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "No action taken": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } } ] diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json new file mode 100644 index 0000000000..e69de29bb2 From e14b87f10d4983dc51ed1cfd4aeabcb1c2ba1e50 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 14:30:25 +0300 Subject: [PATCH 08/50] Changed anc date picker home visit to use json files --- .../java/org/smartregister/chw/util/Constants.java | 2 ++ opensrp-chw/src/main/res/values/strings.xml | 2 ++ .../chw/interactor/AncHomeVisitInteractorFlv.java | 12 ++++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java index 36fa74b852..918c53f160 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java @@ -58,6 +58,8 @@ public static class ANC_HOME_VISIT { public static final String ANC_COUNSELING = "anc_hv_counseling"; public static final String SLEEPING_UNDER_LLITN = "anc_hv_sleeping_under_llitn"; public static final String ANC_CARD_RECEIVED = "anc_hv_anc_card_received"; + public static final String TT_IMMUNIZATION = "anc_hv_tt_immunization"; + public static final String IPTP_SP = "anc_hv_anc_iptp_sp"; public static final String HEALTH_FACILITY_VISIT = "anc_hv_health_facility_visit"; diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index 68137efb89..40bc73901b 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -273,4 +273,6 @@ ANC Card Received Sleeping under a LLITN ANC Counseling + TT {0} Immunization + IPTp-SP dose {0} diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 62aec3cd06..6d88bb51a0 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -37,8 +37,16 @@ public LinkedHashMap calculateActions(BaseAncHom String visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); actionList.put(visit, new BaseAncHomeVisitAction(visit, "", false, null, ANC_HOME_VISIT.HEALTH_FACILITY_VISIT)); - actionList.put("TT 1 Immunization", new BaseAncHomeVisitAction("TT 1 Immunization", "", false, null, "anc")); - actionList.put("IPTp-SP dose 1", new BaseAncHomeVisitAction("IPTp-SP dose 1", "", false, null, "anc")); + String immunization = MessageFormat.format(context.getString(R.string.anc_home_visit_tt_immunization), 1); + actionList.put(immunization, new BaseAncHomeVisitAction(immunization, "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.TT_IMMUNIZATION, null), + null)); + + String iptp = MessageFormat.format(context.getString(R.string.anc_home_visit_iptp_sp), 1); + actionList.put(iptp, new BaseAncHomeVisitAction(iptp, "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.IPTP_SP, null), + null)); + actionList.put(context.getString(R.string.anc_home_visit_observations_n_illnes), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_observations_n_illnes), "", true, null, ANC_HOME_VISIT.OBSERVATION_AND_ILLNESS)); From a8559ed538ad87f13c639aa80a840249a20e6288 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 14:41:24 +0300 Subject: [PATCH 09/50] Added TT Immunization --- opensrp-chw/build.gradle | 2 +- .../json.form/anc_hv_tt_immunization.json | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index c4958ba936..f899bbbb1d 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -180,7 +180,7 @@ dependencies { exclude group: 'com.android.support', module: 'appcompat-v7' } - implementation('org.smartregister:opensrp-client-chw-anc:0.0.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-chw-anc:0.0.2-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json index e69de29bb2..85e42565fd 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json @@ -0,0 +1,68 @@ +{ + "count": "1", + "encounter_type": "ANC HOME Visit", + "entity_id": "", + "metadata": { + "start": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "start", + "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "end": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "end", + "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "today": { + "openmrs_entity_parent": "", + "openmrs_entity": "encounter", + "openmrs_entity_id": "encounter_date" + }, + "deviceid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "deviceid", + "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "subscriberid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "subscriberid", + "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "simserial": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "simserial", + "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "phonenumber": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "phonenumber", + "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "encounter_location": "" + }, + "step1": { + "title": "TT 1 immunization", + "fields": [ + { + "key": "tt1_date", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "date_picker", + "hint": "When was TT 1 immunization done?", + "min_date": "today-120y", + "max_date": "today", + "v_required": { + "value": "true", + "err": "Please enter the date of birth" + } + } + ] + } +} \ No newline at end of file From 172efd76dc7a869e548a0de9c86e5f4d4bcb6144 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 14:46:45 +0300 Subject: [PATCH 10/50] Added ANC HV IPTP form --- .../assets/json.form/anc_hv_anc_iptp_sp.json | 68 +++++++++++++++++++ .../json.form/anc_hv_tt_immunization.json | 2 +- 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json new file mode 100644 index 0000000000..71df3d0c41 --- /dev/null +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json @@ -0,0 +1,68 @@ +{ + "count": "1", + "encounter_type": "ANC Registration", + "entity_id": "", + "metadata": { + "start": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "start", + "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "end": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "end", + "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "today": { + "openmrs_entity_parent": "", + "openmrs_entity": "encounter", + "openmrs_entity_id": "encounter_date" + }, + "deviceid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "deviceid", + "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "subscriberid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "subscriberid", + "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "simserial": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "simserial", + "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "phonenumber": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "phonenumber", + "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "encounter_location": "" + }, + "step1": { + "title": "IPTp-SP 1st dose", + "fields": [ + { + "key": "iptp_date", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "date_picker", + "hint": "When was IPTp-SP 1st dose given?", + "min_date": "today-120y", + "max_date": "today", + "v_required": { + "value": "true", + "err": "Please enter the date of birth" + } + } + ] + } +} \ No newline at end of file diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json index 85e42565fd..3b0189659a 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json @@ -1,6 +1,6 @@ { "count": "1", - "encounter_type": "ANC HOME Visit", + "encounter_type": "ANC Registration", "entity_id": "", "metadata": { "start": { From a57f368a8b86c916ce9c2f74ce13c9b6fbf9bd6c Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:07:00 +0300 Subject: [PATCH 11/50] Added Immage to home visit immunization task --- .../org/smartregister/chw/util/Constants.java | 1 + .../json.form/anc_hv_tt_immunization.json | 1 + .../res/drawable-hdpi/form_immunization.png | Bin 0 -> 29215 bytes .../res/drawable-mdpi/form_immunization.png | Bin 0 -> 20026 bytes .../res/drawable-xhdpi/form_immunization.png | Bin 0 -> 16080 bytes .../res/drawable-xxhdpi/form_immunization.png | Bin 0 -> 61770 bytes .../res/drawable-xxxhdpi/form_immunization.png | Bin 0 -> 89573 bytes 7 files changed, 2 insertions(+) create mode 100644 opensrp-chw/src/wcaro/res/drawable-hdpi/form_immunization.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-mdpi/form_immunization.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xhdpi/form_immunization.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_immunization.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xxxhdpi/form_immunization.png diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java index 918c53f160..9ee7f2eeef 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java @@ -35,6 +35,7 @@ public static final class EventType { public static final String REMOVE_FAMILY = "Remove Family"; public static final String ANC_REGISTRATION = "ANC Registration"; + public static final String ANC_HOME_VISIT = "ANC Home Visit"; } public static class JSON_FORM { diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json index 3b0189659a..8321688d0d 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_tt_immunization.json @@ -55,6 +55,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "date_picker", + "image": "form_immunization", "hint": "When was TT 1 immunization done?", "min_date": "today-120y", "max_date": "today", diff --git a/opensrp-chw/src/wcaro/res/drawable-hdpi/form_immunization.png b/opensrp-chw/src/wcaro/res/drawable-hdpi/form_immunization.png new file mode 100644 index 0000000000000000000000000000000000000000..9982481451fbb9f1d503fbf68151454e6219d36a GIT binary patch literal 29215 zcmeEt^vkNU8^N01wKhV z47~t>-mPe;C>r`sZp~2mT8w1k-?>y}JpX>%qRtbS$RhZ?ylwK@wr6Tx|9VZPUuu1i zr*yvZSzZ3Nr*tNx`I;wlf!$xF6j9Ek47s}UYn%p3WzQZMKS@v`p2)sK{86+jqcZ%N zxK{T@TaIv*e=taNXh{3o(rb!~WSWkW4ECCxNj z`}oq)%OwOzWdMKwh|GCOeS>Wu0rELU>%-@@LS@x63C{5#5l5A)$Bw`0wfN(~74iQ1 z!H8mgA0PQU>*8#mJ-b5kQ3QYO%bn4&tWx~}G9}eRdcu)G@y7=o$Jl-OOXZEtR+TM- zV!Yal)tGrMH`Trwr(~n%`zl%kmoKd&=TUtNtBIA4Q0dYVm&XGS{&_tru5#5wV-7m0 zS^Y+g8YN!k^rCCn`bSUU*+mq+!1oCdCod;Be$&5y0R#%Cpl}mbP?s`T(7a8^Gy22 znr?qq_c3|&T|AiErbLeo-?JF{>V|h5mb7umpdzY7lbP;*^zHr4TsmqpuLJ1a52btG z&&?{%FBSc?)kZs#vucAo%JhFMVwF_4Jp7vTAhTQ5ENKgI$548EWh((0#6SPGFxvV^ zmzJ%N@^<7$t^8Dle$MTo6o4N%!0vugQ=k|AF-96aKKZtOuQD9=IL}*C$p3{>zYRrz z+F_fk`MHWy9pvz1bN#D|K7lkMd=be^tI~;17c9Apb^omEgX-a`!PDXpcQ+XHa|4O- zWWDiZ!1tQk++R_{PE}2rMn-HjtaQL3p81)f14b=%1ENc`KlT19uUoF;DskhJ){3o1 zfv;hcxwiO|Pwnz(_ZP^})(4Gtsf+weh(u}r2ZY1TYYTA;u0>VgNw30T)*KaA`%2!^ z*ufPB6*sefak+^B{c67x%YlIz-a%yv4!Dy(eG_fLzgeSLbyq%obqFuaJm6O zJum|dULoNoBB2?VjsGw_-{zqv(ws-tW@)$aE8IoIFn!)%jg$3i{m?V;-P+EQ&(uPd z9$C{0xL+LCts1$K$vM`min|UxVYkaqwgY-_qet3GOe{Fx*d4}52^aO5iQ@k@x0g*4 zTX^I-oiX3jvsg8#eRqC~vX@@UD523b!>F>@#AT z-MAkUxrQ6%oz>>&u6&!I4aBAcbe-6SHkgPTMkQ0N~0 z`LsZKdxfM0eeVrT(-YIR@{zIUgQ}W(%zEoHoe!Y#N#ywL=nb^}4ZKbHS6t%ess5WF zStjAvU>6ANh^S%bXr=1*imLoMCvZxT?Y9xRh7#Yo#-aJ$Qm>pCDICRPX?rb6UsENp zaa-FnC$q;n?ptWutSHZPJPp&?(wN@$=(S1fho^}J&m~ApFTRxi(jL~hM*{qostojV zVLJ}0ZQ-kv>Bc83lkw>?o+R{$?mUY({6kx+S2%L-MJI2C1&{xqjO|3EkitFpE61TW zMmRM}c!Dx)>(Rexk5UrOhK>KUHntEN*yBbtxgbf9{Bb)cmxF`=l84=tmn(fg0uDXT zAGi7*2F#Zek`ugdFTYX*zGvHXM!QPx0~EIYA{K z_@!dr)Jf_q%N32a+z9h7ARy~y%fAbqe0+P>JIaJIXxC%?_t5E9%=S;oYa8KpccIET zQ!*iUG?=G2&sqDMsCIC<-H5MiFZ=>^*(7Q@-Oe9Jg7?O!b(?~2ME1l=WN8=~dAVsB zA*P(UlR9`}M^DYa>aanMYDd!~4Bbj|Pki`Ruurd$vauZtajOYGa)9W0We4{%k~(+R zskGJAdUES5`H%l%mAZ7+(9p;H022C=?_LkTiys3H=5I|Lpn2|ws4FkfsM>oeCv>ys%HiXJm3Oe?W@OqSmx{a6RRFL5dqaAqC}Y z7K=?~?mCMB%QysdmFehw#--T-j~(o9lwj0{nU1dw5FcyM(V?>)C6pgwfvOw&uDDU7 zmZ#G)A7Zy9%=qc?QB75S4gBil#>4ft{n6X`(mdO5f0wD(lh_={wqr*hI297peZv}R ze3PeL7pK1JgXS+1Ou&VeqWkp~3T$E76Qr?fqdsWYXmntGd&OI~-}emCM$&2br>yW8 zd`Z*y*{?rc5@L@E1HqW9-#**VVjDTfa^Yx)8rZV`F!*mpbwkwYPg%BaUGF7KBlC~7 z5Gg&5daEKExdb+^T)?5LR^!Qs7x&W-gN&4x)v{hqyw&xOKvd~eOWzcUbmPVUxCRQX zf=g}|N>0-EN$P>wao@75wXSs!JoRR2T{lRPBbZli#?YkY=*n;As6S0W+!6f|5cYX3 ze&07lh;8bg=Wi07aZO_5%qmbZO*-Og}sp23yCiIyA8szuuj!JCOhlRg`tI|f~ znxQ(yZCksz zEYB@TX9$1RX6BYXxoK0?s8d9|{U~(lvKBDi6)^5z9xoqA+_PH6YqK5{uSAqpx3Eg~ z-!`{=v4?(83m4H^#Sf~P!wCjb5Vx_V*HY+A9+y|V_0{H=(~n}^%Pm*1@1!orpgMsw zo4;P+PuU_1{L@!4QYe153u{NaL+E}m`hKInyt2Ut1Dz#%qQ5~KR-hQMZ$_hfqs!xt z()s7tlA@}c7w;eEAAgKG?m%~bIAE2)WU7#}OcXS_8u_P>9G@6Z9$@z+g&(N04cFb{$y&0t2>eN<}x=yR&@_^i~8WR^6MS1WueQXJm;JiI7uUd30R zp2fC)tI~>_OsrRY?{Vzys$1W)2ZG(En%PfT(<<(4WyIge>Dw+5S5BQ-W~$OcEnS## zJ(*m-7`=mq&R;aK2Gi+ANU&mv7kcKvqPgjNH+Thi6r_A@#Dl`v zBJWs}svD=b(x=@Y@X{!apXD3AS?${V1%V9`>|MM65&o4)kdkcc<%SE~yIc}@Ww8<$ z7c>{_wz-Tw(u8zu^U!T^IWDLyY;STOt-g0D1Z7-8&dm(WT0d+w|A6t~JPCX_eiu>1 ze`{oFVO!_&NNc0CURHEsbn-RnqsWHRyoT`pl{DFv^1=pN7pF%*Co^=)oD3f6qLwEo ztCLiik51Y~^_wp;-u}2i(0xGBYX7#^fDDf@wEb+z69t=Vnwu&yG0u0Xrie7`OO-45 z%uW|D>DXA!rcwuWu*yLE)4dFE^i8AKnca?dxl1p)jI7?f$)0RamBGPx!jTH*sY>^H zSN&@kmY^5H>HBcsHy?2Za@Ouob|jsv{0sVlR@6dH9pVnI^3*&@`Uv~pdX<~sdZo^? zm98Zft9m06&5Y5Mv&mAtC;a2)2h}r%uu}UB+<2MjxOwKz!v0^Sld8MQSwpYkUi5{W zo!kfH*VBj0C?f@&;@kFLCNoAnHX=*lzPu|!45?QYq~PL|WgeJno7sa5vU{r|Of97? zOjQG%!vzlHgo3OB{f5prF(Npt<-$`+5|nu<7hUDZp}>(Z%nFVyR46|8xqP+!fSHV5RdL!NJEc0wwz z`6u6O;4`&OF(gfbo26=*bST$s4juK&9`%3a~0_H4v)^o_!|qJrZ`^Jg`-wA@xz&| z+ZQ*RUhX8fo{6+Jnc&0eSh3UvE0#;+Wup`3K%w6@h7R4XA2Ja8%rO^XVM8clB>$?V z#yUdOu?&97L2Eg2xtD$GqKc%2KhCome6?*bFytUa!j^n$2K79SWC^Z~C^cD`TdgyE z-ph#6t##7VB)kdf_K6HBE`M7?EEI7|U5d{n>U~IwcbT;UvOKlfet)=lWsr+78)k@3}HL z2wLF_-v^u{3w{-#({J5i+=fw>f5jxY_!W}0xjKoY4mms_VT;a-&eHG7KzTYki5Frw-0Casp!Sq{uT`&^YF@u%;RGJmQJDr5GcD%mJM2u z(SWm73&s=ey932%xDs=GH`d9Q`&ZpTA>HYvT#d*4bDghlhNTxJjHg?Rez{36m`TwS ziaK7BD`+o?$Mm(~(c|FA+f`;CtI2PsAKww*m6Gf2QejCPL)H7umem`%@Ho^`DF(qu zevoa&vzv|X#stRFW9({N*L&qZ%%o@D>P;b=a*17*crpgraJ=#HVnobKz~ep$RHT1W zI@?@az}0Z*{&4-IBGPZ7&<~7NqzKWwetW>eJPCUq!fIkQ;dtPO7QvSpOK@aAZC&PJ zRh+K@r~#4jr;n%YRj!o5V@J?+;wCLE6+IeT@?HR$nvkrZAytiQw(h5}DDLBuxA6#j z7YF4(vLse*Jwy3(T?Uw(5pIh2#0_j$%1v$u!N&{-o5PjZPHkX{dm>mm3r3}x6ziSUbbIg$R!yJt1w zRUZc#vKUwHpEQT}Jg!0DuE=Q2xvnS6^Yel0~~) z&3fv4zTdiD=24`n`tf-K;iA3tBKrn2A9a7S5(66B6&eMB3vSXHukN`}f^+c-I12b<)UxNIG z8(5L|`s&dqW-|5IS>B$Q2!PUzo=q7^N!P2DgvpVGKgbY;i+&U#Qw0^V;34Ud6&cPG zDKwG7ZltM|t_Zn*nu#DG{17Ivt`LyN<43=o(=WZ~49!jB>5DzT*ex{Ux1cAOAEdU_ zbA_LmNN%bL$q;kpSoAc%EyS@)2pk6#{N%g?0yUeB1ls{fDM*L3<&39hAflmq6=_{R za7#l4D{?WqSuiY0827pr^2*8fM@u(#h{eNG{9tVGE$&%%)6arWbX5lTV729rs1{kw zw@yK;Yk%7svCf;B?(Ti=`bnA~Kes%#r7S@sC*%ELcP$x0p_W`Krui79U?mO1jjS?# zwu`_$_U1}-j|A$be|<;W${!GDj_PUss=K*RlMYUNRD+c_3kkiKU4!Uc2!`F4@S@`9*vZqw(Q&R6EDoVc87#eBp zrce7=w4d!W2jVr>{=^owBy-EAJ=ifts>wX`QdgRK#eHz^3wTvza&iAeT|8g*uuxNe zs+|x$nY%9=+k*`%@C=@p_q!x2=Gb5DQnOwY3)|=k;>P}T^|_cpSh!Lv0U3T$?doRY z_2*NNV654UA3yOw6R;5p1~f zzJ~EKD|&k1s2yMt#I;Tq&v_DXS~sCx`Y7RsTH9l?BhT|bb%OHT&DQHyzEAHJ!itU6KfQM4GyM2(0M2l;+9k2z zvUV2g{b+>7-Xx%+yP(;HD{!aVp_fr@dptFZwHIF$7ACh57AtUo1S`#{(409DfkG92 zZ+M%C@kd=h-1!}EmvJEiTWwfhKk*uJM~tpI8jQcVb@y~%>7A&WyKg{VQ|aUHF{|D8 zK(XNq+pN?&jL9!Y=R?thO*Qi0bhs6G(7u`S$~i0H4J0BarZL4A&4TMqep7Uqd^+tQ zx_--!Y=_#ByUOYLbm=)M)!A9*E>BrT&CB-v>8SZ{bH348x0)@&>2fF2xam_m6?Wyl z`i7TI>ABOkk?L3xzp_6v^EaX=KxX?T`FkKO@Z-~c8{ckSoT>YqKVxhMi~khZy8s5S zATgqks;YL%*#+a1D`-jZwK@18p0s;3cB~_WHBH22(swFfeELnjY-MGR)L8B`XU>l+ z?Qm4!e6YM1I5^B36Bmt4ok+mFMD*0qQ&RPup{}3RjRKg!xsdD6l0{NJ@%Im@HYD{U?yZXl-=D{9 z_KPyzYrlJK8$K|BOF-5u;>2T;oz(g-9&nsK05a5#I%2GF0*>HC@Y7jRLZNXs)FFjm zm>Y^NE;P8R9BOg#7xmmZv$_HB**9Lk)1$YVzGqhk4nt}q(ze9#-aJQ`vc1fy7n0Bl5;X0cQ9@iNn;{nXFSE8*llf5}Gxqu=Z{XUQP?nkFT(I@zW_kZ+I` z46nzymJUd&Gq+DCUpVWybZuz?m8LMf#Un8FDXr*_E8$n(#EHAFXMPScce@YMGhkAg zN2#o+|1Q3qNbs0C&Zi22lWnc6@U6%NCJod@y(?+3G;GV3N52?q(lj|6bxfu?EMg=? zVbYoss24kh3iGpYdW6erpDI)wEjd8*$ekmMNE>Ck-(F#zn3= zrp#Zuf}arWzGaLFlcW>=A)x`vkR6?Z>$WM{OsuMUDaz;WFn8`sJZW7k4vY;sPO_t7 zh$LRo%}jbKvbd4@y5h$5EioE_BhlrZmkKbwiE8uQTiV?TVj{uVc za=hvNTyXeim%=?|s?adS+@P3n1yV*yXwc+(*$s5+OhJW6ojOcbY?yI7`_}f)+PbLq zXzN}oT~1#=06aXWyL`n~VEuaMNux|Mh059YjivyGvrW$IsEPc#d2uZxoblQ3OrMhX zR@~V9!M@EKcyj8VzMRQoOVz2WAhSh>Woa3giF>2~r6gz*DP*P6rK_w80X`#Rf35WKT$ZsuX^QDtf;mmV#5|DK>>9gdaTU%d(4M>{;B9Z4q;{!kaHNK8)FU%@rtOv_I zy%&3teAshNdv^2=A@eQ(x^E0aZ?i!!8sGjoGj5W(62YQ0o{fu9G9y#)D9B&;-Czf3 zjrhIeDQDT*MQH6WM&EX#vnBqXW?VuY>~XE_y*@KhAF?3Fv9t&+4xJIcAu^CP3t5X^ zO5`gVKT;uxYz6kGkShmhK^yN%DCtysD zKYg+dle;7fkg@0+OfQ+Z`_Ctm`gMPw5fH-TGjhW^)(>a)lpAj~_2v{)o6|ddZ?Di! z42EP;__}@yIyL?CiK~Rzb`v=|*b7GQ)ZjVj`m##ip2$2pQVA)UZ~E9io9?$}C?P;&=iw9d2A4=*7`G&afDzkxBTXxE^fpS?Y25+!&#zdULK2 z?3+qo#NN8f3owGh)iRkzam?jM&qq68Jnc_u?YC(qYCMm}Wd;cE?9xodngDubY@J=+lL-l3$@RYYL@;O&^5qf{KLrkt?jsy0e#U7()jcnZC zn2TxMjC|()bE=--1j96*-Isj-SA9*YZbQYyUSRC#!J5JHwRQGs8gfv}33;f11pr~2 z0BqMGOqGVFO^MB0#FONT2$bycj@TYiie>m27gp0=rrA~tBnRUY!cp;d8(ojXTx8ha zT6)ZpQ*lt{SKmuO7_1*AK4?AA_NU)iH=XE_`5CH{VLZg)F4Nl7sl- z;_kT7z6y|uwGgw#tD9t70>_~|P+tI=^fHdL%jt}*_}8rRynVH}9;kYuBVHV6PBU)S zNCRr|)t8n)Tax*n!E}n)^b|BZ2jd zh~4DxwGqaxp+R>TrB^TG?NxKtYu;TuM^sm8qy)XBvp-}a=Ngci#R^w=EjAv~umKJj8LM%%{tq;M)}6!sFg5~T{*LJ{OSF=?E(O2mXpAlfbVhi0UTVJ}$X@DNG)qjV%OU0TTY-|cJj~+m${mL<8r4YA^H<&nct$+7h_Of-}MD2nQ zqB!EbZncmppYnqJ4+Cz1ck`#7U!PjN;L&ARxB_y9F@koyNz-E#)YX zeyF-^K3Z)}3<`bPw~=KzQnSVsn-wGYtwr2)w$(F7w+D(#ZawACvG{>=YVzALj4b#$ z51RF5=bznNb^JU_OaAx=_-kHt*TeN3*2BxL(~`p>t9jo;TRL&IqrOisIlt#SjBi4H z&g@r3oXdM{<`ZNcusgLI3|?*6%Fm*D-)Qe0Q@I@q{xPwZsu<2fy5Z~)7TdS~O>I%{ zs8JP-`Mk&T>h)DxIPq7-EiIFl<~}N<+p*oCv&oh5vYT(7VOnm57}u7VUQ|2yhpBdT z9n}nQ&*QGI7Z&misx>Wk^$PMF9y96yxnwB#ap-PoP#1)XUEE=Pf7wddcXC?eutjy- zf=+cq?&bKdooU6UXr$dHox9LjE;@Nrzpk2vt3Tb#Fbk@4OR+q0$a`ubcNZZaWB>LQD(ea zH&o~xHf;}nwP@Y{Y38o*>nqx=6cIFlrZn#@&8_XRoM-fvq&@18zo^?Rh;ZMOR7m+0 zRPWoYe6DUL;ZNWoLq$ff$*xDfR1JAnX@o<<_uLN{Yf)wMg1O6i#;#^dE-s@f52WLJ zq1QqtCQgDIIu$U9_{+X{Li9!$BGXGzk3aby5L1|2`Yvs}wpW1cB1_{5t^qbTa;eivEEIJ8r)yX9cpSC zTmoycowV7^rA63=d`b;JcEdJuq?%;Yl$jV}Q5u{##S+>@L#+%7^a2HIJHseX>pw<~_gZ^K_{Cbo zNfet#mTL^hgsB-{0@RqAUUiv)m_{H%F{~%4TAp8EZZ1O(lQ0~Bs4dMjz zbBbOmW!u(arXGK67mo}<F0AKwIS-wE!?gwUt5KKs8^*l$T@_evI+tI}VW-=V zPX*Z}QCL4DKhlnO2LeBgwurl~|HH)U^TueIhlx^53(?`N9Q!Ahzhsa$r>BWyfDIoj zu|myRgGVeMc0Z-dXsQhm}Pxu(sJ_7+V4tyRa=4J9zy~4 z*44nFMFm7uB8zeRP~1fa-0ky`auz0Naw6gr(d%v)4d8Uh7NwMuvUT<(Frl4X2F9M= zJYYk5%-np^8q!nk5{Uc0*@vnJ4jE5tI@4%t2OYv}H!Jnpuqf#G*&6wKk4&a&Zm>c5OdMcb$^P79`O3;Fcpn;R z2^befyJq5SKIstn?AjcwK_teJ{QM%9vlp$@i?(G;$r4Xezu(N``1{g*C~eun$lcGe z1PD*c@Z&Z&iYL7Pq(*LYKcouzzYvt_JMzc{6fP(Jp%{PU5vhgGgZfIV8XFVFh9N7+t-fiI2BC zs@ZegEjQW(L_$sQQuoVmwg-t{;3F%l;zY*C#mcpE zgVWy#lv0&jit0$vYmY77oV_jl+C=>fO~ds%{o%}KL_Xs@N8G~T^h*xM0$fOlqII9r zWl4U}=-rjQhoh5K)jtMgAJ`ccB6h4h#~u(L<=UB_`n?g#<=@ygL}ZyKT}D6hPw!~- z`@9-R5sFWBkVwiAOu@fLCg}K8^ryStcC-OJWko*Br}Oo-^Bb!L1zkut)x81 zKCP|Vmfi5?FuNHi?{|gQ;wtdzT8*F^aM$=n2o$GSVX&>QlpJW8ZrcR%O*GLJRj9x2rD2kodQpfO=>#VP;*_C#a?;+dO{vZCH4b z1E(kpqaD#aO?X=yBD(NqkHyy>CcQh#-{O*=c?$XZtjZIbFs3(BpF+GU11OztKEzju55Q?kuSF z_EPy^)v@|rTEg}B?5jX{%-2a{fxt+@t z(X817BbkG03_ln-J09#TLd3)^AcD`h&M%s4ZAY|(^bDH(M_ID-G{uL$uFn7dzU zQb<I^IF-< z5<^si_i3?V{cxki%hS`7%>4|S9;mFbe|gt3#^>**LIs0^AozTHlfhn$49u{r8{48| z#&hd3=Fe(~>|o|EB)|A3WQDrUmavLhtTR6@KiD9!ZKo>vGVk99Gyf?_*lgDsi6@Lf zhVjuQh+SvlU59SeN>7cf>4&AAZLNYV6P&$- zKCrtcRjlt>=ue=49N1?ueCb+w-gp~9ca0`d>E?rvB`T?1I?eYqm{I*Q41qSMRAZ;k zh8^~7+6tqoO(EqwH32kkhjRKcXmBrA9)S)1HB+H0Mjg4qNV@LqnOVbt;Ei-OUZ}opr=$;Pr+&Od+KMuY67dOayY-c-vd#$6$w-`moMH zWYrUvN{KfwyMvU$q$P;&7)P>djb+Us^CJ~=dJyQmLCBF*(PXntYBkagyhkMmnPys# zxl$!15XjS0^+SA9SAjjR#i8eGMail;90ox+yJSL}*m^Z|9$^dsSzwTKaYlTPBfcm5 zT!qoz>$Fa=L?#(6*XbHk{I}c~=_+u*-<7iqtfSgyrz|#PUrNydjC*t3{j~%0(u&KK zr56617dE*U#1A<9bAeI)$a7x4b+PwG43;Y^U*tSSbNeRKK(u1+1sE6v{kqXmxs@o` zOvgG&J`p0w$KaxpveRctSXusZ-dB8i(>~zp=``5VSPPc3<^hM@^9cESCnjOMG5}65 zjQW)A1#BvrMVt&0N49^CTk8H3xB|Ga=CAb?jEme`?aS&)Dw!Yqa&YV3(;)`#3=2nD z!LdM#Kc6}#CmljePd|38c#o=^b)7|FuL|nTTu#4to4mOnT*Q)&0ys*OZtE;Gxbw+@ zc8gU6HXfS|D18I?+uuFVJ1z_i;SP%62D;Gh=%4#ogGG}^+PGiFBPMlVy2gMbqc}H? z2lLtWm6VlJlA8KV%8BBbPokt8A30bS6ykU5?*qsXDJ6auND*8+$Ubhp5KFa!K9~_V z%LJwsc7TV>+1YaJBi&xp@>6i_;~8wUJwB@|xk5Jj4}SIG!G4#ATK~aE*#mN!m)#Ee z7)eJfKp(^DU0>Y|$d!C#&-?QV`tE8@efj84)0qpq$yjw)ks~Q__ia&)U#|wWB0IlL z#jlzJFOeWYjqxd#s4h414qF_}Or4M@H1C{y^R!hoL;|dWI_z71!X*v$e&Y4piRMPot7udw-+b^@(0UYOTEMqJAqqX zW?Xktn&cW;f}cY^_aU`E%)Jh>I=7*qmjR~4pW$CP@~M=`!#NyR`vxCu69eO(RPn63 z&uXXs!{c1*t}XnXWS_=Isam1vOxdpX)@{49ft1%3lTEKo_8G54lv)1(Thf8R0w+KB zRf1R6q%)HbWobpNISerqQf_&mv*H)5Oc~nsQv$4epMP#C{gu@T-}IsACUC?<JTYJyiVBXm0e#x!Pe^!bjBtkOf_%U}mR*NA)Fu z-4ouPxaLg>;n-P3eHfxEbF@3!U^Pb-VV_fO>8eyvdh!2K(Nn=lcl|PJvL^iJDndie zkUg}@yo`^iAClRhd>EumI^Q6iafRRC$%{R^>ZAawL>@8$#{{KtU_9+ZZfkA!Evy0g zD|Bwtzs`5Pt<7V=nH!o^JUVZZIC?A8>4+)a@sQqk^bWKeW=D z@*dqu_L7G0I~JF79U9#SNuRw$rueZ<^^@&QX3aiFW_LmCXcgE_b>Sm%R=MYh!^|8U zTlxUC-B=NO{OX%+A;1PwoOg`V@o5^*QYY&?T08uuk?_j*l&$bGBK>RZTCEX+Al<(O zfeOirC;GTWX>QCxC|l*&K*^$VCdq})*Wqdpxyi3~DMY>a!oac0TYzlhUXEhF6BV-r zjD0;u!L$J6`?F@R_pd=F4@3!i8ioCepW}M|$$_{QL3P6xt@i#>IJAWeDO(A)vd`c7P32^aoOrX_FlLC!3vZ34GBS+;K@)Z^F^|N9r4xQ3}5@Hq* zI<+2!)HX2En#hXfAHgr- z6~0|vD*FYN9$^izg0d!iQYa209CoP|IY{r00%VdGWPUUucVA8HA^X2i5JA^V32f+q zhg$fxf0|hppq;Y_(+7(xfmk3!{m20Lz9K~^Swt{Ra^uyy7!^*`=Wf1Tmk}uA7w__! zBBS_+r#{y%ydag#jQIIuwL=uHa*RAq>v_{V-@`B#50JQ6E^ zkZ=&9uo^!03S%TGvNwX?dpy~0_ZSq@-P)Av9=)GxsVXBo4Dz)O!+iv}zAs;|2QF67 z5zCoht#D;QH)iO0`ELR+!U)6?w53FL_vSS)AQvK8U9bk3%y!Rn7a9{8~5p5zx=xreG*_R@bfw*vzmgs4e zn84XLyD_-Ae%lmMcv|grx_ktQT42!tZo_~$K|h4U@ESoHSTEsSHkO5!ixgQ5d}~hf zGQ~k&KE&eXOZnUj>Ex#ldlAF2$2*#*@-_mz`F6nYLi7#v=>|#5WuCh#l9EU${m|KmrR|97X8AHL5yD#qL_RNV)<2ityw>&NiroHF0%a2o`J1 z8bY)?_E}m4^P-i1McxA)1aU8$Q@>{~BgYGIY4XOML(PJv@kZlX6H~0#(sH2j|HR#guUAzH8Y%=0~M>H5XfECbt`Mg5&yg z*}4k?u|L>>H~42Rl4nuFpkJ0w-#{rmFG0;;f&m;u9!m0z7WCAB*xJtlgwjv|w&Ntv zuHENh05y=&y32u*j@X`gfx&}5Qt2(A|6_GsiqIDnp=#sT@3>2We%=H`;P*jvzx*$HHZuD<;B6+5+}3&dhML(?Q3Asp?1wO_>+jl<7#d!W{FVHU$R(E zW9B_m@-dHQo7wz?m!!qv?Bxd8lGOIU694Z+FD_dH&;TRI#n{ZwwlH^L7}AY*{EC%M zG-h=ODjIdhfpabY&2SMXTpy$Yel-a$H|b{$srCR?_-C+Xn$Q^JNVfvD7%0ulI?NsS zo#5Tk@vwi79>f~t5}3RyyfH6K(t?D1-Do><`}#2nxTf^adfn_G$OSj1qK5=jsag=v?@6kgim-^6QH9Kwd|BsKHmGvEC8X*Yy@b`sv>FYF}SxASB%VRYmh zjw9~|eVpM*+dU)I9;raonwMC5*W!5AV{beDZ%=p-z4Z`ZZYrjXY)zj!!L3^@-Ar?6 zANaZW5F~v%_5{}LFsy7x9!duI;cA}p*?;}_lc-Yl+8l!&NL~mC{2cZrIJNryU*_&5sp>s3kgVdm z5?}&m+GoDdIJiW3WN;Kq7>y16{BQPMPhCBpK@RW8Rkq@PQFiK4y`xwg2-F+;GTV2s zDO;<3E#^p&Itv(7+~jj1-F6XyS8G+S-42yRKok2<+}QlPs?+3PR=9-Q&$qj;FbqG} zTM8IH!{;SbZvw>&F5|rp8QpLl#QS)leUhl(u}_i;X<+f3AYmx*8~<^OC`eOFq3Z8O zFLt%5iW2XU*=JW{)ilP#4zH-4beefO?NB%Qco}zO#Xr`}!rZboRXd62-eLW33`M-3 zwTJ(G6a@a0xcKZO%D*Ti8W3uPx~?i16I;V;opG$1%1AZl{fiKwp6dY z|0zHDe_N)IE{V7>VcHOnB0P~ME2bcD#=k{AF^RSGqT}`7N6eTc7ep>)k3uXUOkwse zGidj6;Qi<#g0Pc_f4At!16yQ_~>V8WE6|3*F(GS!oLv_281)nQh-B9L=byFhRYnU z5jB~VtKB&Jbw%?(HT9k<-LPwbn@gYrppN11 zYI&8lYV943E1eI`gkN-h8l1;voy%Qz&`rlA<-jr|YX)E%6*mG3wQYt>|0ir;pOE6? zOG^AJ>c&=ahhFK-&;%R%Ra1dn`0UR=V}>|;`nP=jLBG`(o1(M{Fs(akOj$hXJx+17*6}5AX`EtyoQdrf zzuG&|xbL7}#gs&E>q%OAmZS<}YA}S(Ddo(EM7y__Z-frgqd5+%(}D&bTnyPK%1e`m z9F}B_+xx8I4)~K4Pvd@0-yF}qv_Jb<%&-<56Mhff7CaR`!;MQ`_D325(5;3z$Yoe? zbj;l4A3*B#JAt~+iYkI@f3r8{U$C~SoUHNDIJMpg~jo{n+TEX1>CRZ@Hy^u$YL^7UW!vnYFZO2&cBWkirTaBrj^E3aI7 z%qs>Ew_bxl+ISsS>{%sYiZIDeA}P6Ha>%|}f_H4BU(3M6W6`g6L+6ciEu`CVma)b$ zsq^vsvQyr018nOK3|I)*0-}NLd6NwbWB!Y+!<`cdpqtnGcaQo0JyGRW^0HjOLlvV{ zw@w+c+N``UEt-W56m0Xx8PH~ZkK5Kyy6Y0F^qhI^#iR0RO~Ed;@=c=w!ScCs`Yc7s zHg$z+LGn$F^Mh|&cILp1FOD-a!o4YQwFD|8d&2rBTBxzFJ{yC=ui-^F6ne%EaE#xT zU-Df}h!D4yJ4RCe^m*R%cdwrOSqdzbcJcaBNZLOP4j;i=TKH5jnoWuc~9&i)lw2JPU7it7)SB$T)>qpgV z6YbW>j`g`35Il=Mo3*?+unR3LDe);qc<;(%y$JhTlr9mdm;09K5^63}8&+GF6aZ03 z6Y>`oP(Flg?g0`}t4=QgB@>X<55vp%+tSsft*f1#Trc z^Pjawk>-TXWFgvps>1PIJ)St2pZwB4{>jA#6cH{MfUO^SpauDblb2*N+e=mHa$66u>cah@)m`y zp7`f4hj@i49KgkW_W4Z66E<+0ZYNW-{Krg6bL5EQT90i&x(Ss-;xtZVOzT`=FYpdy zC*{M$Bexy@?QtO>&xQ|sDLFpOUF5fhpMXjICExr;auL1l<%5XChOb%VpT~!XUM>U$ zE>F;^^3(=o3TIN;s1~TlBm6N;SnP_(WbTSwfL;1UPZ5nmKtQ`p?}VK>BOsh&1_8Tk zj$>0Bljp#x(}=AnCFwMO{}8Wt>CK>cf%|D*S0_=|Jtt??89;>gf0}-H@r-7C=A2jZ zXZZO@5}-?Q63R^#L51065Lo}CuOVmZATMSbJ_gABukyY; z9O}03`$vivOH_*NqLPSE#!{)2HAzGaS<5o^ozW#kmP^@%x`Zs*&1ByxYYCHOj9u2j zFn05tGjv_u%X8oN@f`1aJnwP5{n2q|&gHv&KHu;6Jm);sTso5J=9M%JpWS*`hsb%G zLdmG0){Xl8i&@b!&ZdnzBi_^ynNg-p)5W?^a$okOeu~u1R6Ds<+XJ*2)_qZ#=FJix zwa#jH&qr&7jf(5?#@kq>=a@EXlhe{WI-lg5lU5<3xUf6CR-2N<1YkeAQ@WP_`8} zIqRwC^`bHkc`|^nlXj-NRU<_heO2!)X2>>Hq5Prt2ZTC$rDNd3>osuWl%iN?ph|(R zyS95gt@u>=ni$8yg%UBBpnf;e5z_k0HDXDWPXdx#$W1tYrhA~RipQgM?vp-?o_%xV&yUTq~^Hm{7 z`aR6shv4&{ZaNu&l-wNcHLflz`TN&7U`Xpk-R1@na7F|+HXl2`8f6*Z9XpU+yEP!B z(b#1zr#g@e*AOf~&9hzYc-X!MH z6m6{?cqqSrp&ZujN;=RXOUtVHq9jK33G zd|kUVAau8x58Hq>J@8aBoc~FfR!Wlld)jQXBtZQ zjGqTL2n>~XMcOB`96wKY`iI2hI3`08Y{N6*YsD_;`sAd@i7fWe6@ysfoizVozoZBz zSKIegcd|$19>0hh^1v%4myOdi5Ar`}r>T-UDPR?fMZ3zsZog-8=0~RZ?b3HitLZFQX3^)GUUl&FW(WdTSbb%Z zjAI7S5>_oRb?QN1P{(h9(+hCfGE))n%O;Q>e zWA0jy#_{jK+q6E|6fTw4>Y39{-Ng(w#@*5!@>xyyU0E}`Z+m-4s5n@fyLyb65a{m` z_f~wy*nTpEZg0ki73YjZ{oBhd9sXgrI5NLTh(*uLeac?Y7Z?hQm)xmj!Qo8-Pj2fI zuXhCtC-+0Q9ab6-_*W(Gk)5h7hIzr=42^tsCj@A=&x~(*_eGyJ=V-H#8g(zsD#WD+ z>Bn=;oG201iL>V zCM%Dqp^FK|jdT_~l;Eu%xxQCn@Uh$WL&>p?$2c}zN_m2k?|{ifVnIetR#LJ{Z1*{9 zLaS%kqT>y7lNS;(?W_17vsU{jshpqe?jWda`{zF$oyI;&@?1@8Vm)u?G`;vHrEzmFh5T4me1R*b+xLz$rRvh`}b!N?r0~K{v?5X$%kQP1DR2;8Wm4n z@=~IH?8|vvU-9U5YG)5TGeQs9v9f3FB<$c&_aWoj6YpP?mc%v7iHMtT(;tcRlzI85E=&XXs9#f`gcjgUjP#*%qD?hBx)jSffdY z3iXW8>TaI72(4OEqbRSPa}+YXHyvsWEW5S{Z&)9Wb6f|Hko z2Yb`U@6bK>&_z#19#y)3Y)tyJY!T3QYqj}(<2x)0ujVG-0mIELef-hFs+ z?=4rv@Dm_|N$x+U*nXWZLUg%>c&f>d&&&9@tYLhvc)F+R0AAVr^d`qk-AX5o5sz9b z5Bfj-4=@)0$e?q;2kUkbJC6ie%amIe+-`P?W2N>>b*j?&jfQ8H(Cvu%N1~G5amS6#=PL6jza9}|`Y@2yZayxhbTgFb zmgwbdR_QjtY|e_fJ$IZ-1<&YU#TG^#Wwu1LjO&(Y5HcULzRErl9v9w0*z&(io4P{x zxWv&RHlWd+g_QxJn*B-m#f{lKP>CJ!p}qsDDNPOy^`LI?KQnx?$^Kbc0SbL~Se!>r0Rw{oIwD&>-hZN>!}E>ELZz7<)S$S* zT-p#O|C>>hnxE{pXXTQ*qQ@)N0XtP?J#)(}rA;b`EYB6HODRh22WCE9PevP*7dpK| zkBPicNFN$rNPgOwdfJ=8ziR#aImRli=24&ez^X*o>_PNgZ~r2(<4jV)R`&a!7D_aU zsuScqdYCleqzspriz$<&Y4RQMolMrWWr^8JE)OIqN$JHRsE&7+JL*n`1xcC8t(6P6 z=Fs((b|=z8bY!LW4hBzJh1~a=AiU63bZ5bHa<%jy<;``xm>bL!Ga!{Oz81=)+f`t< zm3A6RqF+EGvT{rZs}lk-42Xw${L$$_-}^uw0rR|pUfU@TM@A+zKPo~aRL2?+O`Ef; zBzfV&b5yHW5Q~*2}EG0nFv8d70h!A6uV#f9XJkHtP$@cwDHws5+KM>1VUQ@fO3NSWJ+=(h_%@R~y@ zjfxvDk$Jr0Fue1DUF&d*u=#}1CxFkrp|;*eaGC1nk(yszgOi6Ln zuPXf_00k2NtuLwn=QiC%$N$Ke{|~}*mqP!_l)w7&9~k$)15YxI|0K`9VLCt}AULJ_ zjwXNc;~#xV$sWHl?r-A3ZtVDF#$A~GLtvnw(g$#Y`d6m^8ftdXOzA>d^lw!9i#-3H z>HjOVplI@oO(`a!`jzRw@^Z&ue;MijTB!Ly0M8a%sG?l@RaQth=7xZP0arrC{v6G& z2Ol5luTkf2FlLB--W%?!?|5F#NkEI8dR}$xKvk}nUh3i&OfJRi-Faq%%=0s_Bnq;q zp_Xvy5RbDcS`c}410_`2i?WePHlB{uA8KBGV6Ay^2$92>M+g;liROX0_7n0VVI}b5 z#e>-CiP4!Ka#H9tTklD)7%RyC_g+@if@NPSaSN7d+?bk8oW-W0Cvs$9=UiNz-`JiG zrXUS6M9~_ac~=v?nm6xosU@s7*k5FnQGMu{h0qLr4xwe#*ZdJSX=E_LOuk2JK@vNGDzVRnI4CCvH&*}@-wlr@j<(3wP80mK;TpGBML9CKy2c| zR3G&LM?ol=7uu7%(MbK}H4TA4ytYzgl$5>l`4~AV5Blw~)lhuvaT=2(&&%C%GD(34 z5@Fa_x|U=G#H4}@EG^@WdC?H7yH0me$k=o9UsSXOzO|RWvhr43$DQpnuRC}Iox;nq%7HD}L&xEYkf)5aT zv@pnw3#j*P0lMUX;=`&b{V3ml`sl>?zD3e;>iJx{iw?7MNk&QK#%o&96@QpL5F2I@ zrdTj1-`42H^4j)y&7llXh)FT3PgfK8~OvUdm< zRhGlw?XX8HBiX-~2zlmt^LlKyy-}<^8Sko6M@U05$VfiA!reM)Ej~}Z0UlxGIF{qY zi=S=|0HdMCu&kt;&*i1ODP|uuJ;SlTh5u2r+zKWgHH*d5!?O{G;DyMTS&<0NBS>Tn zZK9O1X_>>1YEh4Ztv*hn_ED~b&1fl_8Wy9qm3Snqr{j02gg7Q& zgoTh}W!}ZvzEWI7Y2JMH{Hd+(nb9P!Re~t2mk=-aJqqV&@E|pJvMe_kkN<>Nw^gjz zXqR4;9d~0HXb(djb(cFbUY2i77$Ll!H(+>nS?06XaF3{qzt@~~`>aEI---d+y>Wad zGiPW*daFpPo5i8@=T_>z7EO!m+sc~1#tPEUJX zqAU;-b@~vzN&zyv2F-yB7~b5Tc{xR<6YJg@Xi=KM#^xhF@Po*l>ib7`%2M7PLR^9V zeFMZ1asr{OLLnT5HGiLU|Lnp9*hi^M{?i6|Zf?NGz2wwLq2LZj$$9PXicNCJ2i*b5 zxp$M=f6@RW{-Qc%0-(#kjQ?O(G7Eqr|4D;9*-noB(+GcSr>Y6sLB$O5&o@%&UiYNu zFv#;ca2KAfz1O};Tt~AE)Sd!yg!#{4R55>O6q(5W2|sh%YP}$IGc~N``w>a6kH(7a zeSM`Om$$A5H`KJmS#xG)WsCXk<$25W$Er8Y-90b@ERmV#w>w{k zeuy{trtzcaB&x@kCyuct$eO6E8MSqlY=1h)mYH^NCcc(Osj+5Vf55rR)H3s1`U#kD zp+G`#R>`ntvo^lRT|+0^BY(?JL2!r&q9?_iRk4XREXCV3C{(jl;Y~f=R3r?8(SC+e z%b99Ne4;0F-qDe>E@{V}SD>~phelUiW(M3JlLJ?_&PQ8aw1bxAldFnvClriMa3%^4 z3GU#M$wyqySO{h1=`|^E?psj^pAkFSX5dRW$LW4f1JZ+?ssN(4bq}SM!&a1+rb)jF zQpZVV>oFM+L~5tyCEAD8cXZ>1%q4FDxe3=#mnaT%O8$bI86_^Z=41z)iYIPFXVU4ZgsF~CNvP5i5FCa!p7DK zD=tUew>5QEGSUYs!q-cFG+E1<`(eCHI2&*dRI6IMqs}o=r`X?kD;PP8bFTH=U)2#} z*t>{D1a@OowV~{!Mygd6x~d8$AG;(;FoFs))6r5;s4tn86w!4WA@K|7HmzK%-Qhtt#GWgMok6a+Q*uErm zX2|*_f}COg$3lrxlIV_3u^EnM^Jg5`?R%cq6oG1BV1!YX)rWe147)7eqL8_AWYJOt zms=)~z>K88tK~jOoR0O8(I^)pqEgf|oFs2Vq3Dyf^%f3^ACt+aYF>L92<|6)Q$R)wd+)}m#pw$o@SuG`>857T(FQAJN; z(%Umj{V%6Q`Z;+=sy6AX0#`S>gUe|}HY+^&TIND$v8+y3eM=j~)7d{}N{E{!dt;9+ z0DuDaz1D!k4^y9E4#8;oT|UK@gP@aVZS4dJHzdI?QQMDhlgJ-N(}smkekZO5i5Q?t zq+jV=e1)$+s3Ox+(?L9>`JihsG>M|7=zg9nd_0gkBh~5$Hx3^RJT9nCJx_rgKOu4{ z|BsD73nNN71l+Y7YpMUE1{h68S@_omxylCqB$v|wJ-cxl0B84{gB%B`$cGqz*NEwb zK;;Jtl`s$u$1TcizTQ)F4M}D4sbn`GXza371p!5k$Ie_C0+mENy0%}ko-hk)LOO@* zAXxz=p>JG1JgEm1)i)C+W0GGP82rg@&fS8KyeS}uD$0)Q&juw2PGN`_dDv&HEhb8(Jm^EKZfKA?Hf&R@2)H80o_O8`*V4v za%UR=wqo6m`?QZ&L{v(wthHaPpPHIsBAX7f6+;^9>u7jwtbtd@`YW+a3iY68JuwHd zwGoF%g2Q`{QG8c*Teu|uGAe)KrS`~>u4nJ(GM2ZZrPQ#VhPOd z=jw1nKt1!~ZEFmQv?W-#y8>Jy_Bua?kbcjjVneoPdlpVd<%)QoDySgCu~{^(tOuS4 zp*R0HNw5@Ah{@&LsNHmkNk}No*)Z%onq;8yiWy06Jp}_NZ)SOsD6(IwK1FstZLpQS4;Wiqoja zc5Z=fS1dpA4DCd{xSxUl7vgvqSsfbg78GRl{=Mt_N_RUuTi##>^*K7jDe_T#PQG=4 zc(Amd@r!Ga_ia#MaYM1uY@qGnVzThc_p?YaV=5!1_oM;|_SK=CF$U%WQ&!aYl2^laXqQ*tZA)xua2bo-Y?%F1C~> zmkU?+9M1{v@c@>41DU9usqg*XR;Q;hD05`|JAW88C)=dz!=B=-44ZBmLxp$4UquA< zUMR3&NUC#cX$t9lL->B_j(8baEA;bn+8rTup__^>0tP3j%{wrSsx+f_))V_sBGWCX zo96XSK1P?H-1K0N*qEADRZRgig77(J!5g_w3fS`{&d!^>#22qJP>0P&$bew z?iONLKV;!nNcp}UP2M&5-&zL1(dQXph~SI325pyJiYeJ{%Zx^esJFMIzwGI@u$u87 zCmoL(fxRjx;@#4GLOt<>R!e;nEkM^^ZU-r7nlIADS;}1bDa-JOlT;3|BW86z0rem?8QC68JmqW#P&#vAN0&4wvquX|moO1y7r%@g z){#ECBq%>?xjn+9`Yp>(VUNr$+A0zuU z^q>(7M^D#g)56vQAdE|J;dR&m3|=Ea(sLIH>$D#5t2nO7;a zDAwj8PTzF%7gB;Y>=iswPwY1tckEJ<>K_!Oh;E3x_G5h-kz|sw7P9vCU)$PDO233LdUwCytnyceaF%{EBKdkB36nmow$|NQ?Nj%^tUEVGzu8 z>L3E3#2p44p*t4?MKdw5)hOKw4?2E3+Rs9q`%^hR1qN2NGA+GnB1 ztacm@zTwY<>!LT}wGpa#tZL)2Azno5t_PvJ%7rH;!Fd9;sY&2JaUr)gw zT0mF97%8qIbSyf)TO`hnHZk2w;^I=0bz0OXNG<%no+N9#)e&~+A+uio`!)}Toz6Na ziTjt!l1=O1#%uN|0AvQL(F$Yr9Y;&`qPCrM6c=_vNW^HAA6)EB zgz@&hf)rQJ^G4MP3Bf>wQQU~f$;w5nU!|*3sJ{$O&{hrIk*n>#F7Uq1_@3_X)Vnfl z9!OEV4)ByIw2eza9JtWMZiZW(sXRa5GkoXC=%C^HVxK(PF+oulqKG1*ah{cTK2)dm z7Oo@o>p)#214F8}j9iSI%t3`*$4-Q&=V_RV8mB0FmjPzk|-${=bQfQmixuTFXQ@!LaWwx{B zb`)3Dm^}L!M31m(0wENqaZ+ha;gFoDT!g#(zHCOBV+I@P!*|wc>)*DFC40q69m4%? z-IS<%bm2UiXm3^Gh9i&mn0}2Lsu}L|g|Q%x&njE(zi^4|QP%NC^F3!|WS1=HTKQ6F zy8>3(84j;&Czpy`2<y zFunS!Jh`G#iD!Bg9?E0_zRJHS-i=u-P4)^Tx&0V-Tv@#{)y&gB$H}E6&pCdDuGlw4 z^CsLjG+>~b$xA(y3rV--QZoZ$*S5_&DZ2rE%sDTu=M@bgtyycz4D(VZZ+UlW;Z}W} zMzv|)-rByGA$)M9*X}raVauD&Y1_3wvOD#z9j`#X6UpOgX@JKG)!^kg#>?`sffzrM zH}U(N$=p*B{%^II#$%@HA)Qg7#GV>52x9z{(##|!ub*Wfi430?XQR$OtD+jCX<%|p zZL@-hS*YG%^~B?>uzQli`NHI^50M9fzbNG+Ic3p6lnopN*xH)`J|LH{piqJUg26{u zK=lT!O-1fR{*ZjWLxCQ+zPqw#e#t2Zyg`#YNA3VFUo<@WI`i1F{o%Kw?S2EVoy z>7xUnhgRSzBh+$NqNqr?=UeHV0k&xS2S4@vWLwd+q#u-3aDzNL{cfQt#@Q+0xzM)z zf=io7cNS~{Zf}Vxm)`vFUibi5&tp&S*-~PQRKV}0Xveb?&Gc0g`qN2rA1t>*wK6g1 zLh2t$o`#?*E3F_D6GGUsJE4Gw2KzJ`9Eka^dG}>}8+fRxsb^|Qmc^cDfR`g-IzJPW zAf8)dxm6ME%0C}Fk4JV?Oa&7%ET8Ca(1I1UpFMw3m~HT_Vyb1CHD^*+zASb6b%(^$ zMg#86&}VMEoAL3z_Y<}ihmfr3WniB1n2fy#&x)HTc16HOT5xR%-s9%#)6x@(Oz!Gg zbJ7!^M+&ydMj`z!TRvTzV5trV5|vin2e)5il6keXSQww@=;sbbWQ(^eWj(-jMaqt3 zX}cuajU$BN<*5ZFC}+D>FY8so!+PM|;~>9=R#3H0R;OAjjf69)K7;z>A VGCy)&i<7m#eM9Yf_BF%b{tMp2+JOK7 literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-mdpi/form_immunization.png b/opensrp-chw/src/wcaro/res/drawable-mdpi/form_immunization.png new file mode 100644 index 0000000000000000000000000000000000000000..4a379012a9e8bb0d56085bbd90794d49f51b561a GIT binary patch literal 20026 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 literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-xhdpi/form_immunization.png b/opensrp-chw/src/wcaro/res/drawable-xhdpi/form_immunization.png new file mode 100644 index 0000000000000000000000000000000000000000..1a724e9450c3a875b0c6ec4cd7fa85f8e691dbae GIT binary patch literal 16080 zcmd6Oc_38#-@kp|w~_3$*+ON>nkAA-m@$=IMT$rnOV%i|wOlt8-S*7brjljsYjs5` z$-YL!3`usL^EoqyZntmu{_cIgzsDal$7gvjulM>n=S;N4UK36>5jGkc8qQs&MwT=* z3^*DZ`Wq}v&`8*QRel;8-D|syc3Athj&y9k`emncS$TMrxs4(4%x4c$C z5wuQH&a9$5AFb14Ed{+)xAC!PT#{oKWl^?R*Ii+clsi-KOLozkmg4%NIpWgggB`Ew z#ob9y4}KcHNjOwmNFdA!LhNYnmPvvyNfa&g8H#44e$qI@^W@JcBv?fLBrpBj8~!(G zOQO~=00FDyz$Xuc=JKb01|4)w{-nVJ$SI%XrGIw9@%i`gUM=^3 zi}s52mgBBnXNw6N?;p0M1y1C6{noJ%!RQw;!)88>_CuSALhp2@lZTo0CdP-STKsF^ z5V_Rp`QXBM`fkbX)nAo8Q%8E~z}C=X=ic_n?Mzh{y?vkK;LCGKx$4cZlXmxQJQHNJ z@6tit!*M2@+ym=rK;#`yu$;rCTJDj?7>%E*!jdq~$+a-`ev$jWHcsvw;^)R5i=>7! zf|%7G_8#Vm|J>wj?%~V)PE%CsOQHcB3_{UX54>(PWNi{3Hq2MB>*WHg%S651Lvnr0 zZuIJyFo(4Ie+YsF>@E(&vV@g4&m{G|?|z;o4--g>u_Aa4Uh1%_(pA;i*?4Y>2gHy5 zZ>^DiL2+&d1{ga{B^E$52XA^t;9*W56k&L_&~@}p<-B^TTsDbXSumY<-gP7ap}E`4 z#|v&0e+i}ssia>p{bEjxS-WHAc`x%fz_*bN0IPqO4!QtR-K8@k6N$PtENfXVi#aH`ct3|}X<^j0 zT1zZe0+7lx!b*>@@rpRMW-}8P;-nf`a@qH%7d=!Oj`@0&tl6RpXn*F+K^IL zT7XuiX)ZUryA$nz3eh@azSyZp`3%ecVbSnLWy4E_#uC9?e4isJhLTQGvt-NmRz@B^^@nIi2pi0cH- zo;4?l#vASpU`Q}AL@7E4sWR`Lh`=ymwRAOAH`>xddK?zwD2$WnAardya?N_X&u70} z{^P$B7Tj`K8=X4I*ZU!S zdmg&UprtIO4g#%NkaU6-O{a?_K1EqaYNbCaeB*wylMdq5{#3YO6c^$#oh&x)l71(= zIGcfQljUeo$L6+dW)xykixJvA7GI6I+!#JL!X7O9mH2i|5aXNMnxz)V$d6Ks{l~Q* z9mB`~Us{Wa=7`?>NNb9Csa&O8?py~db1<>#vfh+s=I%Z>NwDOTP>V;e$pTwLG)KbQ z`=Xh04V#8ca|s&kS~y)1KhZJ_7dFeEHfB^<#~VW#vTd9%F2(OGwdag;xX+C-0Gh z4J}(j`+X0jYF~IbWtF+`-a(?|w7R{pLmVRNLbj+7i6hY1;(Um`*y2njQ#>Qva}Xy- zg{pUtc5c+B_xrk#@oS-0{j>?;rn|?E54vWFr0D(pqn2w8-)%C=2#)M&*n1e##c?vG zXTqR%@oSBQ{bam2V!M#r4(*fH=_r8**mV_e*V4aJF?!;;ZVK(M2MHaD+#E5-Xprc_ zG4^!oOOAfdDI-jYpQUTbW7qkagf$6Ex+C-MstKrjQ>>7Op+C`~AJUb-*k9(Sb#~Ys z^ZD)Z_Lux=yXt$)a_As@P$? z&?}V_jTFcLfg-Ko=c3>%wlCDbvrDaFu1(}q(*>;Bhs`t5sBl5Zo4Pk%W=|>CI_shQ z4#$ZsHqC8yJ7OXWO*r0~i@l0JUxcw)Gl(&Xd*@xc$4K6Rl>rhg$?Ni=*(<_+3DwvG z20Jeze7L2urr%dTX$X)gN!f@7v0|R{EK^j1PD|EdNBc89>)b<2g$@ye_7Qf+({<+V z4AMhOqL4~Q&nJ<_r3^CUVkdFujFY=P(7F$>dA}*X)O9=#F0`~02o@$o;nqOrtZ2xiEs;{lnq*y)4edG@f)LHzt23W zvoT3eMAVnH-LSu6q{wja^+au!D;#GwIpHInEn1j*oi%HJEqQ z&K35qp#I2gN5+{5Y<<3-$eO(+A8U+!jt#{$i^+fpykbX#2^VBRCggnT9nV*0L7Jbv zd-}QKIx~6*mR(BW``8u2nXhG4;<_3q=tv*kPR?K5zPQ1f73Gtz%?wE(nHxFgc`I`4 z=Trd?u7{8$EDLCZJ?WJB4!jadi|RH~Th*mEs^4lSN*0h>q9nh#Fj zv{;8WE_l+l1^A%lAz>22R-j9Q{j?reXZ1~t)i(Chgksmrb>n)s+^?6rkDURTCG-Qv zX5rMAXCFSj-;+BX=w{PYJKmlDwz}CRe~d#-bC8Rj5m$Z#WUrB|fB_|(_l4-eik+Rs zmEjnx7Ubk-rEB&Noo_iFQI`N>cEdaM;c9LqX1GecKIR>f_iN2JSdoC_W)nb6M5Q z*eD5P%!>i(t`Igq*mq*QUF+8>wywu=mt{hlMH&Y0SmeCDH*7%LJTW%%=nSxj!R%n5 z50OvyApU%+^`@QJxzyPB)F4q-cZBWLXSTMz;Y)Y$%n&_M=Cgg{`s~L=r>_4JIrM;l zb*`n=YV&i~RT_^h>wFKu-z07|%;#X+6-m?WiLmUv_x|XZc&bkJzFvKPEslJPRK&nx zyuNi20XPHBjqD_=a1_}D!(bG1pV z)+-P@pctzKS?N+hjtELPlZdfv>cI$PKi%?xTMDfvpVpRYF*#BZf|wDPWDmKYls6dV z^K{z)@OrM8xm=~;n-^__W56JnOOHH+(%$fcA7-;(&`JUO2KYhO}-2?4tmmfy2BbNj7sGVy8*~r7vS4LWpHYcO z=9YT z)7tZqls1hyyVUJEb8e8oy2TTV**vC2z?Pr)_w! z14Vo)okw_B^ZuY;!c}xxn@6}^1Thm7^rTTw+*Oxw+2FeDFD0JD5;+r^T}MhJ+7E&F zl(gN!@4Hl>p!2eNZc{~XvD!P?t%HGDtU$TfEH?3Md~;DZV_r|7^VNBUhy!$+Ue0W< zxRG~G0GK{*eAv&M3vnn$-uxE(wYzP59Irih8Ntfj({z~q4L;q8*D|hk5bBR}7}L5i zw#lfU;MQe~euAkDxs&bOhR<9=mNGQ7(_K@D~OJ zCv=8Hz}mel+2o<|&UNr@A!2016tbri+rlyjti?-@;x*XW*NK}{sa4N))H{?T^S1uJ z@;fm1J5$ENkG!~Np5>kOMQDlGEo*h@4y`#3h#ql4uKN;&%+IS`_vY}{rH*DMfCfqm zg~wMHrmnlIy`+T)`0HmBR!eNwWzfse5L)ONo;q&yMKwllxvUs_`Mb?$G2Fn@$7+r16KB;Pu(YogN(|Pg?4c;t+50`^u7*S$?jH(a) z!-KO`+T%+qvxkliIH+P&$>A@a78;I2M@~UvP=~CAhDPgRzO-t{pn_0q0HS1CrZT7l zcdu3kzVhb=2UBRbS%yId9f=ko=bVUMhjKDug6xLT0~`XT!;h<5XBonLkp(~O2m+lfWbYaFNtcMo*?M4A zFTNAh3FkuuGtsaLq5*&a)~6TAJ{c4N>2#bgnE9Z@8dwe3hEIe(`P5<`d#~@A>55sw z-wDrkC^|RMn~7@KC-FNtYm$uygJZSY_QI)vEL`VP$82eZ_fs_~41(Yn?O8G zt1%0e(4j+Bh??t(60`zGRt#}Fa=sfEn$$O-LACPTN0+i)&I*n>yMl}_Au}qj5T{O^ zHGiD6S#jXN_`Ij|%abbPoB&*4{lPktwBmqP-=6-0;)JbvYx`DI@F(hSidE+wJR^9_ z{$}h7t$u%j9JNlPb`=eyl;%JeE~=>h;*3vnTs>&tjiadE`)q#WZym_0q=sT{W^n5O zjSb>9^+ zdm)NFh=5B9Sge_+b39oGK^WRD4HYYXW=YL+cBsut(}bvUtnz@l1_l@9lcx&$h)@eg z^IbV+eZt7&b;)j>L>VIXRIDIG`==_K>_Q8hf{$S8?#@|8?e|(T!}GTWi5)In*Q_jRseKc=eLf=ia3g?FCL*U*oet zW!4tQ#tSW8O0DV2-XNndrim7;NyXH?dF;;yfjf3O1FJYMwLAVd9dX*Pmu2)x8j{fx zOFpNC$s*0rN%lYA8-3c>Mw81FTf20Y1Eh*)s;C2B4Ab^5o?rKv;C_1RS6N}pz&>EC zD5SnZVyV+EXDC`(ec4Bjdf(c{J?QkfO!P#o4rC{YmUCiYc$QeK9{VVf z;1eQ38AP_0J4VZ(&pEF9MM(fV?*URqm7IQtnYM@kyYV@dE2G-UjqftmP!ix}kiR8YBX(>6 zvAp*Dj$6DL=mQT$QsL7Vgin=REiI$GB?~fs3Dg1SrnP4f9^tdeAtdhT#ZLSg-T^eW zbWReb$+Z#9N?CLlfxBoFLUJdDItMRot*>tPQRwL^7Q|hN=NM!NZz_NMEPyMK{eqms z5@-+M3<(7pHc^auM2L&?oMYnXyr!ZyW~XZde47j;N>C6*ds1Z3iD@RNiTisct+#})5r-D+WN@qsAuNykFKW57}F8P+N}UCaDaho zu=XOaowSrQhjgUtmACB=`I6VlkjR#yQ1{}i0YOEL77_2$F&iaI}decIqMFTje!-*6qrY5TJ zg5eyJq=eguvEpPsFGu(U(m1R%&^>>8_=8hMO#AC8qJiW~Hcc*(yh*-F1=}m~I)IWdLrwz-1L+ciAIHWZ{}y zZi?wTYhYvwS^P!EZL@ExF$f30qY^rVH`S%CWAhO!b-YRrg~%WVg^bVC+-$yvkWdXc z3ezQ5S!Y2U7fLU_{OFyAAzWRhvmuQMY~v_xRK+N^d--eI18wS}g) zrrZ!^v_0G&a&s(ciui!qahYW}4+Un-T9bAk97+l?JzcbR%4!vamtWw^c4k~u>(rCg zc(;K>w@Q(8<6l(q*^F7+Q1=AVx7RLG3pXFmRP*jgt*I=^LmHL((tnkNr,F!&x= zxQgD^=83J)2IoeK7fILJp>}s3nVfQN>Mx3+7GB8s$gkcX@?Rn7af$JR(k61X({8%t zGyumPtoXZm!$pjtnzZ zRGf;pYZ{#+&q^R?GU8BRMsQ#QC=<&&;EhnbxiS(7PXPl_WTAY)BjMzIg7DZk-VXUE zAhWy)cGqu`ffOX-Dzk%s;T=GfWCw^KU<^o7{PBA^09QbA+3kKR1iXOEm2wI7#^2BY zk+w<>7{u=xlUJ>V%J|;}U@;yh{GaRqFCYU?&0OGOhIMr|`g1Z=`%#EMUq5lB zKfwPtVH~&ynd?9K5iG~w^`js8z$#Nv!s|O6zg73IxY9oZ0QTa49e|%(;YWc)!$eCh z=%6JBr^%HPZvdavzNwnujj+K5mE1^CYAc1za;b$Ijc7u-^-k^Zg$zX5=p%>Q)&l3o5(^1lGUk>GF6 zH-AcoY_30Xr1h|6$i?&9qV>-rX$HUq(Oxb8Pn`hRmq=B~7x0Ic`hWV!G_UASC$4^tLQ@ z>e*)vJ*?7oz$>C;$d`;;zpnEXn>IOO<_?p~N zKwSrZr8A(zzvxnidk1odqra*(S?+J(o`S+?f_#evBL3YbSOkbRrKce`L<+M~`!dQxcVQsV0_ zB`WWCqBygdkY_swNxwp?$OoxIET~Ktngbfs*U1?YI`fqYIXBf`qb(oTqYA>4L33*v zhVEp?GeS&~sajak1%7Ie^kjD6(}Ho3N)%%b`tGCaAF65Vz>JZUWf^x1fF=n za4mPG;GZ8@jXVKqPHqe7U?VPfkw4r=wkMb-^MiH)t^crZ*)sqSDnct;sl6+B2D7}C zJWZwxQG}ig{i$p~8+iJM`zX(O{s;%zOIP~D)%^Y<7UaH85RMnJ4}r&ba5-2>!%?6* zEO!x%tJZ>|;Veik9nckZA*f$b$eK0(-!ul8Q5|Omsa4ikIZ{x;B3l492$T?Dqe5F( zS)A-eE6%ct2e3PN`iJ{qJAdz-3ZG@FusnRHtn5Wm^X(W!t@+KDE(ce6VHH;KqajC2 z=12d$G~B9tEFV0CF^7)K-h3BA8NCMrL*%J8;>5q0FyGNfVp!fdU)Fe$&si|x(R*V` zsG=pkM2%SSYzUkTB}3j7&@}UgC?Ptk>${kiU7;MLg@~2-@4oY1g#}8SsDwpU;QDX} zHN=?EVZ82OH1g2w@Xg=fE+?|jEys|N)n~6K+h?Q80Cvk!4%)ZB&Fnj=R+xP! z731Hg4ommnQl%;idHt~GkGO$nIe&`ws(kkcFd|`i!BOjvP)or!0SBEw+Nbx*4>tXA z;VNgKX{fue?u8Tl8piP-}xqC?CMT^ZMckGYV zFOTZqa6?Ae8TuX!%HY&`HFBRSB_rmLpw-Mo>B99l4)e3k7@w5SgT<~&%lpdM7CtyE zobmQn-_QpFpUeY-b6JIN@P=BJKetd6a+x6bUhSXI13~yC{H=L@&VY#)w0S@ca(RGK zB9suw4FOyoR<1$PA!mQ^jJ@R~#vBeZFd)^N5hhsUIm{-wDb&Z&K6#;@LoQxDs*_G(UB&8C6hYJC)kY1<-8qbF zBjXoR5woeISkSRR+x(Qo$GbOF8PRM#`Dkb?ei`@6}EW+$~t5{ly|giZV<>IlAd4;_1IiU+oK_V3E#%JNN4J3vP*+7uE=YUrkltAWc}S+b#& zY(uWUE`n~5!~U`vHCnN-+u-f*^#dGa8ABZt!&_}B^E??N56P6wGQv5Tk^=c@CtfUj)C1qCABU;y&Wj7xzKsm(Rm3f(pRT9CG2?L{cSGQHtoKvOfWHY&bpjV=73nalDft7is@1cZ{ zeS27Jk3u3q2+W^q!=`LOEdLf3N;uTt!UBh;{uUOJ7W#u^f&R#g{?gKaw1F(Z55@RD zOM5jkz|7F!YWV(<-2W}w-=I#G_^-$vI-)}(CGsGE{wU`d(0iBhUZX4n$MF9Fa+def literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_immunization.png b/opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_immunization.png new file mode 100644 index 0000000000000000000000000000000000000000..23398797de30b64ab3e46a4b95a02b821d4a185d GIT binary patch literal 61770 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 B7E1sC literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-xxxhdpi/form_immunization.png b/opensrp-chw/src/wcaro/res/drawable-xxxhdpi/form_immunization.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad5c7cec76fd010cca9e1d818e79174a6c577de GIT binary patch literal 89573 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¨Y&$?L_XE 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 Dh&_5Z literal 0 HcmV?d00001 From 413d45505b3ec361754863c5b2eeabe8fccf9575 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:31:16 +0300 Subject: [PATCH 12/50] Updated home visit Danger Signs conditionallity --- .../interactor/AncHomeVisitInteractorFlv.java | 62 ++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 6d88bb51a0..733ab98fe8 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -2,6 +2,10 @@ import android.content.Context; +import com.vijay.jsonwizard.constants.JsonFormConstants; + +import org.json.JSONArray; +import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.contract.BaseAncHomeVisitContract; import org.smartregister.chw.anc.fragment.BaseAncHomeVisitFragment; @@ -11,6 +15,8 @@ import java.text.MessageFormat; import java.util.LinkedHashMap; +import timber.log.Timber; + public class AncHomeVisitInteractorFlv implements AncHomeVisitInteractor.Flavor { @Override @@ -19,8 +25,7 @@ public LinkedHashMap calculateActions(BaseAncHom Context context = view.getContext(); - actionList.put(context.getString(R.string.anc_home_visit_danger_signs), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_danger_signs), "", false, null, - ANC_HOME_VISIT.DANGER_SIGNS)); + evaluateDangerSigns(actionList, context); actionList.put(context.getString(R.string.anc_home_visit_counseling), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_counseling), "", false, null, ANC_HOME_VISIT.ANC_COUNSELING)); @@ -53,4 +58,57 @@ public LinkedHashMap calculateActions(BaseAncHom return actionList; } + private void evaluateDangerSigns(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_danger_signs), "", false, null, + ANC_HOME_VISIT.DANGER_SIGNS); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "danger_signs_counseling"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else if (value.equalsIgnoreCase("No")) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PENDING; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + actionList.put(context.getString(R.string.anc_home_visit_danger_signs), ba); + } + + /** + * Returns a value from json form field + * + * @param jsonObject + * @param key + * @return + */ + private String getValue(JSONObject jsonObject, String key) { + try { + JSONArray jsonArray = jsonObject.getJSONObject(JsonFormConstants.STEP1).getJSONArray(JsonFormConstants.FIELDS); + int x = 0; + while (jsonArray.length() > x) { + JSONObject jo = jsonArray.getJSONObject(x); + if (jo.getString(JsonFormConstants.KEY).equalsIgnoreCase(key)) { + return jo.getString(JsonFormConstants.VALUE); + } + x++; + } + } catch (Exception e) { + Timber.e(e); + } + return ""; + } + } From 83d17b17851382427467a5379e4afeb601071aa3 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:40:00 +0300 Subject: [PATCH 13/50] Updated home visit counseling and sleeping net conditions --- .../interactor/AncHomeVisitInteractorFlv.java | 71 +++++++++++++++++-- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 733ab98fe8..defb5069ee 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -27,13 +27,9 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateDangerSigns(actionList, context); - actionList.put(context.getString(R.string.anc_home_visit_counseling), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_counseling), "", false, null, - ANC_HOME_VISIT.ANC_COUNSELING)); + evaluateANCCounseling(actionList, context); - - actionList.put(context.getString(R.string.anc_home_visit_sleeping_under_llitn_net), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_sleeping_under_llitn_net), "", false, - BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.SLEEPING_UNDER_LLITN, null), - null)); + evaluateSleepingUnderLLITN(view, actionList, context); actionList.put(context.getString(R.string.anc_home_visit_anc_card_received), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_anc_card_received), "", false, BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.ANC_CARD_RECEIVED, null), @@ -84,9 +80,72 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { return ba.computedStatus(); } }); + actionList.put(context.getString(R.string.anc_home_visit_danger_signs), ba); } + private void evaluateANCCounseling(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_counseling), "", false, null, + ANC_HOME_VISIT.ANC_COUNSELING); + + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value1 = getValue(jsonObject, "anc_counseling"); + String value2 = getValue(jsonObject, "birth_hf_counseling"); + String value3 = getValue(jsonObject, "nutrition_counseling"); + + if (value1.equalsIgnoreCase("Yes") && value2.equalsIgnoreCase("Yes") && value3.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_counseling), ba); + } + + private void evaluateSleepingUnderLLITN(BaseAncHomeVisitContract.View view, LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_sleeping_under_llitn_net), "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.SLEEPING_UNDER_LLITN, null), + null); + + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "sleeping_llitn"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_sleeping_under_llitn_net), ba); + + } + /** * Returns a value from json form field * From cd5ff9e31c7e5f298995aed452e223a05070d56d Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:43:32 +0300 Subject: [PATCH 14/50] Updated home visit anc card conditions --- .../interactor/AncHomeVisitInteractorFlv.java | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index defb5069ee..a917e12237 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -31,9 +31,7 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateSleepingUnderLLITN(view, actionList, context); - actionList.put(context.getString(R.string.anc_home_visit_anc_card_received), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_anc_card_received), "", false, - BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.ANC_CARD_RECEIVED, null), - null)); + evaluateANCCard(view, actionList, context); String visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); actionList.put(visit, new BaseAncHomeVisitAction(visit, "", false, null, ANC_HOME_VISIT.HEALTH_FACILITY_VISIT)); @@ -146,12 +144,42 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { } + private void evaluateANCCard(BaseAncHomeVisitContract.View view, LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_anc_card_received), "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.ANC_CARD_RECEIVED, null), + null); + + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "anc_card"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_anc_card_received), ba); + } + /** * Returns a value from json form field * - * @param jsonObject - * @param key - * @return + * @param jsonObject native forms jsonObject + * @param key field object key + * @return value */ private String getValue(JSONObject jsonObject, String key) { try { From 6619b7b07d7979576a9e05c6e1ff35452ccb9c44 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:46:53 +0300 Subject: [PATCH 15/50] Updated health facility visit conditions --- .../interactor/AncHomeVisitInteractorFlv.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index a917e12237..8c743ee148 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -33,8 +33,7 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateANCCard(view, actionList, context); - String visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); - actionList.put(visit, new BaseAncHomeVisitAction(visit, "", false, null, ANC_HOME_VISIT.HEALTH_FACILITY_VISIT)); + evaluateHealthFacilityVisit(actionList, context); String immunization = MessageFormat.format(context.getString(R.string.anc_home_visit_tt_immunization), 1); actionList.put(immunization, new BaseAncHomeVisitAction(immunization, "", false, @@ -174,6 +173,37 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(context.getString(R.string.anc_home_visit_anc_card_received), ba); } + private void evaluateHealthFacilityVisit(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + + String visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(visit, "", false, null, ANC_HOME_VISIT.HEALTH_FACILITY_VISIT); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "anc_hf_visit"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else if (value.equalsIgnoreCase("No")) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PENDING; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(visit, ba); + } + /** * Returns a value from json form field * From d1f5be46b9cc8ed0df5040aac7a1668503ba75f1 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 17:54:38 +0300 Subject: [PATCH 16/50] Updated home visit Immunization conditions --- .../interactor/AncHomeVisitInteractorFlv.java | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 8c743ee148..a331bdaf17 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -13,7 +13,9 @@ import org.smartregister.chw.util.Constants.JSON_FORM.ANC_HOME_VISIT; import java.text.MessageFormat; +import java.text.SimpleDateFormat; import java.util.LinkedHashMap; +import java.util.Locale; import timber.log.Timber; @@ -35,10 +37,7 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateHealthFacilityVisit(actionList, context); - String immunization = MessageFormat.format(context.getString(R.string.anc_home_visit_tt_immunization), 1); - actionList.put(immunization, new BaseAncHomeVisitAction(immunization, "", false, - BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.TT_IMMUNIZATION, null), - null)); + evaluateImmunization(view, actionList, context); String iptp = MessageFormat.format(context.getString(R.string.anc_home_visit_iptp_sp), 1); actionList.put(iptp, new BaseAncHomeVisitAction(iptp, "", false, @@ -204,6 +203,39 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(visit, ba); } + private void evaluateImmunization(BaseAncHomeVisitContract.View view, LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + + String immunization = MessageFormat.format(context.getString(R.string.anc_home_visit_tt_immunization), 1); + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(immunization, "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.TT_IMMUNIZATION, null), + null); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, MessageFormat.format("tt{0}_date", 1)); + + try { + new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).parse(value); + return BaseAncHomeVisitAction.Status.COMPLETED; + } catch (Exception e) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(immunization, ba); + } + /** * Returns a value from json form field * From 2507613eeb2c78c6e7dc672145fccdda3c81d8a3 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 18:02:41 +0300 Subject: [PATCH 17/50] Updated home visit IPTP conditions --- .../assets/json.form/anc_hv_anc_iptp_sp.json | 2 +- .../interactor/AncHomeVisitInteractorFlv.java | 38 +++++++++++++++++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json index 71df3d0c41..ec5690bc22 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json @@ -50,7 +50,7 @@ "title": "IPTp-SP 1st dose", "fields": [ { - "key": "iptp_date", + "key": "iptp1_date", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index a331bdaf17..95f95ba885 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -39,10 +39,7 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateImmunization(view, actionList, context); - String iptp = MessageFormat.format(context.getString(R.string.anc_home_visit_iptp_sp), 1); - actionList.put(iptp, new BaseAncHomeVisitAction(iptp, "", false, - BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.IPTP_SP, null), - null)); + evaluateIPTP(view, actionList, context); actionList.put(context.getString(R.string.anc_home_visit_observations_n_illnes), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_observations_n_illnes), "", true, null, ANC_HOME_VISIT.OBSERVATION_AND_ILLNESS)); @@ -236,6 +233,39 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(immunization, ba); } + private void evaluateIPTP(BaseAncHomeVisitContract.View view, LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + + String iptp = MessageFormat.format(context.getString(R.string.anc_home_visit_iptp_sp), 1); + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(iptp, "", false, + BaseAncHomeVisitFragment.getInstance(view, ANC_HOME_VISIT.IPTP_SP, null), + null); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, MessageFormat.format("iptp{0}_date", 1)); + + try { + new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault()).parse(value); + return BaseAncHomeVisitAction.Status.COMPLETED; + } catch (Exception e) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(iptp, ba); + } + /** * Returns a value from json form field * From 829d66ea85c0f6eb60217c51edb7f289eb05d641 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 18:52:18 +0300 Subject: [PATCH 18/50] Refactored get value from flavor to utils --- .../smartregister/chw/util/JsonFormUtils.java | 33 +++++++++++++++++-- .../interactor/AncHomeVisitInteractorFlv.java | 29 ++-------------- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java index a44a3ed072..b5876c0feb 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java @@ -6,6 +6,8 @@ import android.util.Log; import android.util.Pair; +import com.vijay.jsonwizard.constants.JsonFormConstants; + import net.sqlcipher.database.SQLiteDatabase; import org.apache.commons.lang3.StringUtils; @@ -59,6 +61,8 @@ import java.util.Map; import java.util.UUID; +import timber.log.Timber; + import static org.apache.commons.lang3.StringUtils.isBlank; /** @@ -118,9 +122,9 @@ public static JSONObject getOnsIllnessFormAsJson(JSONObject form, String baseEnt } - public static Pair processAncRegistrationForm(AllSharedPreferences allSharedPreferences, String jsonString){ + public static Pair processAncRegistrationForm(AllSharedPreferences allSharedPreferences, String jsonString) { Triple ancFormParams = validateParameters(jsonString); - if(!ancFormParams.getLeft()){ + if (!ancFormParams.getLeft()) { return null; } @@ -218,6 +222,7 @@ private static HashMap actionMap() { } return actionMap; } + public static HashMap getChoice(Context context) { HashMap choices = new HashMap<>(); choices.put(context.getResources().getString(R.string.yes), "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); @@ -877,6 +882,30 @@ private static HashMap getEducationLevels(Context context) { return educationLevels; } + /** + * Returns a value from json form field + * + * @param jsonObject native forms jsonObject + * @param key field object key + * @return value + */ + public static String getValue(JSONObject jsonObject, String key) { + try { + JSONArray jsonArray = jsonObject.getJSONObject(JsonFormConstants.STEP1).getJSONArray(JsonFormConstants.FIELDS); + int x = 0; + while (jsonArray.length() > x) { + JSONObject jo = jsonArray.getJSONObject(x); + if (jo.getString(JsonFormConstants.KEY).equalsIgnoreCase(key)) { + return jo.getString(JsonFormConstants.VALUE); + } + x++; + } + } catch (Exception e) { + Timber.e(e); + } + return ""; + } + public interface Flavor { JSONObject getAutoJsonEditMemberFormString(String title, String formName, Context context, CommonPersonObjectClient client, String eventType, String familyName, boolean isPrimaryCaregiver); diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 95f95ba885..a5cb03b266 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -2,9 +2,6 @@ import android.content.Context; -import com.vijay.jsonwizard.constants.JsonFormConstants; - -import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.contract.BaseAncHomeVisitContract; @@ -19,6 +16,8 @@ import timber.log.Timber; +import static org.smartregister.chw.util.JsonFormUtils.getValue; + public class AncHomeVisitInteractorFlv implements AncHomeVisitInteractor.Flavor { @Override @@ -266,28 +265,4 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(iptp, ba); } - /** - * Returns a value from json form field - * - * @param jsonObject native forms jsonObject - * @param key field object key - * @return value - */ - private String getValue(JSONObject jsonObject, String key) { - try { - JSONArray jsonArray = jsonObject.getJSONObject(JsonFormConstants.STEP1).getJSONArray(JsonFormConstants.FIELDS); - int x = 0; - while (jsonArray.length() > x) { - JSONObject jo = jsonArray.getJSONObject(x); - if (jo.getString(JsonFormConstants.KEY).equalsIgnoreCase(key)) { - return jo.getString(JsonFormConstants.VALUE); - } - x++; - } - } catch (Exception e) { - Timber.e(e); - } - return ""; - } - } From 608e9c78cf90bc292d7facfd0fb5469d2aa6b36f Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 19:00:41 +0300 Subject: [PATCH 19/50] Added ANC HV Danger Signs and HF conditions for BA --- .../interactor/AncHomeVisitInteractorFlv.java | 74 +++++++++++++++++-- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index ef894f15d7..d281608fb5 100644 --- a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -2,6 +2,7 @@ import android.content.Context; +import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.contract.BaseAncHomeVisitContract; import org.smartregister.chw.anc.model.BaseAncHomeVisitAction; @@ -10,6 +11,10 @@ import java.text.MessageFormat; import java.util.LinkedHashMap; +import timber.log.Timber; + +import static org.smartregister.chw.util.JsonFormUtils.getValue; + public class AncHomeVisitInteractorFlv implements AncHomeVisitInteractor.Flavor { @Override public LinkedHashMap calculateActions(BaseAncHomeVisitContract.View view, String memberID, BaseAncHomeVisitContract.InteractorCallBack callBack) throws BaseAncHomeVisitAction.ValidationException { @@ -17,13 +22,9 @@ public LinkedHashMap calculateActions(BaseAncHom Context context = view.getContext(); + evaluateDangerSigns(actionList, context); - actionList.put(context.getString(R.string.anc_home_visit_danger_signs), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_danger_signs), "", false, null, - ANC_HOME_VISIT.DANGER_SIGNS)); - - String hf_visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); - actionList.put(hf_visit, new BaseAncHomeVisitAction(hf_visit, "", false, null, - ANC_HOME_VISIT.HEALTH_FACILITY_VISIT)); + evaluateHealthFacilityVisit(actionList, context); actionList.put(context.getString(R.string.anc_home_visit_family_planning), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_family_planning), "", false, null, ANC_HOME_VISIT.FAMILY_PLANNING)); @@ -45,4 +46,65 @@ public LinkedHashMap calculateActions(BaseAncHom return actionList; } + + private void evaluateDangerSigns(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_danger_signs), "", false, null, + ANC_HOME_VISIT.DANGER_SIGNS); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "danger_signs_counseling"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else if (value.equalsIgnoreCase("No")) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PENDING; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_danger_signs), ba); + } + + private void evaluateHealthFacilityVisit(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + + String visit = MessageFormat.format(context.getString(R.string.anc_home_visit_facility_visit), 1); + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(visit, "", false, null, ANC_HOME_VISIT.HEALTH_FACILITY_VISIT); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "anc_hf_visit"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else if (value.equalsIgnoreCase("No")) { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PENDING; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(visit, ba); + } } From de43289d2aea61b5e61d8d7ca6f72114ceb87492 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Fri, 31 May 2019 19:03:03 +0300 Subject: [PATCH 20/50] Added ANC HV Family Planning conditions for BA --- .../interactor/AncHomeVisitInteractorFlv.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index d281608fb5..7ae8ed97d1 100644 --- a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -26,8 +26,7 @@ public LinkedHashMap calculateActions(BaseAncHom evaluateHealthFacilityVisit(actionList, context); - actionList.put(context.getString(R.string.anc_home_visit_family_planning), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_family_planning), "", false, null, - ANC_HOME_VISIT.FAMILY_PLANNING)); + evaluateFamilyPlanning(actionList, context); actionList.put(context.getString(R.string.anc_home_visit_nutrition_status), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_nutrition_status), "", false, null, ANC_HOME_VISIT.NUTRITION_STATUS)); @@ -107,4 +106,32 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(visit, ba); } + + private void evaluateFamilyPlanning(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_family_planning), "", false, null, + ANC_HOME_VISIT.FAMILY_PLANNING); + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value = getValue(jsonObject, "fam_planning"); + + if (value.equalsIgnoreCase("Yes")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_family_planning), ba); + } } From 85b0f3000841ed5458ae13b3891c9cc8b262e62a Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 3 Jun 2019 10:11:24 +0300 Subject: [PATCH 21/50] Added ANC HV Malaria conditions for BA --- .../interactor/AncHomeVisitInteractorFlv.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java index 7ae8ed97d1..11149aa093 100644 --- a/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/ba/java/org/smartregister/chw/interactor/AncHomeVisitInteractorFlv.java @@ -34,8 +34,7 @@ public LinkedHashMap calculateActions(BaseAncHom actionList.put(context.getString(R.string.anc_home_visit_counselling_task), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_counselling_task), "", false, null, ANC_HOME_VISIT.COUNSELLING)); - actionList.put(context.getString(R.string.anc_home_visit_malaria_prevention), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_malaria_prevention), "", false, null, - ANC_HOME_VISIT.MALARIA)); + evaluateMalaria(actionList, context); actionList.put(context.getString(R.string.anc_home_visit_observations_n_illnes), new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_observations_n_illnes), "", true, null, ANC_HOME_VISIT.OBSERVATION_AND_ILLNESS)); @@ -134,4 +133,35 @@ public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { actionList.put(context.getString(R.string.anc_home_visit_family_planning), ba); } + + private void evaluateMalaria(LinkedHashMap actionList, Context context) throws BaseAncHomeVisitAction.ValidationException { + final BaseAncHomeVisitAction ba = new BaseAncHomeVisitAction(context.getString(R.string.anc_home_visit_malaria_prevention), "", false, null, + ANC_HOME_VISIT.MALARIA); + + ba.setAncHomeVisitActionHelper(new BaseAncHomeVisitAction.AncHomeVisitActionHelper() { + @Override + public BaseAncHomeVisitAction.Status evaluateStatusOnPayload() { + if (ba.getJsonPayload() != null) { + try { + JSONObject jsonObject = new JSONObject(ba.getJsonPayload()); + + String value1 = getValue(jsonObject, "fam_llin"); + String value2 = getValue(jsonObject, "llin_2days"); + String value3 = getValue(jsonObject, "llin_condition"); + + if (value1.equalsIgnoreCase("Yes") && value2.equalsIgnoreCase("Yes") && value3.equalsIgnoreCase("Okay")) { + return BaseAncHomeVisitAction.Status.COMPLETED; + } else { + return BaseAncHomeVisitAction.Status.PARTIALLY_COMPLETED; + } + } catch (Exception e) { + Timber.e(e); + } + } + return ba.computedStatus(); + } + }); + + actionList.put(context.getString(R.string.anc_home_visit_malaria_prevention), ba); + } } From d9a1a8f5e9fb7faefdc18fdf3b82747737d28ba7 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 3 Jun 2019 10:38:57 +0300 Subject: [PATCH 22/50] Updated ANC HV for Wcaro - Added iptp image --- .../assets/json.form/anc_hv_anc_iptp_sp.json | 1 + .../wcaro/res/drawable-hdpi/form_iptp_sp.png | Bin 0 -> 50230 bytes .../wcaro/res/drawable-ldpi/form_iptp_sp.png | Bin 0 -> 26404 bytes .../wcaro/res/drawable-mdpi/form_iptp_sp.png | Bin 0 -> 33800 bytes .../wcaro/res/drawable-xhdpi/form_iptp_sp.png | Bin 0 -> 26632 bytes .../wcaro/res/drawable-xxhdpi/form_iptp_sp.png | Bin 0 -> 95289 bytes .../res/drawable-xxxhdpi/form_iptp_sp.png | Bin 0 -> 138935 bytes 7 files changed, 1 insertion(+) create mode 100644 opensrp-chw/src/wcaro/res/drawable-hdpi/form_iptp_sp.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-ldpi/form_iptp_sp.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-mdpi/form_iptp_sp.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xhdpi/form_iptp_sp.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_iptp_sp.png create mode 100644 opensrp-chw/src/wcaro/res/drawable-xxxhdpi/form_iptp_sp.png diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json index ec5690bc22..df0a030413 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_hv_anc_iptp_sp.json @@ -55,6 +55,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "date_picker", + "image": "form_iptp_sp", "hint": "When was IPTp-SP 1st dose given?", "min_date": "today-120y", "max_date": "today", diff --git a/opensrp-chw/src/wcaro/res/drawable-hdpi/form_iptp_sp.png b/opensrp-chw/src/wcaro/res/drawable-hdpi/form_iptp_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..98270bd6a3c50379ef0803f517f116816e4a080b GIT binary patch literal 50230 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

X6TyFF?>F7c_tRL-?s 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 z zDNyl!Vy*8<()QBr?4JBBiF*~x}QPVJqYUz#?+6KLB4`B~;> zyDwAh>A4Z)%12*O?EeCxyLmHGnTT;9;ySO&Ox z@ws~Fu!IKv+ggs>^iztC$9%Mkq;KE{HAkaX1$7H0hgc5vS>_r(^5Oy*`;+s%rYnP{TKfKSe9hdqQap^e>-(cHH0%MHLVWZ~48nvvpx3v!O@L zFjl#_At$b{gTHnS6R7xaLO3KHVXpKbve5dy!7*%11dlIiu}lfHZk@ zZToN*FueHN8-k|Vv0c`|NVr0cXE;=jCa_aBp?P3Hw_00c3AvVE>kF}vpn>N<)T@)l zSZVdxR)WeueKPzsa=;%? zic9!TIj3K5nSfx5)s-UEq5&DFr>ZIhe@)UtAC=9FfE{Z8e*dAi%GLe#uV26H>kUEg zmnW6-q#*gho8Uk>g>yrrrLq&2S>-h!;$F+;15bXGecj~Pw9&RZQ7dq`V;Pa2V%Gq? z2nGkcO~W4{pb|510)iIkRdK;njw0LN+#r&Kd3U3eDs9

ucPyu^&(A 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 Dke#*~ literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-mdpi/form_iptp_sp.png b/opensrp-chw/src/wcaro/res/drawable-mdpi/form_iptp_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf5096cc853508af0176bae872d5cae4768cf69 GIT binary patch literal 33800 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 e?|q1!N+k+!g8m;1oXE!j literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-xhdpi/form_iptp_sp.png b/opensrp-chw/src/wcaro/res/drawable-xhdpi/form_iptp_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..b6e2b79e9f443c72c673d7c52abf950d205a8116 GIT binary patch literal 26632 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 YqkHET#ok5#;b)GE!>(;?drHzj0btb@3IG5A literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_iptp_sp.png b/opensrp-chw/src/wcaro/res/drawable-xxhdpi/form_iptp_sp.png new file mode 100644 index 0000000000000000000000000000000000000000..46864bb11fad2c050f89c1672f88b37b484c100d GIT binary patch literal 95289 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

+ + + + + + + + \ No newline at end of file From e7bb566313dcc57afe701dd85680ca2d0d45bec1 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Mon, 3 Jun 2019 14:23:06 +0300 Subject: [PATCH 24/50] add resources for drop down menu --- .../src/main/res/menu/anc_member_profile_menu.xml | 10 ++++++++-- opensrp-chw/src/main/res/values/strings.xml | 7 ++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml b/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml index b07b77360b..59f20451b2 100644 --- a/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml +++ b/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> @@ -11,7 +11,7 @@ + + \ No newline at end of file diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index 11ab11953a..bc5c29d2cf 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -168,10 +168,11 @@ Are you sure you want to remove %s\'s record? This will remove their entire health record from your device. This action cannot be undone. REMOVE Birth Date - Age + Age registration When was %s immunization done? No vaccines were done Edit Family Member + Edit ANC Registration LAST VISIT Edit Child Under 5 @@ -203,6 +204,8 @@ Remove this person Registration info ANC Registration + ANC Registration info + Pregnancy outcome Log out as Job Aids Total U5 children @@ -275,4 +278,6 @@ ANC Counseling GA: %1$s weeks + + From 56524526084c4eafa6a13a440dd547ec9423e677 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 3 Jun 2019 14:26:11 +0300 Subject: [PATCH 25/50] Added HV Schedule --- .../chw/fragment/AncRegisterFragment.java | 11 ++ .../chw/helper/RulesEngineHelper.java | 15 ++ .../chw/provider/ChwAncRegisterProvider.java | 132 ++++++++++++++++++ .../chw/rule/AncVisitAlertRule.java | 118 ++++++++++++++++ .../chw/util/AncHomeVisitUtil.java | 30 ++++ .../org/smartregister/chw/util/AncVisit.java | 4 + .../org/smartregister/chw/util/Constants.java | 1 + .../assets/ec_client_classification.json | 7 + .../src/wcaro/assets/ec_client_fields.json | 32 +++++ .../assets/rule/anc-home-visit-rules.yml | 44 ++++++ 10 files changed, 394 insertions(+) create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/util/AncVisit.java create mode 100644 opensrp-chw/src/wcaro/assets/rule/anc-home-visit-rules.yml diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 26a462ef74..4d9962e0da 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -18,17 +18,20 @@ import org.smartregister.chw.custom_view.NavigationMenu; import org.smartregister.chw.model.AncRegisterFragmentModel; import org.smartregister.chw.presenter.AncRegisterFragmentPresenter; +import org.smartregister.chw.provider.ChwAncRegisterProvider; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.QueryBuilder; import org.smartregister.chw.util.Utils; import org.smartregister.commonregistry.CommonFtsObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.view.customcontrols.CustomFontTextView; import java.text.MessageFormat; import java.util.List; +import java.util.Set; public class AncRegisterFragment extends BaseAncRegisterFragment { @@ -89,6 +92,14 @@ public void setupViews(View view) { NavigationMenu.getInstance(getActivity(), null, toolbar); } + @Override + public void initializeAdapter(Set visibleColumns) { + ChwAncRegisterProvider ancRegisterProvider = new ChwAncRegisterProvider(getActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); + clientAdapter = new RecyclerViewPaginatedAdapter(null, ancRegisterProvider, context().commonrepository(this.tablename)); + clientAdapter.setCurrentlimit(20); + clientsView.setAdapter(clientAdapter); + } + @Override protected void onViewClicked(View view) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/helper/RulesEngineHelper.java b/opensrp-chw/src/main/java/org/smartregister/chw/helper/RulesEngineHelper.java index 4b661dbd73..5afb2da3f1 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/helper/RulesEngineHelper.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/helper/RulesEngineHelper.java @@ -9,6 +9,7 @@ import org.jeasy.rules.core.InferenceRulesEngine; import org.jeasy.rules.core.RulesEngineParameters; import org.jeasy.rules.mvel.MVELRuleFactory; +import org.smartregister.chw.rule.AncVisitAlertRule; import org.smartregister.chw.rule.HomeAlertRule; import org.smartregister.chw.rule.ICommonRule; @@ -86,6 +87,20 @@ public String getButtonAlertStatus(HomeAlertRule alertRule, Rules rules) { return alertRule.getButtonStatus(); } + public String getButtonAlertStatus(AncVisitAlertRule alertRule, Rules rules) { + + if (rules == null) { + return null; + } + + Facts facts = new Facts(); + facts.put(alertRule.getRuleKey(), alertRule); + + processDefaultRules(rules, facts); + + return alertRule.getButtonStatus(); + } + public Rules rules(String rulesFile) { return getRulesFromAsset(RULE_FOLDER_PATH + rulesFile); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java new file mode 100644 index 0000000000..b0f6453599 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java @@ -0,0 +1,132 @@ +package org.smartregister.chw.provider; + +import android.content.Context; +import android.database.Cursor; +import android.os.AsyncTask; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; + +import org.jeasy.rules.api.Rules; +import org.smartregister.chw.R; +import org.smartregister.chw.anc.provider.AncRegisterProvider; +import org.smartregister.chw.application.ChwApplication; +import org.smartregister.chw.interactor.ChildProfileInteractor; +import org.smartregister.chw.util.AncHomeVisitUtil; +import org.smartregister.chw.util.AncVisit; +import org.smartregister.chw.util.Constants; +import org.smartregister.chw.util.Utils; +import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.view.contract.SmartRegisterClient; + +import java.util.Set; + +public class ChwAncRegisterProvider extends AncRegisterProvider { + + private Context context; + private View.OnClickListener onClickListener; + + public ChwAncRegisterProvider(Context context, CommonRepository commonRepository, Set visibleColumns, View.OnClickListener onClickListener, View.OnClickListener paginationClickListener) { + super(context, commonRepository, visibleColumns, onClickListener, paginationClickListener); + this.context = context; + this.onClickListener = onClickListener; + } + + @Override + public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolder viewHolder) { + super.getView(cursor, client, viewHolder); + + CommonPersonObjectClient pc = (CommonPersonObjectClient) client; + Utils.startAsyncTask(new UpdateAsyncTask(context, viewHolder, pc), null); + } + + private void setVisitButtonDueStatus(Context context, Button dueButton) { + dueButton.setTextColor(context.getResources().getColor(R.color.alert_in_progress_blue)); + dueButton.setText(context.getString(R.string.record_home_visit)); + dueButton.setBackgroundResource(R.drawable.blue_btn_selector); + dueButton.setOnClickListener(onClickListener); + } + + private void setVisitButtonOverdueStatus(Context context, Button dueButton, String lastVisitDays) { + dueButton.setTextColor(context.getResources().getColor(R.color.white)); + if (TextUtils.isEmpty(lastVisitDays)) { + dueButton.setText(context.getString(R.string.record_visit)); + } else { + dueButton.setText(context.getString(R.string.due_visit, lastVisitDays)); + } + dueButton.setBackgroundResource(R.drawable.overdue_red_btn_selector); + dueButton.setOnClickListener(onClickListener); + } + + private void setVisitAboveTwentyFourView(Context context, Button dueButton) { + dueButton.setTextColor(context.getResources().getColor(R.color.alert_complete_green)); + dueButton.setText(context.getString(R.string.visit_done)); + dueButton.setBackgroundColor(context.getResources().getColor(R.color.transparent)); + dueButton.setOnClickListener(null); + } + + private void setVisitLessTwentyFourView(Context context, Button dueButton, String lastVisitMonth) { + setVisitAboveTwentyFourView(context, dueButton); + } + + private void setVisitNotDone(Context context, Button dueButton) { + dueButton.setTextColor(context.getResources().getColor(R.color.progress_orange)); + dueButton.setText(context.getString(R.string.visit_not_done)); + dueButton.setBackgroundColor(context.getResources().getColor(R.color.transparent)); + dueButton.setOnClickListener(null); + } + + private void updateDueColumn(Context context, RegisterViewHolder viewHolder, AncVisit ancVisit) { + viewHolder.dueButton.setVisibility(View.VISIBLE); + if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.DUE.name())) { + setVisitButtonDueStatus(context, viewHolder.dueButton); + } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.OVERDUE.name())) { + setVisitButtonOverdueStatus(context, viewHolder.dueButton, ancVisit.getNoOfMonthDue()); + } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.LESS_TWENTY_FOUR.name())) { + setVisitLessTwentyFourView(context, viewHolder.dueButton, ancVisit.getLastVisitDays()); + } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.VISIT_THIS_MONTH.name())) { + setVisitAboveTwentyFourView(context, viewHolder.dueButton); + } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.NOT_VISIT_THIS_MONTH.name())) { + setVisitNotDone(context, viewHolder.dueButton); + } + } + + private class UpdateAsyncTask extends AsyncTask { + private final RegisterViewHolder viewHolder; + private final CommonPersonObjectClient pc; + private final Context context; + + private final Rules rules; + private AncVisit ancVisit; + + private UpdateAsyncTask(Context context, RegisterViewHolder viewHolder, CommonPersonObjectClient pc) { + this.context = context; + this.viewHolder = viewHolder; + this.pc = pc; + this.rules = ChwApplication.getInstance().getRulesEngineHelper().rules(Constants.RULE_FILE.ANC_HOME_VISIT); + } + + @Override + protected Void doInBackground(Void... params) { + //map = getChildDetails(pc.getCaseId()); + + String lmpDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "last_menstrual_period", false); + String visitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "anc_visit_date", false); + String lastVisitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "last_home_visit", false); + String lastVisitNotDone = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "visit_not_done", false); + + ancVisit = AncHomeVisitUtil.getVisitStatus(context, rules, lmpDate, visitDate, lastVisitDate, lastVisitNotDone); + return null; + } + + @Override + protected void onPostExecute(Void param) { + // Update status column + if (ancVisit != null) { + updateDueColumn(context, viewHolder, ancVisit); + } + } + } + +} diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java b/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java new file mode 100644 index 0000000000..7e1c492342 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java @@ -0,0 +1,118 @@ +package org.smartregister.chw.rule; + +import android.content.Context; + +import org.apache.commons.lang3.StringUtils; +import org.joda.time.Days; +import org.joda.time.LocalDate; +import org.joda.time.Months; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; +import org.smartregister.chw.R; +import org.smartregister.chw.interactor.ChildProfileInteractor; + +public class AncVisitAlertRule implements ICommonRule { + + public String buttonStatus = ChildProfileInteractor.VisitType.DUE.name(); + private final int[] monthNames = {R.string.january, R.string.february, R.string.march, R.string.april, R.string.may, R.string.june, R.string.july, R.string.august, R.string.september, R.string.october, R.string.november, R.string.december}; + + private LocalDate dateCreated; + private LocalDate todayDate; + private LocalDate lastVisitDate; + private LocalDate visitNotDoneDate; + + public String noOfMonthDue; + public String noOfDayDue; + public String visitMonthName; + private Context context; + private LocalDate lmpDate; + + public AncVisitAlertRule(Context context, String lmpDate, String visitDate, String lastVisitDate, String visitNotDate) { + this.context = context; + + DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy"); + this.lmpDate = formatter.parseDateTime(lmpDate).toLocalDate(); + + this.todayDate = new LocalDate(); + if (StringUtils.isNotBlank(lastVisitDate)) { + this.lastVisitDate = formatter.parseDateTime(lastVisitDate).toLocalDate(); + } else { + this.lastVisitDate = formatter.parseDateTime(lmpDate).toLocalDate(); + } + noOfDayDue = dayDifference(this.lastVisitDate, todayDate) + " days"; + + if (StringUtils.isNotBlank(visitNotDate)) { + this.visitNotDoneDate = formatter.parseDateTime(visitNotDate).toLocalDate(); + } + + if (StringUtils.isNotBlank(visitDate)) { + this.dateCreated = formatter.parseDateTime(visitDate).toLocalDate(); + } + } + + public String getButtonStatus() { + return buttonStatus; + } + + public boolean isVisitNotDone() { + return (visitNotDoneDate != null && getMonthsDifference(visitNotDoneDate, todayDate) < 1); + } + + // if lmp is greater than 1 year + public boolean isExpiry() { + return (lmpDate != null) && Months.monthsBetween(lmpDate, todayDate).getMonths() > 11; + } + + public boolean isOverdueWithinMonth(Integer value) { + int diff = getMonthsDifference((lastVisitDate != null ? lastVisitDate : dateCreated), todayDate); + if (diff >= value) { + noOfMonthDue = diff + "M"; + return true; + } + return false; + } + + public boolean isDueWithinMonth() { + if (todayDate.getDayOfMonth() == 1) { + return true; + } + if (lastVisitDate == null) { + return !isVisitThisMonth(dateCreated, todayDate); + } + + return !isVisitThisMonth(lastVisitDate, todayDate); + } + + public boolean isVisitWithinTwentyFour() { + visitMonthName = theMonth(todayDate.getMonthOfYear() - 1); + noOfDayDue = context.getString(R.string.less_than_twenty_four); + return (lastVisitDate != null) && !(lastVisitDate.isBefore(todayDate.minusDays(1)) && lastVisitDate.isBefore(todayDate)); + } + + public boolean isVisitWithinThisMonth() { + return (lastVisitDate != null) && isVisitThisMonth(lastVisitDate, todayDate); + } + + private boolean isVisitThisMonth(LocalDate lastVisit, LocalDate todayDate) { + return getMonthsDifference(lastVisit, todayDate) < 1; + } + + private int dayDifference(LocalDate date1, LocalDate date2) { + return Days.daysBetween(date1, date2).getDays(); + } + + private String theMonth(int month) { + return context.getResources().getString(monthNames[month]); + } + + private int getMonthsDifference(LocalDate date1, LocalDate date2) { + return Months.monthsBetween( + date1.withDayOfMonth(1), + date2.withDayOfMonth(1)).getMonths(); + } + + @Override + public String getRuleKey() { + return "ancVisitAlertRule"; + } +} diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java new file mode 100644 index 0000000000..8d288b305e --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java @@ -0,0 +1,30 @@ +package org.smartregister.chw.util; + +import android.content.Context; + +import org.apache.commons.lang3.StringUtils; +import org.jeasy.rules.api.Rules; +import org.joda.time.format.DateTimeFormat; +import org.smartregister.chw.application.ChwApplication; +import org.smartregister.chw.rule.AncVisitAlertRule; + +public class AncHomeVisitUtil { + + public static AncVisit getVisitStatus(Context context, Rules rules, String lmpDate, String visitDate, String lastVisitDate, String visitNotDate) { + AncVisitAlertRule ancVisitAlertRule = new AncVisitAlertRule(context, lmpDate, visitDate, lastVisitDate, visitNotDate); + ChwApplication.getInstance().getRulesEngineHelper().getButtonAlertStatus(ancVisitAlertRule, rules); + return getVisitStatus(ancVisitAlertRule, lastVisitDate); + } + + public static AncVisit getVisitStatus(AncVisitAlertRule homeAlertRule, String lastVisitDate) { + AncVisit ancVisit = new AncVisit(); + ancVisit.setVisitStatus(homeAlertRule.buttonStatus); + ancVisit.setNoOfMonthDue(homeAlertRule.noOfMonthDue); + ancVisit.setLastVisitDays(homeAlertRule.noOfDayDue); + ancVisit.setLastVisitMonthName(homeAlertRule.visitMonthName); + if (StringUtils.isNotBlank(lastVisitDate)) { + ancVisit.setLastVisitTime(DateTimeFormat.forPattern("dd-MM-yyyy").parseDateTime(lastVisitDate).getMillis()); + } + return ancVisit; + } +} diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/AncVisit.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncVisit.java new file mode 100644 index 0000000000..c56ad6b0fb --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncVisit.java @@ -0,0 +1,4 @@ +package org.smartregister.chw.util; + +public class AncVisit extends ChildVisit { +} diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java index 9ee7f2eeef..d298f4467e 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java @@ -120,6 +120,7 @@ public static final class DrawerMenu { public static final class RULE_FILE { public static final String HOME_VISIT = "home-visit-rules.yml"; + public static final String ANC_HOME_VISIT = "anc-home-visit-rules.yml"; public static final String BIRTH_CERT = "birth-cert-rules.yml"; public static final String SERVICE = "service-rules.yml"; } diff --git a/opensrp-chw/src/wcaro/assets/ec_client_classification.json b/opensrp-chw/src/wcaro/assets/ec_client_classification.json index c087f7c146..eed82bb1ac 100644 --- a/opensrp-chw/src/wcaro/assets/ec_client_classification.json +++ b/opensrp-chw/src/wcaro/assets/ec_client_classification.json @@ -99,6 +99,13 @@ "creates_case": [ "ec_anc_register" ] + }, + { + "field": "eventType", + "field_value": "ANC Home Visit", + "creates_case": [ + "ec_anc_register" + ] } ] } diff --git a/opensrp-chw/src/wcaro/assets/ec_client_fields.json b/opensrp-chw/src/wcaro/assets/ec_client_fields.json index dbc0213880..2f23036ce9 100644 --- a/opensrp-chw/src/wcaro/assets/ec_client_fields.json +++ b/opensrp-chw/src/wcaro/assets/ec_client_fields.json @@ -574,6 +574,38 @@ "field": "obs.fieldCode", "concept": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } + }, + { + "column_name": "anc_visit_date", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "anc_visit_date" + } + }, + { + "column_name": "visit_not_done", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "anc_visit_not_done_date" + } + }, + { + "column_name": "last_home_visit", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "anc_visit_date" + } + }, + { + "column_name": "anc_card", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "1719AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } } ] } diff --git a/opensrp-chw/src/wcaro/assets/rule/anc-home-visit-rules.yml b/opensrp-chw/src/wcaro/assets/rule/anc-home-visit-rules.yml new file mode 100644 index 0000000000..82f39f0c80 --- /dev/null +++ b/opensrp-chw/src/wcaro/assets/rule/anc-home-visit-rules.yml @@ -0,0 +1,44 @@ +--- +name: expiry +description: expire lmp greter than 1 yr +priority: 1 +condition: "ancVisitAlertRule.isExpiry()" +actions: + - "ancVisitAlertRule.buttonStatus = 'EXPIRY'" +--- +name: visit_not_done +description: press visit not done in this month +priority: 1 +condition: "ancVisitAlertRule.isVisitNotDone()" +actions: + - "ancVisitAlertRule.buttonStatus = 'NOT_VISIT_THIS_MONTH'" +--- +name: visit_twenty_four +description: visit within twenty four hours +priority: 2 +condition: "ancVisitAlertRule.isVisitWithinTwentyFour()" +actions: + - "ancVisitAlertRule.buttonStatus = 'LESS_TWENTY_FOUR'" +--- +name: visit_this_month +description: visit grether than 24 hours but within this month +priority: 3 +condition: "ancVisitAlertRule.isVisitWithinThisMonth()" +actions: + - "ancVisitAlertRule.buttonStatus = 'VISIT_THIS_MONTH'" +--- +name: overdue +description: previous month not visited +priority: 2 +condition: "ancVisitAlertRule.isOverdueWithinMonth(1)" +actions: + - "ancVisitAlertRule.buttonStatus = 'OVERDUE'" +--- +name: due +description: due first day of month and same month +priority: 3 +condition: "ancVisitAlertRule.isDueWithinMonth()" +actions: + - "ancVisitAlertRule.buttonStatus = 'DUE'" + + From 3165ac397aa60115f362aa3516fe3289b4a8b1a7 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 3 Jun 2019 14:31:47 +0300 Subject: [PATCH 26/50] Added BA Home Visit Schedule --- .../ba/assets/ec_client_classification.json | 7 +++ .../src/ba/assets/ec_client_fields.json | 16 +++++++ .../ba/assets/rule/anc-home-visit-rules.yml | 44 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 opensrp-chw/src/ba/assets/rule/anc-home-visit-rules.yml diff --git a/opensrp-chw/src/ba/assets/ec_client_classification.json b/opensrp-chw/src/ba/assets/ec_client_classification.json index c087f7c146..eed82bb1ac 100644 --- a/opensrp-chw/src/ba/assets/ec_client_classification.json +++ b/opensrp-chw/src/ba/assets/ec_client_classification.json @@ -99,6 +99,13 @@ "creates_case": [ "ec_anc_register" ] + }, + { + "field": "eventType", + "field_value": "ANC Home Visit", + "creates_case": [ + "ec_anc_register" + ] } ] } diff --git a/opensrp-chw/src/ba/assets/ec_client_fields.json b/opensrp-chw/src/ba/assets/ec_client_fields.json index 2df86a546e..b8dd14a425 100644 --- a/opensrp-chw/src/ba/assets/ec_client_fields.json +++ b/opensrp-chw/src/ba/assets/ec_client_fields.json @@ -677,6 +677,22 @@ "field": "obs.fieldCode", "concept": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } + }, + { + "column_name": "visit_not_done", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "anc_visit_not_done_date" + } + }, + { + "column_name": "last_home_visit", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "anc_visit_date" + } } ] } diff --git a/opensrp-chw/src/ba/assets/rule/anc-home-visit-rules.yml b/opensrp-chw/src/ba/assets/rule/anc-home-visit-rules.yml new file mode 100644 index 0000000000..82f39f0c80 --- /dev/null +++ b/opensrp-chw/src/ba/assets/rule/anc-home-visit-rules.yml @@ -0,0 +1,44 @@ +--- +name: expiry +description: expire lmp greter than 1 yr +priority: 1 +condition: "ancVisitAlertRule.isExpiry()" +actions: + - "ancVisitAlertRule.buttonStatus = 'EXPIRY'" +--- +name: visit_not_done +description: press visit not done in this month +priority: 1 +condition: "ancVisitAlertRule.isVisitNotDone()" +actions: + - "ancVisitAlertRule.buttonStatus = 'NOT_VISIT_THIS_MONTH'" +--- +name: visit_twenty_four +description: visit within twenty four hours +priority: 2 +condition: "ancVisitAlertRule.isVisitWithinTwentyFour()" +actions: + - "ancVisitAlertRule.buttonStatus = 'LESS_TWENTY_FOUR'" +--- +name: visit_this_month +description: visit grether than 24 hours but within this month +priority: 3 +condition: "ancVisitAlertRule.isVisitWithinThisMonth()" +actions: + - "ancVisitAlertRule.buttonStatus = 'VISIT_THIS_MONTH'" +--- +name: overdue +description: previous month not visited +priority: 2 +condition: "ancVisitAlertRule.isOverdueWithinMonth(1)" +actions: + - "ancVisitAlertRule.buttonStatus = 'OVERDUE'" +--- +name: due +description: due first day of month and same month +priority: 3 +condition: "ancVisitAlertRule.isDueWithinMonth()" +actions: + - "ancVisitAlertRule.buttonStatus = 'DUE'" + + From a31bd8e7abc2dbb68946b5b0e3b8eddcc4d79b77 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Mon, 3 Jun 2019 16:42:47 +0300 Subject: [PATCH 27/50] Updated rules engine for ANC HV --- .../src/ba/assets/ec_client_fields.json | 8 ++++---- .../chw/model/AncRegisterFragmentModel.java | 4 ++++ .../chw/provider/ChwAncRegisterProvider.java | 12 ++++++------ .../chw/rule/AncVisitAlertRule.java | 19 +++++++------------ .../chw/util/AncHomeVisitUtil.java | 12 ++++++------ .../chw/util/ChwDBConstants.java | 3 +++ .../src/wcaro/assets/ec_client_fields.json | 8 -------- 7 files changed, 30 insertions(+), 36 deletions(-) diff --git a/opensrp-chw/src/ba/assets/ec_client_fields.json b/opensrp-chw/src/ba/assets/ec_client_fields.json index b8dd14a425..a58006f6fa 100644 --- a/opensrp-chw/src/ba/assets/ec_client_fields.json +++ b/opensrp-chw/src/ba/assets/ec_client_fields.json @@ -679,19 +679,19 @@ } }, { - "column_name": "visit_not_done", + "column_name": "anc_visit_date", "type": "Event", "json_mapping": { "field": "obs.fieldCode", - "concept": "anc_visit_not_done_date" + "concept": "anc_visit_date" } }, { - "column_name": "last_home_visit", + "column_name": "visit_not_done", "type": "Event", "json_mapping": { "field": "obs.fieldCode", - "concept": "anc_visit_date" + "concept": "anc_visit_not_done_date" } } ] diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java index 34efa0f838..23cc429597 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java @@ -2,6 +2,7 @@ import org.smartregister.chw.anc.model.BaseAncRegisterFragmentModel; import org.smartregister.chw.util.ChildDBConstants; +import org.smartregister.chw.util.ChwDBConstants; import org.smartregister.chw.util.Constants; import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.family.util.DBConstants; @@ -27,6 +28,9 @@ protected String[] mainColumns(String tableName) { columnList.add(tableName + "." + DBConstants.KEY.LAST_INTERACTED_WITH); columnList.add(tableName + "." + DBConstants.KEY.BASE_ENTITY_ID); + columnList.add(tableName + "." + ChwDBConstants.LMP); + columnList.add(tableName + "." + ChwDBConstants.ANC_VISIT_DATE); + columnList.add(tableName + "." + ChwDBConstants.VISIT_NOT_DONE); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.RELATIONAL_ID + " as " + ChildDBConstants.KEY.RELATIONAL_ID); columnList.add(tableName + "." + org.smartregister.chw.anc.util.DBConstants.KEY.LAST_MENSTRUAL_PERIOD); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.FIRST_NAME); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java index b0f6453599..0c0377b4e4 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java @@ -14,6 +14,7 @@ import org.smartregister.chw.interactor.ChildProfileInteractor; import org.smartregister.chw.util.AncHomeVisitUtil; import org.smartregister.chw.util.AncVisit; +import org.smartregister.chw.util.ChwDBConstants; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.Utils; import org.smartregister.commonregistry.CommonPersonObjectClient; @@ -111,19 +112,18 @@ private UpdateAsyncTask(Context context, RegisterViewHolder viewHolder, CommonPe protected Void doInBackground(Void... params) { //map = getChildDetails(pc.getCaseId()); - String lmpDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "last_menstrual_period", false); - String visitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "anc_visit_date", false); - String lastVisitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "last_home_visit", false); - String lastVisitNotDone = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), "visit_not_done", false); + String lmpDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.LMP, false); + String visitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.ANC_VISIT_DATE, false); + String lastVisitNotDone = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.VISIT_NOT_DONE, false); - ancVisit = AncHomeVisitUtil.getVisitStatus(context, rules, lmpDate, visitDate, lastVisitDate, lastVisitNotDone); + ancVisit = AncHomeVisitUtil.getVisitStatus(context, rules, lmpDate, visitDate, lastVisitNotDone); return null; } @Override protected void onPostExecute(Void param) { // Update status column - if (ancVisit != null) { + if (ancVisit != null && !ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.EXPIRY.name())) { updateDueColumn(context, viewHolder, ancVisit); } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java b/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java index 7e1c492342..9076903a6f 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/rule/AncVisitAlertRule.java @@ -16,7 +16,6 @@ public class AncVisitAlertRule implements ICommonRule { public String buttonStatus = ChildProfileInteractor.VisitType.DUE.name(); private final int[] monthNames = {R.string.january, R.string.february, R.string.march, R.string.april, R.string.may, R.string.june, R.string.july, R.string.august, R.string.september, R.string.october, R.string.november, R.string.december}; - private LocalDate dateCreated; private LocalDate todayDate; private LocalDate lastVisitDate; private LocalDate visitNotDoneDate; @@ -27,26 +26,22 @@ public class AncVisitAlertRule implements ICommonRule { private Context context; private LocalDate lmpDate; - public AncVisitAlertRule(Context context, String lmpDate, String visitDate, String lastVisitDate, String visitNotDate) { + public AncVisitAlertRule(Context context, String lmpDate, String visitDate, String visitNotDoneDate) { this.context = context; DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy"); this.lmpDate = formatter.parseDateTime(lmpDate).toLocalDate(); this.todayDate = new LocalDate(); - if (StringUtils.isNotBlank(lastVisitDate)) { - this.lastVisitDate = formatter.parseDateTime(lastVisitDate).toLocalDate(); + if (StringUtils.isNotBlank(visitDate)) { + this.lastVisitDate = formatter.parseDateTime(visitDate).toLocalDate(); } else { this.lastVisitDate = formatter.parseDateTime(lmpDate).toLocalDate(); } noOfDayDue = dayDifference(this.lastVisitDate, todayDate) + " days"; - if (StringUtils.isNotBlank(visitNotDate)) { - this.visitNotDoneDate = formatter.parseDateTime(visitNotDate).toLocalDate(); - } - - if (StringUtils.isNotBlank(visitDate)) { - this.dateCreated = formatter.parseDateTime(visitDate).toLocalDate(); + if (StringUtils.isNotBlank(visitNotDoneDate)) { + this.visitNotDoneDate = formatter.parseDateTime(visitNotDoneDate).toLocalDate(); } } @@ -64,7 +59,7 @@ public boolean isExpiry() { } public boolean isOverdueWithinMonth(Integer value) { - int diff = getMonthsDifference((lastVisitDate != null ? lastVisitDate : dateCreated), todayDate); + int diff = getMonthsDifference((lastVisitDate != null ? lastVisitDate : lmpDate), todayDate); if (diff >= value) { noOfMonthDue = diff + "M"; return true; @@ -77,7 +72,7 @@ public boolean isDueWithinMonth() { return true; } if (lastVisitDate == null) { - return !isVisitThisMonth(dateCreated, todayDate); + return !isVisitThisMonth(lmpDate, todayDate); } return !isVisitThisMonth(lastVisitDate, todayDate); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java index 8d288b305e..38f54b7c7c 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/AncHomeVisitUtil.java @@ -10,20 +10,20 @@ public class AncHomeVisitUtil { - public static AncVisit getVisitStatus(Context context, Rules rules, String lmpDate, String visitDate, String lastVisitDate, String visitNotDate) { - AncVisitAlertRule ancVisitAlertRule = new AncVisitAlertRule(context, lmpDate, visitDate, lastVisitDate, visitNotDate); + public static AncVisit getVisitStatus(Context context, Rules rules, String lmpDate, String visitDate, String visitNotDate) { + AncVisitAlertRule ancVisitAlertRule = new AncVisitAlertRule(context, lmpDate, visitDate, visitNotDate); ChwApplication.getInstance().getRulesEngineHelper().getButtonAlertStatus(ancVisitAlertRule, rules); - return getVisitStatus(ancVisitAlertRule, lastVisitDate); + return getVisitStatus(ancVisitAlertRule, visitDate); } - public static AncVisit getVisitStatus(AncVisitAlertRule homeAlertRule, String lastVisitDate) { + public static AncVisit getVisitStatus(AncVisitAlertRule homeAlertRule, String visitDate) { AncVisit ancVisit = new AncVisit(); ancVisit.setVisitStatus(homeAlertRule.buttonStatus); ancVisit.setNoOfMonthDue(homeAlertRule.noOfMonthDue); ancVisit.setLastVisitDays(homeAlertRule.noOfDayDue); ancVisit.setLastVisitMonthName(homeAlertRule.visitMonthName); - if (StringUtils.isNotBlank(lastVisitDate)) { - ancVisit.setLastVisitTime(DateTimeFormat.forPattern("dd-MM-yyyy").parseDateTime(lastVisitDate).getMillis()); + if (StringUtils.isNotBlank(visitDate)) { + ancVisit.setLastVisitTime(DateTimeFormat.forPattern("dd-MM-yyyy").parseDateTime(visitDate).getMillis()); } return ancVisit; } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java index 4c0ff1faa7..aa96157122 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java @@ -15,5 +15,8 @@ public interface ChwDBConstants { String LEADER = "leader"; String OTHER_LEADER = "leader_other"; String WRA = "wra"; + String LMP = "last_menstrual_period"; + String ANC_VISIT_DATE = "anc_visit_date"; + String VISIT_NOT_DONE = "visit_not_done"; } \ No newline at end of file diff --git a/opensrp-chw/src/wcaro/assets/ec_client_fields.json b/opensrp-chw/src/wcaro/assets/ec_client_fields.json index 2f23036ce9..2c168b491c 100644 --- a/opensrp-chw/src/wcaro/assets/ec_client_fields.json +++ b/opensrp-chw/src/wcaro/assets/ec_client_fields.json @@ -591,14 +591,6 @@ "concept": "anc_visit_not_done_date" } }, - { - "column_name": "last_home_visit", - "type": "Event", - "json_mapping": { - "field": "obs.fieldCode", - "concept": "anc_visit_date" - } - }, { "column_name": "anc_card", "type": "Event", From 6ea4074bca3443c072eb03f87e0f6fb23c6a2141 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Mon, 3 Jun 2019 23:02:45 +0300 Subject: [PATCH 28/50] add remove anc member --- .../chw/activity/AncMemberProfileActivity.java | 18 +++++++++++++++++- .../chw/fragment/AncRegisterFragment.java | 6 +++++- .../IndividualProfileRemoveFragment.java | 4 ++++ .../chw/model/AncRegisterFragmentModel.java | 3 +++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 19d4ab7a97..60531989d2 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -23,9 +23,16 @@ public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { static String baseEntityId; + static String familyBaseEntityId; + static String familyHead; + static String primaryCareGiver; + public static void startMe(Activity activity, MemberObject memberObject) { baseEntityId = memberObject.getBaseEntityId(); + familyBaseEntityId = memberObject.getFamilyBaseEntityId(); + familyHead = memberObject.getFamilyHead(); + primaryCareGiver = memberObject.getPrimaryCareGiver(); Intent intent = new Intent(activity, AncMemberProfileActivity.class); intent.putExtra(Constants.ANC_MEMBER_OBJECTS.MEMBER_PROFILE_OBJECT, memberObject); activity.startActivity(intent); @@ -46,12 +53,21 @@ public boolean onOptionsItemSelected(MenuItem item) { case R.id.action_anc_member_registration: startFormForEdit(R.string.edit_member_form_title, org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER); - break; + return true; case R.id.action_anc_registration: startFormForEdit(R.string.edit_member_form_title, org.smartregister.chw.util.Constants.JSON_FORM.ANC_REGISTRATION); return true; case R.id.action_remove_member: + + CommonRepository commonRepository = org.smartregister.chw.util.Utils.context().commonrepository(org.smartregister.chw.util.Utils.metadata().familyMemberRegister.tableName); + + final CommonPersonObject commonPersonObject = commonRepository.findByBaseEntityId(baseEntityId); + final CommonPersonObjectClient client = + new CommonPersonObjectClient(commonPersonObject.getCaseId(), commonPersonObject.getDetails(), ""); + client.setColumnmaps(commonPersonObject.getColumnmaps()); + + IndividualProfileRemoveActivity.startIndividualProfileActivity(AncMemberProfileActivity.this, client, familyBaseEntityId, familyHead, primaryCareGiver); return true; default: break; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 1a5a4876a9..6857d131d9 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -162,7 +162,11 @@ protected void openProfile(CommonPersonObjectClient client) { gest_age, client.getColumnmaps().get(DBConstants.KEY.VILLAGE_TOWN), uniqueId, - client.getCaseId()); + client.getCaseId(), + client.getColumnmaps().get(DBConstants.KEY.RELATIONAL_ID), + client.getColumnmaps().get(DBConstants.KEY.FAMILY_HEAD), + client.getColumnmaps().get(DBConstants.KEY.PRIMARY_CAREGIVER) + ); AncMemberProfileActivity.startMe(getActivity(), memberObject); } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/IndividualProfileRemoveFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/IndividualProfileRemoveFragment.java index 67f8c4555b..cc28e542e5 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/IndividualProfileRemoveFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/IndividualProfileRemoveFragment.java @@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.chw.R; +import org.smartregister.chw.activity.AncRegisterActivity; import org.smartregister.chw.activity.FamilyRegisterActivity; import org.smartregister.chw.activity.IndividualProfileRemoveActivity; import org.smartregister.chw.contract.FamilyRemoveMemberContract; @@ -104,6 +105,9 @@ public void confirmRemove(final JSONObject form) { @Override public void run() { getPresenter().processRemoveForm(form); + Intent intent = new Intent(getActivity(), AncRegisterActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); } }); dialog.setOnRemoveActivity(new Runnable() { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java index 84221a7ee1..1604f8cbcf 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java @@ -34,7 +34,10 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.LAST_NAME); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.DOB); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.UNIQUE_ID); + columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.RELATIONAL_ID); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.VILLAGE_TOWN); + columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FAMILY_HEAD); + columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); return columnList.toArray(new String[columnList.size()]); } From 3c73254996c7e0322d5e2390a26b874e9218422a Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Mon, 3 Jun 2019 23:51:23 +0300 Subject: [PATCH 29/50] codacy fix --- .../chw/activity/AncMemberProfileActivity.java | 8 ++++---- .../src/main/java/org/smartregister/chw/util/Utils.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 60531989d2..456b42ca7f 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -22,10 +22,10 @@ import timber.log.Timber; public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { - static String baseEntityId; - static String familyBaseEntityId; - static String familyHead; - static String primaryCareGiver; + private static String baseEntityId; + private static String familyBaseEntityId; + private static String familyHead; + private static String primaryCareGiver; public static void startMe(Activity activity, MemberObject memberObject) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java index 3ccfd51d83..eaa6f0087b 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java @@ -226,10 +226,10 @@ public static String getAncMemberNameAndAge(String firstName, String middleName, int integerAge = new Period(new DateTime(age), new DateTime()).getYears(); firstName = firstName.trim(); middleName = middleName.trim(); - surName = surName != null ? surName.trim() : ""; + String sur_name = surName != null ? surName.trim() : ""; if (StringUtils.isNotBlank(firstName) && StringUtils.isNotBlank(middleName) && StringUtils.isNotBlank(age)) { - return (firstName + " " + middleName + " " + surName).trim() + ", " + integerAge; + return (firstName + " " + middleName + " " + sur_name).trim() + ", " + integerAge; } return ""; } From 4222b42a91e2df47fb7ffabab48e7207d0db242d Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Mon, 3 Jun 2019 23:58:49 +0300 Subject: [PATCH 30/50] codacy fix --- .../src/main/java/org/smartregister/chw/util/Utils.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java index eaa6f0087b..4f24916240 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Utils.java @@ -224,12 +224,12 @@ public static String getLocalForm(String jsonForm) { public static String getAncMemberNameAndAge(String firstName, String middleName, String surName, String age) { int integerAge = new Period(new DateTime(age), new DateTime()).getYears(); - firstName = firstName.trim(); - middleName = middleName.trim(); + String first_name = firstName.trim(); + String middle_name = middleName.trim(); String sur_name = surName != null ? surName.trim() : ""; if (StringUtils.isNotBlank(firstName) && StringUtils.isNotBlank(middleName) && StringUtils.isNotBlank(age)) { - return (firstName + " " + middleName + " " + sur_name).trim() + ", " + integerAge; + return (first_name + " " + middle_name + " " + sur_name).trim() + ", " + integerAge; } return ""; } From f2c1f6c0e0f3eb089734112f574f47fafc645bd1 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 4 Jun 2019 00:06:58 +0300 Subject: [PATCH 31/50] Add filter to anc register --- .../src/ba/assets/ec_client_fields.json | 2 +- .../chw/fragment/AncRegisterFragment.java | 47 +++++++++++++++++-- .../chw/model/AncRegisterFragmentModel.java | 2 +- .../AncRegisterFragmentPresenter.java | 5 ++ .../chw/provider/ChwAncRegisterProvider.java | 3 +- .../chw/util/ChwDBConstants.java | 1 - .../src/wcaro/assets/ec_client_fields.json | 2 +- 7 files changed, 54 insertions(+), 8 deletions(-) diff --git a/opensrp-chw/src/ba/assets/ec_client_fields.json b/opensrp-chw/src/ba/assets/ec_client_fields.json index a58006f6fa..2b22160b4d 100644 --- a/opensrp-chw/src/ba/assets/ec_client_fields.json +++ b/opensrp-chw/src/ba/assets/ec_client_fields.json @@ -679,7 +679,7 @@ } }, { - "column_name": "anc_visit_date", + "column_name": "last_home_visit", "type": "Event", "json_mapping": { "field": "obs.fieldCode", diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 4d9962e0da..0d1d5477bd 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -200,7 +200,7 @@ private String dueFilterAndSortQuery() { .searchQueryFts(tablename, joinTable, mainCondition, filters, Sortqueries, clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset()); sql = sql.replace(CommonFtsObject.idColumn, CommonFtsObject.relationalIdColumn); - sql = sql.replace(CommonFtsObject.searchTableName(Constants.TABLE_NAME.FAMILY), CommonFtsObject.searchTableName(Constants.TABLE_NAME.CHILD)); + sql = sql.replace(CommonFtsObject.searchTableName(Constants.TABLE_NAME.FAMILY), CommonFtsObject.searchTableName(Constants.TABLE_NAME.ANC_MEMBER)); List ids = commonRepository().findSearchIds(sql); query = sqb.toStringFts(ids, tablename, CommonRepository.ID_COLUMN, Sortqueries); @@ -224,10 +224,14 @@ private String defaultFilterAndSortQuery() { String query = ""; StringBuilder customFilter = new StringBuilder(); if (StringUtils.isNotBlank(filters)) { - customFilter.append(MessageFormat.format(" where {0}.{1} like ''%{2}%'' ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.FIRST_NAME, filters)); + customFilter.append(MessageFormat.format(" where ( {0}.{1} like ''%{2}%'' ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.FIRST_NAME, filters)); customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.LAST_NAME, filters)); customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.MIDDLE_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} = ''{2}'' ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.UNIQUE_ID, filters)); + customFilter.append(MessageFormat.format(" or {0}.{1} = ''{2}'' ) ", Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.UNIQUE_ID, filters)); + + if (dueFilterActive) { + customFilter.append(MessageFormat.format(" and ( {0}) ", presenter().getDueFilterCondition())); + } } try { if (isValidFilterForFts(commonRepository())) { @@ -273,4 +277,41 @@ public Cursor loadInBackground() { protected String getMainCondition() { return presenter().getMainCondition(); } + + @Override + public void countExecute() { + + Cursor c = null; + try { + + String query = "select count(*) from " + presenter().getMainTable() + " inner join " + Constants.TABLE_NAME.FAMILY_MEMBER + + " on " + presenter().getMainTable() + "." + DBConstants.KEY.BASE_ENTITY_ID + " = " + + Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.BASE_ENTITY_ID + + " where " + presenter().getMainCondition(); + + if (StringUtils.isNotBlank(filters)) { + query = query + " and ( " + filters + " ) "; + } + + if (dueFilterActive) { + query = query + " and ( " + presenter().getDueFilterCondition() + " ) "; + } + + c = commonRepository().rawCustomQueryForAdapter(query); + c.moveToFirst(); + clientAdapter.setTotalcount(c.getInt(0)); + Log.v("total count here", "" + clientAdapter.getTotalcount()); + + clientAdapter.setCurrentlimit(20); + clientAdapter.setCurrentoffset(0); + + + } catch (Exception e) { + Log.e(getClass().getName(), e.toString(), e); + } finally { + if (c != null) { + c.close(); + } + } + } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java index 23cc429597..ebf00c0229 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java @@ -29,7 +29,7 @@ protected String[] mainColumns(String tableName) { columnList.add(tableName + "." + DBConstants.KEY.LAST_INTERACTED_WITH); columnList.add(tableName + "." + DBConstants.KEY.BASE_ENTITY_ID); columnList.add(tableName + "." + ChwDBConstants.LMP); - columnList.add(tableName + "." + ChwDBConstants.ANC_VISIT_DATE); + columnList.add(tableName + "." + ChildDBConstants.KEY.LAST_HOME_VISIT); columnList.add(tableName + "." + ChwDBConstants.VISIT_NOT_DONE); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.RELATIONAL_ID + " as " + ChildDBConstants.KEY.RELATIONAL_ID); columnList.add(tableName + "." + org.smartregister.chw.anc.util.DBConstants.KEY.LAST_MENSTRUAL_PERIOD); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncRegisterFragmentPresenter.java b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncRegisterFragmentPresenter.java index 58ca02651d..606ce61cd0 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncRegisterFragmentPresenter.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncRegisterFragmentPresenter.java @@ -3,6 +3,7 @@ import org.smartregister.chw.R; import org.smartregister.chw.anc.contract.AncRegisterFragmentContract; import org.smartregister.chw.anc.presenter.BaseAncRegisterFragmentPresenter; +import org.smartregister.chw.anc.util.DBConstants; import org.smartregister.chw.util.Constants; public class AncRegisterFragmentPresenter extends BaseAncRegisterFragmentPresenter { @@ -23,4 +24,8 @@ public String getMainTable() { return Constants.TABLE_NAME.ANC_MEMBER; } + @Override + public String getMainCondition() { + return " " + Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.DATE_REMOVED + " is null "; + } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java index 0c0377b4e4..394cc64692 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java @@ -14,6 +14,7 @@ import org.smartregister.chw.interactor.ChildProfileInteractor; import org.smartregister.chw.util.AncHomeVisitUtil; import org.smartregister.chw.util.AncVisit; +import org.smartregister.chw.util.ChildDBConstants; import org.smartregister.chw.util.ChwDBConstants; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.Utils; @@ -113,7 +114,7 @@ protected Void doInBackground(Void... params) { //map = getChildDetails(pc.getCaseId()); String lmpDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.LMP, false); - String visitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.ANC_VISIT_DATE, false); + String visitDate = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.LAST_HOME_VISIT, false); String lastVisitNotDone = org.smartregister.util.Utils.getValue(pc.getColumnmaps(), ChwDBConstants.VISIT_NOT_DONE, false); ancVisit = AncHomeVisitUtil.getVisitStatus(context, rules, lmpDate, visitDate, lastVisitNotDone); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java index aa96157122..8658b9511c 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java @@ -16,7 +16,6 @@ public interface ChwDBConstants { String OTHER_LEADER = "leader_other"; String WRA = "wra"; String LMP = "last_menstrual_period"; - String ANC_VISIT_DATE = "anc_visit_date"; String VISIT_NOT_DONE = "visit_not_done"; } \ No newline at end of file diff --git a/opensrp-chw/src/wcaro/assets/ec_client_fields.json b/opensrp-chw/src/wcaro/assets/ec_client_fields.json index 2c168b491c..caa8c435b3 100644 --- a/opensrp-chw/src/wcaro/assets/ec_client_fields.json +++ b/opensrp-chw/src/wcaro/assets/ec_client_fields.json @@ -576,7 +576,7 @@ } }, { - "column_name": "anc_visit_date", + "column_name": "last_home_visit", "type": "Event", "json_mapping": { "field": "obs.fieldCode", From 38522ad8d9d1dddb200500c0680de97c3c43d9a3 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 4 Jun 2019 00:13:08 +0300 Subject: [PATCH 32/50] Fixed count of removed members --- .../smartregister/chw/interactor/NavigationInteractor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/NavigationInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/NavigationInteractor.java index 33d06e56cf..14d58846d7 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/NavigationInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/NavigationInteractor.java @@ -12,6 +12,7 @@ import org.smartregister.family.util.AppExecutors; import org.smartregister.family.util.DBConstants; +import java.text.MessageFormat; import java.util.Date; import timber.log.Timber; @@ -56,6 +57,12 @@ private int getCount(String tableName) { mainCondition = String.format(" %s is null AND %s", DBConstants.KEY.DATE_REMOVED, ChildDBConstants.childAgeLimitFilter()); } else if (tableName.equalsIgnoreCase(Constants.TABLE_NAME.FAMILY)) { mainCondition = String.format(" %s is null ", DBConstants.KEY.DATE_REMOVED); + } else if (tableName.equalsIgnoreCase(Constants.TABLE_NAME.ANC_MEMBER)) { + mainCondition = MessageFormat.format(" inner join {0} on {1}.{2} = {3}.{4} where {5}.{6} is null ", + Constants.TABLE_NAME.FAMILY_MEMBER, + Constants.TABLE_NAME.FAMILY_MEMBER, DBConstants.KEY.BASE_ENTITY_ID, + Constants.TABLE_NAME.ANC_MEMBER, DBConstants.KEY.BASE_ENTITY_ID, + DBConstants.KEY.DATE_REMOVED); // String.format(" %s is null ", DBConstants.KEY.DATE_REMOVED); } else { mainCondition = " 1 = 1 "; } From de440cf2160ebe909d23fbd0797217659c1d70ee Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 4 Jun 2019 00:39:58 +0300 Subject: [PATCH 33/50] Fixed codacy --- .../smartregister/chw/provider/ChwAncRegisterProvider.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java index 394cc64692..58e8c7e231 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwAncRegisterProvider.java @@ -68,7 +68,7 @@ private void setVisitAboveTwentyFourView(Context context, Button dueButton) { dueButton.setOnClickListener(null); } - private void setVisitLessTwentyFourView(Context context, Button dueButton, String lastVisitMonth) { + private void setVisitLessTwentyFourView(Context context, Button dueButton) { setVisitAboveTwentyFourView(context, dueButton); } @@ -86,7 +86,7 @@ private void updateDueColumn(Context context, RegisterViewHolder viewHolder, Anc } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.OVERDUE.name())) { setVisitButtonOverdueStatus(context, viewHolder.dueButton, ancVisit.getNoOfMonthDue()); } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.LESS_TWENTY_FOUR.name())) { - setVisitLessTwentyFourView(context, viewHolder.dueButton, ancVisit.getLastVisitDays()); + setVisitLessTwentyFourView(context, viewHolder.dueButton); } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.VISIT_THIS_MONTH.name())) { setVisitAboveTwentyFourView(context, viewHolder.dueButton); } else if (ancVisit.getVisitStatus().equalsIgnoreCase(ChildProfileInteractor.VisitType.NOT_VISIT_THIS_MONTH.name())) { From 0018fe4cf5ba5190c30fbe081e536aa1f95864f3 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 4 Jun 2019 09:17:15 +0300 Subject: [PATCH 34/50] Updated gradle version for anc-chw module --- opensrp-chw/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index c4958ba936..9945153ea1 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -180,7 +180,7 @@ dependencies { exclude group: 'com.android.support', module: 'appcompat-v7' } - implementation('org.smartregister:opensrp-client-chw-anc:0.0.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-chw-anc:0.0.3-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' exclude group: 'com.android.support', module: 'appcompat-v7' From d6aea97ff0ae0ff2e7aba8b46f4bafa16714aedc Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Tue, 4 Jun 2019 11:17:43 +0300 Subject: [PATCH 35/50] update anc dependacy --- opensrp-chw/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index f899bbbb1d..9945153ea1 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -180,7 +180,7 @@ dependencies { exclude group: 'com.android.support', module: 'appcompat-v7' } - implementation('org.smartregister:opensrp-client-chw-anc:0.0.2-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-chw-anc:0.0.3-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' exclude group: 'com.android.support', module: 'appcompat-v7' From 87c2c3d8ff912f85ec6c9d33158b99f45c9254e5 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Tue, 4 Jun 2019 13:03:21 +0300 Subject: [PATCH 36/50] update ba forms --- .../json.form/anc_member_registration.json | 131 ++++++++++++++++-- .../anc_member_registration_calculation.yml | 8 ++ .../anc_member_registration_relevance.yml | 14 ++ 3 files changed, 141 insertions(+), 12 deletions(-) create mode 100644 opensrp-chw/src/ba/assets/rule/anc_member_registration_relevance.yml diff --git a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json index 4b648b506c..c50590e32e 100644 --- a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json +++ b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json @@ -68,6 +68,22 @@ "err": "LMP required" } }, + { + "key": "gest_age_note", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "Gestational Age (GA)", + "read_only": true, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_member_registration_calculation.yml" + } + } + } + }, { "key": "gest_age", "openmrs_entity_parent": "", @@ -87,7 +103,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", + "type": "edit_text", + "hint": "Expected Date of Delivery (EDD)", + "read_only": true, "calculation": { "rules-engine": { "ex-rules": { @@ -99,8 +117,8 @@ { "key": "no_prev_preg", "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "no_prev_preg", "type": "edit_text", "edit_type": "number", "hint": "No. of previous pregnancies", @@ -131,6 +149,27 @@ } } }, + { + "key": "delivery_method", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5630AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select one", + "type": "spinner", + "hint": "Have you delivered your child(ren) vaginally or by ceasarian section?", + "values": [ + "Vaginally", + "Caesarian section" + ], + "openmrs_choice_ids": { + "Vaginally": "1170AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Caesarian section": "1171AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "v_required": { + "value": "true", + "err": "Please select one option" + } + } + }, { "key": "no_surv_children", "openmrs_entity_parent": "", @@ -152,6 +191,29 @@ "err": "Age must be equal or greater than 0" } }, + { + "key": "marital_status", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select one", + "type": "spinner", + "hint": "Marital status", + "values": [ + "Married", + "Co-habiting", + "Single" + ], + "openmrs_choice_ids": { + "Married": "5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Co-habiting": "1060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "v_required": { + "value": "true", + "err": "Please select one option" + } + } + }, { "key": "phone_number", "openmrs_entity_parent": "", @@ -180,27 +242,72 @@ } }, { - "key": "marital_status", + "key": "person_assist", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "159771AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Marital status", + "hint": "Does the mother have anyone, 18 years or older, who would be able to assist her during her pregnancy?", "values": [ - "Married", - "Co-habiting", - "Single" + "Yes", + "No" ], "openmrs_choice_ids": { - "Married": "5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Co-habiting": "1060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Yes": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "No": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "v_required": { "value": "true", "err": "Please select one option" } } + }, + { + "key": "name_person_assist", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160638AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "Name of close person/relative who lives with her and is 18 years or olders", + "edit_type": "name", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_member_registration_relevance.yml" + } + } + }, + "v_required": { + "value": "true", + "err": "Please enter the family name" + } + }, + { + "key": "phone_person_assist", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "Phone number", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_member_registration_relevance.yml" + } + } + }, + "v_numeric": { + "value": "true", + "err": "Number must be a total of 10 digits in length" + }, + "v_regex": { + "value": "(0[0-9]{9})|\\s*", + "err": "Number must be 10 digits and must start with 0." + }, + "v_required": { + "value": true, + "err": "Please specify the phone number" + } } ] } diff --git a/opensrp-chw/src/ba/assets/rule/anc_member_registration_calculation.yml b/opensrp-chw/src/ba/assets/rule/anc_member_registration_calculation.yml index cf554c2682..2338f68ede 100644 --- a/opensrp-chw/src/ba/assets/rule/anc_member_registration_calculation.yml +++ b/opensrp-chw/src/ba/assets/rule/anc_member_registration_calculation.yml @@ -6,6 +6,14 @@ condition: "true" actions: - "calculation = (helper.getDifferenceDays(step1_last_menstrual_period)-helper.getDifferenceDays(helper.getDateToday())) /7" +--- +name: step1_gest_age_note +description: Gestational age calculated +priority: 1 +condition: "true" +actions: + - "calculation = step1_gest_age + ' weeks'" + --- name: step1_edd description: Edd calculated diff --git a/opensrp-chw/src/ba/assets/rule/anc_member_registration_relevance.yml b/opensrp-chw/src/ba/assets/rule/anc_member_registration_relevance.yml new file mode 100644 index 0000000000..dd97d0df11 --- /dev/null +++ b/opensrp-chw/src/ba/assets/rule/anc_member_registration_relevance.yml @@ -0,0 +1,14 @@ +--- +name: step1_name_person_assist +description: assist person relevance +priority: 1 +condition: "step1_person_assist == 'Yes'" +actions: + - "isRelevant = true" +--- +name: step1_phone_person_assist +description: assist person phone number relevance +priority: 1 +condition: "step1_person_assist == 'Yes'" +actions: + - "isRelevant = true" \ No newline at end of file From 116a935affcbf74cf6c16959a6584128917cb9e0 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Wed, 5 Jun 2019 17:32:05 +0300 Subject: [PATCH 37/50] update registration form --- .../activity/AncMemberProfileActivity.java | 57 ++++++++++++++++++- .../chw/fragment/AncRegisterFragment.java | 3 +- .../chw/model/AncRegisterFragmentModel.java | 1 + .../presenter/AncMemberProfilePresenter.java | 56 ++++++++++++++++++ .../smartregister/chw/util/JsonFormUtils.java | 5 +- 5 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 456b42ca7f..3b43a05aea 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -13,9 +13,14 @@ import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.chw.interactor.FamilyProfileInteractor; +import org.smartregister.chw.model.FamilyProfileModel; +import org.smartregister.chw.presenter.AncMemberProfilePresenter; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.family.contract.FamilyProfileContract; +import org.smartregister.family.domain.FamilyEventClient; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.family.util.Utils; @@ -26,18 +31,25 @@ public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { private static String familyBaseEntityId; private static String familyHead; private static String primaryCareGiver; - + private static String familyName; + private static FamilyProfileContract.Interactor profileInteractor; + private static FamilyProfileContract.Model profileModel; + private AncMemberProfilePresenter ancMemberProfilePresenter; public static void startMe(Activity activity, MemberObject memberObject) { baseEntityId = memberObject.getBaseEntityId(); familyBaseEntityId = memberObject.getFamilyBaseEntityId(); familyHead = memberObject.getFamilyHead(); primaryCareGiver = memberObject.getPrimaryCareGiver(); + familyName = memberObject.getFamilyName(); Intent intent = new Intent(activity, AncMemberProfileActivity.class); intent.putExtra(Constants.ANC_MEMBER_OBJECTS.MEMBER_PROFILE_OBJECT, memberObject); + profileInteractor = new FamilyProfileInteractor(); + profileModel = new FamilyProfileModel(memberObject.getFamilyName()); activity.startActivity(intent); } + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.anc_member_profile_menu, menu); @@ -90,10 +102,10 @@ public void startFormForEdit(Integer title_resource, String formName) { form = org.smartregister.chw.util.JsonFormUtils.getAutoPopulatedJsonEditMemberFormString( (title_resource != null) ? getResources().getString(title_resource) : null, org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER, - this, client, org.smartregister.chw.util.Utils.metadata().familyMemberRegister.updateEventType, "familyName", false); + this, client, org.smartregister.chw.util.Utils.metadata().familyMemberRegister.updateEventType, familyName, false); } else if (formName.equals(org.smartregister.chw.util.Constants.JSON_FORM.ANC_REGISTRATION)) { form = org.smartregister.chw.util.JsonFormUtils.getAutoJsonEditAncFormString( - baseEntityId, this, formName, org.smartregister.chw.util.Constants.EventType.ANC_REGISTRATION, getResources().getString(title_resource)); + baseEntityId, this, formName, org.smartregister.chw.util.Constants.EventType.UPDATE_ANC_REGISTRATION, getResources().getString(title_resource)); } try { @@ -108,13 +120,52 @@ public void startFormActivity(JSONObject jsonForm) { Intent intent = new Intent(this, Utils.metadata().familyMemberFormActivity); intent.putExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON, jsonForm.toString()); + Form form = new Form(); form.setActionBarBackground(R.color.family_actionbar); form.setWizard(false); intent.putExtra(JsonFormConstants.JSON_FORM_KEY.FORM, form); + startActivityForResult(intent, JsonFormUtils.REQUEST_CODE_GET_JSON); } + public AncMemberProfilePresenter ancMemberProfilePresenter() { + ancMemberProfilePresenter = new AncMemberProfilePresenter(this, MEMBER_OBJECT); + return ancMemberProfilePresenter; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + switch (requestCode) { + case org.smartregister.chw.util.Constants.ProfileActivityResults.CHANGE_COMPLETED: + if (resultCode == Activity.RESULT_OK) { + Intent intent = new Intent(AncMemberProfileActivity.this, AncRegisterActivity.class); + intent.putExtras(getIntent().getExtras()); + startActivity(intent); + finish(); + } + break; + case JsonFormUtils.REQUEST_CODE_GET_JSON: + if (resultCode == RESULT_OK) { + try { + String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); + JSONObject form = new JSONObject(jsonString); + if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(Utils.metadata().familyMemberRegister.updateEventType)) { + FamilyEventClient familyEventClient = profileModel.processUpdateMemberRegistration(jsonString, baseEntityId); + profileInteractor.saveRegistration(familyEventClient, jsonString, true, ancMemberProfilePresenter()); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + break; + default: + break; + + } + } + } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index e2baf5b9e8..86c5e31014 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -176,7 +176,8 @@ protected void openProfile(CommonPersonObjectClient client) { client.getCaseId(), client.getColumnmaps().get(DBConstants.KEY.RELATIONAL_ID), client.getColumnmaps().get(DBConstants.KEY.FAMILY_HEAD), - client.getColumnmaps().get(DBConstants.KEY.PRIMARY_CAREGIVER) + client.getColumnmaps().get(DBConstants.KEY.PRIMARY_CAREGIVER), + client.getColumnmaps().get(DBConstants.KEY.FIRST_NAME) ); AncMemberProfileActivity.startMe(getActivity(), memberObject); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java index f18d896456..3e6337f155 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/AncRegisterFragmentModel.java @@ -42,6 +42,7 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.VILLAGE_TOWN); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FAMILY_HEAD); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); + columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FIRST_NAME); return columnList.toArray(new String[columnList.size()]); } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java new file mode 100644 index 0000000000..616721e784 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java @@ -0,0 +1,56 @@ +package org.smartregister.chw.presenter; + +import android.util.Log; + +import org.apache.commons.lang3.tuple.Triple; +import org.smartregister.chw.anc.contract.AncMemberProfileContract; +import org.smartregister.chw.anc.presenter.BaseAncMemberProfilePresenter; +import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.family.contract.FamilyProfileContract; + +public class AncMemberProfilePresenter extends BaseAncMemberProfilePresenter implements FamilyProfileContract.InteractorCallBack { + + private static final String TAG = AncMemberProfilePresenter.class.getCanonicalName(); + + public AncMemberProfilePresenter(AncMemberProfileContract.View view, MemberObject memberObject) { + super(view, memberObject); + } + + public void startFormForEdit(CommonPersonObjectClient commonPersonObject) { +// TODO Implement + } + + @Override + public void refreshProfileTopSection(CommonPersonObjectClient client) { +// TODO Implement + } + + @Override + public void onUniqueIdFetched(Triple triple, String entityId) { +// TODO Implement + Log.d(TAG, "onUniqueIdFetched unimplemented"); + } + + @Override + public void onNoUniqueId() { +// TODO Implement + Log.d(TAG, "onNoUniqueId unimplemented"); + } + + @Override + public void onRegistrationSaved(boolean isEditMode) { +// TODO Implement + Log.d(TAG, "onRegistrationSaved unimplemented"); + } + + public AncMemberProfileContract.View getView() { + if (view != null) { + return view.get(); + } else { + return null; + } + } +} + + diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java index b67ee2cbd9..bd4a9f29a2 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java @@ -888,9 +888,7 @@ public static JSONObject getAutoJsonEditAncFormString(String baseEntityID, Conte try { Event event = getEditAncLatestProperties(baseEntityID); - final List observations = event.getObs(); - JSONObject form = FormUtils.getInstance(context).getFormJson(formName); LocationPickerView lpv = new LocationPickerView(context); lpv.init(); @@ -902,7 +900,6 @@ public static JSONObject getAutoJsonEditAncFormString(String baseEntityID, Conte String lastLocationId = LocationHelper.getInstance().getOpenMrsLocationId(lpv.getSelectedItem()); metadata.put(org.smartregister.family.util.JsonFormUtils.ENCOUNTER_LOCATION, lastLocationId); - JSONObject stepOne = form.getJSONObject(org.smartregister.family.util.JsonFormUtils.STEP1); if (StringUtils.isNotBlank(title)) { @@ -916,7 +913,7 @@ public static JSONObject getAutoJsonEditAncFormString(String baseEntityID, Conte try { for (Obs obs : observations) { if (obs.getFormSubmissionField().equalsIgnoreCase(jsonObject.getString("key"))) { - if (jsonObject.getString("key").equals("marital_status")) + if (jsonObject.getString("type").equals("spinner")) jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, obs.getHumanReadableValues().get(0)); else jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, obs.getValue()); From 2f40d6737a332326a919a2e55710fa14ca9d5385 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Wed, 5 Jun 2019 21:02:52 +0300 Subject: [PATCH 38/50] save anc form edits --- .../chw/activity/AncMemberProfileActivity.java | 11 ++++++++++- .../chw/activity/AncRegisterActivity.java | 9 +++++++++ .../activity/FamilyOtherMemberProfileActivity.java | 4 ++-- .../presenter/FamilyOtherMemberActivityPresenter.java | 1 - 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 3b43a05aea..f22cbe2dac 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -13,9 +13,11 @@ import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.chw.anc.util.Util; import org.smartregister.chw.interactor.FamilyProfileInteractor; import org.smartregister.chw.model.FamilyProfileModel; import org.smartregister.chw.presenter.AncMemberProfilePresenter; +import org.smartregister.clientandeventmodel.Event; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; @@ -23,9 +25,12 @@ import org.smartregister.family.domain.FamilyEventClient; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.family.util.Utils; +import org.smartregister.repository.AllSharedPreferences; import timber.log.Timber; +import static org.smartregister.util.Utils.getAllSharedPreferences; + public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { private static String baseEntityId; private static String familyBaseEntityId; @@ -67,7 +72,7 @@ public boolean onOptionsItemSelected(MenuItem item) { org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER); return true; case R.id.action_anc_registration: - startFormForEdit(R.string.edit_member_form_title, + startFormForEdit(R.string.edit_anc_registration_form_title, org.smartregister.chw.util.Constants.JSON_FORM.ANC_REGISTRATION); return true; case R.id.action_remove_member: @@ -155,6 +160,10 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(Utils.metadata().familyMemberRegister.updateEventType)) { FamilyEventClient familyEventClient = profileModel.processUpdateMemberRegistration(jsonString, baseEntityId); profileInteractor.saveRegistration(familyEventClient, jsonString, true, ancMemberProfilePresenter()); + } else if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(org.smartregister.chw.util.Constants.EventType.UPDATE_ANC_REGISTRATION)) { + AllSharedPreferences allSharedPreferences = getAllSharedPreferences(); + Event baseEvent = org.smartregister.chw.anc.util.JsonFormUtils.processJsonForm(allSharedPreferences, jsonString); + Util.processEvent(allSharedPreferences, baseEvent); } } catch (Exception e) { e.printStackTrace(); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java index ed82e0b3c0..e539ffdea9 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java @@ -21,6 +21,7 @@ import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; +import java.io.Serializable; import java.util.Arrays; import java.util.List; @@ -33,6 +34,14 @@ public static void startAncRegistrationActivity(Activity activity, String member activity.startActivity(intent); } + public static void startEditAncRegistrationActivity(Activity activity, String memberBaseEntityID, JSONObject form) { + Intent intent = new Intent(activity, AncRegisterActivity.class); + intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.BASE_ENTITY_ID, memberBaseEntityID); + intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD_TYPE.REGISTRATION); + intent.putExtra("REGISTRATION_FORM",(Serializable) form); + activity.startActivity(intent); + } + @Override public String getRegistrationForm() { return Constants.JSON_FORM.ANC_REGISTRATION; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java index 82d2d40643..bba84351ce 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java @@ -187,11 +187,11 @@ public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return true; case R.id.action_anc_registration: - startFormForEdit(R.string.edit_member_form_title); +// startFormForEdit(R.string.edit_member_form_title); AncRegisterActivity.startAncRegistrationActivity(FamilyOtherMemberProfileActivity.this, baseEntityId); return true; case R.id.action_registration: - startFormForEdit(R.string.edit_member_form_title); + startFormForEdit(R.string.anc_registration_form_title); return true; case R.id.action_remove_member: IndividualProfileRemoveActivity.startIndividualProfileActivity(FamilyOtherMemberProfileActivity.this, commonPersonObject, familyBaseEntityId, familyHead, primaryCaregiver); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/FamilyOtherMemberActivityPresenter.java b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/FamilyOtherMemberActivityPresenter.java index 1c61b7988a..f255fb7005 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/FamilyOtherMemberActivityPresenter.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/FamilyOtherMemberActivityPresenter.java @@ -95,7 +95,6 @@ public void updateFamilyMember(String jsonString) { if (familyEventClient == null) { return; } - profileInteractor.saveRegistration(familyEventClient, jsonString, true, this); } catch (Exception e) { getView().hideProgressDialog(); From fe8c69a7702a47706783c6b181b1b8b483bfffde Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Wed, 5 Jun 2019 21:03:44 +0300 Subject: [PATCH 39/50] add string resources for anc form --- opensrp-chw/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index a6c7fdfbd7..625f54d5e4 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -173,6 +173,7 @@ No vaccines were done Edit Family Member Edit ANC Registration + ANC Registration LAST VISIT Edit Child Under 5 From 0510433da03a492a22f8da1120e1825ca256d915 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 11:24:25 +0300 Subject: [PATCH 40/50] update wcaro forms --- .../json.form/anc_member_registration.json | 13 ++----- .../smartregister/chw/util/JsonFormUtils.java | 5 +++ .../json.form/anc_member_registration.json | 35 +++++++++++++------ .../anc_member_registration_calculation.yml | 8 +++++ .../anc_member_registration_relevance.yml | 14 ++++++++ 5 files changed, 54 insertions(+), 21 deletions(-) create mode 100644 opensrp-chw/src/wcaro/assets/rule/anc_member_registration_relevance.yml diff --git a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json index c50590e32e..07df5e188b 100644 --- a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json +++ b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json @@ -55,9 +55,9 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "label_info_title": "LMP", - "label_info_text": "First day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month.", "hint": "Last Menstrual Period (LMP)", + "label_info_title": "LMP", + "label_info_text": "LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month.", "expanded": false, "duration": { "label": "lmp" @@ -132,7 +132,7 @@ }, "v_min": { "value": "0", - "err": "Age must be equal or greater than 0" + "err": "Number must be equal or greater than 0" } }, { @@ -232,13 +232,6 @@ "v_required": { "value": false, "err": "Please specify the phone number" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "family_member_relevance.yml" - } - } } }, { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java index bd4a9f29a2..c98a53d63d 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java @@ -123,6 +123,7 @@ public static JSONObject getOnsIllnessFormAsJson(JSONObject form, String baseEnt return form; } + public static Pair processBirthAndIllnessForm(AllSharedPreferences allSharedPreferences, String jsonString) { try { @@ -909,6 +910,10 @@ public static JSONObject getAutoJsonEditAncFormString(String baseEntityID, Conte for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); + if (jsonObject.getString(JsonFormUtils.KEY).equalsIgnoreCase("last_menstrual_period") || + jsonObject.getString(JsonFormUtils.KEY).equalsIgnoreCase("delivery_method")) { + jsonObject.put(JsonFormUtils.READ_ONLY, true); + } try { for (Obs obs : observations) { diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json b/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json index d2f76935f8..af8868f995 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json @@ -56,6 +56,8 @@ "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", "hint": "Last Menstrual Period (LMP)", + "label_info_title": "LMP", + "label_info_text": "LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month.", "expanded": false, "duration": { "label": "lmp" @@ -66,6 +68,22 @@ "err": "LMP required" } }, + { + "key": "gest_age_note", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "Gestational Age (GA)", + "read_only": true, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_member_registration_calculation.yml" + } + } + } + }, { "key": "gest_age", "openmrs_entity_parent": "", @@ -85,7 +103,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", + "type": "edit_text", + "hint": "Expected Date of Delivery (EDD)", + "read_only": true, "calculation": { "rules-engine": { "ex-rules": { @@ -97,8 +117,8 @@ { "key": "no_prev_preg", "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "no_prev_preg", "type": "edit_text", "edit_type": "number", "hint": "No. of previous pregnancies", @@ -147,7 +167,7 @@ }, "v_min": { "value": "0", - "err": "Age must be equal or greater than 0" + "err": "Number must be equal or greater than 0" } }, { @@ -168,13 +188,6 @@ "v_required": { "value": false, "err": "Please specify the phone number" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "family_member_relevance.yml" - } - } } }, { diff --git a/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_calculation.yml b/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_calculation.yml index cf554c2682..2338f68ede 100644 --- a/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_calculation.yml +++ b/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_calculation.yml @@ -6,6 +6,14 @@ condition: "true" actions: - "calculation = (helper.getDifferenceDays(step1_last_menstrual_period)-helper.getDifferenceDays(helper.getDateToday())) /7" +--- +name: step1_gest_age_note +description: Gestational age calculated +priority: 1 +condition: "true" +actions: + - "calculation = step1_gest_age + ' weeks'" + --- name: step1_edd description: Edd calculated diff --git a/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_relevance.yml b/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_relevance.yml new file mode 100644 index 0000000000..dd97d0df11 --- /dev/null +++ b/opensrp-chw/src/wcaro/assets/rule/anc_member_registration_relevance.yml @@ -0,0 +1,14 @@ +--- +name: step1_name_person_assist +description: assist person relevance +priority: 1 +condition: "step1_person_assist == 'Yes'" +actions: + - "isRelevant = true" +--- +name: step1_phone_person_assist +description: assist person phone number relevance +priority: 1 +condition: "step1_person_assist == 'Yes'" +actions: + - "isRelevant = true" \ No newline at end of file From 3633f94749b23f2e291d557730c80b866237a23a Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 14:50:48 +0300 Subject: [PATCH 41/50] fix reporting library failing queries --- .../chw/application/ChwApplication.java | 1 - .../fragment/JobAidsDashboardFragment.java | 9 ++++--- .../chw/job/ChwIndicatorGeneratingJobFlv.java | 26 ++++++++++--------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/application/ChwApplication.java b/opensrp-chw/src/main/java/org/smartregister/chw/application/ChwApplication.java index bf74fffb45..c7a864c80b 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/application/ChwApplication.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/application/ChwApplication.java @@ -174,7 +174,6 @@ public void onCreate() { // Init Reporting library ReportingLibrary.init(context, getRepository(), null, BuildConfig.VERSION_CODE, BuildConfig.DATABASE_VERSION); - ReportingLibrary.getInstance().setDateFormat("yyyyMMdd"); //init Job Manager JobManager.create(this).addJobCreator(new ChwJobCreator()); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java index e4f431fca2..a4446a0dad 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java @@ -245,10 +245,13 @@ private void updateTotalTally(Map indicatorTallyMap, Map if (indicatorKey.equals(DashboardUtil.countOfChildren0_5ExclusivelyBreastfeeding) || indicatorKey.equals(DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding)) { Date date = indicatorTallyMap.get(indicatorKey).getCreatedAt(); Date currentDate = currentIndicatorValueMap.get(indicatorKey).getCreatedAt(); - if (date.after(currentDate)) { - currentIndicatorValueMap.get(indicatorKey).setCount(count); - currentIndicatorValueMap.get(indicatorKey).setCreatedAt(date); + if (currentDate != null) { + if (date.before(currentDate)) { + date = currentDate; + } } + currentIndicatorValueMap.get(indicatorKey).setCreatedAt(date); + currentIndicatorValueMap.get(indicatorKey).setCount(count); return; } currentValue = currentIndicatorValueMap.get(indicatorKey).getCount(); diff --git a/opensrp-chw/src/wcaro/java/org/smartregister/chw/job/ChwIndicatorGeneratingJobFlv.java b/opensrp-chw/src/wcaro/java/org/smartregister/chw/job/ChwIndicatorGeneratingJobFlv.java index e0f492add1..a7d2e64c2f 100644 --- a/opensrp-chw/src/wcaro/java/org/smartregister/chw/job/ChwIndicatorGeneratingJobFlv.java +++ b/opensrp-chw/src/wcaro/java/org/smartregister/chw/job/ChwIndicatorGeneratingJobFlv.java @@ -78,18 +78,20 @@ private void saveHomeVisitInfo(HashMap serviceWrapperMap if (serviceWrapperMap != null) { for (String key : serviceWrapperMap.keySet()) { ServiceWrapper serviceWrapper = serviceWrapperMap.get(key); - homeVisitIndicatorInfo = new HomeVisitIndicatorInfo(); - homeVisitIndicatorInfo.setBaseEntityId(homeVisit.getBaseEntityId()); - homeVisitIndicatorInfo.setLastHomeVisitDate(homeVisit.getDate()); - homeVisitIndicatorInfo.setHomeVisitId(homeVisit.getId()); - homeVisitIndicatorInfo.setService(serviceWrapper.getDefaultName()); - homeVisitIndicatorInfo.setServiceDate(parseDate(serviceWrapper.getVaccineDateAsString(), vaccineDateFormat)); - homeVisitIndicatorInfo.setServiceUpdateDate(parseDate(serviceWrapper.getUpdatedVaccineDateAsString(), vaccineDateFormat)); - homeVisitIndicatorInfo.setServiceGiven(serviceGiven); - homeVisitIndicatorInfo.setValue(serviceWrapper.getValue()); - homeVisitIndicatorInfo.setUpdatedAt(new Date(homeVisit.getUpdatedAt())); - homeVisitIndicatorInfo.setCreatedAt(homeVisit.getCreatedAt()); - indicatorInfoRepo.addHomeVisitInfo(homeVisitIndicatorInfo); + if (serviceWrapper.getDefaultName() != null) { + homeVisitIndicatorInfo = new HomeVisitIndicatorInfo(); + homeVisitIndicatorInfo.setBaseEntityId(homeVisit.getBaseEntityId()); + homeVisitIndicatorInfo.setLastHomeVisitDate(homeVisit.getDate()); + homeVisitIndicatorInfo.setHomeVisitId(homeVisit.getId()); + homeVisitIndicatorInfo.setService(serviceWrapper.getDefaultName()); + homeVisitIndicatorInfo.setServiceDate(parseDate(serviceWrapper.getVaccineDateAsString(), vaccineDateFormat)); + homeVisitIndicatorInfo.setServiceUpdateDate(parseDate(serviceWrapper.getUpdatedVaccineDateAsString(), vaccineDateFormat)); + homeVisitIndicatorInfo.setServiceGiven(serviceGiven); + homeVisitIndicatorInfo.setValue(serviceWrapper.getValue()); + homeVisitIndicatorInfo.setUpdatedAt(new Date(homeVisit.getUpdatedAt())); + homeVisitIndicatorInfo.setCreatedAt(homeVisit.getCreatedAt()); + indicatorInfoRepo.addHomeVisitInfo(homeVisitIndicatorInfo); + } } } } From 79851620ffe905ff27750373efed6a2ba833253f Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 14:51:36 +0300 Subject: [PATCH 42/50] update indicator definitions --- opensrp-chw/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index e266b23797..33e9f530c9 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -218,8 +218,8 @@ Children (12–59 months) who were not dewormed in the last 6 months Children (6–59 months) who received Vitamin A in the last 6 months Children (6–59 months) who did not receive Vitamin A in the last 6 months - Children (0–5 months) exclusively breastfeeding Children (0–5 months) not exclusively breastfeeding + ```Children (0–5 months) exclusively breastfeeding Yes No Powered by From baf9c64723cda83b1e8da20f0da068c733a7a1ee Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 15:52:55 +0300 Subject: [PATCH 43/50] update reprting queries --- .../assets/config/indicator-definitions.yml | 121 ++---------------- 1 file changed, 9 insertions(+), 112 deletions(-) diff --git a/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml b/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml index 71da7cfa8b..4aac548f21 100644 --- a/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml +++ b/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml @@ -2,144 +2,53 @@ indicators: - key: "CHW_001" description: "Total U5 children" indicatorQuery: "select count(distinct baseEntityId) from event ev inner join ec_child ch where ev.eventType = 'Child Registration' and ch.base_entity_id = ev.baseEntityId - and substr(eventDate, 31 , 4) || (case substr(eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(eventDate, 9 , 2) = '%s' and ev.baseEntityId + and ev.eventDate = '%s' and ev.baseEntityId in (select distinct ec_child.base_entity_id from ec_child where ifnull(ec_child.dod,'') = '' and ifnull(ec_child.date_removed,'') = '') and date(ch.dob) > date('now', '-60 month')" - key: "CHW_002" description: "Children (0-11 months) who died in the last year" indicatorQuery: "select count(distinct event.baseEntityId) from event where eventType = 'Remove Child Under 5' - and substr(eventDate, 31 , 4) || (case substr(eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(eventDate, 9 , 2) = '%s' + and eventDate = '%s' and event.baseEntityId in (select ec_child.base_entity_id from ec_child where date(ec_child.dob) >= date('now', '-11 month') and date(ec_child.dod) >= date('now', '-12 month'))" - key: "CHW_003" description: "Children (12-59 months) who died in the last year" indicatorQuery: "select count(distinct event.baseEntityId) from event where eventType = 'Remove Child Under 5' - and substr(eventDate, 31 , 4) || (case substr(eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(eventDate, 9 , 2) = '%s' + and eventDate = '%s' and event.baseEntityId in (select ec_child.base_entity_id from ec_child where date(ec_child.dob) >= date('now', '-60 month') and date(ec_child.dob) < date('now', '-11 month') and date(ec_child.dod) >= date('now', '-12 month'))" - key: "CHW_004" description: "Children (0-59 months) with a birth certificate" indicatorQuery: "select count(distinct event.baseEntityId) from event where eventType = 'Birth Certification' - and substr(eventDate, 31 , 4) || (case substr(eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(eventDate, 9 , 2) = '%s' + and eventDate = '%s' and event.baseEntityId in (select distinct ec_child.base_entity_id from ec_child where ec_child.birth_cert = 'Yes' and date(ec_child.dob) >= date('now', '-60 month') and ifnull(ec_child.dod,'') = '' and ifnull(ec_child.date_removed,'') = '')" - key: "CHW_005" description: "Children (0-59 months) without a birth certificate" indicatorQuery: "select count(distinct event.baseEntityId) from event where eventType = 'Birth Certification' - and substr(eventDate, 31 , 4) || (case substr(eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(eventDate, 9 , 2) = '%s' and event.baseEntityId in (select distinct ec_child.base_entity_id from ec_child where ec_child.birth_cert = 'No' + and eventDate = '%s' and event.baseEntityId in (select distinct ec_child.base_entity_id from ec_child where ec_child.birth_cert = 'No' and date(ec_child.dob) >= date('now', '-60 month') and ifnull(ec_child.dod,'') = '' and ifnull(ec_child.date_removed,'') = '')" - key: "CHW_006" description: "Children (12-59 months) who were dewormed in the last 6 months" indicatorQuery: "select count(distinct ev.baseEntityId) from event ev inner join ec_child ec where ev.baseEntityId = ec.base_entity_id and date(ec.dob) > date('now', '-60 month') and date(ec.dob) <= date('now', '-11 month') - and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and - substr(ev.eventDate, 31 , 4) || (case substr(ev.eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(ev.eventDate, 9 , 2) = '%s' and ev.eventType = 'Child Home Visit' + and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and ev.eventDate = '%s' and ev.eventType = 'Child Home Visit' and ec.base_entity_id in (select home_visit_indicator_info.base_entity_id from home_visit_indicator_info where home_visit_indicator_info.service like 'Deworming%%' and home_visit_indicator_info.service_given = 1 and (date(home_visit_indicator_info.created_at >= date('now', '-6 month')) or date(home_visit_indicator_info.updated_at >= date('now', '-6 month'))))" - key: "CHW_007" description: "Children (12-59 months) who were not dewormed in the last 6 months" indicatorQuery: "select count(distinct ev.baseEntityId) from event ev inner join ec_child ec where ev.baseEntityId = ec.base_entity_id and date(ec.dob) > date('now', '-60 month') and date(ec.dob) <= date('now', '-11 month') - and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and - substr(ev.eventDate, 31 , 4) || (case substr(ev.eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(ev.eventDate, 9 , 2) = '%s' and ev.eventType = 'Child Home Visit' + and ev.eventDate = '%s' and ev.eventType = 'Child Home Visit' and ec.base_entity_id in (select home_visit_indicator_info.base_entity_id from home_visit_indicator_info where home_visit_indicator_info.service like 'Deworming%%' and home_visit_indicator_info.service_given = 0 and (date(home_visit_indicator_info.created_at >= date('now', '-6 month')) or date(home_visit_indicator_info.updated_at >= date('now', '-6 month'))))" - key: "CHW_008" description: "Children (6-59 months) who received Vitamin A in the last 6 months" indicatorQuery: "select count(ev.baseEntityId) from event ev inner join ec_child ec where ev.baseEntityId = ec.base_entity_id and date(ec.dob) > date('now', '-60 month') - and date(ec.dob) <= date('now', '-6 month') and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and - substr(ev.eventDate, 31 , 4) || (case substr(ev.eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(ev.eventDate, 9 , 2) = '%s' + and date(ec.dob) <= date('now', '-6 month') and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and ev.eventDate = '%s' and ev.eventType = 'Child Home Visit' and ec.base_entity_id in (select home_visit_indicator_info.base_entity_id from home_visit_indicator_info where home_visit_indicator_info.service like 'Vitamin A%%' and home_visit_indicator_info.service_given = 1 and (date(home_visit_indicator_info.created_at >= date('now', '-6 month')) or date(home_visit_indicator_info.updated_at >= date('now', '-6 month'))))" @@ -147,19 +56,7 @@ indicators: - key: "CHW_009" description: "Children (6-59 months) who did not receive Vitamin A in the last 6 months" indicatorQuery: "select count(ev.baseEntityId) from event ev inner join ec_child ec where ev.baseEntityId = ec.base_entity_id and date(ec.dob) > date('now', '-60 month') - and date(ec.dob) <= date('now', '-6 month') and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and - substr(ev.eventDate, 31 , 4) || (case substr(ev.eventDate, 5,3) when 'Jan' then '01' - when 'Feb' then '02' - when 'Mar' then '03' - when 'Apr' then '04' - when 'May' then '05' - when 'Jun' then '06' - when 'Jul' then '07' - when 'Aug' then '08' - when 'Sep' then '09' - when 'Oct' then '10' - when 'Nov' then '11' - when 'Dec' then '12' end) || substr(ev.eventDate, 9 , 2) = '%s' and ev.eventType = 'Child Home Visit' + and date(ec.dob) <= date('now', '-6 month') and ifnull(ec.dod,'') = '' and ifnull(ec.date_removed,'') = '' and ev.eventDate = '%s' and ev.eventType = 'Child Home Visit' and ec.base_entity_id in (select home_visit_indicator_info.base_entity_id from home_visit_indicator_info where home_visit_indicator_info.service like 'Vitamin A%%' and home_visit_indicator_info.service_given = 0 and (date(home_visit_indicator_info.created_at >= date('now', '-6 month')) or date(home_visit_indicator_info.updated_at >= date('now', '-6 month'))))" From 6964177bcf667b00e0c7c731ac6380bb33d8a1e4 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 19:47:33 +0300 Subject: [PATCH 44/50] adding more indicator reports --- .../main/java/org/smartregister/chw/util/DashboardUtil.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/DashboardUtil.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/DashboardUtil.java index c2541fa772..be90c2b283 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/DashboardUtil.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/DashboardUtil.java @@ -21,10 +21,12 @@ public class DashboardUtil { public final static String countOfChildren0_59WithNoBirthCert = "CHW_005"; public final static String countOfChildren12_59Dewormed = "CHW_006"; public final static String countOfChildren12_59NotDewormed = "CHW_007"; - public final static String countOfChildren6_59VitaminRecievedA = "CHW_008"; + public final static String countOfChildren6_59VitaminReceivedA = "CHW_008"; public final static String countOfChildren6_59VitaminNotReceivedA = "CHW_009"; public final static String countOfChildren0_5ExclusivelyBreastfeeding = "CHW_010"; public final static String countOfChildren0_5NotExclusivelyBreastfeeding = "CHW_011"; + public final static String countOfChildren_6_23UptoDateMNP = "CHW_012"; + public final static String countOfChildren_6_23OverdueMNP = "CHW_013"; // Color definitions for the chart slices. This could essentially be defined in colors.xml public static final int YES_GREEN_SLICE_COLOR = Color.parseColor("#99CC00"); From 4ec7e0fa7c5ae352bcd72840faed08b69c4d310b Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 19:48:37 +0300 Subject: [PATCH 45/50] pre-populate anc registration phone number --- .../chw/activity/AncRegisterActivity.java | 44 +++++++----- .../FamilyOtherMemberProfileActivity.java | 11 +-- .../fragment/JobAidsDashboardFragment.java | 71 +++++++++++++------ .../chw/model/FamilyProfileMemberModel.java | 3 +- .../chw/util/ChwDBConstants.java | 1 + .../org/smartregister/chw/util/Constants.java | 2 +- 6 files changed, 84 insertions(+), 48 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java index e539ffdea9..21cb685742 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java @@ -8,6 +8,8 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; +import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.smartregister.chw.BuildConfig; import org.smartregister.chw.R; @@ -21,27 +23,20 @@ import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; -import java.io.Serializable; import java.util.Arrays; import java.util.List; public class AncRegisterActivity extends BaseAncRegisterActivity { + private static String phone_number; - public static void startAncRegistrationActivity(Activity activity, String memberBaseEntityID) { + public static void startAncRegistrationActivity(Activity activity, String memberBaseEntityID, String phoneNumber) { Intent intent = new Intent(activity, AncRegisterActivity.class); intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.BASE_ENTITY_ID, memberBaseEntityID); + phone_number = phoneNumber; intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD_TYPE.REGISTRATION); activity.startActivity(intent); } - public static void startEditAncRegistrationActivity(Activity activity, String memberBaseEntityID, JSONObject form) { - Intent intent = new Intent(activity, AncRegisterActivity.class); - intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.BASE_ENTITY_ID, memberBaseEntityID); - intent.putExtra(org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.anc.util.Constants.ACTIVITY_PAYLOAD_TYPE.REGISTRATION); - intent.putExtra("REGISTRATION_FORM",(Serializable) form); - activity.startActivity(intent); - } - @Override public String getRegistrationForm() { return Constants.JSON_FORM.ANC_REGISTRATION; @@ -99,16 +94,29 @@ public List getViewIdentifiers() { public void startFormActivity(JSONObject jsonForm) { - Intent intent = new Intent(this, Utils.metadata().familyMemberFormActivity); - intent.putExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON, jsonForm.toString()); - - Form form = new Form(); - form.setActionBarBackground(R.color.family_actionbar); - form.setWizard(false); - intent.putExtra(JsonFormConstants.JSON_FORM_KEY.FORM, form); + try { + JSONObject stepOne = jsonForm.getJSONObject(JsonFormUtils.STEP1); + JSONArray jsonArray = stepOne.getJSONArray(org.smartregister.family.util.JsonFormUtils.FIELDS); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + if (jsonObject.getString(org.smartregister.chw.util.JsonFormUtils.KEY).equalsIgnoreCase(org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER)) { + jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, phone_number); + } + } + Intent intent = new Intent(this, Utils.metadata().familyMemberFormActivity); + intent.putExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON, jsonForm.toString()); + + Form form = new Form(); + form.setActionBarBackground(R.color.family_actionbar); + form.setWizard(false); + intent.putExtra(JsonFormConstants.JSON_FORM_KEY.FORM, form); + + startActivityForResult(intent, JsonFormUtils.REQUEST_CODE_GET_JSON); + } catch (JSONException e) { + e.printStackTrace(); + } - startActivityForResult(intent, JsonFormUtils.REQUEST_CODE_GET_JSON); } @Override diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java index bba84351ce..c876ef2768 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyOtherMemberProfileActivity.java @@ -54,6 +54,7 @@ public class FamilyOtherMemberProfileActivity extends BaseFamilyOtherMemberProfi private String primaryCaregiver; private String villageTown; private String familyName; + private String PhoneNumber; private CommonPersonObjectClient commonPersonObject; private FamilyMemberFloatingMenu familyFloatingMenu; private TextView textViewFamilyHas; @@ -93,6 +94,7 @@ protected void initializePresenter() { primaryCaregiver = getIntent().getStringExtra(Constants.INTENT_KEY.PRIMARY_CAREGIVER); villageTown = getIntent().getStringExtra(Constants.INTENT_KEY.VILLAGE_TOWN); familyName = getIntent().getStringExtra(Constants.INTENT_KEY.FAMILY_NAME); + PhoneNumber = commonPersonObject.getColumnmaps().get(org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER); presenter = new FamilyOtherMemberActivityPresenter(this, new BaseFamilyOtherMemberProfileActivityModel(), null, familyBaseEntityId, baseEntityId, familyHead, primaryCaregiver, villageTown, familyName); onClickFloatingMenu = flavor.getOnClickFloatingMenu(this, familyBaseEntityId); @@ -187,8 +189,7 @@ public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return true; case R.id.action_anc_registration: -// startFormForEdit(R.string.edit_member_form_title); - AncRegisterActivity.startAncRegistrationActivity(FamilyOtherMemberProfileActivity.this, baseEntityId); + AncRegisterActivity.startAncRegistrationActivity(FamilyOtherMemberProfileActivity.this, baseEntityId, PhoneNumber); return true; case R.id.action_registration: startFormForEdit(R.string.anc_registration_form_title); @@ -248,9 +249,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case org.smartregister.chw.util.Constants.ProfileActivityResults.CHANGE_COMPLETED: if (resultCode == Activity.RESULT_OK) { - //TODO need to refresh FamilyProfileActivity -// Intent intent = getIntent(); -// setResult(RESULT_OK, intent); Intent intent = new Intent(FamilyOtherMemberProfileActivity.this, FamilyProfileActivity.class); intent.putExtras(getIntent().getExtras()); startActivity(intent); @@ -261,7 +259,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); - JSONObject form = new JSONObject(jsonString); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(Utils.metadata().familyMemberRegister.updateEventType)) { presenter().updateFamilyMember(jsonString); @@ -273,7 +270,6 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { break; default: break; - } } @@ -309,7 +305,6 @@ private void refreshList(Fragment fragment) { } } - @Override public void onClick(View view) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java index a4446a0dad..acff267ca3 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/JobAidsDashboardFragment.java @@ -102,6 +102,8 @@ private void buildVisualisations() { Map children_6_59_NotReceivedVitaminA = new HashMap<>(); Map children_0_5_exclusiveBreastfeeding = new HashMap<>(); Map children_0_5_NotExclusiveBreastfeeding = new HashMap<>(); + Map children_6_23_UpToDateMnp = new HashMap<>(); + Map children_6_23_OverdueMnp = new HashMap<>(); for (Map indicatorTallyMap : indicatorTallies) { for (String key : indicatorTallyMap.keySet()) { @@ -127,17 +129,23 @@ private void buildVisualisations() { case DashboardUtil.countOfChildren12_59NotDewormed: updateTotalTally(indicatorTallyMap, children_12_59_Not_DewormedMap, DashboardUtil.countOfChildren12_59NotDewormed); break; - case DashboardUtil.countOfChildren6_59VitaminRecievedA: - updateTotalTally(indicatorTallyMap, children_6_59_ReceivedVitaminA, DashboardUtil.countOfChildren6_59VitaminRecievedA); + case DashboardUtil.countOfChildren6_59VitaminReceivedA: + updateTotalTally(indicatorTallyMap, children_6_59_ReceivedVitaminA, DashboardUtil.countOfChildren6_59VitaminReceivedA); break; case DashboardUtil.countOfChildren6_59VitaminNotReceivedA: updateTotalTally(indicatorTallyMap, children_6_59_NotReceivedVitaminA, DashboardUtil.countOfChildren6_59VitaminNotReceivedA); break; case DashboardUtil.countOfChildren0_5ExclusivelyBreastfeeding: - updateTotalTally(indicatorTallyMap, children_0_5_exclusiveBreastfeeding, DashboardUtil.countOfChildren0_5ExclusivelyBreastfeeding); + updateLatestCount(indicatorTallyMap, children_0_5_exclusiveBreastfeeding, DashboardUtil.countOfChildren0_5ExclusivelyBreastfeeding); break; case DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding: - updateTotalTally(indicatorTallyMap, children_0_5_NotExclusiveBreastfeeding, DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding); + updateLatestCount(indicatorTallyMap, children_0_5_NotExclusiveBreastfeeding, DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding); + break; + case DashboardUtil.countOfChildren_6_23UptoDateMNP: + updateLatestCount(indicatorTallyMap, children_6_23_UpToDateMnp, DashboardUtil.countOfChildren_6_23UptoDateMNP); + break; + case DashboardUtil.countOfChildren_6_23OverdueMNP: + updateLatestCount(indicatorTallyMap, children_6_23_OverdueMnp, DashboardUtil.countOfChildren_6_23OverdueMNP); break; default: Log.e(JobAidsDashboardFragment.class.getCanonicalName(), "The Indicator with the Key " + key + " has not been handled"); @@ -170,7 +178,7 @@ private void buildVisualisations() { DashboardUtil.countOfChildren12_59NotDewormed, R.string.children_12_59_months_dewormed); View children_12_59_months_dewormed = getIndicatorView(pieChartIndicatorVisualizationData, pieChartFactory); - pieChartIndicatorVisualizationData = getPieChartVisualization(children_6_59_ReceivedVitaminA, children_6_59_NotReceivedVitaminA, DashboardUtil.countOfChildren6_59VitaminRecievedA, + pieChartIndicatorVisualizationData = getPieChartVisualization(children_6_59_ReceivedVitaminA, children_6_59_NotReceivedVitaminA, DashboardUtil.countOfChildren6_59VitaminReceivedA, DashboardUtil.countOfChildren6_59VitaminNotReceivedA, R.string.children_6_59_months_received_vitamin_A); View children_6_59_months_received_vitamin_A = getIndicatorView(pieChartIndicatorVisualizationData, pieChartFactory); @@ -178,6 +186,11 @@ private void buildVisualisations() { DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding, R.string.children_0_5_months_exclusively_breastfeeding); View children_0_5__months_exclusive_breastfeeding = getIndicatorView(pieChartIndicatorVisualizationData, pieChartFactory); + pieChartIndicatorVisualizationData = getPieChartVisualization(children_6_23_UpToDateMnp, children_6_23_OverdueMnp, DashboardUtil.countOfChildren_6_23UptoDateMNP, + DashboardUtil.countOfChildren_6_23OverdueMNP, R.string.children_6_23_months_upto_date_mnp); + + View children_6_23_months_up_to_date_mnp = getIndicatorView(pieChartIndicatorVisualizationData, pieChartFactory); + visualizationsViewGroup.addView(childrenU5View); visualizationsViewGroup.addView(deceased_0_11_View); visualizationsViewGroup.addView(deceased_12_59_View); @@ -185,6 +198,7 @@ private void buildVisualisations() { visualizationsViewGroup.addView(children_12_59_months_dewormed); visualizationsViewGroup.addView(children_6_59_months_received_vitamin_A); visualizationsViewGroup.addView(children_0_5__months_exclusive_breastfeeding); + visualizationsViewGroup.addView(children_6_23_months_up_to_date_mnp); progressBar.setVisibility(View.GONE); } @@ -231,6 +245,13 @@ private PieChartIndicatorVisualization getPieChartVisualization(Map indicatorTallyMap, Map currentIndicatorValueMap, String indicatorKey) { int count; int currentValue; @@ -239,23 +260,33 @@ private void updateTotalTally(Map indicatorTallyMap, Map currentIndicatorValueMap.put(indicatorKey, new IndicatorTally(null, count, indicatorKey, null)); return; } + currentValue = currentIndicatorValueMap.get(indicatorKey).getCount(); + currentIndicatorValueMap.get(indicatorKey).setCount(count + currentValue); + } + /** + * Update Indicator tally with latest computed indicator count value + * + * @param indicatorTallyMap contains all indicators + * @param currentIndicatorValueMap contains latest indicator count + * @param indicatorKey is the key for the indicator of interest + */ + private void updateLatestCount(Map indicatorTallyMap, Map currentIndicatorValueMap, String indicatorKey) { + int count; + count = indicatorTallyMap.get(indicatorKey).getCount(); + if (currentIndicatorValueMap.get(indicatorKey) == null) { + currentIndicatorValueMap.put(indicatorKey, new IndicatorTally(null, count, indicatorKey, null)); + return; + } // Count of children exclusively breastfeeding is not aggregated // We're only interested in displaying the latest count - if (indicatorKey.equals(DashboardUtil.countOfChildren0_5ExclusivelyBreastfeeding) || indicatorKey.equals(DashboardUtil.countOfChildren0_5NotExclusivelyBreastfeeding)) { - Date date = indicatorTallyMap.get(indicatorKey).getCreatedAt(); - Date currentDate = currentIndicatorValueMap.get(indicatorKey).getCreatedAt(); - if (currentDate != null) { - if (date.before(currentDate)) { - date = currentDate; - } - } - currentIndicatorValueMap.get(indicatorKey).setCreatedAt(date); - currentIndicatorValueMap.get(indicatorKey).setCount(count); - return; + Date date = indicatorTallyMap.get(indicatorKey).getCreatedAt(); + Date currentDate = currentIndicatorValueMap.get(indicatorKey).getCreatedAt(); + if (currentDate != null && date.before(currentDate)) { + date = currentDate; } - currentValue = currentIndicatorValueMap.get(indicatorKey).getCount(); - currentIndicatorValueMap.get(indicatorKey).setCount(count + currentValue); + currentIndicatorValueMap.get(indicatorKey).setCreatedAt(date); + currentIndicatorValueMap.get(indicatorKey).setCount(count); } @NonNull @@ -272,7 +303,7 @@ public void onLoadFinished(@NonNull Loader>> lo @Override public void onLoaderReset(@NonNull Loader>> loader) { - // Clean up or release resources + // Clean up or release resources } @Override @@ -301,4 +332,4 @@ public void handleOnSelectEvent(PieChartSlice sliceValue) { } } -} +} \ No newline at end of file diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/FamilyProfileMemberModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/FamilyProfileMemberModel.java index bee92b1294..393de7409a 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/FamilyProfileMemberModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/FamilyProfileMemberModel.java @@ -10,7 +10,8 @@ public class FamilyProfileMemberModel extends BaseFamilyProfileMemberModel { protected String[] mainColumns(String tableName) { String[] columns = super.mainColumns(tableName); String[] newColumns = new String[]{ - tableName + "." + ChildDBConstants.KEY.ENTITY_TYPE + tableName + "." + ChildDBConstants.KEY.ENTITY_TYPE, + tableName + "." + org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER }; return ArrayUtils.addAll(columns, newColumns); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java index 8658b9511c..6526133a3a 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/ChwDBConstants.java @@ -17,5 +17,6 @@ public interface ChwDBConstants { String WRA = "wra"; String LMP = "last_menstrual_period"; String VISIT_NOT_DONE = "visit_not_done"; + String PHONE_NUMBER = "phone_number"; } \ No newline at end of file diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java index c183e216af..4d175b7a10 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java @@ -116,7 +116,7 @@ public static final class DrawerMenu { public static final String LD = "L&D"; public static final String PNC = "PNC"; public static final String FAMILY_PLANNING = "Family Planning"; - public static final String MALARIA = "MALARIA"; + public static final String MALARIA = "Malaria"; } public static final class RULE_FILE { From be11cbe47bc9984d6e191aa059dd88d54d7be292 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 19:49:45 +0300 Subject: [PATCH 46/50] update anc member registration form --- .../json.form/anc_member_registration.json | 42 ++++++++++--------- .../json.form/anc_member_registration.json | 10 ++--- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json index 07df5e188b..ddca8c5a76 100644 --- a/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json +++ b/opensrp-chw/src/ba/assets/json.form/anc_member_registration.json @@ -157,17 +157,17 @@ "openmrs_data_type": "select one", "type": "spinner", "hint": "Have you delivered your child(ren) vaginally or by ceasarian section?", + "v_required": { + "value": "true", + "err": "Please select one option" + }, "values": [ "Vaginally", "Caesarian section" ], "openmrs_choice_ids": { "Vaginally": "1170AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Caesarian section": "1171AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "v_required": { - "value": "true", - "err": "Please select one option" - } + "Caesarian section": "1171AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } }, { @@ -199,6 +199,10 @@ "openmrs_data_type": "select one", "type": "spinner", "hint": "Marital status", + "v_required": { + "value": "true", + "err": "Please select one option" + }, "values": [ "Married", "Co-habiting", @@ -207,11 +211,7 @@ "openmrs_choice_ids": { "Married": "5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "Co-habiting": "1060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "v_required": { - "value": "true", - "err": "Please select one option" - } + "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } }, { @@ -221,6 +221,10 @@ "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", "hint": "Phone number", + "v_required": { + "value": true, + "err": "Please specify the phone number" + }, "v_numeric": { "value": "true", "err": "Number must be a total of 10 digits in length" @@ -242,17 +246,17 @@ "openmrs_data_type": "select one", "type": "spinner", "hint": "Does the mother have anyone, 18 years or older, who would be able to assist her during her pregnancy?", + "v_required": { + "value": "true", + "err": "Please select one option" + }, "values": [ "Yes", "No" ], "openmrs_choice_ids": { "Yes": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "No": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "v_required": { - "value": "true", - "err": "Please select one option" - } + "No": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } }, { @@ -282,6 +286,10 @@ "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", "hint": "Phone number", + "v_required": { + "value": true, + "err": "Please specify the phone number" + }, "relevance": { "rules-engine": { "ex-rules": { @@ -296,10 +304,6 @@ "v_regex": { "value": "(0[0-9]{9})|\\s*", "err": "Number must be 10 digits and must start with 0." - }, - "v_required": { - "value": true, - "err": "Please specify the phone number" } } ] diff --git a/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json b/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json index af8868f995..e4bb7a0576 100644 --- a/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json +++ b/opensrp-chw/src/wcaro/assets/json.form/anc_member_registration.json @@ -198,6 +198,10 @@ "openmrs_data_type": "select one", "type": "spinner", "hint": "Marital status", + "v_required": { + "value": "true", + "err": "Please select one option" + }, "values": [ "Married", "Co-habiting", @@ -206,11 +210,7 @@ "openmrs_choice_ids": { "Married": "5555AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "Co-habiting": "1060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "v_required": { - "value": "true", - "err": "Please select one option" - } + "Single": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } } ] From 1664b55be0521b7668d5d8fd368e572e79eee147 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 19:50:14 +0300 Subject: [PATCH 47/50] update report queries --- .../wcaro/assets/config/indicator-definitions.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml b/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml index 4aac548f21..6a23bff5d3 100644 --- a/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml +++ b/opensrp-chw/src/wcaro/assets/config/indicator-definitions.yml @@ -82,4 +82,17 @@ indicators: ) hi inner join ec_child ec on ec.base_entity_id = hi.base_entity_id - where date(ec.dob) > date('now', '-6 month')" \ No newline at end of file + where date(ec.dob) > date('now', '-6 month')" + + + - key: "CHW_012" + description: "Children (6-23 months) up to date on MNP supplementation" + indicatorQuery: "select count(distinct alerts.caseID) from alerts where alerts.scheduleName like 'MNP%%' and (alerts.status = 'upcoming' or alerts.status = 'normal') + and alerts.caseID in (select ec_child.base_entity_id from ec_child where date(ec_child.dob) < date('now', '-6 month') and date(ec_child.dob) > date('now', '-23 month') + and ifnull(ec_child.dod,'') = '' and ifnull(ec_child.date_removed,'') = '')" + + - key: "CHW_013" + description: "Children (6-23 months) overdue for MNP supplementation" + indicatorQuery: "select count(distinct alerts.caseID) from alerts where alerts.scheduleName like 'MNP%%' and alerts.status = 'urgent' + and alerts.caseID in (select ec_child.base_entity_id from ec_child where date(ec_child.dob) < date('now', '-6 month') and date(ec_child.dob) > date('now', '-23 month') + and ifnull(ec_child.dod,'') = '' and ifnull(ec_child.date_removed,'') = '')" \ No newline at end of file From 6a2d558c01244cf630033b41014bf5c8f2caf030 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Thu, 6 Jun 2019 19:50:52 +0300 Subject: [PATCH 48/50] add string resource for reporting Signed-off-by: Manu Tarus --- opensrp-chw/src/main/res/values/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opensrp-chw/src/main/res/values/strings.xml b/opensrp-chw/src/main/res/values/strings.xml index 33e9f530c9..1bf015f406 100644 --- a/opensrp-chw/src/main/res/values/strings.xml +++ b/opensrp-chw/src/main/res/values/strings.xml @@ -220,6 +220,8 @@ Children (6–59 months) who did not receive Vitamin A in the last 6 months Children (0–5 months) not exclusively breastfeeding ```Children (0–5 months) exclusively breastfeeding + Children (6–23 months) up to date on MNP supplementation + Children (6–23 months) overdue on MNP supplementation Yes No Powered by @@ -233,7 +235,7 @@ ANC PNC FP - MALARIA + Malaria Refer to facility Due only From 554c348404a40913a64e842529cc65ed59ea876f Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 11 Jun 2019 14:52:00 +0300 Subject: [PATCH 49/50] Updated Anc Version to 0.0.4 beta release and fixed codacy --- opensrp-chw/build.gradle | 2 +- .../smartregister/chw/activity/AncMemberProfileActivity.java | 2 +- .../org/smartregister/chw/activity/AncRegisterActivity.java | 4 ++-- .../org/smartregister/chw/fragment/AncRegisterFragment.java | 2 +- .../chw/presenter/AncMemberProfilePresenter.java | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index 2930b7291c..f6e95d1cf1 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -180,7 +180,7 @@ dependencies { exclude group: 'com.android.support', module: 'appcompat-v7' } - implementation('org.smartregister:opensrp-client-chw-anc:0.0.3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-chw-anc:0.0.4-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index f22cbe2dac..0e7956c175 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -11,8 +11,8 @@ import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; +import org.smartregister.chw.anc.domain.MemberObject; import org.smartregister.chw.anc.util.Constants; -import org.smartregister.chw.anc.util.MemberObject; import org.smartregister.chw.anc.util.Util; import org.smartregister.chw.interactor.FamilyProfileInteractor; import org.smartregister.chw.model.FamilyProfileModel; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java index 21cb685742..1eaf44cbc6 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java @@ -96,10 +96,10 @@ public void startFormActivity(JSONObject jsonForm) { try { JSONObject stepOne = jsonForm.getJSONObject(JsonFormUtils.STEP1); - JSONArray jsonArray = stepOne.getJSONArray(org.smartregister.family.util.JsonFormUtils.FIELDS); + JSONArray jsonArray = stepOne.getJSONArray(JsonFormUtils.FIELDS); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); - if (jsonObject.getString(org.smartregister.chw.util.JsonFormUtils.KEY).equalsIgnoreCase(org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER)) { + if (jsonObject.getString(org.smartregister.chw.util.JsonFormUtils.KEY).equalsIgnoreCase(Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER)) { jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, phone_number); } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index 86c5e31014..2b588be320 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -19,7 +19,7 @@ import org.smartregister.chw.activity.AncMemberProfileActivity; import org.smartregister.chw.anc.fragment.BaseAncRegisterFragment; import org.smartregister.chw.anc.util.DBConstants; -import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.chw.anc.domain.MemberObject; import org.smartregister.chw.custom_view.NavigationMenu; import org.smartregister.chw.model.AncRegisterFragmentModel; import org.smartregister.chw.presenter.AncRegisterFragmentPresenter; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java index 616721e784..14a4c7fc47 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/AncMemberProfilePresenter.java @@ -5,7 +5,7 @@ import org.apache.commons.lang3.tuple.Triple; import org.smartregister.chw.anc.contract.AncMemberProfileContract; import org.smartregister.chw.anc.presenter.BaseAncMemberProfilePresenter; -import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.chw.anc.domain.MemberObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.family.contract.FamilyProfileContract; From f77ddc2f719ddf71f7a1589247a30b757eb436f4 Mon Sep 17 00:00:00 2001 From: rkodev <43806892+rkodev@users.noreply.github.com> Date: Tue, 11 Jun 2019 14:58:06 +0300 Subject: [PATCH 50/50] fixed codacy --- .../smartregister/chw/activity/AncMemberProfileActivity.java | 4 +--- .../org/smartregister/chw/activity/AncRegisterActivity.java | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 0e7956c175..dbaf9795c6 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -39,7 +39,6 @@ public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { private static String familyName; private static FamilyProfileContract.Interactor profileInteractor; private static FamilyProfileContract.Model profileModel; - private AncMemberProfilePresenter ancMemberProfilePresenter; public static void startMe(Activity activity, MemberObject memberObject) { baseEntityId = memberObject.getBaseEntityId(); @@ -136,8 +135,7 @@ public void startFormActivity(JSONObject jsonForm) { } public AncMemberProfilePresenter ancMemberProfilePresenter() { - ancMemberProfilePresenter = new AncMemberProfilePresenter(this, MEMBER_OBJECT); - return ancMemberProfilePresenter; + return new AncMemberProfilePresenter(this, MEMBER_OBJECT); } @Override diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java index 1eaf44cbc6..5491bbc1fc 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncRegisterActivity.java @@ -100,7 +100,7 @@ public void startFormActivity(JSONObject jsonForm) { for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject.getString(org.smartregister.chw.util.JsonFormUtils.KEY).equalsIgnoreCase(Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER)) { - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, phone_number); + jsonObject.put(JsonFormUtils.VALUE, phone_number); } } Intent intent = new Intent(this, Utils.metadata().familyMemberFormActivity);

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�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 W?(A?Z$;2ZqoI0-a2jkeEH~tq3GM54X literal 0 HcmV?d00001 From 34014c3340c1208396b8fb11d7df5ee2468feed6 Mon Sep 17 00:00:00 2001 From: Manu Tarus Date: Mon, 3 Jun 2019 14:22:25 +0300 Subject: [PATCH 23/50] add anc member drop down menu --- .../activity/AncMemberProfileActivity.java | 89 +++++++++++- .../chw/fragment/AncRegisterFragment.java | 3 +- .../org/smartregister/chw/util/Constants.java | 1 + .../smartregister/chw/util/JsonFormUtils.java | 135 +++++++++++------- .../main/res/menu/anc_member_profile_menu.xml | 23 +++ 5 files changed, 197 insertions(+), 54 deletions(-) create mode 100644 opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 2287254aea..19d4ab7a97 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -2,16 +2,103 @@ import android.app.Activity; import android.content.Intent; +import android.view.Menu; +import android.view.MenuItem; +import com.vijay.jsonwizard.constants.JsonFormConstants; +import com.vijay.jsonwizard.domain.Form; + +import org.json.JSONObject; +import org.smartregister.chw.R; import org.smartregister.chw.anc.activity.BaseAncMemberProfileActivity; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.anc.util.MemberObject; +import org.smartregister.commonregistry.CommonPersonObject; +import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.family.util.JsonFormUtils; +import org.smartregister.family.util.Utils; + +import timber.log.Timber; public class AncMemberProfileActivity extends BaseAncMemberProfileActivity { - public static void startMe(Activity activity, MemberObject memberObject) { + static String baseEntityId; + public static void startMe(Activity activity, MemberObject memberObject) { + baseEntityId = memberObject.getBaseEntityId(); Intent intent = new Intent(activity, AncMemberProfileActivity.class); intent.putExtra(Constants.ANC_MEMBER_OBJECTS.MEMBER_PROFILE_OBJECT, memberObject); activity.startActivity(intent); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.anc_member_profile_menu, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + case R.id.action_anc_member_registration: + startFormForEdit(R.string.edit_member_form_title, + org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER); + break; + case R.id.action_anc_registration: + startFormForEdit(R.string.edit_member_form_title, + org.smartregister.chw.util.Constants.JSON_FORM.ANC_REGISTRATION); + return true; + case R.id.action_remove_member: + return true; + default: + break; + } + return super.onOptionsItemSelected(item); + } + + public void startFormForEdit(Integer title_resource, String formName) { + + CommonRepository commonRepository = org.smartregister.chw.util.Utils.context().commonrepository(org.smartregister.chw.util.Utils.metadata().familyMemberRegister.tableName); + + final CommonPersonObject personObject = commonRepository.findByBaseEntityId(baseEntityId); + final CommonPersonObjectClient client = + new CommonPersonObjectClient(personObject.getCaseId(), personObject.getDetails(), ""); + client.setColumnmaps(personObject.getColumnmaps()); + + JSONObject form = null; + + if (formName.equals(org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER)) { + form = org.smartregister.chw.util.JsonFormUtils.getAutoPopulatedJsonEditMemberFormString( + (title_resource != null) ? getResources().getString(title_resource) : null, + org.smartregister.chw.util.Constants.JSON_FORM.FAMILY_MEMBER_REGISTER, + this, client, org.smartregister.chw.util.Utils.metadata().familyMemberRegister.updateEventType, "familyName", false); + } else if (formName.equals(org.smartregister.chw.util.Constants.JSON_FORM.ANC_REGISTRATION)) { + form = org.smartregister.chw.util.JsonFormUtils.getAutoJsonEditAncFormString( + baseEntityId, this, formName, org.smartregister.chw.util.Constants.EventType.ANC_REGISTRATION, getResources().getString(title_resource)); + } + + try { + startFormActivity(form); + } catch (Exception e) { + Timber.e(e.getMessage()); + } + } + + public void startFormActivity(JSONObject jsonForm) { + + Intent intent = new Intent(this, Utils.metadata().familyMemberFormActivity); + intent.putExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON, jsonForm.toString()); + + Form form = new Form(); + form.setActionBarBackground(R.color.family_actionbar); + form.setWizard(false); + intent.putExtra(JsonFormConstants.JSON_FORM_KEY.FORM, form); + + startActivityForResult(intent, JsonFormUtils.REQUEST_CODE_GET_JSON); + } + + } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java index b596898f88..1a5a4876a9 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/AncRegisterFragment.java @@ -161,7 +161,8 @@ protected void openProfile(CommonPersonObjectClient client) { MemberObject memberObject = new MemberObject(memberName, gest_age, client.getColumnmaps().get(DBConstants.KEY.VILLAGE_TOWN), - uniqueId); + uniqueId, + client.getCaseId()); AncMemberProfileActivity.startMe(getActivity(), memberObject); } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java index 36fa74b852..3fd94b8390 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/Constants.java @@ -35,6 +35,7 @@ public static final class EventType { public static final String REMOVE_FAMILY = "Remove Family"; public static final String ANC_REGISTRATION = "ANC Registration"; + public static final String UPDATE_ANC_REGISTRATION = "Update ANC Registration"; } public static class JSON_FORM { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java index a44a3ed072..8bbea55c4c 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/JsonFormUtils.java @@ -1,6 +1,7 @@ package org.smartregister.chw.util; import android.content.Context; +import android.database.Cursor; import android.graphics.Bitmap; import android.text.TextUtils; import android.util.Log; @@ -59,7 +60,10 @@ import java.util.Map; import java.util.UUID; +import timber.log.Timber; + import static org.apache.commons.lang3.StringUtils.isBlank; +import static org.smartregister.util.AssetHandler.jsonStringToJava; /** * Created by keyman on 13/11/2018. @@ -118,58 +122,6 @@ public static JSONObject getOnsIllnessFormAsJson(JSONObject form, String baseEnt } - public static Pair processAncRegistrationForm(AllSharedPreferences allSharedPreferences, String jsonString){ - Triple ancFormParams = validateParameters(jsonString); - if(!ancFormParams.getLeft()){ - return null; - } - - JSONObject jsonForm = ancFormParams.getMiddle(); - JSONArray fields = ancFormParams.getRight(); - String entityId = getString(jsonForm, ENTITY_ID); - lastInteractedWith(fields); - - - Event baseEvent = org.smartregister.util.JsonFormUtils.createEvent(fields, getJSONObject(jsonForm, METADATA), formTag(allSharedPreferences), entityId, - getString(jsonForm, ENCOUNTER_TYPE), org.smartregister.chw.util.Constants.TABLE_NAME.ANC_MEMBER); - - Client baseClient = org.smartregister.util.JsonFormUtils.createBaseClient(fields, formTag(allSharedPreferences), entityId); - tagSyncMetadata(allSharedPreferences, baseEvent); - - - return Pair.create(baseClient, baseEvent); - - } - - - public static Pair processCounselingForm(AllSharedPreferences allSharedPreferences, String jsonString) { - try { - - Triple registrationFormParams = validateParameters(jsonString); - if (!registrationFormParams.getLeft()) { - return null; - } - - JSONObject jsonForm = registrationFormParams.getMiddle(); - JSONArray fields = registrationFormParams.getRight(); - - String entityId = getString(jsonForm, ENTITY_ID); - - lastInteractedWith(fields); - - Client baseClient = org.smartregister.util.JsonFormUtils.createBaseClient(fields, formTag(allSharedPreferences), entityId); - Event baseEvent = org.smartregister.util.JsonFormUtils.createEvent(fields, getJSONObject(jsonForm, METADATA), formTag(allSharedPreferences), entityId, - getString(jsonForm, ENCOUNTER_TYPE), org.smartregister.chw.util.Constants.TABLE_NAME.CHILD); - - - tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs - - return Pair.create(baseClient, baseEvent); - } catch (Exception e) { - return null; - } - } - public static Pair processBirthAndIllnessForm(AllSharedPreferences allSharedPreferences, String jsonString) { try { @@ -218,6 +170,7 @@ private static HashMap actionMap() { } return actionMap; } + public static HashMap getChoice(Context context) { HashMap choices = new HashMap<>(); choices.put(context.getResources().getString(R.string.yes), "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); @@ -882,4 +835,82 @@ public interface Flavor { void processFieldsForMemberEdit(CommonPersonObjectClient client, JSONObject jsonObject, JSONArray jsonArray, String familyName, boolean isPrimaryCaregiver, Event ecEvent, Client ecClient) throws JSONException; } + + private static Event getEditAncLatestProperties(String baseEntityID) { + + Event ecEvent = null; + + String query_event = String.format("select json from event where baseEntityId = '%s' and eventType in ('%s','%s') order by updatedAt desc limit 1;", + baseEntityID, org.smartregister.chw.util.Constants.EventType.UPDATE_ANC_REGISTRATION, org.smartregister.chw.util.Constants.EventType.ANC_REGISTRATION); + + Cursor cursor = ChwApplication.getInstance().getRepository().getReadableDatabase().rawQuery(query_event, new String[]{}); + try { + cursor.moveToFirst(); + + while (!cursor.isAfterLast()) { + ecEvent = jsonStringToJava(cursor.getString(0), Event.class); + cursor.moveToNext(); + } + } catch (Exception e) { + Timber.e(e, e.toString()); + } finally { + cursor.close(); + } + return ecEvent; + } + + public static JSONObject getAutoJsonEditAncFormString(String baseEntityID, Context context, String formName, String eventType, String title) { + try { + + Event event = getEditAncLatestProperties(baseEntityID); + + final List observations = event.getObs(); + + JSONObject form = FormUtils.getInstance(context).getFormJson(formName); + LocationPickerView lpv = new LocationPickerView(context); + lpv.init(); + if (form != null) { + form.put(org.smartregister.family.util.JsonFormUtils.ENTITY_ID, baseEntityID); + form.put(org.smartregister.family.util.JsonFormUtils.ENCOUNTER_TYPE, eventType); + + JSONObject metadata = form.getJSONObject(org.smartregister.family.util.JsonFormUtils.METADATA); + String lastLocationId = LocationHelper.getInstance().getOpenMrsLocationId(lpv.getSelectedItem()); + + metadata.put(org.smartregister.family.util.JsonFormUtils.ENCOUNTER_LOCATION, lastLocationId); + + JSONObject stepOne = form.getJSONObject(org.smartregister.family.util.JsonFormUtils.STEP1); + + if (StringUtils.isNotBlank(title)) { + stepOne.put(TITLE, title); + } + JSONArray jsonArray = stepOne.getJSONArray(org.smartregister.family.util.JsonFormUtils.FIELDS); + + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + + try { + for (Obs obs : observations) { + if (obs.getFormSubmissionField().equalsIgnoreCase(jsonObject.getString("key"))) { + if (jsonObject.getString("key").equals("marital_status")) + jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, obs.getHumanReadableValues().get(0)); + else + jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, obs.getValue()); + } + } + + } catch (Exception e) { + Timber.e(Log.getStackTraceString(e)); + } + } + + return form; + } + } catch (Exception e) { + Timber.e(Log.getStackTraceString(e)); + } + + return null; + } + + } diff --git a/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml b/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml new file mode 100644 index 0000000000..b07b77360b --- /dev/null +++ b/opensrp-chw/src/main/res/menu/anc_member_profile_menu.xml @@ -0,0 +1,23 @@ + +