From 624e6c7a0a4e97d9c7fdad88efaa534027cfdc95 Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Tue, 27 Jul 2021 17:21:52 +0500 Subject: [PATCH 01/10] - Roles Management (User and Agent) - Out of area birth - Out of area death - Bugs fixed --- opensrp-chw/build.gradle | 3 +- .../BirthNotificationRegisterActivity.java | 2 + .../chw/activity/DeadClientsActivity.java | 3 ++ .../chw/activity/OutOfAreaChildActivity.java | 3 +- .../OutOfAreaChildUpdateFormActivity.java | 21 -------- .../chw/activity/OutOfAreaDeathActivity.java | 10 +--- .../OutOfAreaDeathUpdateFormActivity.java | 18 ------- .../chw/application/ChwApplicationFlv.java | 1 + .../BirthNotificationRegisterFragment.java | 9 ---- .../chw/model/NavigationModelFlv.java | 21 +++----- .../smartregister/chw/util/CrvsConstants.java | 4 +- .../chw/activity/ChildHomeVisitActivity.java | 52 +++++++++++++------ .../chw/activity/FamilyRegisterActivity.java | 4 ++ .../chw/activity/LoginActivity.java | 19 +++++-- .../AllClientsMemberInteractor.java | 2 +- .../chw/interactor/LoginInteractor.java | 14 ++++- 16 files changed, 88 insertions(+), 98 deletions(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index ea579757bb..6653ae5617 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -237,7 +237,8 @@ android { versionName "1.0.0" buildConfigField "String", 'opensrp_url', '"https://wcaro-td.smartregister.org/opensrp/"' buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/chad/"' - buildConfigField "String", 'opensrp_url_debug', '"https://wcaro-stage.smartregister.org/opensrp/"' +// buildConfigField "String", 'opensrp_url_debug', '"https://wcaro-stage.smartregister.org/opensrp/"' + buildConfigField "String", 'opensrp_url_debug', '"https://crvs.labs.smartregister.org/opensrp/"' buildConfigField "String[]", "LOCATION_HIERACHY", '{"Country" , "Province" , "Health District","Health Facility","Village","Clinic" , "CHSS" , "CHA"}' buildConfigField "String[]", "ALLOWED_LOCATION_LEVELS", '{"Health District","Health Facility","Village"}' buildConfigField "String[]", "ALLOWED_LOCATION_LEVELS_DEBUG", '{"Clinic" , "CHSS" , "CHA"}' diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java index 53eeb446b3..fa2e2fc7e1 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java @@ -1,6 +1,7 @@ package org.smartregister.chw.activity; import android.content.Intent; +import android.view.View; import org.json.JSONObject; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.core.activity.CoreBirthNotificationRegisterActivity; @@ -21,6 +22,7 @@ protected void registerBottomNavigation() { bottomNavigationHelper = new BottomNavigationHelper(); bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); FamilyRegisterActivity.registerBottomNavigation(bottomNavigationHelper, bottomNavigationView, this); + bottomNavigationView.setVisibility(View.GONE); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java index 343a367854..2e0db50471 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java @@ -1,6 +1,8 @@ package org.smartregister.chw.activity; import android.content.Intent; +import android.view.View; + import org.json.JSONObject; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.core.contract.CoreChildRegisterContract; @@ -20,6 +22,7 @@ protected void registerBottomNavigation() { bottomNavigationHelper = new BottomNavigationHelper(); bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); FamilyRegisterActivity.registerBottomNavigation(bottomNavigationHelper, bottomNavigationView, this); + bottomNavigationView.setVisibility(View.GONE); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java index 83c1e11511..f8a144fcf4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java @@ -47,11 +47,10 @@ protected void onCreate(Bundle savedInstanceState) { @Override protected void registerBottomNavigation() { - bottomNavigationHelper = new BottomNavigationHelper(); bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); - FamilyRegisterActivity.registerBottomNavigation(bottomNavigationHelper, bottomNavigationView, this); + bottomNavigationView.setVisibility(View.GONE); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java index 8e5019c6ee..58780b318c 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java @@ -3,10 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.util.Log; - import com.google.android.material.bottomnavigation.BottomNavigationView; - import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.application.ChwApplication; @@ -21,15 +18,11 @@ import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; - import java.util.Map; - import timber.log.Timber; - import static org.smartregister.chw.core.utils.CoreReferralUtils.getCommonRepository; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; - public class OutOfAreaChildUpdateFormActivity extends OutOfAreaChildActivity { public CommonPersonObject commonPersonObject; @@ -52,7 +45,6 @@ protected void onCreate(Bundle savedInstanceState) { NavigationMenu.getInstance(this, null, null); ChwApplication.getInstance().notifyAppContextChange(); // initialize the language (bug in translation) -// action = getIntent().getStringExtra(Constants.ACTIVITY_PAYLOAD.ACTION); startAncDangerSignsOutcomeForm(); } @@ -96,20 +88,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent if (requestCode == JsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); - JSONObject form = new JSONObject(jsonString); - Log.d("herein", "hereib: "+form); - presenter().saveOutOfAreaForm(jsonString, true); - - /*if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CrvsConstants.REMOVE_FAMILY_MEMBER) - ) { - AllCommonsRepository childCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_child"); - AllCommonsRepository familyCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_family_member"); - - if (childCommonsRepository != null && familyCommonsRepository != null) { - updateDeathCertificate(childCommonsRepository, familyCommonsRepository, jsonString); - } - }*/ } catch (Exception e) { Timber.e(e); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java index b8a8694330..ba07e21581 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java @@ -2,25 +2,19 @@ import android.content.Intent; import android.os.Bundle; -import android.util.Log; import android.view.View; - import androidx.fragment.app.Fragment; - import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; - import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.chw.anc.util.Constants; -import org.smartregister.chw.contract.CoreOutOfAreaChildRegisterContract; import org.smartregister.chw.contract.CoreOutOfAreaDeathRegisterContract; import org.smartregister.chw.core.activity.CoreFamilyRegisterActivity; import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.fragment.CoreDeadClientsFragment; import org.smartregister.chw.fragment.OutOfAreaDeathFragment; -import org.smartregister.chw.fragment.OutOfAreaFragment; import org.smartregister.chw.model.CoreOutOfAreaDeathRegisterModel; import org.smartregister.chw.presenter.CoreOutOfAreaDeathRegisterPresenter; import org.smartregister.chw.schedulers.ChwScheduleTaskExecutor; @@ -29,7 +23,6 @@ import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.activity.BaseRegisterActivity; import org.smartregister.view.fragment.BaseRegisterFragment; - import java.util.Arrays; import java.util.Date; import java.util.List; @@ -50,11 +43,10 @@ protected void onCreate(Bundle savedInstanceState) { @Override protected void registerBottomNavigation() { - bottomNavigationHelper = new BottomNavigationHelper(); bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); - FamilyRegisterActivity.registerBottomNavigation(bottomNavigationHelper, bottomNavigationView, this); + bottomNavigationView.setVisibility(View.GONE); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java index a5cbea0f6a..3b26275ee4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java @@ -3,10 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.util.Log; - import com.google.android.material.bottomnavigation.BottomNavigationView; - import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.application.ChwApplication; @@ -51,8 +48,6 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NavigationMenu.getInstance(this, null, null); ChwApplication.getInstance().notifyAppContextChange(); // initialize the language (bug in translation) - -// action = getIntent().getStringExtra(Constants.ACTIVITY_PAYLOAD.ACTION); startAncDangerSignsOutcomeForm(); } @@ -96,20 +91,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent if (requestCode == JsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); - JSONObject form = new JSONObject(jsonString); - Log.d("herein", "hereib: "+form); - presenter().saveOutOfAreaDeathForm(jsonString, true); - - /*if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CrvsConstants.REMOVE_FAMILY_MEMBER) - ) { - AllCommonsRepository childCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_child"); - AllCommonsRepository familyCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_family_member"); - - if (childCommonsRepository != null && familyCommonsRepository != null) { - updateDeathCertificate(childCommonsRepository, familyCommonsRepository, jsonString); - } - }*/ } catch (Exception e) { Timber.e(e); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/application/ChwApplicationFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/application/ChwApplicationFlv.java index 538e82908e..0bdbe3e7cf 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/application/ChwApplicationFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/application/ChwApplicationFlv.java @@ -1,4 +1,5 @@ package org.smartregister.chw.application; public class ChwApplicationFlv extends DefaultChwApplicationFlv { + } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java index ef9edc6df9..d9276dca44 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java @@ -1,11 +1,6 @@ package org.smartregister.chw.fragment; -import android.util.Log; - import org.smartregister.chw.R; -import org.smartregister.chw.activity.ChildHomeVisitActivity; -import org.smartregister.chw.activity.ChildProfileActivity; -import org.smartregister.chw.anc.domain.MemberObject; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.model.ChildRegisterFragmentModel; import org.smartregister.chw.presenter.ChildRegisterFragmentPresenter; @@ -13,11 +8,8 @@ import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.configurableviews.model.View; import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; -import org.smartregister.family.util.Utils; import org.smartregister.view.activity.BaseRegisterActivity; import java.util.Set; -import timber.log.Timber; -import static org.smartregister.chw.core.utils.ChildDBConstants.KEY.FAMILY_LAST_NAME; public class BirthNotificationRegisterFragment extends CoreBirthNotificationFragment { @@ -29,7 +21,6 @@ protected void onViewClicked(android.view.View view) { CommonPersonObjectClient client = (CommonPersonObjectClient) view.getTag(); ChildHomeVisitActivity.startMe(getActivity(), new MemberObject(client), false, ChildHomeVisitActivity.class); }*/ - Log.d("nothing", "do nothing"); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java index af768f6761..e580fb183a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java @@ -3,7 +3,6 @@ import org.smartregister.chw.R; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.model.NavigationOption; -import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.CrvsConstants; @@ -14,12 +13,6 @@ public class NavigationModelFlv extends DefaultNavigationModelFlv { - String role = ""; - - public NavigationModelFlv(String role) { - this.role = role; - } - public NavigationModelFlv() { } @@ -29,19 +22,21 @@ public NavigationModelFlv() { public List getNavigationItems() { if (navigationOptions.size() == 0) { -// if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.USER)) { - /*if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.USER)) { + if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.USER)) { navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_families, R.mipmap.sidemenu_families_active, R.string.menu_all_families, Constants.DrawerMenu.ALL_FAMILIES, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_anc, R.mipmap.sidemenu_anc_active, R.string.menu_anc, Constants.DrawerMenu.ANC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_pnc, R.mipmap.sidemenu_pnc_active, R.string.menu_pnc, Constants.DrawerMenu.PNC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.menu_child_clients, Constants.DrawerMenu.CHILD_CLIENTS, 0)); -// }else if (role.equals(CrvsConstants.SURVEYOR)){ - }else if (role.equals(CrvsConstants.SURVEYOR)){ navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); - }else{*/ + } else if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.AGENT)) { + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); + } else { navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_families, R.mipmap.sidemenu_families_active, R.string.menu_all_families, Constants.DrawerMenu.ALL_FAMILIES, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_anc, R.mipmap.sidemenu_anc_active, R.string.menu_anc, Constants.DrawerMenu.ANC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_pnc, R.mipmap.sidemenu_pnc_active, R.string.menu_pnc, Constants.DrawerMenu.PNC, 0)); @@ -50,7 +45,7 @@ public List getNavigationItems() { navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); -// } + } } return navigationOptions; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java index ead09fa913..97ef9a1203 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java @@ -1,9 +1,9 @@ package org.smartregister.chw.util; public class CrvsConstants { - public static String USER_TYPE = "Out of area form"; + public static String USER_TYPE = "userType"; public static String USER = "User"; - public static String SURVEYOR = "Surveyor"; + public static String AGENT = "Agent"; public static String OUT_OF_AREA_FORM = "Out of area form"; public static String OUT_OF_AREA_ENCOUNTER_TYPE = "Out Of Area Child Registration"; public static String OUT_OF_AREA_DEATH_ENCOUNTER_TYPE = "Out Of Area Death Registration"; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java index bb0516888a..2bc7367414 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java @@ -5,23 +5,16 @@ import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.anc.domain.Visit; -import org.smartregister.chw.anc.domain.VisitDetail; import org.smartregister.chw.anc.presenter.BaseAncHomeVisitPresenter; -import org.smartregister.chw.anc.util.Constants; -import org.smartregister.chw.anc.util.VisitUtils; import org.smartregister.chw.core.activity.CoreChildHomeVisitActivity; +import org.smartregister.chw.core.application.CoreChwApplication; import org.smartregister.chw.core.dao.VisitDao; -import org.smartregister.chw.core.domain.VisitSummary; import org.smartregister.chw.core.interactor.CoreChildHomeVisitInteractor; import org.smartregister.chw.interactor.ChildHomeVisitInteractorFlv; +import org.smartregister.commonregistry.AllCommonsRepository; +import org.smartregister.family.util.DBConstants; -import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; - -import javax.json.JsonArray; -import javax.json.JsonObject; public class ChildHomeVisitActivity extends CoreChildHomeVisitActivity { @Override @@ -41,7 +34,7 @@ public void submittedAndClose() { for (int i = 0; i < summaryMap.size(); i++) { if (summaryMap.get(i).getVisitType().equals("Birth Certification")) { String birthCertification = summaryMap.get(i).getJson(); - updateBirthRegistration(birthCertification); + updateBirthRegistration(birthCertification, baseEntityID); break; } } @@ -50,16 +43,43 @@ public void submittedAndClose() { ChildProfileActivity.startMe(this, memberObject, ChildProfileActivity.class); } - private void updateBirthRegistration(String birthCertification) { + private void updateBirthRegistration(String birthCertification, String baseEntityID) { + AllCommonsRepository allCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_child"); + String tableName = "ec_child"; try { JSONObject response = new JSONObject(birthCertification); JSONArray array = response.getJSONArray("obs"); JSONObject birthCert = array.getJSONObject(0); if (birthCert.getJSONArray("humanReadableValues").get(0).toString().equals("Yes")){ - String birth_cert_issue_date = array.getJSONObject(1).getJSONArray("values").get(0).toString(); - String birth_cert_num = array.getJSONObject(2).getJSONArray("values").get(0).toString(); - }else { - + String dateOfBirthCertificate = array.getJSONObject(1).getJSONArray("values").get(0).toString(); + String birthCertNum = array.getJSONObject(2).getJSONArray("values").get(0).toString(); + String sql = "UPDATE ec_child SET birth_cert = ?, birth_cert_issue_date = ?, birth_cert_num = ? WHERE id = ?"; + String[] selectionArgs = {"Yes", dateOfBirthCertificate, birthCertNum, baseEntityID}; + allCommonsRepository.customQuery(sql, selectionArgs, tableName); + }else if (array.getJSONObject(1).getString("fieldCode").equals("birthRegistration")){ + String registration = ""; + try{ + registration = array.getJSONObject(1).getJSONArray("humanReadableValues").get(0).toString(); + }catch (Exception e){ + registration = "No"; + e.printStackTrace(); + } + if (registration.equals("Yes")) { + String sql = "UPDATE ec_child SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; + String[] selectionArgs = {"No", "Yes", "No", baseEntityID}; + allCommonsRepository.customQuery(sql, selectionArgs, tableName); + } else { + String notification = ""; + try{ + notification = array.getJSONObject(2).getJSONArray("humanReadableValues").get(0).toString(); + }catch (Exception e){ + notification = "No"; + e.printStackTrace(); + } + String sql = "UPDATE ec_child SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; + String[] selectionArgs = {"No", "No", notification, getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; + allCommonsRepository.customQuery(sql, selectionArgs, tableName); + } } } catch (Exception e) { e.printStackTrace(); diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java index a82e9e69ad..6a5b05540f 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java @@ -8,6 +8,8 @@ import com.google.android.material.bottomnavigation.BottomNavigationView; import org.smartregister.chw.BuildConfig; +import org.smartregister.chw.R; +import org.smartregister.chw.anc.AncLibrary; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.application.ChwApplicationFlv; import org.smartregister.chw.core.activity.CoreFamilyRegisterActivity; @@ -19,6 +21,8 @@ import org.smartregister.chw.model.NavigationModelFlv; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.Utils; +import org.smartregister.domain.UniqueId; +import org.smartregister.family.contract.FamilyRegisterContract; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java index 0caaadc3f4..6aa8ddc503 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java @@ -19,6 +19,7 @@ import org.smartregister.chw.pinlogin.PinLogger; import org.smartregister.chw.pinlogin.PinLoginUtil; import org.smartregister.chw.presenter.LoginPresenter; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.chw.util.Utils; import org.smartregister.family.util.Constants; import org.smartregister.growthmonitoring.service.intent.WeightForHeightIntentService; @@ -38,6 +39,8 @@ import timber.log.Timber; +import static org.smartregister.chw.util.CrvsConstants.USER_TYPE; + public class LoginActivity extends BaseLoginActivity implements BaseLoginContract.View { public static final String TAG = BaseLoginActivity.class.getCanonicalName(); @@ -169,10 +172,18 @@ public void goToHome(boolean remote) { } private void startHome(boolean remote) { - Intent intent = new Intent(this, ChwApplication.getApplicationFlavor().launchChildClientsAtLogin() ? - ChildRegisterActivity.class : FamilyRegisterActivity.class); - intent.putExtra(Constants.INTENT_KEY.IS_REMOTE_LOGIN, remote); - startActivity(intent); + if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.USER)) { + Intent intent = new Intent(this, ChwApplication.getApplicationFlavor().launchChildClientsAtLogin() ? + ChildRegisterActivity.class : FamilyRegisterActivity.class); + intent.putExtra(Constants.INTENT_KEY.IS_REMOTE_LOGIN, remote); + startActivity(intent); + }else { + Intent intent = new Intent(this, ChwApplication.getApplicationFlavor().launchChildClientsAtLogin() ? + ChildRegisterActivity.class : BirthNotificationRegisterActivity.class); + intent.putExtra(Constants.INTENT_KEY.IS_REMOTE_LOGIN, remote); + startActivity(intent); + } + } private void startPinHome(boolean remote) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/AllClientsMemberInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/AllClientsMemberInteractor.java index 46aa67de09..e061a4c125 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/AllClientsMemberInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/AllClientsMemberInteractor.java @@ -25,4 +25,4 @@ public void updateLocationInfo(String jsonString, FamilyEventClient familyEventC public void updateProfileInfo(String baseEntityId, FamilyOtherMemberContract.InteractorCallBack callback) { refreshProfileView(baseEntityId, callback); } -} +} \ No newline at end of file diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java index d6c1705169..65deb20d8b 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java @@ -7,6 +7,8 @@ import org.smartregister.login.interactor.BaseLoginInteractor; import org.smartregister.view.contract.BaseLoginContract; +import static org.smartregister.chw.util.CrvsConstants.AGENT; +import static org.smartregister.chw.util.CrvsConstants.USER; import static org.smartregister.chw.util.CrvsConstants.USER_TYPE; @@ -29,8 +31,16 @@ public LoginInteractor(BaseLoginContract.Presenter loginPresenter) { protected void processServerSettings(LoginResponse loginResponse) { super.processServerSettings(loginResponse); String type = loginResponse.payload().user.getType(); - Log.d("imresponse", "try:"+type); - getSharedPreferences().savePreference(USER_TYPE, type); + int size = loginResponse.payload().user.getRoles().size(); + + for (int i=0; i Date: Wed, 28 Jul 2021 19:55:14 +0500 Subject: [PATCH 02/10] - All other issues have been resolved - Issue # 3 is in progress - Changed icons in navigation drawer --- .../activity/DeadClientsUpdateActivity.java | 64 +++++++++++++++--- .../OutOfAreaChildUpdateActivity.java | 10 +-- .../OutOfAreaChildUpdateFormActivity.java | 1 + .../OutOfAreaDeathUpdateActivity.java | 12 +--- .../CoreBirthNotificationFragment.java | 10 ++- .../chw/fragment/CoreDeadClientsFragment.java | 12 ++-- .../chw/fragment/DeadClientsFragment.java | 5 -- .../chw/model/NavigationModelFlv.java | 24 +++---- .../CoreOutOfAreaChildRegisterPresenter.java | 4 -- .../CoreOutOfAreaDeathRegisterPresenter.java | 4 -- .../chw/task/DeadUpdateLastAsyncTask.java | 11 +-- .../UpdateBirthNotificationLastAsyncTask.java | 20 +++--- .../smartregister/chw/util/CrvsConstants.java | 2 + .../chw/util/JsonFormUtilsFlv.java | 3 - opensrp-chw/src/crvs/res/values/strings.xml | 2 +- .../src/main/assets/ec_client_fields.json | 56 +++++++++++++++ .../out_of_area_child_enrollment.json | 1 + .../BirthNotificationUpdateActivity.java | 18 +++-- .../chw/activity/ChildHomeVisitActivity.java | 2 - .../chw/activity/ChildRegisterActivity.java | 1 - .../chw/activity/FamilyRegisterActivity.java | 12 ---- .../chw/activity/LoginActivity.java | 1 - .../chw/application/ChwApplication.java | 1 - .../smartregister/chw/dao/WashCheckDao.java | 2 - .../chw/fragment/PinLoginFragment.java | 1 - .../DefaultChildHomeVisitInteractorFlv.java | 1 - .../chw/interactor/LoginInteractor.java | 2 - .../chw/pinlogin/PinLoggerInteractor.java | 2 - .../chw/presenter/PinLoginPresenter.java | 2 - .../smartregister/chw/util/JsonFormUtils.java | 1 - .../mipmap-hdpi/sidemenu_certification.png | Bin 0 -> 400 bytes .../sidemenu_certification_active.png | Bin 0 -> 455 bytes .../res/mipmap-hdpi/sidemenu_outofarea.png | Bin 0 -> 877 bytes .../mipmap-hdpi/sidemenu_outofarea_active.png | Bin 0 -> 992 bytes .../mipmap-mdpi/sidemenu_certification.png | Bin 0 -> 313 bytes .../sidemenu_certification_active.png | Bin 0 -> 343 bytes .../res/mipmap-mdpi/sidemenu_outofarea.png | Bin 0 -> 597 bytes .../mipmap-mdpi/sidemenu_outofarea_active.png | Bin 0 -> 678 bytes .../mipmap-xhdpi/sidemenu_certification.png | Bin 0 -> 473 bytes .../sidemenu_certification_active.png | Bin 0 -> 544 bytes .../res/mipmap-xhdpi/sidemenu_outofarea.png | Bin 0 -> 1029 bytes .../sidemenu_outofarea_active.png | Bin 0 -> 1142 bytes .../mipmap-xxhdpi/sidemenu_certification.png | Bin 0 -> 651 bytes .../sidemenu_certification_active.png | Bin 0 -> 725 bytes .../res/mipmap-xxhdpi/sidemenu_outofarea.png | Bin 0 -> 1636 bytes .../sidemenu_outofarea_active.png | Bin 0 -> 1799 bytes .../mipmap-xxxhdpi/sidemenu_certification.png | Bin 0 -> 851 bytes .../sidemenu_certification_active.png | Bin 0 -> 958 bytes .../res/mipmap-xxxhdpi/sidemenu_outofarea.png | Bin 0 -> 2276 bytes .../sidemenu_outofarea_active.png | Bin 0 -> 2507 bytes 50 files changed, 173 insertions(+), 114 deletions(-) create mode 100644 opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_certification.png create mode 100644 opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_certification_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_outofarea.png create mode 100644 opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_outofarea_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_certification.png create mode 100644 opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_certification_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_outofarea.png create mode 100644 opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_outofarea_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification.png create mode 100644 opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_outofarea.png create mode 100644 opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_outofarea_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_certification.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_certification_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_outofarea.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_outofarea_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification_active.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_outofarea.png create mode 100644 opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_outofarea_active.png diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java index c71afd7977..80d934bf2f 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java @@ -1,8 +1,6 @@ package org.smartregister.chw.activity; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Intent; import android.os.Bundle; @@ -24,18 +22,25 @@ import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; +import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.fragment.BaseRegisterFragment; import java.util.HashMap; import java.util.Map; +import java.util.Objects; + import timber.log.Timber; import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; +import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERTIFICATE_ISSUE_DATE; import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DEATH_CERTIFICATE_ISSUE_DATE; import static org.smartregister.chw.util.CrvsConstants.DEATH_FORM; import static org.smartregister.chw.util.CrvsConstants.DEATH_MEMBER_FORM; +import static org.smartregister.chw.util.CrvsConstants.DOB; import static org.smartregister.chw.util.CrvsConstants.HAS_DEATH_CERTIFICATE; +import static org.smartregister.chw.util.CrvsConstants.MIN_DATE; import static org.smartregister.chw.util.CrvsConstants.RECEIVED_DEATH_CERTIFICATE; +import static org.smartregister.chw.util.DateUtils.changeDateFormat; public class DeadClientsUpdateActivity extends CoreFamilyRegisterActivity { @@ -76,6 +81,17 @@ public void startAncDangerSignsOutcomeForm() { Map valueMap = new HashMap<>(); valueMap.put(HAS_DEATH_CERTIFICATE, death_cert); valueMap.put(DEATH_CERTIFICATE_ISSUE_DATE, death_cert_issue_date); + + try { + JSONObject stepOne = formJsonObject.getJSONObject(JsonFormUtils.STEP1); + JSONArray jsonArray = stepOne.getJSONArray(JsonFormUtils.FIELDS); + JSONObject min_date = CoreJsonFormUtils.getFieldJSONObject(jsonArray, DEATH_CERTIFICATE_ISSUE_DATE); + assert min_date != null; + min_date.put(MIN_DATE, changeDateFormat(Objects.requireNonNull(getIntent().getStringExtra(DOB)))); + } catch (Exception e) { + Timber.e(e); + } + CoreJsonFormUtils.populateJsonForm(formJsonObject, valueMap); JsonFormUtilsFlv.startFormActivity(DeadClientsUpdateActivity.this, formJsonObject, DEATH_FORM); } catch (Exception e) { @@ -127,18 +143,46 @@ private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, JSONObject certificateNumber = fields.getJSONObject(3); String hasCertificate = has_death_certificate.getString("value"); - String issueDate = death_certificate_issue_date.getString("value"); + String issueDate; + if (hasCertificate.equals("Yes")) { + issueDate = death_certificate_issue_date.getString("value"); + }else { + issueDate = ""; + } if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { String tableName = "ec_child"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - childCommonsRepository.customQuery(sql, selectionArgs, tableName); - } else { + if (!issueDate.equals("")) { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + childCommonsRepository.customQuery(sql, selectionArgs, tableName); + }else { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + childCommonsRepository.customQuery(sql, selectionArgs, tableName); + } + } else if (getIntent().getStringExtra(CLIENT_TYPE).equals("still")) { String tableName = "ec_family_member"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - familyCommonsRepository.customQuery(sql, selectionArgs, tableName); + if (!issueDate.equals("")) { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + familyCommonsRepository.customQuery(sql, selectionArgs, tableName); + }else { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + familyCommonsRepository.customQuery(sql, selectionArgs, tableName); + } + } else if (getIntent().getStringExtra(CLIENT_TYPE).equals("outOfArea")) { + String tableName = "ec_out_of_area_death"; + if (!issueDate.equals("")) { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + familyCommonsRepository.customQuery(sql, selectionArgs, tableName); + }else { + String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; + String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + familyCommonsRepository.customQuery(sql, selectionArgs, tableName); + } } startActivity(new Intent(this, DeadClientsActivity.class)); finish(); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java index 43235310c5..11d341095a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java @@ -1,10 +1,9 @@ package org.smartregister.chw.activity; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Intent; import android.os.Bundle; + import com.google.android.material.bottomnavigation.BottomNavigationView; import org.json.JSONArray; import org.json.JSONObject; @@ -90,12 +89,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); JSONObject form = new JSONObject(jsonString); - ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText("label", jsonString); - clipboard.setPrimaryClip(clip); - - String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); - +// String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(OUT_OF_AREA_ENCOUNTER_TYPE) ) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java index 58780b318c..cbbb6526b3 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java @@ -3,6 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; + import com.google.android.material.bottomnavigation.BottomNavigationView; import org.json.JSONArray; import org.json.JSONObject; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java index 01f0cdad01..269fbc6ddc 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java @@ -1,8 +1,6 @@ package org.smartregister.chw.activity; import android.app.Activity; -import android.content.ClipData; -import android.content.ClipboardManager; import android.content.Intent; import android.os.Bundle; @@ -32,12 +30,9 @@ import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; -import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_BIRTH; -import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_CHILD_FORM; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_ENCOUNTER_TYPE; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_FORM; -import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_ENCOUNTER_TYPE; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_FORM; import static org.smartregister.chw.util.CrvsConstants.UNIQUE_ID; @@ -63,7 +58,6 @@ protected void onCreate(Bundle savedInstanceState) { NavigationMenu.getInstance(this, null, null); ChwApplication.getInstance().notifyAppContextChange(); // initialize the language (bug in translation) -// action = getIntent().getStringExtra(Constants.ACTIVITY_PAYLOAD.ACTION); startAncDangerSignsOutcomeForm(); } @@ -98,11 +92,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); JSONObject form = new JSONObject(jsonString); - ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText("label", jsonString); - clipboard.setPrimaryClip(clip); - - String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); +// String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(OUT_OF_AREA_DEATH_ENCOUNTER_TYPE) diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java index 5a9620b62e..0be58e841c 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java @@ -30,6 +30,7 @@ import java.util.Set; import timber.log.Timber; + public class CoreBirthNotificationFragment extends BaseChwRegisterFragment implements CoreChildRegisterFragmentContract.View { public static final String CLICK_VIEW_NORMAL = "click_view_normal"; @@ -308,13 +309,16 @@ private String filterandSortQuery() { String query = ""; try { if (StringUtils.isNotBlank(filters)) { - query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); }else if (StringUtils.isBlank(filters) && !dueFilterActive){ - query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); } if (dueFilterActive) { - query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); } } catch (Exception e) { Timber.e(e); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java index 69ac2425a8..ddb6795f9e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java @@ -291,13 +291,13 @@ private String getCountSelect() { String query = countSelect; try { if (StringUtils.isNoneBlank(filters)){ - query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+filters+") as sumcount"; + query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+filters+") + (Select count(*) from ec_out_of_area_death ) as sumcount"; }else if (StringUtils.isBlank(filters) && !dueFilterActive){ - query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth') as sumcount"; + query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' ) + (Select count(*) from ec_out_of_area_death ) as sumcount"; } if (dueFilterActive){ - query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActive+") as sumcount"; + query = "Select (SELECT count(*) from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1) + (Select count(*) FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1) + (Select count(*) from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActive+") + (Select count(*) from ec_out_of_area_death ) as sumcount"; } } catch (Exception e) { @@ -325,15 +325,15 @@ private String filterandSortQuery() { } private String customDeathQuery(int limit, int offset) { - return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' LIMIT " + offset + "," + limit; + return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; } private String customDeathDueFilterQuery(int limit, int offset, String dueFilterActive) { - return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActive+" LIMIT " + offset + "," + limit; + return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActive+" Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; } private String customDeathQuery(int limit, int offset, String filter) { - return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 " + getFilters("first", filter) + " UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 " + getFilters("second", filter) + " UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' " + getFilters("third", filter) + " LIMIT " + offset + "," + limit; + return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 " + getFilters("first", filter) + " UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 " + getFilters("second", filter) + " UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' " + getFilters("third", filter) + " Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; } private String getFilters(String query, String filter) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java index af8ce60d33..7030faf18f 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java @@ -2,8 +2,6 @@ import android.content.Intent; import android.util.Log; -import org.smartregister.chw.activity.ChildProfileActivity; -import org.smartregister.chw.anc.domain.MemberObject; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.model.CoreDeadClientsFragmentModel; import org.smartregister.chw.presenter.DeadClientsFragmentPresenter; @@ -11,11 +9,8 @@ import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.configurableviews.model.View; import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; -import org.smartregister.family.util.Utils; import org.smartregister.view.activity.BaseRegisterActivity; import java.util.Set; -import timber.log.Timber; -import static org.smartregister.chw.core.utils.ChildDBConstants.KEY.FAMILY_LAST_NAME; public class DeadClientsFragment extends CoreDeadClientsFragment { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java index e580fb183a..a592a68f2a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java @@ -27,24 +27,24 @@ public List getNavigationItems() { navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_anc, R.mipmap.sidemenu_anc_active, R.string.menu_anc, Constants.DrawerMenu.ANC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_pnc, R.mipmap.sidemenu_pnc_active, R.string.menu_pnc, Constants.DrawerMenu.PNC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.menu_child_clients, Constants.DrawerMenu.CHILD_CLIENTS, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); } else if (ChwApplication.getInstance().getContext().allSharedPreferences().getPreference(USER_TYPE).equals(CrvsConstants.AGENT)) { - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); } else { navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_families, R.mipmap.sidemenu_families_active, R.string.menu_all_families, Constants.DrawerMenu.ALL_FAMILIES, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_anc, R.mipmap.sidemenu_anc_active, R.string.menu_anc, Constants.DrawerMenu.ANC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_pnc, R.mipmap.sidemenu_pnc_active, R.string.menu_pnc, Constants.DrawerMenu.PNC, 0)); navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.menu_child_clients, Constants.DrawerMenu.CHILD_CLIENTS, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); - navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_children, R.mipmap.sidemenu_children_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.birth_certification, Constants.DrawerMenu.BIRTH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_certification, R.mipmap.sidemenu_certification_active, R.string.death_certification, Constants.DrawerMenu.DEATH_NOTIFICATION, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_registration, Constants.DrawerMenu.OUT_OF_AREA_CHILD, 0)); + navigationOptions.add(new NavigationOption(R.mipmap.sidemenu_outofarea, R.mipmap.sidemenu_outofarea_active, R.string.out_of_area_death, Constants.DrawerMenu.OUT_OF_AREA_DEATH, 0)); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java index b09b198229..f209707c8d 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java @@ -6,10 +6,8 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.text.TextUtils; -import android.util.Log; import android.util.Pair; import android.view.View; -import android.widget.LinearLayout; import android.widget.Toast; import com.google.android.material.floatingactionbutton.FloatingActionButton; @@ -17,8 +15,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; -import org.smartregister.chw.activity.DeadClientsActivity; -import org.smartregister.chw.activity.DeadClientsUpdateActivity; import org.smartregister.chw.activity.OutOfAreaChildActivity; import org.smartregister.chw.activity.OutOfAreaChildUpdateActivity; import org.smartregister.chw.contract.CoreOutOfAreaChildRegisterContract; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java index 86a1d68a71..b41a832cef 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java @@ -6,7 +6,6 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.text.TextUtils; -import android.util.Log; import android.util.Pair; import android.view.View; import android.widget.Toast; @@ -16,8 +15,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; -import org.smartregister.chw.activity.DeadClientsUpdateActivity; -import org.smartregister.chw.activity.OutOfAreaChildActivity; import org.smartregister.chw.activity.OutOfAreaDeathActivity; import org.smartregister.chw.activity.OutOfAreaDeathUpdateActivity; import org.smartregister.chw.contract.CoreOutOfAreaDeathRegisterContract; @@ -37,7 +34,6 @@ import timber.log.Timber; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_ENCOUNTER_TYPE; -import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_ENCOUNTER_TYPE; public class CoreOutOfAreaDeathRegisterPresenter implements CoreOutOfAreaDeathRegisterContract.Presenter, CoreOutOfAreaDeathRegisterContract.InteractorCallBack { public static final String TAG = CoreChildRegisterPresenter.class.getName(); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java index 7b532f3d4f..9b56f70399 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java @@ -30,6 +30,7 @@ import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DEATH_CERTIFICATE_ISSUE_DATE; +import static org.smartregister.chw.util.CrvsConstants.DOB; import static org.smartregister.chw.util.CrvsConstants.NO; import static org.smartregister.chw.util.CrvsConstants.RECEIVED_DEATH_CERTIFICATE; import static org.smartregister.chw.util.CrvsConstants.YES; @@ -56,8 +57,8 @@ public DeadUpdateLastAsyncTask(Context context, CommonRepository commonRepositor @Override public Void doInBackground(Void... params) { - if (commonRepository != null) { - commonPersonObject = commonRepository.findByBaseEntityId(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false)); + if (baseEntityId != null) { +// commonPersonObject = commonRepository.findByBaseEntityId(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false)); Map map = VisitDao.getVisitSummary(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false)); if (map != null) { @@ -68,7 +69,7 @@ public Void doInBackground(Void... params) { long visitNot = 0; long dateCreated = 0; try { - String createVal = Utils.getValue(commonPersonObject.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); + String createVal = Utils.getValue(baseEntityId.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); @@ -82,7 +83,7 @@ public Void doInBackground(Void... params) { visitNot = notDoneSummary.getVisitDate().getTime(); try { - String dobString = getDuration(Utils.getValue(commonPersonObject.getColumnmaps(), DBConstants.KEY.DOB, false)); + String dobString = getDuration(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.DOB, false)); childVisit = CoreChildUtils.getChildVisitStatus(context, rules, dobString, lastVisit, visitNot, dateCreated); } catch (Exception e) { childVisit = null; @@ -119,6 +120,7 @@ public void onClick(View view) { String death_certificate = Utils.getValue(baseEntityId.getColumnmaps(), RECEIVED_DEATH_CERTIFICATE, false); String client_type = Utils.getValue(baseEntityId.getColumnmaps(), CLIENT_TYPE, false); String death_cert_issue_date = Utils.getValue(baseEntityId.getColumnmaps(), DEATH_CERTIFICATE_ISSUE_DATE, false); + String dob = Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.DOB, false); Intent intent = new Intent(context, DeadClientsUpdateActivity.class); intent.putExtra(org.smartregister.chw.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.util.Constants.ACTION.START_REGISTRATION); @@ -126,6 +128,7 @@ public void onClick(View view) { intent.putExtra(RECEIVED_DEATH_CERTIFICATE, death_certificate); intent.putExtra(CLIENT_TYPE, client_type); intent.putExtra(DEATH_CERTIFICATE_ISSUE_DATE, death_cert_issue_date); + intent.putExtra(DOB, dob); context.startActivity(intent); } }); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java index 6d32690255..999705210b 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java @@ -39,6 +39,7 @@ import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERT_NUM; import static org.smartregister.chw.util.CrvsConstants.BIRTH_NOTIFICATION; import static org.smartregister.chw.util.CrvsConstants.BIRTH_REGISTRATION; +import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DOB; import static org.smartregister.chw.util.CrvsConstants.YES; @@ -78,7 +79,7 @@ public Void doInBackground(Void... params) { long visitNot = 0; long dateCreated = 0; try { - String createVal = Utils.getValue(commonPersonObject.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); + String createVal = Utils.getValue(pc.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); @@ -91,7 +92,7 @@ public Void doInBackground(Void... params) { if (notDoneSummary != null) visitNot = notDoneSummary.getVisitDate().getTime(); - String dobString = getDuration(Utils.getValue(commonPersonObject.getColumnmaps(), DBConstants.KEY.DOB, false)); + String dobString = getDuration(Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.DOB, false)); childVisit = CoreChildUtils.getChildVisitStatus(context, rules, dobString, lastVisit, visitNot, dateCreated); } return null; @@ -101,10 +102,10 @@ public Void doInBackground(Void... params) { @Override protected void onPostExecute(Void param) { - if (commonPersonObject != null) { + if (pc != null) { viewHolder.dueButton.setVisibility(View.VISIBLE); - String birth_cert = Utils.getValue(commonPersonObject.getColumnmaps(), BIRTH_CERT, true); - String birth_notification = Utils.getValue(commonPersonObject.getColumnmaps(), BIRTH_NOTIFICATION, true); + String birth_cert = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT, true); + String birth_notification = Utils.getValue(pc.getColumnmaps(), BIRTH_NOTIFICATION, true); String birth_registration = Utils.getValue(pc.getColumnmaps(), BIRTH_REGISTRATION, true); String dob = Utils.getValue(pc.getColumnmaps(), "dob", true); try { @@ -124,13 +125,15 @@ protected void onPostExecute(Void param) { viewHolder.dueButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - String entityId = Utils.getValue(commonPersonObject.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, true); - String birth_cert_issue_date = Utils.getValue(commonPersonObject.getColumnmaps(), BIRTH_CERTIFICATE_ISSUE_DATE, true); - String birth_cert_num = Utils.getValue(commonPersonObject.getColumnmaps(), BIRTH_CERT_NUM, true); + String entityId = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, true); + String birth_cert_issue_date = Utils.getValue(pc.getColumnmaps(), BIRTH_CERTIFICATE_ISSUE_DATE, true); + String birth_cert_num = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT_NUM, true); + String clienttype = Utils.getValue(pc.getColumnmaps(), CLIENT_TYPE, true); Intent intent = new Intent(context, BirthNotificationUpdateActivity.class); intent.putExtra(org.smartregister.chw.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.util.Constants.ACTION.START_REGISTRATION); intent.putExtra(DBConstants.KEY.BASE_ENTITY_ID, entityId); + intent.putExtra(CLIENT_TYPE, clienttype); intent.putExtra(BIRTH_CERT, birth_cert); intent.putExtra(BIRTH_CERTIFICATE_ISSUE_DATE, birth_cert_issue_date); intent.putExtra(BIRTH_CERT_NUM, birth_cert_num); @@ -138,7 +141,6 @@ public void onClick(View view) { intent.putExtra(BIRTH_REGISTRATION, birth_registration); intent.putExtra(DOB, dob); context.startActivity(intent); - } }); } else { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java index 97ef9a1203..b7bd6f06d3 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java @@ -20,6 +20,8 @@ public class CrvsConstants { public static String MIN_DATE = "min_date"; public static String DOB = "dob"; public static String CLIENT_TYPE = "clienttype"; + public static String BIRTH_CLIENT_TYPE = "birth"; + public static String OUT_OF_AREA_CLIENT_TYPE = "outOfArea"; public static String RECEIVED_DEATH_CERTIFICATE = "received_death_certificate"; public static String BASE_ENTITY_ID = "base_entity_id"; public static String UNIQUE_ID = "unique_id"; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java index e38a9781bc..2427620767 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java @@ -3,7 +3,6 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; -import android.util.Log; import com.vijay.jsonwizard.domain.Form; @@ -11,12 +10,10 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import org.smartregister.chw.core.utils.ChwDBConstants; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.family.util.Constants; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.Utils; -import org.smartregister.location.helper.LocationHelper; import org.smartregister.util.FormUtils; import org.smartregister.view.LocationPickerView; diff --git a/opensrp-chw/src/crvs/res/values/strings.xml b/opensrp-chw/src/crvs/res/values/strings.xml index aced0f3520..60c5b4be3c 100644 --- a/opensrp-chw/src/crvs/res/values/strings.xml +++ b/opensrp-chw/src/crvs/res/values/strings.xml @@ -4,7 +4,7 @@ CRVS App Dead Clients Birth certification - Out of area registration + Out of area birth Out of area death Birth Notification Death certification diff --git a/opensrp-chw/src/main/assets/ec_client_fields.json b/opensrp-chw/src/main/assets/ec_client_fields.json index 9da6e2e57d..3e17ad08c0 100644 --- a/opensrp-chw/src/main/assets/ec_client_fields.json +++ b/opensrp-chw/src/main/assets/ec_client_fields.json @@ -705,6 +705,46 @@ "json_mapping": { "field": "dateCreated" } + }, + { + "column_name": "birth_cert", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "165406AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "birth_cert_issue_date", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "164129AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "birth_cert_num", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "162052AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "birth_notification", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "165405AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "birth_registration", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "birthRegistration" + } } ] }, @@ -937,6 +977,22 @@ "json_mapping": { "field": "dateCreated" } + }, + { + "column_name": "received_death_certificate", + "type": "Client", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "received_death_certificate" + } + }, + { + "column_name": "death_certificate_issue_date", + "type": "Client", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "deathCertificateIssueDate" + } } ] }, diff --git a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json index ab00ed4d0b..4c21557ef0 100644 --- a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json +++ b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json @@ -113,6 +113,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_data_type": "text", + "hidden": "true", "type": "check_box", "label": "", "exclusive": [ diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java index 7b7607fa52..d4e01322bc 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java @@ -3,10 +3,8 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.util.Log; import com.google.android.material.bottomnavigation.BottomNavigationView; -import com.mapbox.mapboxsdk.log.Logger; import org.json.JSONArray; import org.json.JSONObject; @@ -41,9 +39,11 @@ import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERTIFICATE_ISSUE_DATE; import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERTIFICATION_CHANGED; import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERT_NUM; +import static org.smartregister.chw.util.CrvsConstants.BIRTH_CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.BIRTH_FORM; import static org.smartregister.chw.util.CrvsConstants.BIRTH_NOTIFICATION; import static org.smartregister.chw.util.CrvsConstants.BIRTH_REGISTRATION; +import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DOB; import static org.smartregister.chw.util.CrvsConstants.MIN_DATE; import static org.smartregister.chw.util.CrvsConstants.NO; @@ -147,6 +147,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, String jsonString) { + String client_type = getIntent().getStringExtra(CLIENT_TYPE); try { JSONObject jsonObject = new JSONObject(jsonString); JSONObject stepOne = jsonObject.getJSONObject("step1"); @@ -160,11 +161,16 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S String certificate = birth_certification.getString("value"); - String tableName = "ec_child"; + String tableName; + if (client_type.equals(BIRTH_CLIENT_TYPE)){ + tableName = "ec_child"; + }else { + tableName = "ec_out_of_area_child"; + } if (certificate.equals("Yes")) { String dateOfBirthCertificate = objBirthCertificate.getString("value"); String birthCertNum = objBirthCertificateNum.getString("value"); - String sql = "UPDATE ec_child SET birth_cert = ?, birth_cert_issue_date = ?, birth_cert_num = ? WHERE id = ?"; + String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_cert_issue_date = ?, birth_cert_num = ? WHERE id = ?"; String[] selectionArgs = {certificate, dateOfBirthCertificate, birthCertNum, getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } else { @@ -176,7 +182,7 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S e.printStackTrace(); } if (registration.equals("Yes")) { - String sql = "UPDATE ec_child SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; + String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; String[] selectionArgs = {certificate, "Yes", "No", getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } else { @@ -187,7 +193,7 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S notification = "No"; e.printStackTrace(); } - String sql = "UPDATE ec_child SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; + String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; String[] selectionArgs = {certificate, "No", notification, getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java index 2bc7367414..7103e88642 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildHomeVisitActivity.java @@ -1,7 +1,5 @@ package org.smartregister.chw.activity; -import android.util.Log; - import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.anc.domain.Visit; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildRegisterActivity.java index 9bfa3af545..958d5e62b4 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/ChildRegisterActivity.java @@ -1,7 +1,6 @@ package org.smartregister.chw.activity; import android.content.Intent; -import android.util.Log; import org.json.JSONObject; import org.smartregister.chw.anc.util.Constants; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java index 6a5b05540f..11c7cd214e 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/FamilyRegisterActivity.java @@ -3,30 +3,18 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.util.Log; import com.google.android.material.bottomnavigation.BottomNavigationView; -import org.smartregister.chw.BuildConfig; -import org.smartregister.chw.R; -import org.smartregister.chw.anc.AncLibrary; import org.smartregister.chw.application.ChwApplication; -import org.smartregister.chw.application.ChwApplicationFlv; import org.smartregister.chw.core.activity.CoreFamilyRegisterActivity; import org.smartregister.chw.core.custom_views.NavigationMenu; -import org.smartregister.chw.core.utils.CoreConstants; -import org.smartregister.chw.custom_view.NavigationMenuFlv; import org.smartregister.chw.fragment.FamilyRegisterFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; -import org.smartregister.chw.model.NavigationModelFlv; import org.smartregister.chw.util.Constants; import org.smartregister.chw.util.Utils; -import org.smartregister.domain.UniqueId; -import org.smartregister.family.contract.FamilyRegisterContract; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; - -import java.util.HashMap; import java.util.Map; import timber.log.Timber; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java index 6aa8ddc503..64c9788411 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/LoginActivity.java @@ -5,7 +5,6 @@ import android.content.Intent; import android.os.Bundle; import android.os.Environment; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; 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 c1107c1bbd..e1db17d6b3 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 @@ -6,7 +6,6 @@ import android.content.pm.PackageManager; import android.content.res.Configuration; import android.os.Build; -import android.util.Log; import androidx.localbroadcastmanager.content.LocalBroadcastManager; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/dao/WashCheckDao.java b/opensrp-chw/src/main/java/org/smartregister/chw/dao/WashCheckDao.java index 3398e12d28..bca3f4f2ba 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/dao/WashCheckDao.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/dao/WashCheckDao.java @@ -1,7 +1,5 @@ package org.smartregister.chw.dao; -import android.util.Log; - import net.sqlcipher.database.SQLiteDatabase; import org.apache.commons.lang3.StringUtils; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java index 15d2175c7a..64ab827620 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java @@ -4,7 +4,6 @@ import android.os.Bundle; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/DefaultChildHomeVisitInteractorFlv.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/DefaultChildHomeVisitInteractorFlv.java index e143920246..82580439b5 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/DefaultChildHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/DefaultChildHomeVisitInteractorFlv.java @@ -1,7 +1,6 @@ package org.smartregister.chw.interactor; import android.content.Context; -import android.util.Log; import android.util.Pair; import androidx.annotation.VisibleForTesting; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java index 65deb20d8b..668771bf9a 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java @@ -1,7 +1,5 @@ package org.smartregister.chw.interactor; -import android.util.Log; - import org.smartregister.chw.contract.LoginJobScheduler; import org.smartregister.domain.LoginResponse; import org.smartregister.login.interactor.BaseLoginInteractor; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/pinlogin/PinLoggerInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/pinlogin/PinLoggerInteractor.java index bf748b79d2..addc22ea07 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/pinlogin/PinLoggerInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/pinlogin/PinLoggerInteractor.java @@ -1,7 +1,5 @@ package org.smartregister.chw.pinlogin; -import android.util.Log; - import androidx.annotation.NonNull; import org.joda.time.DateTime; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/PinLoginPresenter.java b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/PinLoginPresenter.java index 1782d28769..efc512e654 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/presenter/PinLoginPresenter.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/presenter/PinLoginPresenter.java @@ -1,7 +1,5 @@ package org.smartregister.chw.presenter; -import android.util.Log; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; 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 62f2936463..73de915cb7 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,7 +1,6 @@ package org.smartregister.chw.util; import android.content.Context; -import android.util.Log; import android.util.Pair; import com.vijay.jsonwizard.constants.JsonFormConstants; diff --git a/opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_certification.png b/opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_certification.png new file mode 100644 index 0000000000000000000000000000000000000000..818b7480f2b0a7ea48bd8f13ec7621c46d568ead GIT binary patch literal 400 zcmV;B0dM|^P)I5fM?;LXcQ$Wv8``mHq%h3o&iJ6QYO~Vi4i%ZTvVJ|5JPe ztA${49BgtYJMh@dGRHoc$tAHY6DCY(jxY@8;R8Nv;5i6_g(@LiiYYu|J)}r(?VvB&*C&aB2*l!!^?DU$+S=- zp|n#SBjB!+yt~l|e0wh{7s6?}EGOsZhg&cpu8mr)NB58x>Np`2{0K4}5|M8q0+so; x`~o$BbTQU0i@gc(=j0+xq=R(Pf66-lE*}DT%$K`Yu5SPU002ovPDHLkV1j1*!tnqA literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_outofarea.png b/opensrp-chw/src/main/res/mipmap-hdpi/sidemenu_outofarea.png new file mode 100644 index 0000000000000000000000000000000000000000..f8dc5f0554191bc13c2d6da63d10fbf8e8ef7927 GIT binary patch literal 877 zcmV-z1CsoSP)Nk9;FDUxrGgKN#ijb-gGdF@KBx$Nuxbm66cf~&?7i#5`hNF;K= zH85VUcPWH=Y!rP14TE|BwhKy+;rSxy8R(C;mV9>w5CmRVKxPpmm$KRH@=|L6U<>B? z)Vg2d@_J)tzjD)ODBDr(dK27vvedhB8>z-RFWE8-MqDYR*FfPiC8LimCDwHcrc;^x zGJ}EO2jD$s0O4?WD|l}~M^y~+#y;6?q#ASIpIR$U<1Z$7bD>N+09M>%@qY8shzb+2|G=4)D{Za9c=)L+J!(ZLH(Kp z4A~Ud?`2#TO{dcsiWg8tnE`h>0o1J& zoFwxP6!}m#Bw$mi)CRndo4G&vXyf@Q$;vs(*5;^AaN0+(wvm#4D89*S;HGubo`AoX zPUJqUT_8EP>#1d@m6dvHZCkJ|#n!2-aWf?%!z~APxVGB$n0rD6d|%z|2Qu?PC3LXL z&9sS|$yJk(wZfI22*RFoUn3{2%GQJ3ea5w}F_B1YSAEf=a`XLu{~By!n!t=Xs_+#u z_k9ACNA~V0W6=S&4mNbi^+w-R`B_pFE8(h5Ty~_CH0&A#W!EZYT$SPTwY0oWVrey$ zd?khB92?1GvO~q1$7=LIvOK5KKo7-Pg!psfzJ>#mlA=0+sX!pG3P2C5V}8SG)-abs zwvyDfF^a8eaj(_Pq3-zqT(M!T^H#Hm^f+9_iQeeDS8dMNxKn=pn)&%7==;hwKJLMK4`!yAXk-JLl{gicwIA zY&W`S_cSz(RRZUHXIJo{KgGT?t2^h6ySg*(t{=?H%$zg7@Aut)X9x*m;nDSG1TL6V zJTWMIH>ijkln)vfd@wC&A{MVDE%q`}aHC>_$)FVh4CinSn3P{5bZklffsBtEgu>|* z6FGrVF8EBE6I=5KCNyqhXc{tn>>Dz0oiI^@A=*hIiE6^&xEY3KgTWs!Th8-*m}&8| z9*_GlbSFqm%*(ncDpr|{KhW1De#?;0GG|~50#L#PpGXwe=DZ%0TU*cI&9sip$PR;N z8Z#;w3?&JL%qfdvu@W7Ws8gA8*bP?Nyh_`MiIZAhS#Zmw_B{;%`&)sbc}?iZZtY#o zG4auH#y2}*aaCdGdzxxw1@j{``Ap`D11ic_8;p0Q?(;#yl6w`Fc4^MF@TvgGES{%7 zidE+3)z}K@rTT$XWr=R>o|U+(h7s@ex?zJ;z5!_)FmX(K=!6E|XX`x<7*Bqg%x-fX z#CG8ykXs#u@&lPl8>{Bs6fhXhOv!FC(Wr$v0HFRfpoo2VYDp*7$>x{=5Y1HDSOig* zA-lmppa{HlLjYI2!xaJl$R09?lBYcj)X^h*nCqaZ572|eZTBPmtuxP3?O-Kt{!<6Q zZng5b~Ed4%(hss{P!Me3m zs!Aovwjb&#oqSwk+4Wd07qvCb|CUO5g88*cacnd0GvwwNTn;|VEc>8`>RP|D1sQDD z*qN1ZbEF4*m?VQyQP zXoTAfaN>|t9{Q94*^=?S$0OzH*l|Wlp$uinnVCAS-r+^um*n+rt;1#L{TC&dI_cBSldHQYn(AfrThhc4+;I@^hqU7EV-q zstD&AbfoWL$&=7<87ZdeXMBk3M;$myif)d^ai_S;4!oLjHY*xSmbmW)L}+pknKNUf z74k=d+XU@4GS`M<;?hJO4PkO`oO3|(hm_RVfsQtX3mqOL@$i_Bt^NbmRdpuqp~pc0 O0000lU~nlopP5QYUnb_mcFD+yts`eohS-Q36) z0LAA{nlwoign{fbxFyII0K<<9C@D(_Po6wk3fTw1Adv@}u>ol4CKv|t_W*GoRe}f` z0GSCg8=DWTD8WFp#Bf>wRG%Mkp literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_certification_active.png b/opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_certification_active.png new file mode 100644 index 0000000000000000000000000000000000000000..b0cc0be498c4ef15d01320640d4df53675c228c2 GIT binary patch literal 343 zcmV-d0jU0oP)$B-5+n&UMd}6lli7-tp0JFC~PcYv0Y?bAz$3hqu09_Db zy!FXS!uaVjy`3+(ku5OV@^r4@w&$WCY_$1l8PF%Iw08h4LAC%Geq5$IpUM)#hPz%% zp#`%%&<7iUk-Z6yw>;egbVwdmf(RP`nF%r*(+68#T2X@a*1ZtJX@Sv>$129#o_14$ zO}9R?!)XD{gNPn+pkcK2*$iCRZ0i#>iY)NlcAFiXrg319{NN5EnpptMaqYmI7eP%7 pG81aSBNI@TrUeF>JzC=u1OQ0D{4#o~(Z~P*002ovPDHLkV1j^pmjnO+ literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_outofarea.png b/opensrp-chw/src/main/res/mipmap-mdpi/sidemenu_outofarea.png new file mode 100644 index 0000000000000000000000000000000000000000..331e3db1e79657454b9388f8c095eed02903e142 GIT binary patch literal 597 zcmV-b0;>IqP)jI=jp9Lh;6W%J6iQNr;*F@ugYq)XOml692Td-M$R*cYA`<@7 z_?Et1J8A55uxq#X*?X;Tt-Zdr*0HP%!{hN}Mw(Vlmf* zbgZ)o(KBY7++!UTdFXAMzTiw0K%QH^vGy=~-T}6!5j-LH@p!zN->+V;x4^`}Cz#*w zuTf_RQ9r=n6gc)XdMc|syrRm)z$1ZN+S!<%o-nv1$w0CT)wytDVqlBj3^7Cl8hBjo zaX-gIp-QpemrdQV-oq% z`jw@TNo&H~bIzswG2?rF+~bbS&Y9WusoT`O-}Cu=f1d%E4TV++OzsScCVdK2Pk>G>^bh3Smg(Y5ZOX!bgpWIHK*D zxaTDhFgc|?ijxuJeKKacM~U)>S%D!I$8E%GY&vJ4SYOm#fJ#jUL=L-`gzrOwFBy3l ziBtJj&b~qM`)UsX@lhM+i%Z1Oe0yRf7gRGCfyQDN71pGC4XB(n5%7a11$_S>VsSGk za>k}`#HMK4iOz~xj=LekqN-Hk;a6DP^O`^xRn(v)w`hkLr&^Gtm;KuGmRz0<5w3|n z*;KcA7x9()x0G&m1@2|oF#HoX6)&JF7j$lEe#f*Zws23lE|+v2peWtp1~T7q-XQ$2 zjpD89l)twu4%U6wQGEe-3r3-bZh$1?ZQq#OZN$@0YBBb|vh{%JBGz#KEHg{4F^Fk- z+SaOl0~Z{UJvMD9&ROpdSkd=5SW98fi1;pBi#n9Pty42$rj{Rrd4akgD8FllPhFeZ z``2EJ%^PkV*qxKDk@-aKmU}k0%f1uJe6#UB8H4|YkfkT}Uzr~88@8pT33OWPiU0rr M07*qoM6N<$f&$Gv0ssI2 literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification.png b/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5ab71ff02f68f41b9b03d949f4e75c1065b78b GIT binary patch literal 473 zcmV;~0Ve*5P)UrL-GC&Xntz6@- zP9ylI%%KdC19-A+dqk&^<+!Iaca#BeZR@_Bk>fyirWlQ`>$=;<0U-1V^6W_nc*{5d zk!@c>;Pa+&0J1DM5*x+=h>V94A`HWIB>?OXL-_Fp>K-ff4PR}F0&t=1NJ8Mc))yd2 zk_jVP42j*ag zEdF1HUPR_rtpExff7%3K1b~>tm++M?^CQK;04TfD{d@q3H_Nh`0|8+3nB+U3W-rqu zCIA8$5C8|JS=60jB{(nW(aY*omskRCwFAU)Jk3vt{DGo~MVl#_0|Y<-1n`dl z_^}n&XA>;4{sLgf9L1MTjouHay2G>o3<+awI8D=Wlgu;I>nRe6L@KRs+y*kZp7T!~ P00000NkvXXu0mjfMWM}G literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification_active.png b/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_certification_active.png new file mode 100644 index 0000000000000000000000000000000000000000..36e997d63a1069d150c65e4feaf25d4236bac307 GIT binary patch literal 544 zcmV+*0^j|KP)@DYl1VZmgkRm6ot z@wRo$>8d{2IDDh0@w6Xq-5<-{k-0)*m5TRv?yUZ{LmMt?Z~v6$_O zbztz92|p@4hd+q(@vAH z-O89{?5+Z^-s~&}0Gz= z=NwGYQD|ZS005f+BNw?IF`sNG8sDtMVwzk>8t---K+GM7_CJAi-*JF3Lc8RIC^r<9 zSl$!TK02WX00000;2#0Vu~i%sUT`ti0)SXCn-S(WuK7P;*&=2Udp;$TB-7|iytaDD iGG_Qa1pq`_-6yF|3(aX^KQd!tT$nuLplm$H~BEiC<7h9ANl|mE+rhynlB*xmRyY2(oh%L$< z6r@>eX;y04|75=dQw*mwv$M1J&a4+McXsB?x#xX;cQz1EG~)4iSu`3AMk0}im~U|X z4f7YSC$PT98o_#{r>AGz%*@Q3K%orCwHtyZu})+C?PQXIu~_T`lrHj3@V>sj)tFJI zLR%?D zF^_pEY@p~VB<)TMBdo=|!4tK!vvV=-4>JDa`5MP8e7Ru#R)Ov;#V~bV%w0Tx5H3ST zqTU-A7?{W2trfzvURBM%ASBv4CP0wUOyIp5dPbEA_lB5&_svScEAw%0n9+2p@<10W zbZJ3IVO9w_ za+uR1^h#AI@Pjc9TJ(uhSoUQW;YUHUReGOLsz6_%qJ&N}_aC=wP&S?z!}Cg;eKrd3 zRH^X5cUGg%*>vj-5ag4E0#i_azs){XT0DSF-!i5xRu;4o{+|+7Pyzkph|thVR45Q) zjGqgeZz2fbFo~x?e^Bs1i`LgBls1K45$=6txfW8@ z$kq$T#Wn#eO`0|zNhA`R4dIq^CGh(yv;Hwb$vTx_uAiTxC}H_2%}^p^wysHuv?2Uu zc1BppJ2f>r!bqwQ?!22mlISRzB_0HkC42)u4TANXl%EN}G|o3d^Vyy!&lN^zHXCLH ziZ0P{7OoU>;YmJ~g3itYhB~9|SV<^S*zk}WUdd!~4L{^l&(Zp=Nady~jp4c5b%dj* ziKn9=|z)?JV1{qu^5zAIlJcSIo4j|7h*=oAykU?cv^#wAhfEe^W35mYIH^|`PEB3SAcG=^;U8ph12O31S3yAr7Zs_7 zmCeS$Y#Szsktqns;1*)Q8>a)abwG(m-H_oAA&Am#(klNe00000NkvXXu0mjf6Lsbv literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_outofarea_active.png b/opensrp-chw/src/main/res/mipmap-xhdpi/sidemenu_outofarea_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c7cb0f92f0e7424f02fe291e294819d87f0522d6 GIT binary patch literal 1142 zcmV-+1d02JP)0Xf=quYh_avuMHE<6*aM3Sq8CI_U>e8;5rv}e?5SBq5hZ31 z6v`f2J}NVn%A1+fknm5j@1ED;?96(%d%L$fFu&~W&G-5Fem~z?gxp#hOGi4(S1~D7 zboyGs^b7261+z}rZ&Zy|sv0?m^!_X~JglH`voy9@#qujK z#mjy#0>!HmR@%xCEwnE6%Ip1G6`iyvrF?ADZivR2)TLE0v=0P#TPV{5x&BPm*fpe) zJcP+!*ay@gy$H{$6->Tc83OpYfda#-$N5gTMS*En{0D%yC<5fMR{2mG7<3xmZ z$t5qrnht_H1i>18i7EzG+lylVJT*u(Sp-4O4)>LZ{8aVOebHm=A-X#-%h8#EfU4^3 zx+D_K2oKKoAax|3cdC5Mh+!2f*&Wd_^s=k^t2%vb&UtCtRD=%$$Tvz4sU%C_oGXUs zx#uN)GoYfqHJ#s)v~yysDwH7sTaj2=>9J@t>x2rlNrIoIk!r(kq5Aqs-0x7W%rcDX z<&FWEofLo;{JE4@p5>bq=tTNJPE2{7HE|Bm$!*SvK=S@G$N4)ioFv%Flk5Sp$twArUfQPeRid}LA!4>8BicbX>fr7>IA!Q8>%AN zB1YJ5A&pA^%un6`9R9`~3h5$!5rip0`XUZ(Xhm9htpz>F5)820U*rbxEEB+baI6M3 zMkLx$kY!r_x00?94Uk02fdOB+Lp5^T8t`PfqOp$_%(Dxkx81thk!-Ib(7=-}R%q!# zE9FNUVMP^!p*?~D5YgnTkVeZ)Ag&WTb$F#g0TP@6x*#=nigH+?Cshcz`U#;Aj4pwZ zGRoKR=zE_a=QkK-SH@lqqhn{lWCqVZ@R6ov?liLUU(3uuR&l6UUuNqPA z?;M~IwWdyfo|h5cFQkvoa^2%Xz&cF=x(&bzQ`(3T&761t8-dBwD1$xA{r0GJnz>U) z8Xa&XR|j`-f}$0&_Y5%0QxPb#jNe2C9Mjn_!MQ#XKpNDDVJ7R7B#Lv5{$RpK3v}g~ z9?ZflQ^W#$l1!yAW@nLw(xaYDl?IEH(B56ns$1V;amc3)-rg0tDAZMFq&(~%q+?2f z=Se}ZSyoRuE`7LfOF|{t(?8DVRKu+Z0oCKgx0?_e8}BTua*fk7vuS zH=Rb!>u&=I=X0tkgMFe$?!~PrDWwed?~T^PtLZ7H46b%nUnqkc6ho(tD8Q!rMj7ni z;IXTcTjrboQ3l(i=TMpmRB`+BQ7;LK;V)%yLNTJ(=#uRdWpIIF_)8faQ4CrqP=*pe zDTD1O4CL@1G{P6qL|daMM)UZf3=Sy<(&!O1QCB2&Jf;l)0EW-W!!io8_W%F@07*qo IM6N<$f?kvolK=n! literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_certification.png b/opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_certification.png new file mode 100644 index 0000000000000000000000000000000000000000..749122f9dd877a9d32070735a28e8a492cc74da2 GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U<&edaSW-r^>)@-Zze~HV`~rW z+kI93g1iDNtLufe*)Aa=PSf*btz4$>JHp{KQ6(&Ps|L3Xr{i^{71{FtC)?_0tZD98 zz5CW1JARuVhQD6@nN$93t}HWS*CGuFDxY#PWtq?An#OvYC+Bm_s%86+yWeJONf4K7 zPX6kAdxC&U8t0FtyC(|X5A%3g@=NY~uLWzyIfEXH`tOfq z!#knQBL<9DzdheEsp{(S?LTYkIvRBTHioa6uwmET8%0 zuBWq`o`^e$dSr7g$uXKKqq5-Ew^G%+XWAzGVe??okiOO=^xe4CDRIHmhNDS=TpMza z+a_h!+oDM8pvn@Z!yb2l3(-B7($&B5^}S(Q803q^e{j zFrEaLYe2|BNLSUwzhZoEG*TVHn4alQ?C$S_4~A~2p?-9|rC---5ClOG1VIo4LHQ_> zdMJ>lLH<@A+t1_&`=-9{=o?TlZEu$gj$>tC_YEmft?|VLeW||`-JvvJT}YuauLhd4 z+p__r^!~kSZfB8AN9*3wC&`z6KuQ3biU*4xQ{DX}APMtwu(7ZWfSmn=N?+q+=YV=a zF?TBfIs2hNeLMk4nCGb=l^qaY^MyU(Lh{o@|AgbRLyNl4@lapYXyflz;7IS z0puxt-jnuFHwVg0BpX~aQJB;_ulN6& zq%~ezK%Q#tqN8&;kora%`_kU81fX8k>DvGZfB*=9iVEm=X|CT=(fF>weiP07+><$= z`eb`Uplq`wvByI8g literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_outofarea.png b/opensrp-chw/src/main/res/mipmap-xxhdpi/sidemenu_outofarea.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd925c6d3bf3ac47d73a1707d790326caf72ea6 GIT binary patch literal 1636 zcmV-q2AlbbP)<6RiPacl&;$(_l>%uX24akm5K;)fh_&Y!X1 z>nP(U1?|QF*m3l+1%I#03^1PO%^(iI;!c@@B9v<=d%=lwQVk9k(LlQ%A~1Ip^!*RM zn`skLCr+6Bc3+>2M_nL(zk-|Qr2-sG_92v_4PYjfA#BRBq>EG?$}z)*4HE~T{D1}S z!M6q9efYNH|IQlrbsg>ANG#_VfHOoukd7j8RP_5K0Na4NM>WOmU({cjIGv*@R+mtk z`}+FsGaX}MV&X2eeFew-A&qhVMyXGdXnm$}; z7W)=3H`!4#?uY}z92b2q1lOKZh}-8$IL;+IXB3lM8{w5@9>zE=jSp^H6sKZds}QZt zQO}{hy?udykK^W0j#Dw8lyr_HR;{hA59^Mls_WnJ#)P@pw~uI2iqoo2Q0nz47clWn z8V7(@UDWwrn9qSYPObyOgql?g4&2Z;g;Cda-MPZab_4qA5o_Sk@hMDZh_iEo3l6$5 zP&Vq;l|Z6XOW3q^HkEUuaJ07Qg2RDSEEb>Dts5kqST6_w?YC+BZ09C|#l2jGNZ#g- z4H7s(OS!kV_fck?6HJ@4VcTL7Kn2b}!}(^&%}SS26-fAA(eME^2zu)au5W942m^Y| z0uD;;^7;IODv(q+e~8f%#p(J!*WQ}Z$Qfo>d``z`!0R6}8 z&~Baf#7U@sC```LRMcy1onm7Q2kp}B!w2bzj)NZkE;ZP^dZDlPY;n*vMhw0*Q1s8B z&7T?okzc#X(7V9tpto&t&^ZR6f&n<^O=4o?1JdmKEuo)RZE;X91JEgrJKWPI;7oE| ztk;;^Cjvn8ZP`KlxSa+7k3|5^{~%%Pj}!p8OxvruTyCbVoBRi+cOFe}hBX3>EJ$QR zaQcx<3!8Vb`P@lH2?tD@yaqVSC^~{~pUNhxbk&fIMDm;4c6WHfooaEVu#m9uVJvQW zHFbjyJi)>rx9)ny0=5ae)g{Ev4(lwK0jXkL4fpQ}YZukqL@Z80I^o1<)BuTHut{Cl zb?;R~VVmQMhkY&RiQ`<hZs)gD(&>~TLEjFbC!xwa-OFVzM2 z%vMA-;^Cfv80-)xcN$zYD`GC*DUAO|)Z;svB5*N|9c*iBdqNR{UgIQz2n0bFT{MY- z8IJp{0M0R0=7=@&Ja3j10wytx0GxU$Cjk2IH77|#3R&{$kV3cN7xzoaNgAmV8R&u= z;=!;~aN3Q=)1U`2gB%75ckC-o#V^M80Wa`!Lc`D5kE6**7_9Bw~BPE*d01j;2m)5ft-D zYtHxxbP>hj{}OioV^tsYkWO;Up{#b&O#U+hZgH3U`}=1rxKPSHJd&6TX$@R-4;J#f zAR=r$zo(~Xp=488i7ko!DJ+~s76 zaAK`gJXv@?cp;TiW9V&}lSPuAOo5Bq0;08A63NUy5yt{wl-{vYXoqYX>4^iEW}GFE zeiXQfBB@P+C|V93JR`OpAo!10tl`|Cy3i(5wpPjIt+moOx$V`Cno0R@*l0=?KlJc5$^R6>Z zBtFcqDU2lQ*Arqs(UwoXxr2MYnMUSLQ7c55?2vlG9qYNkMRw;jB9$#{N{G5dd56%Y=5-TOUt=`$i8WOK00001+G08X zam(S`Q;vTs<;bCUmpE&=qKDahE$i?aY6qBnzD{WXeBioW;J+R$LbYutSmAfzBL>R`&V(^e4-B zjfuerw#3_!hSU~YOA^1N$1Kp0mzAq0=Y-&swVl4Y^61$9l0pQGYRzB}+$jwxrF=88 z7~K3X@ z7u|v`R#t2?@3|bY4c}Ve$|FAbQie``c$~4$`5ST1#?P>>3vvwdisQ}n^( zGzMtntJ-4;kd)UV?BQyIuAQ$SjADyEI0#7Y@a@`Ti$jjP@b}_h8Qfk$rjD%C$bF&r zWbrLIt{uFY24_N~+$QIR%>((^e&n9RC6C4M$XT?Z{0zp;q=)KNQW^ykT>X(8P!@7H z+%|rME`TXJ1TT>f=VioB^2XNTYobA-Gk=J^9-v*m_dMb5%><2DUA2O#`4oSov4tu?yH1<4+mdV&OD{@@_G} z`87^WOmRS3&vxaLC_wGvVN-5?7xEzoBX7=~yEPs-Mbt?&NICHq4iH~xib33ju5@nX z`qG0lal46^$aizOgWP+9rTecim1?{YJLk~?M;xaKxCoFSgh1`1s-2muVDN>wC-ZiM zudHm1cI9%}#kyK|WK0y6Y7jx9;>}Id9eF&b@|T2`h0qTNa58?=l*SfUR`L~(qR06c z{wBU!vJXE3$%Felt~qHkQ3d z=RaZ%p+!ey)xcueK)IQy%k2y5_=%9boJEy@)ix~ooQ2xj0Ac?gVTlskTSam@V9<^5 z;z3%$J6Pf*qLD!*xFwq_BbVZ(W<`xuvSEQvVpkAaG@wd4)1CudKE-Jpt$$6??RMfX zFI%VY5JsNB7lEHK#`#QHa`N87aRRI=ir2KFok6~?aBLx|4O9AB^fhik#m*@wjsy=C zVy@Xh_5DDo4b7XwUgU6xzlr4Y9Nj33C zv|ArtKoWC~zmiq8*u0t0qGO8BiLhl`2wS!{ISJ`hrEBO)2;hDs64{M}9a~JsRHiDW zWfzA(O&&f`2UbFD4^{*WQVNIFjKDUaPU}Dl^7;R5kLvS5d!GlDcCnfgM=U3g477_o zixX13HAbB+W3?#Mktxd-*>N!amE@MJ*(2iF(YtY@tI~zxCKc0=M;x#=GtuyX6?S~ zniiFJh5nm@7*O^1%K$0K_)U{DchH{CE(22>Jhl}zJ9L(|*`XFZ+8vkvkV$ooT?QmP pk=-1exsTwfXRciQub`y8)_>g{M0d4HSAGBh002ovPDHLkV1gZ5egFUf literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification.png b/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification.png new file mode 100644 index 0000000000000000000000000000000000000000..ffedd5bf761e9c1271964eca02f070fd7581984f GIT binary patch literal 851 zcmV-Z1FZasP)28&f(U{OMFl}YH)_37MaA1jP*f}`f-8T33ZffVQ#UT$Br}uDGz51poTWkp z1+A&E+V(%i?~_9>@uW$bnbV~6Jn)iInwjQ%a;`aKWCQ>J000000000WS42_tuv{*G zlgyLlDV0he!Z5s)S@9<)C-=yW{!r`{Gb3-(YnccLg5Veh?y4pHl3Yz)fLwgE1Srz&+_FfR?pXo?RwuyJ?zW{ns{6h_h5!cw6j=}4X)`9AMt}nWM#5c7 zcT|_D>lp+%5MaiH@z$0g*Z3iFPNgnDZnj-6enE0&5Tn}!^0>>T05e6sXB!iwUMEr$ zpv9NJ`8Why$aTp;it0y+zr$gqnXML-99-`{Gs8Xl*R_XrrQ)`S2AAOHafKmY=U zR)FVu8)Zejw^%Ih&uetYwVTy;>H=gby;*Kv=Fo0=J`BTG&IL&E$0+{d;VgMW?rHEL-r_&_60$3fMge~vDTVt2><{900000 d0000upuVh002ovPDHLkV1h?eV&VV* literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification_active.png b/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_certification_active.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa368999dd649ff6977ed0949dfefb14faa2a65 GIT binary patch literal 958 zcmV;v13~f@??8m0xYA za5{1U)_bpQ-aiuZXQ?8ZJ*rDcxrLLl3Q+N+E8}f%_DJSrZXpSYDCdL<0j_++vP9)Y z`0hf(ktO7CWD*ciTY&ocNBOX%CD_^EI0B3aki(V}oYkwLiaEiVI*I@T0>b@Lws2nk z{;h0C`cjt!1T0;^jD*sVG$&_{{A{`Y5d;_zP};ou7pl$)!s|qU0RiFPU3sx$zo05% z*%A=2G69-|BQI4Mj)vOvUK#-g1cY;fke92@3C_5U00RQT&*p+FRoWLr2{DmGfB^yF z=bfOtyb@G(e6sU_6}f=cfw8S>6LKt>E1YV?(Ea}~iKvYHH2{Zso*3J8~|j^9(Q64V8oh(v%M*H%jp-*UYhrUm@_?zM6WmIwyZ zdB44G0iFF*JN5Rv;cuXX_cd0qF{<7T9Z5M}_i{pA@vkepsKKDV0ao`MP`Zm2+)-tI zuMs05g1dSyXek!g#nFzgt15;3U}u9Ztb%G@WHK9DbvhG=5Kv2i%0p~(lgc>)YH-f| zwK0Pt&IY6HXP~+e;^_>?@ z8?Jo1;EfhmK`cW70SEvDAOHafKmY;|um%ORX2v%47z*70M8HfZTDPJd|8aQIOFtE2 zBHUoW%E|ln9JX3B0`!sV|JVE~JKEQb0y-;SZ(uA^z2mLS0csdfpS`V*sp~V8CL%l% z@5);YL4W`R00IyI2tWWJ00Dpi1ONgM0MQ5tJCCk>PDB^wPu(wG0Yv=I6wDRSF8qTe z#cb%D&kE?t6gSwqRKmB5ket}x;G%M^b3Sj9&^Ot;vVZop^-k_1;tQQ)ookjQ00000 g00000003Z+zY_G%2XBRTO8@`>07*qoM6N<$f~Py6uK)l5 literal 0 HcmV?d00001 diff --git a/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_outofarea.png b/opensrp-chw/src/main/res/mipmap-xxxhdpi/sidemenu_outofarea.png new file mode 100644 index 0000000000000000000000000000000000000000..8f763106ea92b777bf2aef1daffff2b8b25caf97 GIT binary patch literal 2276 zcmV{58^nDzg@)V5RO6o{X9O8<7mg<%kjCkzP^5TM@PqvPDEx@US2*50L}ua zrT9DoK>x$%6_3Zi_anX=uU;1+ zu1LfLX8U>^XEOnO3P#9^Y7|D~J@^3Q1tq($WZ@9~v9rCs{f@i?J{F6O6LF9w;FFIt zSbZ<%4fs%qGx5+TECD}JG;M<(8k5uD<3SgRWnvrn2~242>gpPoli*{Szoq1^U!eMN z90piFi!v3^aP2Pq_&1Kr0bKt8e26=9P3)}j0e&Bj-8f#Ut*xC3KVh^+x6A=kKEP+E zk9)>*#%~Y>=LHCSuLD3Xj>qF;z1~|GhS~h7@{~=P@Jn@d^-W=y`7>}_FnsWX0RGt^ z$02eZ*W9X{F%zBeLuj2g4E|QkyrTvWdf6m|mf5-U~voOY02D<522@-}SnmHDr{>g%$O=|=9r>!$N zH!QM$H94z#vN7{hjCTV$-qY4wMH1Om4v|*jO3dGeF^iRhu~aflfRRvaH3KlfH^~Pn zVZ|BFU+G2uVrD-gP8n;a%8De!&?#%Gj=}n5DNSsm6f#JgbA>y9>({2RoG$< zIeCi6$x~#l)5TamFzMzprXsFYmGt0c3=?D=Nt-+UvOi2tpfEIj>&M@pB=#wuX8ZyxBc{rv)Xn~vG-78op%A}H#RPGdWOKzW zii$BlL9BuU1QQlp1wLl&U4;1Q6}hefe-FEPlE?)7{-6f@;T3cqjCx!n!qyOD_}0dV zrw+7o%?f(gFi`e|%vdo00sQ=r!S_zNMOg9wNrZD2w~YZG=^h-G$;*WJ*<%$bJE-6xKdR~;b!iAM%32%8e_ z)Hy(=F?|6a-#zKq3i2WE>>&nRVBlF71f0P8q2crF&|Om^uQr7uHW5p9 z8EJt`&P2_Cq$?UQ;BeSN5zi9)hGdh&AV=q-SSs>8m5I@0uo61cO$0F%z@R?} zeP&-p4WkDnXy;}P;s0+CPTe)|he`5vq)vdjzuR^q{y(27eXXjhy2Zv7P{?e`>#_>m zveg9qbmpHZMV!;(77)Za<6S&%nf?0-22?t>lH}AA4{%7AmXfBRSRisz_j$=Dvkgt*tQ$k*^z{@y<3A&jtBnp+;SC-iy ziZWJNqN<~bjtS=&fGn}z!~j_0goQ|RP9EyBY>rdPQPr-QZmiv*DbNs-e4SL*NGh|E z$(G0zNrD$?G|Y9vMv{NS_yxLztqg)cMb#pEDjiDy z8M1`-8z)ytIv$eF*}@Ea>Z8a?`Tkfec6ZJ&Ko!CDF48CQbm+7i1+OuD6kt{mYzOC$V%$i)c$g;7?#WX354)r~+<&93ip!2_{^qsj0aq z0EU;6VsD<4FC<a zpuHYf*>p0|tJ29=QZHLzx}DGRaP3;Al19pr@|FRz8%DO0Y%>YesphSWj@j7mYN18&mvm9esHXqjfiDi|*r5=^5f#!hGYRw&W7*@@^HXeA_QuMwU$^9qz+=`$T6 zuSl}w0Lotka3=uV4K9`s+q14XLOqF8LN22V*19l}DQ7+D#>BiOB|Z)lmdn{x;zM2p zL^AO82<`MDq=*FZ6EBKf+NxQd-E6@s7)90?3?!P6(waW>x&5|~G}s`s7RnU(lgO-# z_UHv}yeAuD!U$Le)0m=aVJO=zDU6Ch1|ge^rYoYgsM3cb_e*zyut`kbMLso z^qnthjvW!2-kDJ96MT7{?W71vk0dP+JidZzSov;^Q1q`0HhN@0pIc#eL?js`RV7m&4nTLmi(!S4zETktGf1=3CT2+IHoOGl^$Ol)eow42G~+xYT5P}dpCUOqV_id@T! z8nRQPkkVfY}j38K!h4rq;gQC`ZlG6i`M`L2(2HMn?r-D1t8pMFoLDd@v{jK2brK05d8D+T457Vxdw+ zc~wvZM3F}a!2qR$B)glIVHkf(J-aETwCUY*Z<1zja?ebL4$vg`oIUUFoFznOvd<1A z<$RK1(M5*IN)3zc2wCi4$l@{hvo2(_Qz4rkgP-@pzgHPH4HKKsB4x?Zq`I~T3CJad zn+y`6BaI0EIAqaZfw5G+GzXCh?bec?>yfOT! zVI@|>dpt)>KA41SyE^$6VkX8wIQtF=Xp7g+1m|2+IC%p&I4>t3m{1K&pGazWckfXa z9}MsFK`K*rtqI?g(pXP_Ge6Qe98Td0myF**O!{#4qpsxQRQbZicQN_b{!QA-`8B}& zJ@^NvC*j1;b2KrTQbl5D$~57H0KRLcFZnN$92a)}K&NG<5Nd+c{?tW{DMrlXoj$Ys zjgMd-5SX!(Y>4;ILl*uz)=9%*`hkSQhEIxWynD!Izo40)&uGI%bS5jR{s=kQ43uiy z{6Jn#emiZYZz0X(LH(nm>e?Qugb3kqE9giqzB5EQU}8#8T42)InpZdJRHQo3!KO(Xw=pYDm84`7@*Z9)Fo2l@k_VCr{0t_$?xF$^hxMz*}K4`KYg)uo7t?5+JuV zeZhQ-@6Q}==)qJV$`QnFcw8d^s54kndTtQ<4dMT06TsWWOuXyzK&?=h)fAhN!gD!>1>2^U#ee22GI{DQ3o?*(TOh5 z%rOzE$lt53?O~XFgA1p;rNe^&fkG(CepYLeh7&ayKOl;Bj?qwA@+E{2VkFwk{1&Gj z>nY|0P@nJAPPF3VF{7_!ZTxEO1dz%e5lwj&s=yho7V9wl1E&c2Mx|pxu<~N>jx+AC z0l&Wu(Ss-np?Q_r(}1sAy`V ziSmJJQ4G=`dXopHoKGUYAyhago#Tgj{hrZ=eyOonB^+_9CxCF?NFvM<8&L@r1}%}h zsBH=A^keX>`e^|hg~;u47K{Mo5S+!1qPCReveqJd4mpOj zXdIT#LB`xua`O3=_1%yI_Htx;>3NzS#vreV|xjkw<}WJIZn znxwJgLyA@a5)X>9(QK2eLYPUwESzq#ohuT zfm-y0iPI5#E1H`?3j^j~u2RlJmMC6OW!ktaP}q^e-IDHwN@G2NDSsevrTd6=;Hr*o zKXPZC_RIJ3qXpA&)k;3ALm^@o?^%4mqY#Uhg!xd;W=ZpLIIa1R7XhIJ_+r594owJd zbD%;(I zz){!9*||Y(?|ezGC5aUQGrej7vYqHS(+f^I;G|a)D-b+fLDdT3wm4v7ri6r)q=mLP z4Q2;~Bs8e1ZRM2D4Vag;SVB6&rMuLi39n4CEb*pX;_bikpU`-1c%rrO?aRFGQGe#pAc ze>a}`nM^*ob)gQm5;LG|YeCDRjhNUs8gQi3Bcjx*8L<5y1 Date: Fri, 30 Jul 2021 00:37:55 +0500 Subject: [PATCH 03/10] - Resolved all reported issues --- .../chw/activity/OutOfAreaChildUpdateActivity.java | 3 ++- .../activity/OutOfAreaChildUpdateFormActivity.java | 3 ++- .../chw/activity/OutOfAreaDeathUpdateActivity.java | 3 ++- .../activity/OutOfAreaDeathUpdateFormActivity.java | 3 ++- .../CoreOutOfAreaChildRegisterInteractor.java | 1 + .../chw/task/OutOfAreaChildAsyncTask.java | 6 +++--- .../java/org/smartregister/chw/util/DateUtils.java | 1 - .../smartregister/chw/util/JsonFormUtilsFlv.java | 13 +++++++++++++ .../src/crvs/res/xml/captured_images_path.xml | 2 +- opensrp-chw/src/main/assets/ec_client_fields.json | 5 ++++- .../json.form/out_of_area_child_enrollment.json | 2 +- .../assets/json.form/out_of_area_death_form.json | 6 ++---- .../rule/out_of_area_child_remove_calculation.yml | 13 +++++++++++++ 13 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 opensrp-chw/src/main/assets/rule/out_of_area_child_remove_calculation.yml diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java index 11d341095a..18e146bf88 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java @@ -12,6 +12,7 @@ import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.core.utils.CoreJsonFormUtils; import org.smartregister.chw.fragment.DeadClientsFragment; +import org.smartregister.chw.fragment.OutOfAreaFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; @@ -74,7 +75,7 @@ public void startAncDangerSignsOutcomeForm() { @Override protected BaseRegisterFragment getRegisterFragment() { - return new DeadClientsFragment(); + return new OutOfAreaFragment(); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java index cbbb6526b3..6385b0e7b2 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java @@ -10,6 +10,7 @@ import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.fragment.DeadClientsFragment; +import org.smartregister.chw.fragment.OutOfAreaFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; @@ -66,7 +67,7 @@ public void startAncDangerSignsOutcomeForm() { @Override protected BaseRegisterFragment getRegisterFragment() { - return new DeadClientsFragment(); + return new OutOfAreaFragment(); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java index 269fbc6ddc..9628f95ffc 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java @@ -13,6 +13,7 @@ import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.core.utils.CoreJsonFormUtils; import org.smartregister.chw.fragment.DeadClientsFragment; +import org.smartregister.chw.fragment.OutOfAreaDeathFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; @@ -77,7 +78,7 @@ public void startAncDangerSignsOutcomeForm() { @Override protected BaseRegisterFragment getRegisterFragment() { - return new DeadClientsFragment(); + return new OutOfAreaDeathFragment(); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java index 3b26275ee4..1fe0a5ae97 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java @@ -9,6 +9,7 @@ import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.fragment.DeadClientsFragment; +import org.smartregister.chw.fragment.OutOfAreaDeathFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; @@ -68,7 +69,7 @@ public void startAncDangerSignsOutcomeForm() { @Override protected BaseRegisterFragment getRegisterFragment() { - return new DeadClientsFragment(); + return new OutOfAreaDeathFragment(); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java index 3f5946b645..e5a5eca539 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java @@ -2,6 +2,7 @@ import android.content.Context; import android.content.Intent; +import android.util.Log; import android.util.Pair; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java index 27739fc4dd..323dc08e8f 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java @@ -68,7 +68,7 @@ public OutOfAreaChildAsyncTask(Context context, CommonRepository commonRepositor @Override public Void doInBackground(Void... params) { - if (commonRepository != null) { + if (baseEntityId != null) { commonPersonObject = commonRepository.findByBaseEntityId(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false)); Map map = VisitDao.getVisitSummary(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false)); @@ -80,7 +80,7 @@ public Void doInBackground(Void... params) { long visitNot = 0; long dateCreated = 0; try { - String createVal = Utils.getValue(commonPersonObject.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); + String createVal = Utils.getValue(baseEntityId.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); @@ -94,7 +94,7 @@ public Void doInBackground(Void... params) { visitNot = notDoneSummary.getVisitDate().getTime(); try { - String dobString = getDuration(Utils.getValue(commonPersonObject.getColumnmaps(), DBConstants.KEY.DOB, false)); + String dobString = getDuration(Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.DOB, false)); childVisit = CoreChildUtils.getChildVisitStatus(context, rules, dobString, lastVisit, visitNot, dateCreated); } catch (Exception e) { childVisit = null; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java index 9bffac7acf..b24204ef66 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java @@ -1,7 +1,6 @@ package org.smartregister.chw.util; import com.mapbox.mapboxsdk.log.Logger; - import java.text.ParseException; import java.text.SimpleDateFormat; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java index 2427620767..c2210c9bff 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java @@ -11,10 +11,13 @@ import org.json.JSONException; import org.json.JSONObject; import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.domain.Photo; import org.smartregister.family.util.Constants; import org.smartregister.family.util.DBConstants; +import org.smartregister.family.util.JsonFormUtils; import org.smartregister.family.util.Utils; import org.smartregister.util.FormUtils; +import org.smartregister.util.ImageUtils; import org.smartregister.view.LocationPickerView; import java.util.Date; @@ -81,10 +84,20 @@ private static void getDob(CommonPersonObjectClient client, JSONObject jsonObjec } } + private static void getPhoto(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { + Photo photo = ImageUtils.profilePhotoByClientID(client.getCaseId(), org.smartregister.chw.core.utils.Utils.getProfileImageResourceIDentifier()); + if (StringUtils.isNotBlank(photo.getFilePath())) { + jsonObject.put(JsonFormUtils.VALUE, photo.getFilePath()); + } + } + protected static void processPopulatableFields(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { String key = jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY).toLowerCase(); switch (key) { + case "photo": + getPhoto(client, jsonObject); + break; case "name": String name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "name", false); jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, name); diff --git a/opensrp-chw/src/crvs/res/xml/captured_images_path.xml b/opensrp-chw/src/crvs/res/xml/captured_images_path.xml index ff4a8ed4bf..2e2592d67a 100644 --- a/opensrp-chw/src/crvs/res/xml/captured_images_path.xml +++ b/opensrp-chw/src/crvs/res/xml/captured_images_path.xml @@ -2,5 +2,5 @@ + path="Android/data/org.smartregister.chw.crvs/files/Pictures" /> \ No newline at end of file diff --git a/opensrp-chw/src/main/assets/ec_client_fields.json b/opensrp-chw/src/main/assets/ec_client_fields.json index 3e17ad08c0..c5e7223527 100644 --- a/opensrp-chw/src/main/assets/ec_client_fields.json +++ b/opensrp-chw/src/main/assets/ec_client_fields.json @@ -272,6 +272,7 @@ } ] }, + { "name": "ec_child", "columns": [ @@ -997,7 +998,6 @@ ] }, - { "name": "ec_child_activity", "columns": [ @@ -1068,6 +1068,7 @@ } ] }, + { "name": "ec_anc_register", "columns": [ @@ -1207,6 +1208,7 @@ } ] }, + { "name": "ec_pregnancy_outcome", "columns": [ @@ -1307,6 +1309,7 @@ } ] }, + { "name": "ec_anc_log", "columns": [ diff --git a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json index 4c21557ef0..cf33d16e37 100644 --- a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json +++ b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json @@ -55,7 +55,7 @@ "title": "Add Child Under N - Out of Area", "fields": [ { - "key": "image", + "key": "photo", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "", diff --git a/opensrp-chw/src/main/assets/json.form/out_of_area_death_form.json b/opensrp-chw/src/main/assets/json.form/out_of_area_death_form.json index 200bb4167f..710a01a477 100644 --- a/opensrp-chw/src/main/assets/json.form/out_of_area_death_form.json +++ b/opensrp-chw/src/main/assets/json.form/out_of_area_death_form.json @@ -104,12 +104,10 @@ "openmrs_entity_parent": "", "openmrs_entity": "person", "openmrs_entity_id": "birthdate", + "openmrs_data_type": "text", "type": "date_picker", "hint": "Date of birth (DOB)", "expanded": false, - "duration": { - "label": "Age" - }, "min_date": "today-120y", "max_date": "today-5y", "v_required": { @@ -295,7 +293,7 @@ "calculation": { "rules-engine": { "ex-rules": { - "rules-file": "out_of_area_death_form_relevance.yml" + "rules-file": "out_of_area_child_remove_calculation.yml" } } } diff --git a/opensrp-chw/src/main/assets/rule/out_of_area_child_remove_calculation.yml b/opensrp-chw/src/main/assets/rule/out_of_area_child_remove_calculation.yml new file mode 100644 index 0000000000..cf4c3ba2e1 --- /dev/null +++ b/opensrp-chw/src/main/assets/rule/out_of_area_child_remove_calculation.yml @@ -0,0 +1,13 @@ +--- +name: step1_age_at_death +description: Calculated age_at_death +priority: 1 +condition: "step1_date_died != '' && step1_dob != ''" +actions: + - "def getDate(dateFormat) { + import java.text.DateFormat; + import java.text.ParseException; + import java.text.SimpleDateFormat; + return new SimpleDateFormat('dd-MM-yyyy').format(new SimpleDateFormat('dd MMM yyyy').parse(dateFormat)); + }" + - "calculation = helper.getDuration(getDate(step1_date_died), getDate(step1_dob))" \ No newline at end of file From 188c85653f21d6de79a816e7c3073e2a6a22ba12 Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Mon, 2 Aug 2021 14:41:50 +0500 Subject: [PATCH 04/10] - Cleaned the code --- .../BirthNotificationRegisterActivity.java | 1 + .../chw/activity/CoreDeadClientsActivity.java | 4 +- .../chw/activity/DeadClientsActivity.java | 2 +- .../activity/DeadClientsUpdateActivity.java | 37 +++-- .../chw/activity/OutOfAreaChildActivity.java | 9 +- .../OutOfAreaChildUpdateActivity.java | 39 +---- .../OutOfAreaChildUpdateFormActivity.java | 43 +----- .../chw/activity/OutOfAreaDeathActivity.java | 6 +- .../OutOfAreaDeathUpdateActivity.java | 46 +----- .../OutOfAreaDeathUpdateFormActivity.java | 46 +----- .../BirthNotificationRegisterFragment.java | 12 +- .../CoreBirthNotificationFragment.java | 48 +++--- .../chw/fragment/CoreDeadClientsFragment.java | 49 +++--- .../chw/fragment/DeadClientsFragment.java | 18 +-- .../chw/fragment/OutOfAreaDeathFragment.java | 24 +-- .../chw/fragment/OutOfAreaFragment.java | 29 +--- .../ChildHomeVisitInteractorFlv.java | 3 - .../CoreOutOfAreaChildRegisterInteractor.java | 16 +- .../CoreOutOfAreaDeathRegisterInteractor.java | 14 +- .../CoreOutOfAreaChildRegisterModel.java | 7 +- .../CoreOutOfAreaDeathFragmentModel.java | 2 +- .../BirthNotificationFragmentPresenter.java | 143 ------------------ .../CoreDeadClientsFragmentPresenter.java | 38 ++--- .../CoreOutOfAreaChildRegisterPresenter.java | 20 +-- .../CoreOutOfAreaDeathRegisterPresenter.java | 22 +-- .../OutOfAreaChildFragmentPresenter.java | 1 - .../chw/provider/CoreDeadClientsProvider.java | 8 - .../chw/provider/DeadClientsProvider.java | 74 ++++----- .../chw/provider/OutOfAreaDeathProvider.java | 3 - .../chw/provider/OutOfAreaProvider.java | 29 +--- .../chw/task/OutOfAreaChildAsyncTask.java | 25 ++- .../chw/task/OutOfAreaDeathAsyncTask.java | 24 ++- .../UpdateBirthNotificationLastAsyncTask.java | 45 +++--- .../smartregister/chw/util/CrvsConstants.java | 16 +- .../org/smartregister/chw/util/DateUtils.java | 3 +- .../chw/util/JsonFormUtilsFlv.java | 40 ++--- .../chw/util/OutOfAreaDeathUtils.java | 3 +- opensrp-chw/src/crvs/res/values/strings.xml | 1 + .../assets/json.form/birth_certification.json | 2 +- .../BirthNotificationUpdateActivity.java | 36 ++--- 40 files changed, 280 insertions(+), 708 deletions(-) delete mode 100644 opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/BirthNotificationFragmentPresenter.java diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java index fa2e2fc7e1..a98a403fc3 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/BirthNotificationRegisterActivity.java @@ -37,6 +37,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent // process the form try { String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); String baseEnityId = form.optString(Constants.JSON_FORM_EXTRA.ENTITY_TYPE); String encounter_type = form.optString(Constants.JSON_FORM_EXTRA.ENCOUNTER_TYPE); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/CoreDeadClientsActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/CoreDeadClientsActivity.java index 7bc00d6b90..e818330c51 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/CoreDeadClientsActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/CoreDeadClientsActivity.java @@ -49,12 +49,9 @@ protected void registerBottomNavigation() { bottomNavigationView.getMenu().removeItem(org.smartregister.chw.core.R.id.action_library); bottomNavigationView.inflateMenu(org.smartregister.chw.core.R.menu.bottom_nav_family_menu); - bottomNavigationHelper.disableShiftMode(bottomNavigationView); - CoreBottomNavigationListener childBottomNavigationListener = new CoreBottomNavigationListener(this); bottomNavigationView.setOnNavigationItemSelectedListener(childBottomNavigationListener); - } } @@ -122,6 +119,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); Timber.d("JSONResult : %s", jsonString); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(Utils.metadata().familyRegister.registerEventType) || form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CoreConstants.EventType.CHILD_REGISTRATION) diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java index 2e0db50471..bfb120ced2 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsActivity.java @@ -2,7 +2,6 @@ import android.content.Intent; import android.view.View; - import org.json.JSONObject; import org.smartregister.chw.anc.util.Constants; import org.smartregister.chw.core.contract.CoreChildRegisterContract; @@ -37,6 +36,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent // process the form try { String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); String baseEnityId = form.optString(Constants.JSON_FORM_EXTRA.ENTITY_TYPE); String encounter_type = form.optString(Constants.JSON_FORM_EXTRA.ENCOUNTER_TYPE); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java index 80d934bf2f..7537009610 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/DeadClientsUpdateActivity.java @@ -3,7 +3,6 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; - import com.google.android.material.bottomnavigation.BottomNavigationView; import org.json.JSONArray; import org.json.JSONObject; @@ -11,6 +10,7 @@ import org.smartregister.chw.core.activity.CoreFamilyRegisterActivity; import org.smartregister.chw.core.application.CoreChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; +import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.core.utils.CoreJsonFormUtils; import org.smartregister.chw.fragment.DeadClientsFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; @@ -22,16 +22,13 @@ import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; -import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.fragment.BaseRegisterFragment; import java.util.HashMap; import java.util.Map; import java.util.Objects; - import timber.log.Timber; import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; -import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERTIFICATE_ISSUE_DATE; import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DEATH_CERTIFICATE_ISSUE_DATE; import static org.smartregister.chw.util.CrvsConstants.DEATH_FORM; @@ -114,6 +111,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent if (requestCode == JsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CrvsConstants.REMOVE_FAMILY_MEMBER) @@ -135,52 +133,51 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, AllCommonsRepository familyCommonsRepository, String jsonString) { try { JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); + JSONObject stepOne = jsonObject.getJSONObject(CrvsConstants.STEP1); + JSONArray fields = stepOne.getJSONArray(CrvsConstants.FIELDS); JSONObject has_death_certificate = fields.getJSONObject(1); JSONObject death_certificate_issue_date = fields.getJSONObject(2); - JSONObject certificateNumber = fields.getJSONObject(3); String hasCertificate = has_death_certificate.getString("value"); String issueDate; - if (hasCertificate.equals("Yes")) { + if (hasCertificate.equalsIgnoreCase(CrvsConstants.YES)) { issueDate = death_certificate_issue_date.getString("value"); }else { issueDate = ""; } - if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { - String tableName = "ec_child"; + if (Objects.requireNonNull(getIntent().getStringExtra(CLIENT_TYPE)).equalsIgnoreCase(CrvsConstants.CHILD)) { + String tableName = CoreConstants.TABLE_NAME.CHILD; if (!issueDate.equals("")) { String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, issueDate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; childCommonsRepository.customQuery(sql, selectionArgs, tableName); }else { String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; childCommonsRepository.customQuery(sql, selectionArgs, tableName); } - } else if (getIntent().getStringExtra(CLIENT_TYPE).equals("still")) { - String tableName = "ec_family_member"; + } else if (Objects.requireNonNull(getIntent().getStringExtra(CLIENT_TYPE)).equalsIgnoreCase(CrvsConstants.STILL)) { + String tableName = CoreConstants.TABLE_NAME.FAMILY_MEMBER; if (!issueDate.equals("")) { String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, issueDate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; familyCommonsRepository.customQuery(sql, selectionArgs, tableName); }else { String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; familyCommonsRepository.customQuery(sql, selectionArgs, tableName); } - } else if (getIntent().getStringExtra(CLIENT_TYPE).equals("outOfArea")) { - String tableName = "ec_out_of_area_death"; + } else if (Objects.requireNonNull(getIntent().getStringExtra(CLIENT_TYPE)).equalsIgnoreCase(CrvsConstants.OUT_OF_AREA)) { + String tableName = CrvsConstants.TABLE_OUT_OF_AREA_DEATH; if (!issueDate.equals("")) { String sql = "UPDATE " + tableName + " SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, issueDate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; familyCommonsRepository.customQuery(sql, selectionArgs, tableName); }else { String sql = "UPDATE " + tableName + " SET received_death_certificate = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {hasCertificate, Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()}; familyCommonsRepository.customQuery(sql, selectionArgs, tableName); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java index f8a144fcf4..8cf5484f00 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildActivity.java @@ -3,12 +3,9 @@ import android.content.Intent; import android.os.Bundle; import android.view.View; - import androidx.fragment.app.Fragment; - import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; - import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.chw.anc.util.Constants; @@ -26,8 +23,7 @@ import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.activity.BaseRegisterActivity; import org.smartregister.view.fragment.BaseRegisterFragment; - -import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -116,6 +112,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent // process the form try { String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); String baseEnityId = form.optString(Constants.JSON_FORM_EXTRA.ENTITY_TYPE); String encounter_type = form.optString(Constants.JSON_FORM_EXTRA.ENCOUNTER_TYPE); @@ -130,7 +127,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent @Override public List getViewIdentifiers() { - return Arrays.asList(Utils.metadata().familyRegister.config); + return Collections.singletonList(Utils.metadata().familyRegister.config); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java index 18e146bf88..b00fced36e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateActivity.java @@ -5,18 +5,15 @@ import android.os.Bundle; import com.google.android.material.bottomnavigation.BottomNavigationView; -import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.anc.AncLibrary; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.core.utils.CoreJsonFormUtils; -import org.smartregister.chw.fragment.DeadClientsFragment; import org.smartregister.chw.fragment.OutOfAreaFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; -import org.smartregister.commonregistry.AllCommonsRepository; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; @@ -25,8 +22,6 @@ import java.util.Map; import timber.log.Timber; import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; -import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; -import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_BIRTH; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_CHILD_FORM; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_ENCOUNTER_TYPE; @@ -88,10 +83,9 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent if (requestCode == JsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); -// String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); - if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(OUT_OF_AREA_ENCOUNTER_TYPE) ) { presenter().saveOutOfAreaForm(jsonString, false); @@ -104,35 +98,4 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } } - private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, AllCommonsRepository familyCommonsRepository, String jsonString) { - try { - JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); - - JSONObject has_death_certificate = fields.getJSONObject(1); - JSONObject death_certificate_issue_date = fields.getJSONObject(2); - JSONObject certificateNumber = fields.getJSONObject(3); - - String hasCertificate = has_death_certificate.getString("value"); - String issueDate = death_certificate_issue_date.getString("value"); - - if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { - String tableName = "ec_child"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - childCommonsRepository.customQuery(sql, selectionArgs, tableName); - } else { - String tableName = "ec_family_member"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - familyCommonsRepository.customQuery(sql, selectionArgs, tableName); - } - startActivity(new Intent(this, DeadClientsActivity.class)); - finish(); - - } catch (Exception e) { - Timber.e(e); - } - } } \ No newline at end of file diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java index 6385b0e7b2..52044c8656 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java @@ -3,28 +3,25 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; - import com.google.android.material.bottomnavigation.BottomNavigationView; -import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; -import org.smartregister.chw.fragment.DeadClientsFragment; import org.smartregister.chw.fragment.OutOfAreaFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; -import org.smartregister.commonregistry.AllCommonsRepository; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; import java.util.Map; +import java.util.Objects; import timber.log.Timber; import static org.smartregister.chw.core.utils.CoreReferralUtils.getCommonRepository; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; -import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; + public class OutOfAreaChildUpdateFormActivity extends OutOfAreaChildActivity { public CommonPersonObject commonPersonObject; @@ -53,8 +50,9 @@ protected void onCreate(Bundle savedInstanceState) { public void startAncDangerSignsOutcomeForm() { try { - JSONObject form = JsonFormUtilsFlv.getAutoPopulatedJsonEditFormString("out_of_area_child_enrollment", this, getFamilyRegistrationDetails(getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()), "Out Of Area Child Registration"); + JSONObject form = JsonFormUtilsFlv.getAutoPopulatedJsonEditFormString("out_of_area_child_enrollment", this, getFamilyRegistrationDetails(Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()), "Out Of Area Child Registration"); try { + assert form != null; JsonFormUtilsFlv.startFormActivity(this, form, "Out of area child"); } catch (Exception e) { Timber.e(e); @@ -94,39 +92,6 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } catch (Exception e) { Timber.e(e); } - - } - } - - private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, AllCommonsRepository familyCommonsRepository, String jsonString) { - try { - JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); - - JSONObject has_death_certificate = fields.getJSONObject(1); - JSONObject death_certificate_issue_date = fields.getJSONObject(2); - JSONObject certificateNumber = fields.getJSONObject(3); - - String hasCertificate = has_death_certificate.getString("value"); - String issueDate = death_certificate_issue_date.getString("value"); - - if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { - String tableName = "ec_child"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - childCommonsRepository.customQuery(sql, selectionArgs, tableName); - } else { - String tableName = "ec_family_member"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - familyCommonsRepository.customQuery(sql, selectionArgs, tableName); - } - startActivity(new Intent(this, DeadClientsActivity.class)); - finish(); - - } catch (Exception e) { - Timber.e(e); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java index ba07e21581..3014d272d1 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java @@ -23,11 +23,10 @@ import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.activity.BaseRegisterActivity; import org.smartregister.view.fragment.BaseRegisterFragment; -import java.util.Arrays; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; - import timber.log.Timber; public class OutOfAreaDeathActivity extends BaseRegisterActivity implements CoreOutOfAreaDeathRegisterContract.View { @@ -112,6 +111,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent // process the form try { String jsonString = data.getStringExtra(Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); String baseEnityId = form.optString(Constants.JSON_FORM_EXTRA.ENTITY_TYPE); String encounter_type = form.optString(Constants.JSON_FORM_EXTRA.ENCOUNTER_TYPE); @@ -126,7 +126,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent @Override public List getViewIdentifiers() { - return Arrays.asList(Utils.metadata().familyRegister.config); + return Collections.singletonList(Utils.metadata().familyRegister.config); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java index 9628f95ffc..a22f1f435e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateActivity.java @@ -3,34 +3,24 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; - import com.google.android.material.bottomnavigation.BottomNavigationView; - -import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.anc.AncLibrary; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; import org.smartregister.chw.core.utils.CoreJsonFormUtils; -import org.smartregister.chw.fragment.DeadClientsFragment; import org.smartregister.chw.fragment.OutOfAreaDeathFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; -import org.smartregister.commonregistry.AllCommonsRepository; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; - import java.util.HashMap; import java.util.Map; - import timber.log.Timber; - import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; -import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; -import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_ENCOUNTER_TYPE; import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_FORM; @@ -91,11 +81,9 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent if (requestCode == JsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); -// String openSRPId = AncLibrary.getInstance().getUniqueIdRepository().getNextUniqueId().getOpenmrsId(); - - if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(OUT_OF_AREA_DEATH_ENCOUNTER_TYPE) ) { presenter().saveOutOfAreaDeathForm(jsonString, false); @@ -107,36 +95,4 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } } - - private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, AllCommonsRepository familyCommonsRepository, String jsonString) { - try { - JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); - - JSONObject has_death_certificate = fields.getJSONObject(1); - JSONObject death_certificate_issue_date = fields.getJSONObject(2); - JSONObject certificateNumber = fields.getJSONObject(3); - - String hasCertificate = has_death_certificate.getString("value"); - String issueDate = death_certificate_issue_date.getString("value"); - - if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { - String tableName = "ec_child"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - childCommonsRepository.customQuery(sql, selectionArgs, tableName); - } else { - String tableName = "ec_family_member"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - familyCommonsRepository.customQuery(sql, selectionArgs, tableName); - } - startActivity(new Intent(this, DeadClientsActivity.class)); - finish(); - - } catch (Exception e) { - Timber.e(e); - } - } } \ No newline at end of file diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java index 1fe0a5ae97..353eea417a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java @@ -4,29 +4,24 @@ import android.content.Intent; import android.os.Bundle; import com.google.android.material.bottomnavigation.BottomNavigationView; -import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.custom_views.NavigationMenu; -import org.smartregister.chw.fragment.DeadClientsFragment; import org.smartregister.chw.fragment.OutOfAreaDeathFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; -import org.smartregister.commonregistry.AllCommonsRepository; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; - import java.util.Map; - +import java.util.Objects; import timber.log.Timber; - import static org.smartregister.chw.core.utils.CoreReferralUtils.getCommonRepository; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; -import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; public class OutOfAreaDeathUpdateFormActivity extends OutOfAreaDeathActivity { @@ -55,9 +50,10 @@ protected void onCreate(Bundle savedInstanceState) { public void startAncDangerSignsOutcomeForm() { try { - JSONObject form = JsonFormUtilsFlv.getAutoPopulatedJsonEditFormString("out_of_area_death_form", this, getFamilyRegistrationDetails(getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()), "Out Of Area Death Registration"); + JSONObject form = JsonFormUtilsFlv.getAutoPopulatedJsonEditFormString(CrvsConstants.OUT_OF_AREA_DEATH_FORM, this, getFamilyRegistrationDetails(Objects.requireNonNull(getIntent().getStringExtra(BASE_ENTITY_ID)).toLowerCase()), CrvsConstants.OUT_OF_AREA_DEATH_ENCOUNTER_TYPE); try { - JsonFormUtilsFlv.startFormActivity(this, form, "Out of area death"); + assert form != null; + JsonFormUtilsFlv.startFormActivity(this, form, CrvsConstants.OUT_OF_AREA_DEATH_HEADING); } catch (Exception e) { Timber.e(e); } @@ -100,38 +96,6 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } } - private void updateDeathCertificate(AllCommonsRepository childCommonsRepository, AllCommonsRepository familyCommonsRepository, String jsonString) { - try { - JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); - - JSONObject has_death_certificate = fields.getJSONObject(1); - JSONObject death_certificate_issue_date = fields.getJSONObject(2); - JSONObject certificateNumber = fields.getJSONObject(3); - - String hasCertificate = has_death_certificate.getString("value"); - String issueDate = death_certificate_issue_date.getString("value"); - - if (getIntent().getStringExtra(CLIENT_TYPE).equals("child")) { - String tableName = "ec_child"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - childCommonsRepository.customQuery(sql, selectionArgs, tableName); - } else { - String tableName = "ec_family_member"; - String sql = "UPDATE "+tableName+" SET received_death_certificate = ?, death_certificate_issue_date = ? WHERE id = ?"; - String[] selectionArgs = {hasCertificate, issueDate, getIntent().getStringExtra(BASE_ENTITY_ID).toLowerCase()}; - familyCommonsRepository.customQuery(sql, selectionArgs, tableName); - } - startActivity(new Intent(this, DeadClientsActivity.class)); - finish(); - - } catch (Exception e) { - Timber.e(e); - } - } - @Override public void openFamilyListView() { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java index d9276dca44..b9ec2f45d4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java @@ -16,21 +16,11 @@ public class BirthNotificationRegisterFragment extends CoreBirthNotificationFrag @Override protected void onViewClicked(android.view.View view) { super.onViewClicked(view); - /*if (view.getTag() instanceof CommonPersonObjectClient - && view.getTag(R.id.VIEW_ID) == CLICK_VIEW_DOSAGE_STATUS) { - CommonPersonObjectClient client = (CommonPersonObjectClient) view.getTag(); - ChildHomeVisitActivity.startMe(getActivity(), new MemberObject(client), false, ChildHomeVisitActivity.class); - }*/ } @Override public void goToChildDetailActivity(CommonPersonObjectClient patient, boolean launchDialog) { - /*if (launchDialog) { - Timber.i(patient.name); - } - MemberObject memberObject = new MemberObject(patient); - memberObject.setFamilyName(Utils.getValue(patient.getColumnmaps(), FAMILY_LAST_NAME, false)); - ChildProfileActivity.startMe(getActivity(), memberObject, ChildProfileActivity.class);*/ + } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java index 0be58e841c..86e6511231 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreBirthNotificationFragment.java @@ -9,6 +9,8 @@ import androidx.loader.content.CursorLoader; import androidx.loader.content.Loader; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.smartregister.chw.R; import org.smartregister.chw.core.activity.CoreChildProfileActivity; import org.smartregister.chw.core.activity.CoreChildRegisterActivity; import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; @@ -26,6 +28,7 @@ import org.smartregister.receiver.SyncStatusBroadcastReceiver; import org.smartregister.util.Utils; import org.smartregister.view.activity.BaseRegisterActivity; +import java.text.MessageFormat; import java.util.HashMap; import java.util.Set; import timber.log.Timber; @@ -34,10 +37,10 @@ public class CoreBirthNotificationFragment extends BaseChwRegisterFragment implements CoreChildRegisterFragmentContract.View { public static final String CLICK_VIEW_NORMAL = "click_view_normal"; - public static final String CLICK_VIEW_DOSAGE_STATUS = "click_view_dosage_status"; private static final String DUE_FILTER_TAG = "PRESSED"; protected View view; protected View dueOnlyLayout; + protected TextView dueOnlyFilter; protected boolean dueFilterActive = false; @Override @@ -84,7 +87,7 @@ protected String getDefaultSortQuery() { @Override protected void startRegistration() { - ((CoreChildRegisterActivity) getActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); + ((CoreChildRegisterActivity) requireActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); } @Override @@ -218,7 +221,7 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { @Override public void initializeAdapter(Set visibleColumns) { - CoreBirthNotificationProvider childRegisterProvider = new CoreBirthNotificationProvider(getActivity(), visibleColumns, registerActionHandler, paginationViewHandler); + CoreBirthNotificationProvider childRegisterProvider = new CoreBirthNotificationProvider(requireActivity(), visibleColumns, registerActionHandler, paginationViewHandler); clientAdapter = new RecyclerViewPaginatedAdapter(null, childRegisterProvider, context().commonrepository(this.tablename)); clientAdapter.setCurrentlimit(20); clientsView.setAdapter(clientAdapter); @@ -233,7 +236,8 @@ public CoreChildRegisterFragmentContract.Presenter presenter() { public void setupViews(View view) { super.setupViews(view); this.view = view; - + dueOnlyFilter = view.findViewById(org.smartregister.chw.core.R.id.due_only_text_view); + dueOnlyFilter.setText(getResources().getString(R.string.certified)); dueOnlyLayout = view.findViewById(org.smartregister.chw.core.R.id.due_only_layout); dueOnlyLayout.setVisibility(View.VISIBLE); dueOnlyLayout.setOnClickListener(registerActionHandler); @@ -252,10 +256,11 @@ public void showNotFoundPopup(String uniqueId) { NoMatchDialogFragment.launchDialog((BaseRegisterActivity) getActivity(), DIALOG_TAG, uniqueId); } + @NotNull @Override public Loader onCreateLoader(int id, Bundle args) { if (id == LOADER_ID) {// Returns a new CursorLoader - return new CursorLoader(getActivity()) { + return new CursorLoader(requireActivity()) { @Override public Cursor loadInBackground() { // Count query @@ -270,9 +275,7 @@ public Cursor loadInBackground() { @Override public void countExecute() { - Cursor c = null; - try { - c = commonRepository().rawCustomQueryForAdapter(getCountSelect()); + try (Cursor c = commonRepository().rawCustomQueryForAdapter(getCountSelect())) { c.moveToFirst(); clientAdapter.setTotalcount(c.getInt(0)); @@ -280,10 +283,6 @@ public void countExecute() { clientAdapter.setCurrentoffset(0); } catch (Exception e) { Timber.e(e); - } finally { - if (c != null) { - c.close(); - } } } @@ -309,16 +308,13 @@ private String filterandSortQuery() { String query = ""; try { if (StringUtils.isNotBlank(filters)) { - // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); - query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+((CoreChildRegisterFragmentPresenter) presenter()).getFilterString(filters)+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child WHERE "+getOutOfAreaFilterString(filters)+" LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); }else if (StringUtils.isBlank(filters) && !dueFilterActive){ - // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); } if (dueFilterActive) { - // query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" ORDER BY MAX(ec_child.last_interacted_with , ifnull(VISIT_SUMMARY.visit_date,0)) DESC LIMIT "+ clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); - query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); + query = "Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, ec_child.birth_registration, 'birth' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.date_removed is null AND ((( julianday('now') - julianday(ec_child.dob))/365.25) <5) and (( ifnull(ec_child.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.entry_point,'') = 'PNC' and ( date(ec_child.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.dob))/365.25) < 5) "+getDueCondition()+" Union Select ec_out_of_area_child.id as _id , '' as relationalid , ec_out_of_area_child.last_interacted_with , ec_out_of_area_child.base_entity_id , ec_out_of_area_child.first_name , ec_out_of_area_child.middle_name , ec_out_of_area_child.mother_name as family_first_name , '' as family_last_name , '' as family_middle_name , '' as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , ec_out_of_area_child.middle_name as last_name , ec_out_of_area_child.unique_id , ec_out_of_area_child.gender , ec_out_of_area_child.dob , ec_out_of_area_child.dob_unknown , '' as last_home_visit , '' as visit_not_done , '' as early_bf_1hr , '' as physically_challenged , ec_out_of_area_child.birth_cert , ec_out_of_area_child.birth_cert_issue_date , ec_out_of_area_child.birth_cert_num , ec_out_of_area_child.birth_notification , '' as date_of_illness , '' as illness_description , ec_out_of_area_child.date_created , '' as action_taken , '' as vaccine_card, ec_out_of_area_child.birth_registration, 'outOfArea' as clienttype FROM ec_out_of_area_child "+getOutOfAreaDueCondition()+" LIMIT "+clientAdapter.getCurrentoffset() + "," + clientAdapter.getCurrentlimit(); } } catch (Exception e) { Timber.e(e); @@ -327,7 +323,25 @@ private String filterandSortQuery() { return query; } + public String getOutOfAreaFilterString(String filters) { + + StringBuilder customFilter = new StringBuilder(); + if (StringUtils.isNotBlank(filters)) { + customFilter.append(" ( "); + customFilter.append(MessageFormat.format(" {0}.{1} like ''%{2}%'' ", "ec_out_of_area_child", org.smartregister.chw.anc.util.DBConstants.KEY.FIRST_NAME, filters)); + customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", "ec_out_of_area_child", org.smartregister.chw.anc.util.DBConstants.KEY.MIDDLE_NAME, filters)); + customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", "ec_out_of_area_child", org.smartregister.chw.anc.util.DBConstants.KEY.UNIQUE_ID, filters)); + + customFilter.append(" ) "); + } + + return customFilter.toString(); + } + public String getDueCondition() { return " and " + CoreConstants.TABLE_NAME.CHILD + ".birth_cert = 'Yes'"; } + public String getOutOfAreaDueCondition() { + return " WHERE ec_out_of_area_child.birth_cert = 'Yes'"; + } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java index ddb6795f9e..ae2939c30d 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java @@ -8,6 +8,7 @@ import androidx.loader.content.CursorLoader; import androidx.loader.content.Loader; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.smartregister.chw.R; import org.smartregister.chw.activity.OutOfAreaChildActivity; import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; @@ -19,7 +20,6 @@ import org.smartregister.chw.provider.CoreDeadClientsProvider; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; -import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.domain.FetchStatus; import org.smartregister.family.fragment.NoMatchDialogFragment; import org.smartregister.receiver.SyncStatusBroadcastReceiver; @@ -32,11 +32,11 @@ public class CoreDeadClientsFragment extends BaseChwRegisterFragment implements CoreChildRegisterFragmentContract.View { public static final String CLICK_VIEW_NORMAL = "click_view_normal"; - public static final String CLICK_VIEW_DOSAGE_STATUS = "click_view_dosage_status"; private static final String DUE_FILTER_TAG = "PRESSED"; protected View view; protected View dueOnlyLayout; protected boolean dueFilterActive = false; + protected TextView dueOnlyFilter; @Override protected void initializePresenter() { @@ -82,7 +82,7 @@ protected String getDefaultSortQuery() { @Override protected void startRegistration() { - ((OutOfAreaChildActivity) getActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); + ((OutOfAreaChildActivity) requireActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); } @Override @@ -216,7 +216,7 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { @Override public void initializeAdapter(Set visibleColumns) { - CoreDeadClientsProvider deathClientsProvider = new CoreDeadClientsProvider(getActivity(), visibleColumns, registerActionHandler, paginationViewHandler); + CoreDeadClientsProvider deathClientsProvider = new CoreDeadClientsProvider(requireActivity(), visibleColumns, registerActionHandler, paginationViewHandler); clientAdapter = new RecyclerViewPaginatedAdapter(null, deathClientsProvider, context().commonrepository(this.tablename)); clientAdapter.setCurrentlimit(20); clientsView.setAdapter(clientAdapter); @@ -231,7 +231,8 @@ public CoreChildRegisterFragmentContract.Presenter presenter() { public void setupViews(View view) { super.setupViews(view); this.view = view; - + dueOnlyFilter = view.findViewById(org.smartregister.chw.core.R.id.due_only_text_view); + dueOnlyFilter.setText(getResources().getString(R.string.certified)); dueOnlyLayout = view.findViewById(org.smartregister.chw.core.R.id.due_only_layout); dueOnlyLayout.setVisibility(View.VISIBLE); dueOnlyLayout.setOnClickListener(registerActionHandler); @@ -250,10 +251,11 @@ public void showNotFoundPopup(String uniqueId) { NoMatchDialogFragment.launchDialog((BaseRegisterActivity) getActivity(), DIALOG_TAG, uniqueId); } + @NotNull @Override public Loader onCreateLoader(int id, Bundle args) { if (id == LOADER_ID) {// Returns a new CursorLoader - return new CursorLoader(getActivity()) { + return new CursorLoader(requireActivity()) { @Override public Cursor loadInBackground() { // Count query @@ -268,9 +270,7 @@ public Cursor loadInBackground() { @Override public void countExecute() { - Cursor c = null; - try { - c = commonRepository().rawCustomQueryForAdapter(getCountSelect()); + try (Cursor c = commonRepository().rawCustomQueryForAdapter(getCountSelect())) { c.moveToFirst(); clientAdapter.setTotalcount(c.getInt(0)); @@ -278,16 +278,10 @@ public void countExecute() { clientAdapter.setCurrentoffset(0); } catch (Exception e) { Timber.e(e); - } finally { - if (c != null) { - c.close(); - } } } private String getCountSelect() { - SmartRegisterQueryBuilder sqb = new SmartRegisterQueryBuilder(countSelect); - String query = countSelect; try { if (StringUtils.isNoneBlank(filters)){ @@ -316,7 +310,7 @@ private String filterandSortQuery() { query = customDeathQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset()); } if (dueFilterActive){ - query = customDeathDueFilterQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset(), ((CoreDeadClientsFragmentPresenter) presenter()).getDueCondition()); + query = customDeathDueFilterQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset(), ((CoreDeadClientsFragmentPresenter) presenter()).getDueCondition("1"), ((CoreDeadClientsFragmentPresenter) presenter()).getDueCondition("2"), ((CoreDeadClientsFragmentPresenter) presenter()).getDueCondition("3")); } } catch (Exception e) { e.printStackTrace(); @@ -328,22 +322,27 @@ private String customDeathQuery(int limit, int offset) { return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; } - private String customDeathDueFilterQuery(int limit, int offset, String dueFilterActive) { - return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActive+" Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; + private String customDeathDueFilterQuery(int limit, int offset, String dueFilterActiveOne, String dueFilterActiveTwo, String dueFilterActiveThree) { + return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 "+dueFilterActiveTwo+" UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 "+dueFilterActiveOne+" UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' "+dueFilterActiveTwo+" Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death "+dueFilterActiveThree+" LIMIT " + offset + "," + limit; } private String customDeathQuery(int limit, int offset, String filter) { - return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 " + getFilters("first", filter) + " UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 " + getFilters("second", filter) + " UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' " + getFilters("third", filter) + " Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death LIMIT " + offset + "," + limit; + return "Select ec_family_member.id as _id , ec_family_member.relational_id as relationalid , 'a' as last_interacted_with , ec_family_member.base_entity_id , 'a' as first_name , 'a' as middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'adult' as clienttype from ec_family_member LEFT JOIN ec_family ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE WHERE ec_family_member.is_closed = 1 " + getFilters("first", filter) + " UNION Select ec_child.id as _id , ec_child.relational_id as relationalid , ec_child.last_interacted_with , ec_child.base_entity_id , ec_child.first_name , ec_child.middle_name , ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address , ec_child.last_name , ec_child.unique_id , ec_child.gender , ec_child.dob , ec_child.dob_unknown , ec_child.last_home_visit , ec_child.visit_not_done , ec_child.early_bf_1hr , ec_child.physically_challenged , ec_child.birth_cert , ec_child.birth_cert_issue_date , ec_child.birth_cert_num , ec_child.birth_notification , ec_child.date_of_illness , ec_child.illness_description , ec_child.date_created , ec_child.action_taken , ec_child.vaccine_card, '' as preg_outcome, ec_child.received_death_certificate, ec_child.death_certificate_issue_date, 'child' as clienttype FROM ec_child LEFT JOIN ec_family ON ec_child.relational_id = ec_family.id COLLATE NOCASE LEFT JOIN ec_family_member ON ec_family_member.base_entity_id = ec_family.primary_caregiver COLLATE NOCASE LEFT JOIN (select base_entity_id , max(visit_date) visit_date from visits GROUP by base_entity_id) VISIT_SUMMARY ON VISIT_SUMMARY.base_entity_id = ec_child.base_entity_id WHERE ec_child.is_closed is 1 " + getFilters("second", filter) + " UNION Select ec_pregnancy_outcome.id as _id, ec_pregnancy_outcome.relational_id as relationalid, 'a' as last_interacted_with, ec_pregnancy_outcome.base_entity_id, 'a' as first_name, 'a' as middle_name, ec_family_member.first_name as family_first_name , ec_family_member.last_name as family_last_name , ec_family_member.middle_name as family_middle_name , ec_family_member.phone_number as family_member_phone_number , ec_family_member.other_phone_number as family_member_phone_number_other , ec_family.village_town as family_home_address ,'a' as last_name, ec_family_member.unique_id, ec_family_member.gender, ec_family_member.dob, ec_family_member.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, 'a' as date_created, 'a' as action_taken, 'a' as vaccine_card, ec_pregnancy_outcome.preg_outcome, ec_family_member.received_death_certificate, ec_family_member.death_certificate_issue_date, 'still' as clienttype from ec_pregnancy_outcome LEFT JOIN ec_family_member ON ec_pregnancy_outcome.base_entity_id = ec_family_member.base_entity_id LEFT JOIN ec_family ON ec_pregnancy_outcome.relational_id = ec_family.id COLLATE NOCASE WHERE ec_pregnancy_outcome.preg_outcome = 'Stillbirth' " + getFilters("third", filter) + " Union Select ec_out_of_area_death.id as _id , ec_out_of_area_death.relationalid as relationalid , ec_out_of_area_death.last_interacted_with , ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name as first_name , '' as middle_name , '' as family_first_name , '' as family_last_name , '' as family_middle_name , ec_out_of_area_death.official_number as family_member_phone_number , '' as family_member_phone_number_other , '' as family_home_address , '' as last_name, ec_out_of_area_death.unique_id, '' as gender, ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, 'a' as last_home_visit, 'a' as visit_not_done, 'a' as early_bf_1hr, 'a' as physically_challenged, 'a' as birth_cert, 'a' as birth_cert_issue_date, 'a' as birth_cert_num, 'a' as birth_notification, 'a' as date_of_illness, 'a' as illness_description, ec_out_of_area_death.date_created, 'a' as action_taken, 'a' as vaccine_card, '' as preg_outcome, ec_out_of_area_death.received_death_certificate, ec_out_of_area_death.death_certificate_issue_date, 'outOfArea' as clienttype from ec_out_of_area_death "+getFilters("fourth", filter)+" LIMIT " + offset + "," + limit; } private String getFilters(String query, String filter) { String filterQuery = ""; - if (query.equals("first")) { - filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; - } else if (query.equals("second")) { - filterQuery = "and ( ec_child.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_child.middle_name like '%" + filter + "%' or ec_child.unique_id like '%" + filter + "%')"; - } else if (query.equals("third")) { - filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; + switch (query) { + case "first": + case "third": + filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; + break; + case "second": + filterQuery = "and ( ec_child.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_child.middle_name like '%" + filter + "%' or ec_child.unique_id like '%" + filter + "%')"; + break; + case "fourth": + filterQuery = "WHERE ( ec_out_of_area_death.name like '%" + filter + "%' or ec_out_of_area_death.official_name like '%" + filter + "%' or ec_out_of_area_death.unique_id like '%" + filter + "%')"; + break; } return filterQuery; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java index 7030faf18f..0eb2b6f1fa 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java @@ -1,7 +1,6 @@ package org.smartregister.chw.fragment; import android.content.Intent; -import android.util.Log; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.model.CoreDeadClientsFragmentModel; import org.smartregister.chw.presenter.DeadClientsFragmentPresenter; @@ -16,30 +15,15 @@ public class DeadClientsFragment extends CoreDeadClientsFragment { protected void onViewClicked(android.view.View view) { super.onViewClicked(view); - Log.d("nothing", "do nothing"); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - switch (requestCode) { - default: - break; - } } @Override public void goToChildDetailActivity(CommonPersonObjectClient patient, boolean launchDialog) { - /*if (launchDialog) { - Timber.i(patient.name); - } - MemberObject memberObject = new MemberObject(patient); - try { - memberObject.setFamilyName(Utils.getValue(patient.getColumnmaps(), FAMILY_LAST_NAME, false)); - }catch (Exception e){ - memberObject.setFamilyName("test family"); - e.printStackTrace(); - } - ChildProfileActivity.startMe(getActivity(), memberObject, ChildProfileActivity.class);*/ + } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java index 873f0703ef..e68aad58ac 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java @@ -8,6 +8,7 @@ import androidx.loader.content.CursorLoader; import androidx.loader.content.Loader; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.smartregister.chw.R; import org.smartregister.chw.activity.OutOfAreaChildActivity; import org.smartregister.chw.activity.OutOfAreaDeathUpdateFormActivity; @@ -21,7 +22,6 @@ import org.smartregister.chw.util.Constants; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; -import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.domain.FetchStatus; import org.smartregister.family.fragment.NoMatchDialogFragment; import org.smartregister.family.util.DBConstants; @@ -37,7 +37,6 @@ public class OutOfAreaDeathFragment extends BaseChwRegisterFragment implements CoreChildRegisterFragmentContract.View { public static final String CLICK_VIEW_NORMAL = "click_view_normal"; - public static final String CLICK_VIEW_DOSAGE_STATUS = "click_view_dosage_status"; private static final String DUE_FILTER_TAG = "PRESSED"; protected View view; protected View dueOnlyLayout; @@ -85,7 +84,7 @@ protected String getDefaultSortQuery() { @Override protected void startRegistration() { - ((OutOfAreaChildActivity) getActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); + ((OutOfAreaChildActivity) requireActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); } @Override @@ -96,7 +95,7 @@ protected void onViewClicked(View view) { if (view.getTag() != null && view.getTag(org.smartregister.chw.core.R.id.VIEW_ID) == CLICK_VIEW_NORMAL) { if (view.getTag() instanceof CommonPersonObjectClient) { - goToChildDetailActivity((CommonPersonObjectClient) view.getTag(), false); + goToChildDetailActivity((CommonPersonObjectClient) view.getTag()); } } else if (view.getId() == org.smartregister.chw.core.R.id.due_only_layout) { toggleFilterSelection(view); @@ -140,8 +139,7 @@ protected void refreshSyncProgressSpinner() { } } - public void goToChildDetailActivity(CommonPersonObjectClient patient, - boolean launchDialog) { + public void goToChildDetailActivity(CommonPersonObjectClient patient) { String entityId = org.smartregister.family.util.Utils.getValue(patient.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); Intent intent = new Intent(getActivity(), OutOfAreaDeathUpdateFormActivity.class); intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); @@ -207,7 +205,7 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { @Override public void initializeAdapter(Set visibleColumns) { - OutOfAreaDeathProvider deadClientsProvider = new OutOfAreaDeathProvider(getActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); + OutOfAreaDeathProvider deadClientsProvider = new OutOfAreaDeathProvider(requireActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); clientAdapter = new RecyclerViewPaginatedAdapter(null, deadClientsProvider, context().commonrepository(this.tablename)); clientAdapter.setCurrentlimit(20); clientsView.setAdapter(clientAdapter); @@ -244,10 +242,11 @@ public void showNotFoundPopup(String uniqueId) { NoMatchDialogFragment.launchDialog((BaseRegisterActivity) getActivity(), DIALOG_TAG, uniqueId); } + @NotNull @Override public Loader onCreateLoader(int id, Bundle args) { if (id == LOADER_ID) {// Returns a new CursorLoader - return new CursorLoader(getActivity()) { + return new CursorLoader(requireActivity()) { @Override public Cursor loadInBackground() { // Count query @@ -262,9 +261,7 @@ public Cursor loadInBackground() { @Override public void countExecute() { - Cursor c = null; - try { - c = commonRepository().rawCustomQueryForAdapter(getCountSelect()); + try (Cursor c = commonRepository().rawCustomQueryForAdapter(getCountSelect())) { c.moveToFirst(); clientAdapter.setTotalcount(c.getInt(0)); @@ -272,15 +269,10 @@ public void countExecute() { clientAdapter.setCurrentoffset(0); } catch (Exception e) { Timber.e(e); - } finally { - if (c != null) { - c.close(); - } } } private String getCountSelect() { - SmartRegisterQueryBuilder sqb = new SmartRegisterQueryBuilder(countSelect); String query = countSelect; try { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaFragment.java index 76f16bcbfc..b20ae84c3e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaFragment.java @@ -8,6 +8,7 @@ import androidx.loader.content.CursorLoader; import androidx.loader.content.Loader; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.smartregister.chw.R; import org.smartregister.chw.activity.OutOfAreaChildActivity; import org.smartregister.chw.activity.OutOfAreaChildUpdateFormActivity; @@ -16,25 +17,20 @@ import org.smartregister.chw.core.fragment.BaseChwRegisterFragment; import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.model.CoreOutOfAreaFragmentModel; -import org.smartregister.chw.presenter.CoreDeadClientsFragmentPresenter; import org.smartregister.chw.presenter.OutOfAreaChildFragmentPresenter; import org.smartregister.chw.provider.OutOfAreaProvider; import org.smartregister.chw.util.Constants; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; -import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.domain.FetchStatus; import org.smartregister.family.fragment.NoMatchDialogFragment; import org.smartregister.family.util.DBConstants; import org.smartregister.receiver.SyncStatusBroadcastReceiver; import org.smartregister.util.Utils; import org.smartregister.view.activity.BaseRegisterActivity; - import java.util.HashMap; import java.util.Set; - import timber.log.Timber; - import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; public class OutOfAreaFragment extends BaseChwRegisterFragment implements CoreChildRegisterFragmentContract.View { @@ -87,7 +83,7 @@ protected String getDefaultSortQuery() { @Override protected void startRegistration() { - ((OutOfAreaChildActivity) getActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); + ((OutOfAreaChildActivity) requireActivity()).startFormActivity(CoreConstants.JSON_FORM.getChildRegister(), null, ""); } @Override @@ -98,7 +94,7 @@ protected void onViewClicked(View view) { if (view.getTag() != null && view.getTag(org.smartregister.chw.core.R.id.VIEW_ID) == CLICK_VIEW_NORMAL) { if (view.getTag() instanceof CommonPersonObjectClient) { - goToChildDetailActivity((CommonPersonObjectClient) view.getTag(), false); + goToChildDetailActivity((CommonPersonObjectClient) view.getTag()); } } else if (view.getId() == org.smartregister.chw.core.R.id.due_only_layout) { toggleFilterSelection(view); @@ -142,8 +138,7 @@ protected void refreshSyncProgressSpinner() { } } - public void goToChildDetailActivity(CommonPersonObjectClient patient, - boolean launchDialog) { + public void goToChildDetailActivity(CommonPersonObjectClient patient) { String entityId = org.smartregister.family.util.Utils.getValue(patient.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); Intent intent = new Intent(getActivity(), OutOfAreaChildUpdateFormActivity.class); intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); @@ -209,7 +204,7 @@ private void switchViews(View dueOnlyLayout, boolean isPress) { @Override public void initializeAdapter(Set visibleColumns) { - OutOfAreaProvider deadClientsProvider = new OutOfAreaProvider(getActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); + OutOfAreaProvider deadClientsProvider = new OutOfAreaProvider(requireActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); clientAdapter = new RecyclerViewPaginatedAdapter(null, deadClientsProvider, context().commonrepository(this.tablename)); clientAdapter.setCurrentlimit(20); clientsView.setAdapter(clientAdapter); @@ -246,10 +241,11 @@ public void showNotFoundPopup(String uniqueId) { NoMatchDialogFragment.launchDialog((BaseRegisterActivity) getActivity(), DIALOG_TAG, uniqueId); } + @NotNull @Override public Loader onCreateLoader(int id, Bundle args) { if (id == LOADER_ID) {// Returns a new CursorLoader - return new CursorLoader(getActivity()) { + return new CursorLoader(requireActivity()) { @Override public Cursor loadInBackground() { // Count query @@ -264,24 +260,17 @@ public Cursor loadInBackground() { @Override public void countExecute() { - Cursor c = null; - try { - c = commonRepository().rawCustomQueryForAdapter(getCountSelect()); + try (Cursor c = commonRepository().rawCustomQueryForAdapter(getCountSelect())) { c.moveToFirst(); clientAdapter.setTotalcount(c.getInt(0)); clientAdapter.setCurrentlimit(20); clientAdapter.setCurrentoffset(0); } catch (Exception e) { Timber.e(e); - } finally { - if (c != null) { - c.close(); - } } } private String getCountSelect() { - SmartRegisterQueryBuilder sqb = new SmartRegisterQueryBuilder(countSelect); String query = countSelect; try { @@ -306,14 +295,12 @@ private String filterandSortQuery() { String query = ""; try { if (StringUtils.isNoneBlank(filters)) { -// query = customDeathQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset()); query = customDeathQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset(), filters); } else if (StringUtils.isBlank(filters) && !dueFilterActive){ query = customDeathQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset()); } if (dueFilterActive){ query = customDeathQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset()); -// query = customDeathDueFilterQuery(clientAdapter.getCurrentlimit(), clientAdapter.getCurrentoffset(), ((CoreDeadClientsFragmentPresenter) presenter()).getDueCondition()); } } catch (Exception e) { e.printStackTrace(); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/ChildHomeVisitInteractorFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/ChildHomeVisitInteractorFlv.java index 78f8ce364e..9c5e600739 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/ChildHomeVisitInteractorFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/ChildHomeVisitInteractorFlv.java @@ -1,11 +1,8 @@ package org.smartregister.chw.interactor; - import org.smartregister.chw.anc.model.BaseAncHomeVisitAction; import org.smartregister.immunization.domain.ServiceWrapper; - import java.util.Map; - import timber.log.Timber; public class ChildHomeVisitInteractorFlv extends DefaultChildHomeVisitInteractorFlv { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java index e5a5eca539..f884fb1ed0 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.util.Log; import android.util.Pair; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; @@ -12,6 +11,7 @@ import org.smartregister.chw.core.application.CoreChwApplication; import org.smartregister.chw.core.interactor.CoreChildRegisterInteractor; import org.smartregister.chw.core.utils.Utils; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; import org.smartregister.domain.UniqueId; @@ -28,6 +28,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; + import timber.log.Timber; public class CoreOutOfAreaChildRegisterInteractor extends ClientProcessorForJava implements CoreOutOfAreaChildRegisterContract.Interactor { @@ -112,6 +114,7 @@ private boolean saveRegistration(Pair pair, String jsonString, bo } if (isEditMode) { + assert baseClient != null; String currentOpenSRPId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); getUniqueIdRepository().open(currentOpenSRPId); @@ -126,6 +129,8 @@ private boolean saveRegistration(Pair pair, String jsonString, bo if (baseClient != null || baseEvent != null) { String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseEvent != null; + assert baseClient != null; JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); } @@ -141,7 +146,6 @@ private boolean saveRegistration(Pair pair, String jsonString, bo long lastSyncTimeStamp = getAllSharedPreferences().fetchLastUpdatedAtDate(0); Date lastSyncDate = new Date(lastSyncTimeStamp); -// getClientProcessorForJava().processClient(eventClientList); processClient(eventClientList, false); getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); @@ -153,7 +157,7 @@ private boolean saveRegistration(Pair pair, String jsonString, bo } public synchronized void processClient(List eventClientList, boolean localSubmission) throws Exception { - final String EC_CLIENT_CLASSIFICATION = "ec_client_classification.json"; + final String EC_CLIENT_CLASSIFICATION = CrvsConstants.EC_CLIENT_CLASSIFICATION; ClientClassification clientClassification = assetJsonToJava(EC_CLIENT_CLASSIFICATION, ClientClassification.class); if (clientClassification == null) { return; @@ -178,7 +182,7 @@ public synchronized void processClient(List eventClientList, boolea } } - if (localSubmission && CoreLibrary.getInstance().getSyncConfiguration().runPlanEvaluationOnClientProcessing()) { + if (localSubmission && Objects.requireNonNull(CoreLibrary.getInstance().getSyncConfiguration()).runPlanEvaluationOnClientProcessing()) { processPlanEvaluation(eventClient); } } @@ -193,10 +197,6 @@ public AllSharedPreferences getAllSharedPreferences() { return Utils.context().allSharedPreferences(); } - public ClientProcessorForJava getClientProcessorForJava() { - return CoreChwApplication.getInstance().getClientProcessorForJava(); - } - public UniqueIdRepository getUniqueIdRepository() { return CoreChwApplication.getInstance().getUniqueIdRepository(); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java index 2c353f03c6..04e26ecdcc 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java @@ -3,7 +3,6 @@ import android.content.Context; import android.content.Intent; import android.util.Pair; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; @@ -12,6 +11,7 @@ import org.smartregister.chw.core.application.CoreChwApplication; import org.smartregister.chw.core.interactor.CoreChildRegisterInteractor; import org.smartregister.chw.core.utils.Utils; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; import org.smartregister.domain.UniqueId; @@ -28,6 +28,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; + import timber.log.Timber; public class CoreOutOfAreaDeathRegisterInteractor extends ClientProcessorForJava implements CoreOutOfAreaDeathRegisterContract.Interactor { @@ -129,6 +131,8 @@ private boolean saveRegistration(Pair pair, String jsonString, bo if (baseClient != null || baseEvent != null) { String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseEvent != null; + assert baseClient != null; JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); } @@ -155,7 +159,7 @@ private boolean saveRegistration(Pair pair, String jsonString, bo } public synchronized void processClient(List eventClientList, boolean localSubmission) throws Exception { - final String EC_CLIENT_CLASSIFICATION = "ec_client_classification.json"; + final String EC_CLIENT_CLASSIFICATION = CrvsConstants.EC_CLIENT_CLASSIFICATION; ClientClassification clientClassification = assetJsonToJava(EC_CLIENT_CLASSIFICATION, ClientClassification.class); if (clientClassification == null) { return; @@ -180,7 +184,7 @@ public synchronized void processClient(List eventClientList, boolea } } - if (localSubmission && CoreLibrary.getInstance().getSyncConfiguration().runPlanEvaluationOnClientProcessing()) { + if (localSubmission && Objects.requireNonNull(CoreLibrary.getInstance().getSyncConfiguration()).runPlanEvaluationOnClientProcessing()) { processPlanEvaluation(eventClient); } } @@ -195,10 +199,6 @@ public AllSharedPreferences getAllSharedPreferences() { return Utils.context().allSharedPreferences(); } - public ClientProcessorForJava getClientProcessorForJava() { - return CoreChwApplication.getInstance().getClientProcessorForJava(); - } - public UniqueIdRepository getUniqueIdRepository() { return CoreChwApplication.getInstance().getUniqueIdRepository(); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaChildRegisterModel.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaChildRegisterModel.java index 5d2f202674..2ac104793d 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaChildRegisterModel.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaChildRegisterModel.java @@ -1,7 +1,6 @@ package org.smartregister.chw.model; import android.util.Pair; - import org.json.JSONObject; import org.smartregister.chw.contract.CoreOutOfAreaChildRegisterContract; import org.smartregister.chw.util.JsonFormUtils; @@ -11,9 +10,7 @@ import org.smartregister.family.util.Utils; import org.smartregister.location.helper.LocationHelper; import org.smartregister.util.FormUtils; - import java.util.List; - import timber.log.Timber; public class CoreOutOfAreaChildRegisterModel implements CoreOutOfAreaChildRegisterContract.Model { @@ -32,8 +29,6 @@ public void unregisterViewConfiguration(List viewIdentifiers) { @Override public void saveLanguage(String language) { // TODO Save Language - //Map langs = getAvailableLanguagesMap(); - //Utils.saveLanguage(Utils.getKeyByValue(langs, language)); } @Override @@ -47,7 +42,7 @@ public Pair processRegistration(String jsonString) { } @Override - public JSONObject getFormAsJson(String formName, String entityId, String currentLocationId, String familyId) throws Exception { + public JSONObject getFormAsJson(String formName, String entityId, String currentLocationId, String familyId) { return null; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaDeathFragmentModel.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaDeathFragmentModel.java index b62219f91d..52445c7e0e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaDeathFragmentModel.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/CoreOutOfAreaDeathFragmentModel.java @@ -46,7 +46,7 @@ public String countSelect(String tableName, String mainCondition, String familyM @Override public String mainSelect(String tableName, String familyName, String familyMemberName, String mainCondition) { - return OutOfAreaDeathUtils.mainSelectRegisterWithoutGroupby(tableName, familyName, familyMemberName, mainCondition); + return OutOfAreaDeathUtils.mainSelectRegisterWithoutGroupby(tableName, mainCondition); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/BirthNotificationFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/BirthNotificationFragmentPresenter.java deleted file mode 100644 index a1907482c8..0000000000 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/BirthNotificationFragmentPresenter.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.smartregister.chw.presenter; - -import org.apache.commons.lang3.StringUtils; -import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; -import org.smartregister.chw.core.utils.ChildDBConstants; -import org.smartregister.chw.core.utils.CoreConstants; -import org.smartregister.configurableviews.model.Field; -import org.smartregister.configurableviews.model.RegisterConfiguration; -import org.smartregister.configurableviews.model.View; -import org.smartregister.configurableviews.model.ViewConfiguration; -import org.smartregister.family.util.DBConstants; - -import java.lang.ref.WeakReference; -import java.text.MessageFormat; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; - -public class BirthNotificationFragmentPresenter implements CoreChildRegisterFragmentContract.Presenter { - - - protected Set visibleColumns = new TreeSet<>(); - private WeakReference viewReference; - private CoreChildRegisterFragmentContract.Model model; - private RegisterConfiguration config; - private String viewConfigurationIdentifier; - - public BirthNotificationFragmentPresenter(CoreChildRegisterFragmentContract.View view, CoreChildRegisterFragmentContract.Model model, String viewConfigurationIdentifier) { - this.viewReference = new WeakReference<>(view); - this.model = model; - this.viewConfigurationIdentifier = viewConfigurationIdentifier; - this.config = model.defaultRegisterConfiguration(); - } - - @Override - public void processViewConfigurations() { - if (StringUtils.isBlank(viewConfigurationIdentifier)) { - return; - } - - ViewConfiguration viewConfiguration = model.getViewConfiguration(viewConfigurationIdentifier); - if (viewConfiguration != null) { - config = (RegisterConfiguration) viewConfiguration.getMetadata(); - setVisibleColumns(model.getRegisterActiveColumns(viewConfigurationIdentifier)); - } - - if (config.getSearchBarText() != null && getView() != null) { - getView().updateSearchBarHint(getView().getContext().getString(org.smartregister.chw.core.R.string.search_name_or_id)); - } - } - - @Override - public void initializeQueries(String mainCondition) { - - String countSelect = model.countSelect(CoreConstants.TABLE_NAME.CHILD, mainCondition, CoreConstants.TABLE_NAME.FAMILY_MEMBER); - String mainSelect = model.mainSelect(CoreConstants.TABLE_NAME.CHILD, CoreConstants.TABLE_NAME.FAMILY, CoreConstants.TABLE_NAME.FAMILY_MEMBER, mainCondition); - - getView().initializeQueryParams(CoreConstants.TABLE_NAME.CHILD, countSelect, mainSelect); - getView().initializeAdapter(visibleColumns); - - getView().countExecute(); - getView().filterandSortInInitializeQueries(); - } - - @Override - public void startSync() { - //ServiceTools.startSyncService(getActivity()); - } - - @Override - public void searchGlobally(String uniqueId) { - // TODO implement search global - } - - private void setVisibleColumns(Set visibleColumns) { - this.visibleColumns = visibleColumns; - } - - protected CoreChildRegisterFragmentContract.View getView() { - if (viewReference != null) { - return viewReference.get(); - } else { - return null; - } - } - - @Override - public void updateSortAndFilter(List filterList, Field sortField) { - String filterText = model.getFilterText(filterList, getView().getString(org.smartregister.R.string.filter)); - String sortText = model.getSortText(sortField); - - getView().updateFilterAndFilterStatus(filterText, sortText); - } - - @Override - public String getMainCondition() { - return String.format(" %s.%s is null AND %s", CoreConstants.TABLE_NAME.CHILD, DBConstants.KEY.DATE_REMOVED, ChildDBConstants.childAgeLimitFilter()); - } - - @Override - public String getMainCondition(String tableName) { - return String.format(" %s is null AND %s", tableName + "." + DBConstants.KEY.DATE_REMOVED, ChildDBConstants.childAgeLimitFilter(tableName)); - } - - @Override - public String getDefaultSortQuery() { - return CoreConstants.TABLE_NAME.CHILD + "." + DBConstants.KEY.LAST_INTERACTED_WITH + " DESC ";// AND "+ChildDBConstants.childAgeLimitFilter(); - } - - @Override - public String getDueFilterCondition() { - return getMainCondition() + " AND " + ChildDBConstants.childDueFilter(); - } - - public String getDueCondition() { - return " and " + CoreConstants.TABLE_NAME.CHILD + ".birth_cert = Yes"; - } - - public String getFilterString(String filters) { - - StringBuilder customFilter = new StringBuilder(); - if (StringUtils.isNotBlank(filters)) { - customFilter.append(" and ( "); - customFilter.append(MessageFormat.format(" {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.FIRST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.LAST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.MIDDLE_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.UNIQUE_ID, filters)); - - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.FIRST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.LAST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.MIDDLE_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.UNIQUE_ID, filters)); - - customFilter.append(" ) "); - } - - return customFilter.toString(); - } - - public void setModel(CoreChildRegisterFragmentContract.Model model) { - this.model = model; - } -} diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java index 362c69172f..053c415585 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java @@ -11,14 +11,12 @@ import org.smartregister.configurableviews.model.ViewConfiguration; import org.smartregister.family.util.DBConstants; import java.lang.ref.WeakReference; -import java.text.MessageFormat; import java.util.List; import java.util.Set; import java.util.TreeSet; public class CoreDeadClientsFragmentPresenter implements CoreChildRegisterFragmentContract.Presenter { - protected Set visibleColumns = new TreeSet<>(); private WeakReference viewReference; private CoreChildRegisterFragmentContract.Model model; @@ -63,7 +61,6 @@ public void initializeQueries(String mainCondition) { @Override public void startSync() { - //ServiceTools.startSyncService(getActivity()); } @Override @@ -107,29 +104,20 @@ public String getDueFilterCondition() { return getMainCondition() + " AND " + ChildDBConstants.childDueFilter(); } - public String getDueCondition() { - return " and " + CoreConstants.TABLE_NAME.CHILD + ".base_entity_id in (select base_entity_id from schedule_service where strftime('%Y-%m-%d') BETWEEN due_date and expiry_date and schedule_name = '" + CoreConstants.SCHEDULE_TYPES.CHILD_VISIT + "' and ifnull(not_done_date,'') = '' and ifnull(completion_date,'') = '' ) "; - } - - public String getFilterString(String filters) { - - StringBuilder customFilter = new StringBuilder(); - if (StringUtils.isNotBlank(filters)) { - customFilter.append(" and ( "); - customFilter.append(MessageFormat.format(" {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.FIRST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.LAST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.MIDDLE_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.FAMILY_MEMBER, org.smartregister.chw.anc.util.DBConstants.KEY.UNIQUE_ID, filters)); - - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.FIRST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.LAST_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.MIDDLE_NAME, filters)); - customFilter.append(MessageFormat.format(" or {0}.{1} like ''%{2}%'' ", CoreConstants.TABLE_NAME.CHILD, org.smartregister.chw.anc.util.DBConstants.KEY.UNIQUE_ID, filters)); - - customFilter.append(" ) "); + public String getDueCondition(String check) { + String dueCondition = ""; + switch (check){ + case "1": + dueCondition = " AND ec_child.received_death_certificate = 'Yes' "; + break; + case "2": + dueCondition = " AND ec_family_member.received_death_certificate = 'Yes' "; + break; + case "3": + dueCondition = " WHERE ec_out_of_area_death.received_death_certificate = 'Yes' "; + break; } - - return customFilter.toString(); + return dueCondition; } public void setModel(CoreChildRegisterFragmentContract.Model model) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java index f209707c8d..c7b2caa97b 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java @@ -9,9 +9,7 @@ import android.util.Pair; import android.view.View; import android.widget.Toast; - import com.google.android.material.floatingactionbutton.FloatingActionButton; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; @@ -27,12 +25,10 @@ import org.smartregister.family.model.BaseFamilyRegisterModel; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.repository.AllSharedPreferences; - import java.lang.ref.WeakReference; import java.util.List; - +import java.util.Objects; import timber.log.Timber; - import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_ENCOUNTER_TYPE; public class CoreOutOfAreaChildRegisterPresenter implements CoreOutOfAreaChildRegisterContract.Presenter, CoreOutOfAreaChildRegisterContract.InteractorCallBack { @@ -43,7 +39,7 @@ public class CoreOutOfAreaChildRegisterPresenter implements CoreOutOfAreaChildRe public CoreOutOfAreaChildRegisterPresenter(CoreOutOfAreaChildRegisterContract.View view, CoreOutOfAreaChildRegisterContract.Model model) { viewReference = new WeakReference<>(view); - interactor = new CoreOutOfAreaChildRegisterInteractor(getView().getContext()); + interactor = new CoreOutOfAreaChildRegisterInteractor(Objects.requireNonNull(getView()).getContext()); this.model = model; } @@ -97,7 +93,7 @@ private CoreOutOfAreaChildRegisterContract.View getView() { @Override public void saveLanguage(String language) { model.saveLanguage(language); - getView().displayToast(language + " selected"); + Objects.requireNonNull(getView()).displayToast(language + " selected"); } @Override @@ -176,7 +172,7 @@ public void onRegistrationSaved(boolean editMode, boolean isSaved, FamilyEventCl public void closeFamilyRecord(String jsonString) { try { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getView().getContext()); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(Objects.requireNonNull(getView()).getContext()); AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); Timber.d("JSONResult : %s", jsonString); @@ -191,7 +187,7 @@ public void closeFamilyRecord(String jsonString) { @Override public void addOutOfAreaChild(Class activity) { - Intent intent = new Intent(getView().getContext(), OutOfAreaChildActivity.class); + Intent intent = new Intent(Objects.requireNonNull(getView()).getContext(), OutOfAreaChildActivity.class); getView().getContext().startActivity(intent); } @@ -200,20 +196,18 @@ public void addOutOfAreaChild(Class activity) { public void registerFloatingActionButton(View v, int visibility) { FloatingActionButton addClientsFab = v.findViewById(org.smartregister.chw.core.R.id.add_clients_fab); addClientsFab.setVisibility(View.VISIBLE); - /*if (addClientsFab != null) - addClientsFab.setImageResource(R.drawable.ic_add);*/ addClientsFab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - interactor.openActivityOnFloatingButtonClick(getView().getContext(), OutOfAreaChildUpdateActivity.class); + interactor.openActivityOnFloatingButtonClick(Objects.requireNonNull(getView()).getContext(), OutOfAreaChildUpdateActivity.class); } }); } @Override public void onNoUniqueId() { - getView().displayShortToast(org.smartregister.chw.core.R.string.no_unique_id); + Objects.requireNonNull(getView()).displayShortToast(org.smartregister.chw.core.R.string.no_unique_id); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java index b41a832cef..add89648f8 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java @@ -9,9 +9,7 @@ import android.util.Pair; import android.view.View; import android.widget.Toast; - import com.google.android.material.floatingactionbutton.FloatingActionButton; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; @@ -27,12 +25,11 @@ import org.smartregister.family.model.BaseFamilyRegisterModel; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.repository.AllSharedPreferences; - import java.lang.ref.WeakReference; import java.util.List; +import java.util.Objects; import timber.log.Timber; - import static org.smartregister.chw.util.CrvsConstants.OUT_OF_AREA_DEATH_ENCOUNTER_TYPE; public class CoreOutOfAreaDeathRegisterPresenter implements CoreOutOfAreaDeathRegisterContract.Presenter, CoreOutOfAreaDeathRegisterContract.InteractorCallBack { @@ -43,7 +40,7 @@ public class CoreOutOfAreaDeathRegisterPresenter implements CoreOutOfAreaDeathRe public CoreOutOfAreaDeathRegisterPresenter(CoreOutOfAreaDeathRegisterContract.View view, CoreOutOfAreaDeathRegisterContract.Model model) { viewReference = new WeakReference<>(view); - interactor = new CoreOutOfAreaDeathRegisterInteractor(getView().getContext()); + interactor = new CoreOutOfAreaDeathRegisterInteractor(Objects.requireNonNull(getView()).getContext()); this.model = model; } @@ -97,7 +94,7 @@ private CoreOutOfAreaDeathRegisterContract.View getView() { @Override public void saveLanguage(String language) { model.saveLanguage(language); - getView().displayToast(language + " selected"); + Objects.requireNonNull(getView()).displayToast(language + " selected"); } @Override @@ -176,7 +173,7 @@ public void onRegistrationSaved(boolean editMode, boolean isSaved, FamilyEventCl public void closeFamilyRecord(String jsonString) { try { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getView().getContext()); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(Objects.requireNonNull(getView()).getContext()); AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); Timber.d("JSONResult : %s", jsonString); @@ -191,7 +188,7 @@ public void closeFamilyRecord(String jsonString) { @Override public void addOutOfAreaChild(Class activity) { - Intent intent = new Intent(getView().getContext(), OutOfAreaDeathActivity.class); + Intent intent = new Intent(Objects.requireNonNull(getView()).getContext(), OutOfAreaDeathActivity.class); getView().getContext().startActivity(intent); } @@ -203,17 +200,12 @@ public void registerFloatingActionButton(View v, int visibility) { /*if (addClientsFab != null) addClientsFab.setImageResource(R.drawable.ic_add);*/ - addClientsFab.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - interactor.openActivityOnFloatingButtonClick(getView().getContext(), OutOfAreaDeathUpdateActivity.class); - } - }); + addClientsFab.setOnClickListener(view -> interactor.openActivityOnFloatingButtonClick(Objects.requireNonNull(getView()).getContext(), OutOfAreaDeathUpdateActivity.class)); } @Override public void onNoUniqueId() { - getView().displayShortToast(org.smartregister.chw.core.R.string.no_unique_id); + Objects.requireNonNull(getView()).displayShortToast(org.smartregister.chw.core.R.string.no_unique_id); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java index e08b28ab4d..8846c07b1f 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java @@ -63,7 +63,6 @@ public void initializeQueries(String mainCondition) { @Override public void startSync() { - //ServiceTools.startSyncService(getActivity()); } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/CoreDeadClientsProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/CoreDeadClientsProvider.java index 98641e7949..f3b4a17e3e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/CoreDeadClientsProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/CoreDeadClientsProvider.java @@ -6,9 +6,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; - import androidx.recyclerview.widget.RecyclerView; - import org.apache.commons.lang3.text.WordUtils; import org.smartregister.chw.core.holders.FooterViewHolder; import org.smartregister.chw.core.holders.RegisterViewHolder; @@ -24,16 +22,10 @@ import org.smartregister.view.dialog.ServiceModeOption; import org.smartregister.view.dialog.SortOption; import org.smartregister.view.viewholder.OnClickFormLauncher; - import java.text.MessageFormat; import java.util.Set; - import static org.smartregister.chw.core.utils.Utils.getDuration; -/** - * Created by keyman on 13/11/2018. - */ - public class CoreDeadClientsProvider implements RecyclerViewProvider { public final LayoutInflater inflater; private Set visibleColumns; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java index 0ce8918d05..ec3e129c18 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java @@ -42,7 +42,6 @@ public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolde if (visibleColumns.isEmpty()) { populatePatientColumn(pc, client, viewHolder); populateLastColumn(pc, viewHolder); - return; } } @@ -71,41 +70,48 @@ protected void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterC String clientType = Utils.getValue(pc.getColumnmaps(), CLIENT_TYPE, true); String childName = getClientName(firstName, middleName, lastName); - if (clientType.equals("Still")){ - String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + getClientName(parentFirstName, parentMiddleName, parentLastName); - fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)); - fillValue(viewHolder.textViewChildName, "Baby (" + stillBirth + ")"); - String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); - fillValue(viewHolder.textViewAddressGender, address); - }else if (clientType.equals("Adult")){ - viewHolder.textViewChildName.setVisibility(View.GONE); - viewHolder.textViewChildAge.setVisibility(View.GONE); - String age = WordUtils.capitalize(Utils.getTranslatedDate(dobString, context)); - String parentName = getClientName(parentFirstName, parentMiddleName, parentLastName); - fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)+", "+age); - String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); - String gender_key = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.GENDER, true); - String gender = ""; - if (gender_key.equalsIgnoreCase("Male")) { - gender = context.getString(org.smartregister.chw.core.R.string.male); - } else if (gender_key.equalsIgnoreCase("Female")) { - gender = context.getString(org.smartregister.chw.core.R.string.female); + switch (clientType) { + case "Still": { + String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + getClientName(parentFirstName, parentMiddleName, parentLastName); + fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)); + fillValue(viewHolder.textViewChildName, "Baby (" + stillBirth + ")"); + String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); + fillValue(viewHolder.textViewAddressGender, address); + break; } - fillValue(viewHolder.textViewAddressGender, address + " \u00B7 " + gender); - }else if(clientType.equals("Child")){ - String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + getClientName(parentFirstName, parentMiddleName, parentLastName); - fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)); - String age = WordUtils.capitalize(Utils.getTranslatedDate(dobString, context)); - fillValue(viewHolder.textViewChildName, WordUtils.capitalize(childName)+", "+age); - String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); - String gender_key = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.GENDER, true); - String gender = ""; - if (gender_key.equalsIgnoreCase("Male")) { - gender = context.getString(org.smartregister.chw.core.R.string.male); - } else if (gender_key.equalsIgnoreCase("Female")) { - gender = context.getString(org.smartregister.chw.core.R.string.female); + case "Adult": { + viewHolder.textViewChildName.setVisibility(View.GONE); + viewHolder.textViewChildAge.setVisibility(View.GONE); + String age = WordUtils.capitalize(Utils.getTranslatedDate(dobString, context)); + String parentName = getClientName(parentFirstName, parentMiddleName, parentLastName); + fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName) + ", " + age); + String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); + String gender_key = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.GENDER, true); + String gender = ""; + if (gender_key.equalsIgnoreCase("Male")) { + gender = context.getString(org.smartregister.chw.core.R.string.male); + } else if (gender_key.equalsIgnoreCase("Female")) { + gender = context.getString(org.smartregister.chw.core.R.string.female); + } + fillValue(viewHolder.textViewAddressGender, address + " \u00B7 " + gender); + break; + } + case "Child": { + String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + getClientName(parentFirstName, parentMiddleName, parentLastName); + fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)); + String age = WordUtils.capitalize(Utils.getTranslatedDate(dobString, context)); + fillValue(viewHolder.textViewChildName, WordUtils.capitalize(childName) + ", " + age); + String address = Utils.getValue(pc.getColumnmaps(), ChildDBConstants.KEY.FAMILY_HOME_ADDRESS, true); + String gender_key = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.GENDER, true); + String gender = ""; + if (gender_key.equalsIgnoreCase("Male")) { + gender = context.getString(org.smartregister.chw.core.R.string.male); + } else if (gender_key.equalsIgnoreCase("Female")) { + gender = context.getString(org.smartregister.chw.core.R.string.female); + } + fillValue(viewHolder.textViewAddressGender, address + " \u00B7 " + gender); + break; } - fillValue(viewHolder.textViewAddressGender, address + " \u00B7 " + gender); } } catch (Exception e) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaDeathProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaDeathProvider.java index f9f3163b44..bcac14e9dd 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaDeathProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaDeathProvider.java @@ -6,9 +6,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; - import androidx.recyclerview.widget.RecyclerView; - import org.apache.commons.lang3.text.WordUtils; import org.smartregister.chw.R; import org.smartregister.chw.application.ChwApplication; @@ -60,7 +58,6 @@ public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolde if (visibleColumns.isEmpty()) { populatePatientColumn(pc, client, viewHolder); populateLastColumn(pc, viewHolder); - return; } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java index 7067375b96..7b84346be4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java @@ -13,12 +13,10 @@ import org.smartregister.chw.constants.CrvsDbConstants; import org.smartregister.chw.core.holders.FooterViewHolder; import org.smartregister.chw.core.holders.RegisterViewHolder; -import org.smartregister.chw.task.DeadUpdateLastAsyncTask; import org.smartregister.chw.task.OutOfAreaChildAsyncTask; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; import org.smartregister.cursoradapter.RecyclerViewProvider; -import org.smartregister.family.fragment.BaseFamilyRegisterFragment; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.Utils; import org.smartregister.view.contract.SmartRegisterClient; @@ -59,9 +57,8 @@ protected static void fillValue(TextView v, String value) { public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolder viewHolder) { CommonPersonObjectClient pc = (CommonPersonObjectClient) client; if (visibleColumns.isEmpty()) { - populatePatientColumn(pc, client, viewHolder); + populatePatientColumn(pc, viewHolder); populateLastColumn(pc, viewHolder); - return; } } @@ -123,7 +120,7 @@ public boolean isFooterViewHolder(RecyclerView.ViewHolder viewHolder) { return viewHolder instanceof FooterViewHolder; } - protected void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterClient client, RegisterViewHolder viewHolder) { + protected void populatePatientColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { try{ String motherName = Utils.getValue(pc.getColumnmaps(), CrvsDbConstants.KEY.MOTHER_NAME, true); String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + motherName; @@ -146,28 +143,6 @@ protected void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterC e.printStackTrace(); } -// addButtonClickListeners(client, viewHolder); - - } - - public void addButtonClickListeners(SmartRegisterClient client, RegisterViewHolder viewHolder) { - View patient = viewHolder.childColumn; - attachPatientOnclickListener(patient, client); - - View dueButton = viewHolder.dueButton; - attachDosageOnclickListener(dueButton, client); - } - - protected void attachPatientOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(org.smartregister.chw.core.R.id.VIEW_ID, BaseFamilyRegisterFragment.CLICK_VIEW_NORMAL); - } - - protected void attachDosageOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(org.smartregister.chw.core.R.id.VIEW_ID, BaseFamilyRegisterFragment.CLICK_VIEW_DOSAGE_STATUS); } public LayoutInflater getInflater() { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java index 323dc08e8f..21f9f855a8 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java @@ -6,16 +6,13 @@ import android.os.AsyncTask; import android.view.View; import android.widget.Button; - import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; - import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Rules; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.activity.OutOfAreaChildUpdateFormActivity; -import org.smartregister.chw.activity.OutOfAreaDeathUpdateFormActivity; import org.smartregister.chw.core.application.CoreChwApplication; import org.smartregister.chw.core.dao.VisitDao; import org.smartregister.chw.core.domain.VisitSummary; @@ -33,13 +30,12 @@ import org.smartregister.family.util.Utils; import org.smartregister.opd.activity.BaseOpdFormActivity; import org.smartregister.opd.utils.OpdConstants; - import java.text.SimpleDateFormat; import java.util.Locale; import java.util.Map; +import java.util.Objects; import timber.log.Timber; - import static org.smartregister.chw.core.utils.Utils.getDuration; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; import static org.smartregister.chw.util.CrvsConstants.NO; @@ -82,7 +78,7 @@ public Void doInBackground(Void... params) { try { String createVal = Utils.getValue(baseEntityId.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) - dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); + dateCreated = Objects.requireNonNull(ISO8601DATEFORMAT.parse(createVal)).getTime(); } catch (Exception e) { Timber.e(e); @@ -110,7 +106,7 @@ public Void doInBackground(Void... params) { protected void onPostExecute(Void param) { viewHolder.dueButtonLayout.setVisibility(View.VISIBLE); viewHolder.dueButton.setVisibility(View.VISIBLE); - String received_death_certificate = ""; + String received_death_certificate; try { received_death_certificate = Utils.getValue(baseEntityId.getColumnmaps(), RECEIVED_DEATH_CERTIFICATE, false); if (received_death_certificate.trim().equalsIgnoreCase(YES)) { @@ -124,15 +120,12 @@ protected void onPostExecute(Void param) { viewHolder.dueButton.setText(context.getResources().getString(R.string.update_status)); e.printStackTrace(); } - viewHolder.dueButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - String entityId = Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); - Intent intent = new Intent(context, OutOfAreaChildUpdateFormActivity.class); - intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); - intent.putExtra(BASE_ENTITY_ID, entityId); - context.startActivity(intent); - } + viewHolder.dueButton.setOnClickListener(view -> { + String entityId = Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); + Intent intent = new Intent(context, OutOfAreaChildUpdateFormActivity.class); + intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); + intent.putExtra(BASE_ENTITY_ID, entityId); + context.startActivity(intent); }); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java index acbe45787f..09af61096a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java @@ -6,10 +6,8 @@ import android.os.AsyncTask; import android.view.View; import android.widget.Button; - import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; - import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Rules; import org.json.JSONObject; @@ -32,13 +30,12 @@ import org.smartregister.family.util.Utils; import org.smartregister.opd.activity.BaseOpdFormActivity; import org.smartregister.opd.utils.OpdConstants; - import java.text.SimpleDateFormat; import java.util.Locale; import java.util.Map; +import java.util.Objects; import timber.log.Timber; - import static org.smartregister.chw.core.utils.Utils.getDuration; import static org.smartregister.chw.util.CrvsConstants.BASE_ENTITY_ID; import static org.smartregister.chw.util.CrvsConstants.NO; @@ -81,7 +78,7 @@ public Void doInBackground(Void... params) { try { String createVal = Utils.getValue(commonPersonObject.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) - dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); + dateCreated = Objects.requireNonNull(ISO8601DATEFORMAT.parse(createVal)).getTime(); } catch (Exception e) { Timber.e(e); @@ -109,7 +106,7 @@ public Void doInBackground(Void... params) { protected void onPostExecute(Void param) { viewHolder.dueButtonLayout.setVisibility(View.VISIBLE); viewHolder.dueButton.setVisibility(View.VISIBLE); - String received_death_certificate = ""; + String received_death_certificate; try { received_death_certificate = Utils.getValue(baseEntityId.getColumnmaps(), RECEIVED_DEATH_CERTIFICATE, false); if (received_death_certificate.trim().equalsIgnoreCase(YES)) { @@ -123,15 +120,12 @@ protected void onPostExecute(Void param) { viewHolder.dueButton.setText(context.getResources().getString(R.string.update_status)); e.printStackTrace(); } - viewHolder.dueButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - String entityId = Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); - Intent intent = new Intent(context, OutOfAreaDeathUpdateFormActivity.class); - intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); - intent.putExtra(BASE_ENTITY_ID, entityId); - context.startActivity(intent); - } + viewHolder.dueButton.setOnClickListener(view -> { + String entityId = Utils.getValue(baseEntityId.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, false); + Intent intent = new Intent(context, OutOfAreaDeathUpdateFormActivity.class); + intent.putExtra(Constants.ACTIVITY_PAYLOAD.ACTION, Constants.ACTION.START_REGISTRATION); + intent.putExtra(BASE_ENTITY_ID, entityId); + context.startActivity(intent); }); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java index 999705210b..de5be0fd5a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java @@ -6,7 +6,6 @@ import android.text.TextUtils; import android.view.View; import android.widget.Button; - import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import org.apache.commons.lang3.StringUtils; @@ -22,16 +21,17 @@ import org.smartregister.chw.core.utils.ChwDBConstants; import org.smartregister.chw.core.utils.CoreChildUtils; import org.smartregister.chw.core.utils.CoreConstants; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; import org.smartregister.family.util.Constants; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.Utils; - import java.text.SimpleDateFormat; import java.util.Locale; import java.util.Map; +import java.util.Objects; import timber.log.Timber; import static org.smartregister.chw.core.utils.Utils.getDuration; import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERT; @@ -81,7 +81,7 @@ public Void doInBackground(Void... params) { try { String createVal = Utils.getValue(pc.getColumnmaps(), ChwDBConstants.DATE_CREATED, false); if (StringUtils.isNotBlank(createVal)) - dateCreated = ISO8601DATEFORMAT.parse(createVal).getTime(); + dateCreated = Objects.requireNonNull(ISO8601DATEFORMAT.parse(createVal)).getTime(); } catch (Exception e) { Timber.e(e); @@ -107,7 +107,7 @@ protected void onPostExecute(Void param) { String birth_cert = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT, true); String birth_notification = Utils.getValue(pc.getColumnmaps(), BIRTH_NOTIFICATION, true); String birth_registration = Utils.getValue(pc.getColumnmaps(), BIRTH_REGISTRATION, true); - String dob = Utils.getValue(pc.getColumnmaps(), "dob", true); + String dob = Utils.getValue(pc.getColumnmaps(), CrvsConstants.DOB, true); try { if (birth_cert.trim().equalsIgnoreCase(YES)) { setReceivedButtonColor(context, viewHolder.dueButton); @@ -122,26 +122,23 @@ protected void onPostExecute(Void param) { viewHolder.dueButton.setText(context.getResources().getString(R.string.update_status)); e.printStackTrace(); } - viewHolder.dueButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - String entityId = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, true); - String birth_cert_issue_date = Utils.getValue(pc.getColumnmaps(), BIRTH_CERTIFICATE_ISSUE_DATE, true); - String birth_cert_num = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT_NUM, true); - String clienttype = Utils.getValue(pc.getColumnmaps(), CLIENT_TYPE, true); - - Intent intent = new Intent(context, BirthNotificationUpdateActivity.class); - intent.putExtra(org.smartregister.chw.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.util.Constants.ACTION.START_REGISTRATION); - intent.putExtra(DBConstants.KEY.BASE_ENTITY_ID, entityId); - intent.putExtra(CLIENT_TYPE, clienttype); - intent.putExtra(BIRTH_CERT, birth_cert); - intent.putExtra(BIRTH_CERTIFICATE_ISSUE_DATE, birth_cert_issue_date); - intent.putExtra(BIRTH_CERT_NUM, birth_cert_num); - intent.putExtra(BIRTH_NOTIFICATION, birth_notification); - intent.putExtra(BIRTH_REGISTRATION, birth_registration); - intent.putExtra(DOB, dob); - context.startActivity(intent); - } + viewHolder.dueButton.setOnClickListener(view -> { + String entityId = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.BASE_ENTITY_ID, true); + String birth_cert_issue_date = Utils.getValue(pc.getColumnmaps(), BIRTH_CERTIFICATE_ISSUE_DATE, true); + String birth_cert_num = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT_NUM, true); + String clienttype = Utils.getValue(pc.getColumnmaps(), CLIENT_TYPE, true); + + Intent intent = new Intent(context, BirthNotificationUpdateActivity.class); + intent.putExtra(org.smartregister.chw.util.Constants.ACTIVITY_PAYLOAD.ACTION, org.smartregister.chw.util.Constants.ACTION.START_REGISTRATION); + intent.putExtra(DBConstants.KEY.BASE_ENTITY_ID, entityId); + intent.putExtra(CLIENT_TYPE, clienttype); + intent.putExtra(BIRTH_CERT, birth_cert); + intent.putExtra(BIRTH_CERTIFICATE_ISSUE_DATE, birth_cert_issue_date); + intent.putExtra(BIRTH_CERT_NUM, birth_cert_num); + intent.putExtra(BIRTH_NOTIFICATION, birth_notification); + intent.putExtra(BIRTH_REGISTRATION, birth_registration); + intent.putExtra(DOB, dob); + context.startActivity(intent); }); } else { viewHolder.dueButton.setVisibility(View.GONE); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java index b7bd6f06d3..146a5f96df 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java @@ -1,6 +1,10 @@ package org.smartregister.chw.util; public class CrvsConstants { + public static String STILL = "still"; + public static String CHILD = "child"; + public static String STEP1 = "step1"; + public static String FIELDS = "fields"; public static String USER_TYPE = "userType"; public static String USER = "User"; public static String AGENT = "Agent"; @@ -51,13 +55,23 @@ public class CrvsConstants { public static String MOTHER_HIGHEST_EDU_LEVEL = "mother_highest_edu_level"; public static String FATHER_MARITAL_STATUS = "father_marital_status"; public static String FATHER_HIGHEST_EDU_LEVEL = "father_highest_edu_level"; + public static String OUT_OF_AREA = "outOfArea"; // Forms public static String DEATH_MEMBER_FORM = "death_member_form"; public static String OUT_OF_AREA_CHILD_FORM = "out_of_area_child_enrollment"; public static String OUT_OF_AREA_DEATH_FORM = "out_of_area_death_form"; + public static String EC_CLIENT_CLASSIFICATION = "ec_client_classification.json"; - //Posifixes + // Posifixes public static String OUT_OF_AREA_BIRTH = "_outOfAreaBirth"; public static String OUT_OF_AREA_DEATH = "_outOfAreaDeath"; + + // Tables + public static String TABLE_OUT_OF_AREA_DEATH = "ec_out_of_area_death"; + public static String TABLE_OUT_OF_AREA_CHILD = "ec_out_of_area_child"; + + // Headings + public static String OUT_OF_AREA_DEATH_HEADING = "Out of area death"; + } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java index b24204ef66..8c65e5b182 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/DateUtils.java @@ -10,8 +10,7 @@ public static String changeDateFormat(String date){ String[] splitDob = date.split("T"); String inputFormat = "yyyy-MM-dd"; String OutPutFormat = "dd-MM-yyyy"; - String convertedDate = formatDate(splitDob[0], inputFormat, OutPutFormat); - return convertedDate; + return formatDate(splitDob[0], inputFormat, OutPutFormat); } public static String formatDate(String dateToFormat, String inputFormat, String outputFormat) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java index c2210c9bff..1047147673 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java @@ -3,27 +3,21 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; - import com.vijay.jsonwizard.domain.Form; - import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.domain.Photo; -import org.smartregister.family.util.Constants; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.JsonFormUtils; import org.smartregister.family.util.Utils; import org.smartregister.util.FormUtils; import org.smartregister.util.ImageUtils; import org.smartregister.view.LocationPickerView; - import java.util.Date; - import timber.log.Timber; - import static org.smartregister.util.JsonFormUtils.dd_MM_yyyy; public class JsonFormUtilsFlv extends DefaultJsonFormUtilsFlv { @@ -39,7 +33,7 @@ public static void startFormActivity(Context context, JSONObject jsonForm, Strin form.setHomeAsUpIndicator(org.smartregister.chw.core.R.mipmap.ic_cross_white); form.setPreviousLabel(context.getResources().getString(org.smartregister.chw.core.R.string.back)); intent.putExtra("form", form); - ((Activity)context).startActivityForResult(intent, 2244); + ((Activity) context).startActivityForResult(intent, 2244); } public static JSONObject getAutoPopulatedJsonEditFormString(String formName, Context context, CommonPersonObjectClient client, @@ -50,23 +44,21 @@ public static JSONObject getAutoPopulatedJsonEditFormString(String formName, Con lpv.init(); // JsonFormUtils.addWomanRegisterHierarchyQuestions(form); Timber.d("Form is %s", form.toString()); - if (form != null) { - form.put(org.smartregister.family.util.JsonFormUtils.ENTITY_ID, client.getCaseId()); - form.put(org.smartregister.family.util.JsonFormUtils.ENCOUNTER_TYPE, eventType); + form.put(JsonFormUtils.ENTITY_ID, client.getCaseId()); + form.put(JsonFormUtils.ENCOUNTER_TYPE, eventType); - JSONObject stepOne = form.getJSONObject(org.smartregister.family.util.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); + JSONObject stepOne = form.getJSONObject(JsonFormUtils.STEP1); + JSONArray jsonArray = stepOne.getJSONArray(JsonFormUtils.FIELDS); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); - processPopulatableFields(client, jsonObject); + processPopulatableFields(client, jsonObject); - } + } - org.smartregister.family.util.JsonFormUtils.addLocHierarchyQuestions(form); + JsonFormUtils.addLocHierarchyQuestions(form); - return form; - } + return form; } catch (Exception e) { Timber.e(e); } @@ -262,15 +254,5 @@ protected static void processPopulatableFields(CommonPersonObjectClient client, Timber.e("ERROR:: Unprocessed Form Object Key %s", jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY)); break; } -// updateOptions(client, jsonObject); } - - private static void updateOptions(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { - if (jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY).equalsIgnoreCase(DBConstants.KEY.DOB)) { - jsonObject.put(org.smartregister.family.util.JsonFormUtils.READ_ONLY, false); - JSONObject optionsObject = jsonObject.getJSONArray(Constants.JSON_FORM_KEY.OPTIONS).getJSONObject(0); - optionsObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), DBConstants.KEY.DOB, false)); - } - } - } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/OutOfAreaDeathUtils.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/OutOfAreaDeathUtils.java index 18de413333..0e6d4995be 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/OutOfAreaDeathUtils.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/OutOfAreaDeathUtils.java @@ -5,7 +5,6 @@ import com.google.gson.JsonDeserializer; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializer; - import org.joda.time.DateTime; import org.joda.time.format.ISODateTimeFormat; import org.smartregister.chw.core.utils.ChildDBConstants; @@ -27,7 +26,7 @@ public abstract class OutOfAreaDeathUtils { .create(); } - public static String mainSelectRegisterWithoutGroupby(String tableName, String familyTableName, String familyMemberTableName, String mainCondition) { + public static String mainSelectRegisterWithoutGroupby(String tableName, String mainCondition) { SmartRegisterQueryBuilder queryBuilder = new SmartRegisterQueryBuilder(); queryBuilder.selectInitiateMainTable(tableName, mainColumns(tableName)); return queryBuilder.mainCondition(mainCondition); diff --git a/opensrp-chw/src/crvs/res/values/strings.xml b/opensrp-chw/src/crvs/res/values/strings.xml index 60c5b4be3c..59b64176fc 100644 --- a/opensrp-chw/src/crvs/res/values/strings.xml +++ b/opensrp-chw/src/crvs/res/values/strings.xml @@ -12,4 +12,5 @@ Certificate not received Status updated Update Status + Certified \ No newline at end of file diff --git a/opensrp-chw/src/main/assets/json.form/birth_certification.json b/opensrp-chw/src/main/assets/json.form/birth_certification.json index a50076c809..f174d9db34 100644 --- a/opensrp-chw/src/main/assets/json.form/birth_certification.json +++ b/opensrp-chw/src/main/assets/json.form/birth_certification.json @@ -171,7 +171,7 @@ "relevance": { "rules-engine": { "ex-rules": { - "rules-file": "birth_certification.yml" + "rules-file": "birth_certification_intro_relevance_rule.yml" } } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java index d4e01322bc..b05120a7c5 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java @@ -3,9 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; - import com.google.android.material.bottomnavigation.BottomNavigationView; - import org.json.JSONArray; import org.json.JSONObject; import org.smartregister.chw.application.ChwApplication; @@ -17,6 +15,7 @@ import org.smartregister.chw.fragment.FamilyRegisterFragment; import org.smartregister.chw.listener.ChwBottomNavigationListener; import org.smartregister.chw.util.Constants; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.chw.util.JsonFormUtilsFlv; import org.smartregister.chw.util.Utils; import org.smartregister.commonregistry.AllCommonsRepository; @@ -25,15 +24,10 @@ import org.smartregister.family.util.JsonFormUtils; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.view.fragment.BaseRegisterFragment; - -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import java.util.Objects; - import timber.log.Timber; - import static org.smartregister.chw.core.utils.FormUtils.getFormUtils; import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERT; import static org.smartregister.chw.util.CrvsConstants.BIRTH_CERTIFICATE_ISSUE_DATE; @@ -46,8 +40,6 @@ import static org.smartregister.chw.util.CrvsConstants.CLIENT_TYPE; import static org.smartregister.chw.util.CrvsConstants.DOB; import static org.smartregister.chw.util.CrvsConstants.MIN_DATE; -import static org.smartregister.chw.util.CrvsConstants.NO; -import static org.smartregister.chw.util.CrvsConstants.YES; import static org.smartregister.chw.util.DateUtils.changeDateFormat; public class BirthNotificationUpdateActivity extends CoreFamilyRegisterActivity { @@ -128,6 +120,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent try { String jsonString = data.getStringExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON); + assert jsonString != null; JSONObject form = new JSONObject(jsonString); if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CoreConstants.EventType.BIRTH_CERTIFICATION) @@ -150,8 +143,8 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S String client_type = getIntent().getStringExtra(CLIENT_TYPE); try { JSONObject jsonObject = new JSONObject(jsonString); - JSONObject stepOne = jsonObject.getJSONObject("step1"); - JSONArray fields = stepOne.getJSONArray("fields"); + JSONObject stepOne = jsonObject.getJSONObject(CrvsConstants.STEP1); + JSONArray fields = stepOne.getJSONArray(CrvsConstants.FIELDS); JSONObject birth_certification = fields.getJSONObject(0); JSONObject birth_registration = fields.getJSONObject(1); @@ -162,31 +155,32 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S String certificate = birth_certification.getString("value"); String tableName; - if (client_type.equals(BIRTH_CLIENT_TYPE)){ - tableName = "ec_child"; + assert client_type != null; + if (client_type.toLowerCase().equals(BIRTH_CLIENT_TYPE)){ + tableName = Constants.TABLE_NAME.CHILD; }else { - tableName = "ec_out_of_area_child"; + tableName = CrvsConstants.TABLE_OUT_OF_AREA_CHILD; } - if (certificate.equals("Yes")) { + if (certificate.equalsIgnoreCase(CrvsConstants.YES)) { String dateOfBirthCertificate = objBirthCertificate.getString("value"); String birthCertNum = objBirthCertificateNum.getString("value"); String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_cert_issue_date = ?, birth_cert_num = ? WHERE id = ?"; - String[] selectionArgs = {certificate, dateOfBirthCertificate, birthCertNum, getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {certificate, dateOfBirthCertificate, birthCertNum, Objects.requireNonNull(getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID)).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } else { - String registration = ""; + String registration; try{ registration = birth_registration.getString("value"); }catch (Exception e){ registration = "No"; e.printStackTrace(); } - if (registration.equals("Yes")) { + if (registration.equalsIgnoreCase(CrvsConstants.YES)) { String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; - String[] selectionArgs = {certificate, "Yes", "No", getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {certificate, "Yes", "No", Objects.requireNonNull(getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID)).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } else { - String notification = ""; + String notification; try{ notification = birth_notification.getString("value"); }catch (Exception e){ @@ -194,7 +188,7 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S e.printStackTrace(); } String sql = "UPDATE "+tableName+" SET birth_cert = ?, birth_registration = ?, birth_notification = ? WHERE id = ?"; - String[] selectionArgs = {certificate, "No", notification, getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID).toLowerCase()}; + String[] selectionArgs = {certificate, "No", notification, Objects.requireNonNull(getIntent().getStringExtra(DBConstants.KEY.BASE_ENTITY_ID)).toLowerCase()}; allCommonsRepository.customQuery(sql, selectionArgs, tableName); } } From b351b1a37f4df8c83bae96f83eaefd2bf459e17f Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Mon, 2 Aug 2021 15:23:23 +0500 Subject: [PATCH 05/10] - Cleaned up the code as per codacy --- .../OutOfAreaChildUpdateFormActivity.java | 4 +- .../OutOfAreaDeathUpdateFormActivity.java | 4 +- .../chw/constants/CrvsDbConstants.java | 6 - .../BirthNotificationRegisterFragment.java | 2 +- .../chw/fragment/CoreDeadClientsFragment.java | 2 + .../chw/fragment/DeadClientsFragment.java | 3 +- .../CoreOutOfAreaChildRegisterInteractor.java | 5 - .../chw/model/NavigationModelFlv.java | 3 - .../CoreDeadClientsFragmentPresenter.java | 3 + .../CoreOutOfAreaChildRegisterPresenter.java | 2 + .../CoreOutOfAreaDeathRegisterPresenter.java | 2 + .../OutOfAreaChildFragmentPresenter.java | 1 + .../chw/provider/DeadClientsProvider.java | 2 +- .../chw/task/DeadUpdateLastAsyncTask.java | 4 +- .../UpdateBirthNotificationLastAsyncTask.java | 2 +- .../chw/util/JsonFormUtilsFlv.java | 166 +----------------- .../BirthNotificationUpdateActivity.java | 4 +- .../chw/fragment/PinLoginFragment.java | 7 - .../chw/interactor/LoginInteractor.java | 1 - 19 files changed, 29 insertions(+), 194 deletions(-) diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java index 52044c8656..6c2f6ce417 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaChildUpdateFormActivity.java @@ -97,11 +97,11 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent @Override public void openFamilyListView() { - + // Do nothing } @Override public void onPointerCaptureChanged(boolean hasCapture) { - + // Do nothing } } \ No newline at end of file diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java index 353eea417a..ec364a81ea 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathUpdateFormActivity.java @@ -98,11 +98,11 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent @Override public void openFamilyListView() { - + // Do nothing } @Override public void onPointerCaptureChanged(boolean hasCapture) { - + // Do nothing } } \ No newline at end of file diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java index 0bc9e61843..5c5a4f8e8e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java @@ -1,15 +1,9 @@ package org.smartregister.chw.constants; public class CrvsDbConstants { - public CrvsDbConstants() { - } - public static final class KEY { public static final String MOTHER_NAME = "mother_name"; - - public KEY() { - } } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java index b9ec2f45d4..28059c2ede 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/BirthNotificationRegisterFragment.java @@ -20,7 +20,7 @@ protected void onViewClicked(android.view.View view) { @Override public void goToChildDetailActivity(CommonPersonObjectClient patient, boolean launchDialog) { - + // Do nothing } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java index ae2939c30d..fde09025bf 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java @@ -343,6 +343,8 @@ private String getFilters(String query, String filter) { case "fourth": filterQuery = "WHERE ( ec_out_of_area_death.name like '%" + filter + "%' or ec_out_of_area_death.official_name like '%" + filter + "%' or ec_out_of_area_death.unique_id like '%" + filter + "%')"; break; + default: + filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; } return filterQuery; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java index 0eb2b6f1fa..dc04415cf4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java @@ -19,11 +19,12 @@ protected void onViewClicked(android.view.View view) { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { + // Do nothing } @Override public void goToChildDetailActivity(CommonPersonObjectClient patient, boolean launchDialog) { - + // Do nothing } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java index f884fb1ed0..28fae264d4 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java @@ -90,15 +90,12 @@ public void openActivityOnFloatingButtonClick(Context context, Class activity) { private boolean saveRegistration(Pair pair, String jsonString, boolean isEditMode) { try { - Client baseClient = pair.first; Event baseEvent = pair.second; JSONObject clientJson = null; JSONObject eventJson = null; - - if (baseClient != null) { clientJson = new JSONObject(JsonFormUtils.gson.toJson(baseClient)); if (isEditMode) { @@ -121,8 +118,6 @@ private boolean saveRegistration(Pair pair, String jsonString, bo } else { if (baseClient != null) { String opensrpId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); - // my generated id above - //mark OPENSRP ID as used getUniqueIdRepository().close(opensrpId); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java index a592a68f2a..c522801226 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/model/NavigationModelFlv.java @@ -13,9 +13,6 @@ public class NavigationModelFlv extends DefaultNavigationModelFlv { - public NavigationModelFlv() { - } - private List navigationOptions = new ArrayList<>(); @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java index 053c415585..04d51d56c6 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java @@ -61,6 +61,7 @@ public void initializeQueries(String mainCondition) { @Override public void startSync() { + // Do nothing } @Override @@ -116,6 +117,8 @@ public String getDueCondition(String check) { case "3": dueCondition = " WHERE ec_out_of_area_death.received_death_certificate = 'Yes' "; break; + default: + dueCondition = " AND ec_child.received_death_certificate = 'Yes' "; } return dueCondition; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java index c7b2caa97b..00bafd96bc 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaChildRegisterPresenter.java @@ -133,10 +133,12 @@ public void saveOutOfAreaForm(String jsonString, boolean isEditMode) { new CoreOutOfAreaChildRegisterInteractor(getView().getContext()).saveRegistration(fevent, jsonString, isEditMode, new CoreOutOfAreaChildRegisterContract.InteractorCallBack() { @Override public void onNoUniqueId() { + // Do nothing } @Override public void onUniqueIdFetched(Triple triple, String entityId, String familyId) { + // Do nothing } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java index add89648f8..ed586e51d5 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreOutOfAreaDeathRegisterPresenter.java @@ -134,10 +134,12 @@ public void saveOutOfAreaDeathForm(String jsonString, boolean isEditMode) { new CoreOutOfAreaDeathRegisterInteractor(getView().getContext()).saveRegistration(fevent, jsonString, isEditMode, new CoreOutOfAreaDeathRegisterContract.InteractorCallBack() { @Override public void onNoUniqueId() { + // Do nothing } @Override public void onUniqueIdFetched(Triple triple, String entityId, String familyId) { + // Do nothing } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java index 8846c07b1f..735c2a035c 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/OutOfAreaChildFragmentPresenter.java @@ -63,6 +63,7 @@ public void initializeQueries(String mainCondition) { @Override public void startSync() { + // Do nothing } @Override diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java index ec3e129c18..4486b09fe6 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java @@ -123,7 +123,7 @@ protected void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterC } private void populateLastColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { - Utils.startAsyncTask(new DeadUpdateLastAsyncTask(context, commonRepository, viewHolder, pc, onClickListener), null); + Utils.startAsyncTask(new DeadUpdateLastAsyncTask(context, viewHolder, pc, onClickListener), null); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java index 9b56f70399..07cb639b6f 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java @@ -37,7 +37,6 @@ public class DeadUpdateLastAsyncTask extends AsyncTask { public final Context context; - private final CommonRepository commonRepository; public final RegisterViewHolder viewHolder; public final CommonPersonObjectClient baseEntityId; private final Rules rules; @@ -46,9 +45,8 @@ public class DeadUpdateLastAsyncTask extends AsyncTask { public View.OnClickListener onClickListener; private SimpleDateFormat ISO8601DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); - public DeadUpdateLastAsyncTask(Context context, CommonRepository commonRepository, RegisterViewHolder viewHolder, CommonPersonObjectClient baseEntityId, View.OnClickListener onClickListener) { + public DeadUpdateLastAsyncTask(Context context, RegisterViewHolder viewHolder, CommonPersonObjectClient baseEntityId, View.OnClickListener onClickListener) { this.context = context; - this.commonRepository = commonRepository; this.viewHolder = viewHolder; this.baseEntityId = baseEntityId; this.onClickListener = onClickListener; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java index de5be0fd5a..26fc47dba5 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java @@ -107,7 +107,7 @@ protected void onPostExecute(Void param) { String birth_cert = Utils.getValue(pc.getColumnmaps(), BIRTH_CERT, true); String birth_notification = Utils.getValue(pc.getColumnmaps(), BIRTH_NOTIFICATION, true); String birth_registration = Utils.getValue(pc.getColumnmaps(), BIRTH_REGISTRATION, true); - String dob = Utils.getValue(pc.getColumnmaps(), CrvsConstants.DOB, true); + String dob = Utils.getValue(pc.getColumnmaps(), DOB, true); try { if (birth_cert.trim().equalsIgnoreCase(YES)) { setReceivedButtonColor(context, viewHolder.dueButton); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java index 1047147673..558942ec19 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java @@ -67,17 +67,17 @@ public static JSONObject getAutoPopulatedJsonEditFormString(String formName, Con } private static void getDob(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { - String dobString = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), DBConstants.KEY.DOB, false); + String dobString = Utils.getValue(client.getColumnmaps(), DBConstants.KEY.DOB, false); if (StringUtils.isNotBlank(dobString)) { - Date dob = org.smartregister.chw.core.utils.Utils.dobStringToDate(dobString); + Date dob = Utils.dobStringToDate(dobString); if (dob != null) { - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, dd_MM_yyyy.format(dob)); + jsonObject.put(JsonFormUtils.VALUE, dd_MM_yyyy.format(dob)); } } } private static void getPhoto(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { - Photo photo = ImageUtils.profilePhotoByClientID(client.getCaseId(), org.smartregister.chw.core.utils.Utils.getProfileImageResourceIDentifier()); + Photo photo = ImageUtils.profilePhotoByClientID(client.getCaseId(), Utils.getProfileImageResourceIDentifier()); if (StringUtils.isNotBlank(photo.getFilePath())) { jsonObject.put(JsonFormUtils.VALUE, photo.getFilePath()); } @@ -91,167 +91,15 @@ protected static void processPopulatableFields(CommonPersonObjectClient client, getPhoto(client, jsonObject); break; case "name": - String name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "name", false); + String name = Utils.getValue(client.getColumnmaps(), "name", false); jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, name); break; - case "unique_id": - String unique_id = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "unique_id", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, unique_id); - break; - case "national_id": - String national_id = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "national_id", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, national_id); - break; - case "remove_reason": - String remove_reason = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "remove_reason", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, remove_reason); - break; - case "date_died": - String date_died = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "date_died", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, date_died); - break; - case "death_place": - String death_place = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "death_place", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, death_place); - break; - case "nationality": - String nationality = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "nationality", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, nationality); - break; - case "marital_status": - String marital_status = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "marital_status", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, marital_status); - break; - case "informant_name": - String informant_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "informant_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, informant_name); - break; - case "informant_relationship": - String informant_relationship = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "informant_relationship", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, informant_relationship); - break; - case "informant_address": - String informant_address = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "informant_address", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, informant_address); - break; - case "informant_phone": - String informant_phone = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "informant_phone", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, informant_phone); - break; - case "official_name": - String official_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "official_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, official_name); - break; - case "official_id": - String official_id = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "official_id", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, official_id); - break; - case "official_position": - String official_position = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "official_position", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, official_position); - break; - case "physician_name": - String physician_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "physician_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, physician_name); - break; - case "physician_position": - String physician_position = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "physician_position", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, physician_position); - break; - case "death_cause": - String death_cause = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "death_cause", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, death_cause); - break; - case "death_manner": - String death_manner = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "death_manner", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, death_manner); - break; - case "official_address": - String official_address = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "official_address", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, official_address); - break; - case "official_number": - String official_number = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "official_number", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, official_number); - break; - case "surname": - String surname = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "surname", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, surname); - break; - case "first_name": - String first_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "first_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, first_name); - break; - case "middle_name": - String middle_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "middle_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, middle_name); - break; - case "gender": - String gender = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "gender", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, gender); - break; - case "birth_place_type": - String birth_place_type = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "birth_place_type", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, birth_place_type); - break; - case "birth_place_name": - String birth_place_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "birth_place_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, birth_place_name); - break; - case "mother_name": - String mother_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_name); - break; - case "mother_marital_status": - String mother_marital_status = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_marital_status", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_marital_status); - break; - case "mother_highest_edu_level": - String mother_highest_edu_level = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_highest_edu_level", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_highest_edu_level); - break; - case "mother_usual_residence": - String mother_usual_residence = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_usual_residence", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_usual_residence); - break; - case "mother_id": - String mother_id = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_id", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_id); - break; - case "father_name": - String father_name = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_name); - break; - case "father_id": - String father_id = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_id", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_id); - break; - case "father_dob_entered": - String father_dob_entered = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_dob_entered", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_dob_entered); - break; - case "father_marital_status": - String father_marital_status = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_marital_status", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_marital_status); - break; - case "father_highest_edu_level": - String father_highest_edu_level = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_highest_edu_level", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_highest_edu_level); - break; - case "father_birth_place": - String father_birth_place = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "father_birth_place", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, father_birth_place); - break; - case "mother_birth_place": - String mother_birth_place = org.smartregister.chw.core.utils.Utils.getValue(client.getColumnmaps(), "mother_birth_place", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, mother_birth_place); - break; case DBConstants.KEY.DOB: getDob(client, jsonObject); break; - default: - Timber.e("ERROR:: Unprocessed Form Object Key %s", jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY)); + String otherKey = Utils.getValue(client.getColumnmaps(), key, false); + jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, otherKey); break; } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java index b05120a7c5..4686342712 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java @@ -123,7 +123,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent assert jsonString != null; JSONObject form = new JSONObject(jsonString); - if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equals(CoreConstants.EventType.BIRTH_CERTIFICATION) + if (form.getString(JsonFormUtils.ENCOUNTER_TYPE).equalsIgnoreCase(CoreConstants.EventType.BIRTH_CERTIFICATION) ) { AllCommonsRepository allCommonsRepository = CoreChwApplication.getInstance().getAllCommonsRepository("ec_child"); @@ -156,7 +156,7 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S String tableName; assert client_type != null; - if (client_type.toLowerCase().equals(BIRTH_CLIENT_TYPE)){ + if (client_type.toLowerCase().equalsIgnoreCase(BIRTH_CLIENT_TYPE)){ tableName = Constants.TABLE_NAME.CHILD; }else { tableName = CrvsConstants.TABLE_OUT_OF_AREA_CHILD; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java index 64ab827620..053222ebf3 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/fragment/PinLoginFragment.java @@ -13,12 +13,9 @@ import android.widget.EditText; import android.widget.ProgressBar; import android.widget.TextView; -import android.widget.Toast; - import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.fragment.app.Fragment; - import org.joda.time.DateTime; import org.smartregister.chw.R; import org.smartregister.chw.activity.PinLoginActivity; @@ -28,12 +25,8 @@ import org.smartregister.chw.pinlogin.PinLogger; import org.smartregister.chw.presenter.PinLoginPresenter; import org.smartregister.util.Utils; - import timber.log.Timber; -/** - * @author rkodev - */ public class PinLoginFragment extends Fragment implements View.OnClickListener, PinLoginContract.View { public static final String TAG = "PinLoginFragment"; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java index 668771bf9a..d012e39a9e 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/interactor/LoginInteractor.java @@ -28,7 +28,6 @@ public LoginInteractor(BaseLoginContract.Presenter loginPresenter) { @Override protected void processServerSettings(LoginResponse loginResponse) { super.processServerSettings(loginResponse); - String type = loginResponse.payload().user.getType(); int size = loginResponse.payload().user.getRoles().size(); for (int i=0; i Date: Tue, 3 Aug 2021 11:02:35 +0500 Subject: [PATCH 06/10] - Removed most of the code complexity --- .../chw/fragment/DeadClientsFragment.java | 2 +- .../CoreOutOfAreaChildRegisterInteractor.java | 43 +- .../CoreOutOfAreaDeathRegisterInteractor.java | 49 +-- .../CoreDeadClientsFragmentPresenter.java | 5 +- .../chw/provider/DeadClientsProvider.java | 8 +- .../chw/task/DeadUpdateLastAsyncTask.java | 1 - .../UpdateBirthNotificationLastAsyncTask.java | 1 - .../chw/util/JsonFormUtilsFlv.java | 6 +- .../family_details_remove_member.json | 2 +- .../BirthNotificationUpdateActivity.java | 2 +- .../chw/provider/ChildRegisterProvider.java | 1 - .../smartregister/chw/util/JsonFormUtils.java | 369 +----------------- 12 files changed, 70 insertions(+), 419 deletions(-) diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java index dc04415cf4..1c6f351c0d 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/DeadClientsFragment.java @@ -29,7 +29,7 @@ public void goToChildDetailActivity(CommonPersonObjectClient patient, boolean la @Override public void initializeAdapter(Set visibleColumns) { - DeadClientsProvider deadClientsProvider = new DeadClientsProvider(getActivity(), commonRepository(), visibleColumns, registerActionHandler, paginationViewHandler); + DeadClientsProvider deadClientsProvider = new DeadClientsProvider(getActivity(), visibleColumns, registerActionHandler, paginationViewHandler); clientAdapter = new RecyclerViewPaginatedAdapter(null, deadClientsProvider, context().commonrepository(this.tablename)); clientAdapter.setCurrentlimit(20); clientsView.setAdapter(clientAdapter); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java index 28fae264d4..71bb8fa6f5 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java @@ -3,6 +3,7 @@ import android.content.Context; import android.content.Intent; import android.util.Pair; + import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; @@ -25,6 +26,7 @@ import org.smartregister.repository.UniqueIdRepository; import org.smartregister.sync.ClientProcessorForJava; import org.smartregister.sync.helper.ECSyncHelper; + import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -110,25 +112,9 @@ private boolean saveRegistration(Pair pair, String jsonString, bo getSyncHelper().addEvent(baseEvent.getBaseEntityId(), eventJson, BaseRepository.TYPE_Unsynced); } - if (isEditMode) { - assert baseClient != null; - String currentOpenSRPId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); - getUniqueIdRepository().open(currentOpenSRPId); - - } else { - if (baseClient != null) { - String opensrpId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); - getUniqueIdRepository().close(opensrpId); - } - } - - if (baseClient != null || baseEvent != null) { - String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); - assert baseEvent != null; - assert baseClient != null; - JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); - } + checkMode(isEditMode, baseClient); + saveImage(baseClient, baseEvent, jsonString); List eventClientList = new ArrayList<>(); @@ -151,6 +137,27 @@ private boolean saveRegistration(Pair pair, String jsonString, bo return true; } + private void checkMode(boolean isEditMode, Client baseClient) { + if (isEditMode) { + assert baseClient != null; + String currentOpenSRPId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); + getUniqueIdRepository().open(currentOpenSRPId); + } else { + assert baseClient != null; + String opensrpId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); + getUniqueIdRepository().close(opensrpId); + } + } + + private void saveImage(Client baseClient, Event baseEvent, String jsonString) { + if (baseClient != null || baseEvent != null) { + String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseEvent != null; + assert baseClient != null; + JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); + } + } + public synchronized void processClient(List eventClientList, boolean localSubmission) throws Exception { final String EC_CLIENT_CLASSIFICATION = CrvsConstants.EC_CLIENT_CLASSIFICATION; ClientClassification clientClassification = assetJsonToJava(EC_CLIENT_CLASSIFICATION, ClientClassification.class); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java index 04e26ecdcc..f3989edbed 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java @@ -3,6 +3,7 @@ import android.content.Context; import android.content.Intent; import android.util.Pair; + import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; @@ -25,6 +26,7 @@ import org.smartregister.repository.UniqueIdRepository; import org.smartregister.sync.ClientProcessorForJava; import org.smartregister.sync.helper.ECSyncHelper; + import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -97,8 +99,6 @@ private boolean saveRegistration(Pair pair, String jsonString, bo JSONObject clientJson = null; JSONObject eventJson = null; - - if (baseClient != null) { clientJson = new JSONObject(JsonFormUtils.gson.toJson(baseClient)); if (isEditMode) { @@ -113,29 +113,9 @@ private boolean saveRegistration(Pair pair, String jsonString, bo getSyncHelper().addEvent(baseEvent.getBaseEntityId(), eventJson, BaseRepository.TYPE_Unsynced); } - if (isEditMode) { - // Unassign current OPENSRP ID - if (baseClient != null) { - String currentOpenSRPId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); - getUniqueIdRepository().open(currentOpenSRPId); - } - - } else { - if (baseClient != null) { - String opensrpId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); - // my generated id above - //mark OPENSRP ID as used - getUniqueIdRepository().close(opensrpId); - } - } - - if (baseClient != null || baseEvent != null) { - String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); - assert baseEvent != null; - assert baseClient != null; - JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); - } + checkMode(isEditMode, baseClient); + saveImage(baseClient, baseEvent, jsonString); List eventClientList = new ArrayList<>(); @@ -158,6 +138,27 @@ private boolean saveRegistration(Pair pair, String jsonString, bo return true; } + private void saveImage(Client baseClient, Event baseEvent, String jsonString) { + if (baseClient != null || baseEvent != null) { + String imageLocation = JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseEvent != null; + assert baseClient != null; + JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); + } + } + + private void checkMode(boolean isEditMode, Client baseClient) { + if (isEditMode) { + assert baseClient != null; + String currentOpenSRPId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); + getUniqueIdRepository().open(currentOpenSRPId); + } else { + assert baseClient != null; + String opensrpId = baseClient.getIdentifier(Utils.metadata().uniqueIdentifierKey); + getUniqueIdRepository().close(opensrpId); + } + } + public synchronized void processClient(List eventClientList, boolean localSubmission) throws Exception { final String EC_CLIENT_CLASSIFICATION = CrvsConstants.EC_CLIENT_CLASSIFICATION; ClientClassification clientClassification = assetJsonToJava(EC_CLIENT_CLASSIFICATION, ClientClassification.class); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java index 04d51d56c6..bfcfd70024 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/presenter/CoreDeadClientsFragmentPresenter.java @@ -108,17 +108,16 @@ public String getDueFilterCondition() { public String getDueCondition(String check) { String dueCondition = ""; switch (check){ - case "1": - dueCondition = " AND ec_child.received_death_certificate = 'Yes' "; - break; case "2": dueCondition = " AND ec_family_member.received_death_certificate = 'Yes' "; break; case "3": dueCondition = " WHERE ec_out_of_area_death.received_death_certificate = 'Yes' "; break; + case "1": default: dueCondition = " AND ec_child.received_death_certificate = 'Yes' "; + break; } return dueCondition; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java index 4486b09fe6..da4face316 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/DeadClientsProvider.java @@ -11,7 +11,6 @@ import org.smartregister.chw.core.utils.ChildDBConstants; import org.smartregister.chw.task.DeadUpdateLastAsyncTask; import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.commonregistry.CommonRepository; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.Utils; import org.smartregister.view.contract.SmartRegisterClient; @@ -26,14 +25,12 @@ public class DeadClientsProvider extends CoreDeadClientsProvider { private Set visibleColumns; private View.OnClickListener onClickListener; private Context context; - private CommonRepository commonRepository; - public DeadClientsProvider(Context context, CommonRepository commonRepository, Set visibleColumns, View.OnClickListener onClickListener, View.OnClickListener paginationClickListener) { + public DeadClientsProvider(Context context, Set visibleColumns, View.OnClickListener onClickListener, View.OnClickListener paginationClickListener) { super(context, visibleColumns, onClickListener, paginationClickListener); this.visibleColumns = visibleColumns; this.onClickListener = onClickListener; this.context = context; - this.commonRepository = commonRepository; } @Override @@ -112,6 +109,9 @@ protected void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterC fillValue(viewHolder.textViewAddressGender, address + " \u00B7 " + gender); break; } + default: + // Do nothing + break; } } catch (Exception e) { diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java index 07cb639b6f..8b7774715a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/DeadUpdateLastAsyncTask.java @@ -19,7 +19,6 @@ import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.commonregistry.CommonRepository; import org.smartregister.family.util.DBConstants; import org.smartregister.family.util.Utils; import java.text.SimpleDateFormat; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java index 26fc47dba5..c6a7cdbbaf 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/UpdateBirthNotificationLastAsyncTask.java @@ -21,7 +21,6 @@ import org.smartregister.chw.core.utils.ChwDBConstants; import org.smartregister.chw.core.utils.CoreChildUtils; import org.smartregister.chw.core.utils.CoreConstants; -import org.smartregister.chw.util.CrvsConstants; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java index 558942ec19..072c073f1e 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/JsonFormUtilsFlv.java @@ -85,21 +85,21 @@ private static void getPhoto(CommonPersonObjectClient client, JSONObject jsonObj protected static void processPopulatableFields(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { - String key = jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY).toLowerCase(); + String key = jsonObject.getString(JsonFormUtils.KEY).toLowerCase(); switch (key) { case "photo": getPhoto(client, jsonObject); break; case "name": String name = Utils.getValue(client.getColumnmaps(), "name", false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, name); + jsonObject.put(JsonFormUtils.VALUE, name); break; case DBConstants.KEY.DOB: getDob(client, jsonObject); break; default: String otherKey = Utils.getValue(client.getColumnmaps(), key, false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, otherKey); + jsonObject.put(JsonFormUtils.VALUE, otherKey); break; } } diff --git a/opensrp-chw/src/main/assets/json.form/family_details_remove_member.json b/opensrp-chw/src/main/assets/json.form/family_details_remove_member.json index 3d97bc1e1e..e724f9fe46 100644 --- a/opensrp-chw/src/main/assets/json.form/family_details_remove_member.json +++ b/opensrp-chw/src/main/assets/json.form/family_details_remove_member.json @@ -304,7 +304,7 @@ { "key": "has_death_certificate", "openmrs_entity_parent": "", - "openmrs_entity": "concept",received_death_certificate + "openmrs_entity": "concept", "openmrs_entity_id": "160417AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java index 4686342712..b16beb41b0 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/BirthNotificationUpdateActivity.java @@ -156,7 +156,7 @@ private void updateBirthCertificate(AllCommonsRepository allCommonsRepository, S String tableName; assert client_type != null; - if (client_type.toLowerCase().equalsIgnoreCase(BIRTH_CLIENT_TYPE)){ + if (client_type.equalsIgnoreCase(BIRTH_CLIENT_TYPE)){ tableName = Constants.TABLE_NAME.CHILD; }else { tableName = CrvsConstants.TABLE_OUT_OF_AREA_CHILD; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChildRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChildRegisterProvider.java index a8af84713b..34355f663d 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChildRegisterProvider.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChildRegisterProvider.java @@ -10,7 +10,6 @@ import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.holders.RegisterViewHolder; import org.smartregister.chw.core.provider.CoreChildRegisterProvider; -import org.smartregister.chw.core.task.UpdateLastAsyncTask; import org.smartregister.chw.core.utils.ChildDBConstants; import org.smartregister.chw.task.ChwUpdateLastAsyncTask; import org.smartregister.commonregistry.CommonPersonObjectClient; 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 73de915cb7..5f6ee4227c 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 @@ -2,11 +2,8 @@ import android.content.Context; import android.util.Pair; - import com.vijay.jsonwizard.constants.JsonFormConstants; - import net.sqlcipher.database.SQLiteDatabase; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; import org.jetbrains.annotations.NotNull; @@ -15,31 +12,21 @@ import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.chw.application.ChwApplication; -import org.smartregister.chw.core.domain.FamilyMember; import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.core.utils.CoreJsonFormUtils; import org.smartregister.chw.dao.ChwChildDao; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; -import org.smartregister.clientandeventmodel.Obs; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.domain.Photo; -import org.smartregister.domain.tag.FormTag; import org.smartregister.family.FamilyLibrary; import org.smartregister.family.util.Constants; import org.smartregister.family.util.DBConstants; -import org.smartregister.immunization.domain.ServiceRecord; -import org.smartregister.immunization.domain.Vaccine; import org.smartregister.repository.AllSharedPreferences; import org.smartregister.repository.EventClientRepository; -import org.smartregister.sync.helper.ECSyncHelper; import org.smartregister.util.FormUtils; -import org.smartregister.util.ImageUtils; - import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; @@ -47,14 +34,9 @@ import java.util.Locale; import java.util.Map; import java.util.TimeZone; - import timber.log.Timber; - import static com.vijay.jsonwizard.utils.NativeFormLangUtils.getTranslatedString; -/** - * Created by keyman on 13/11/2018. - */ public class JsonFormUtils extends CoreJsonFormUtils { public static final String METADATA = "metadata"; public static final String ENCOUNTER_TYPE = "encounter_type"; @@ -63,8 +45,6 @@ public class JsonFormUtils extends CoreJsonFormUtils { public static final int REQUEST_CODE_GET_JSON_FAMILY_KIT = 22447; public static final int REQUEST_CODE_GET_JSON_HOUSEHOLD = 22445; - public static final String CURRENT_OPENSRP_ID = "current_opensrp_id"; - public static final String READ_ONLY = "read_only"; private static Flavor flavor = new JsonFormUtilsFlv(); public static Event tagSyncMetadata(AllSharedPreferences allSharedPreferences, Event event) { @@ -109,10 +89,9 @@ public static Pair processChildRegistrationForm(AllSharedPreferen Event baseEvent = org.smartregister.util.JsonFormUtils.createEvent(fields, getJSONObject(jsonForm, METADATA), formTag(allSharedPreferences), entityId, getString(jsonForm, ENCOUNTER_TYPE), CoreConstants.TABLE_NAME.CHILD); tagSyncMetadata(allSharedPreferences, baseEvent); - if (baseClient != null || baseEvent != null) { - String imageLocation = org.smartregister.family.util.JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); - org.smartregister.family.util.JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); - } + String imageLocation = org.smartregister.family.util.JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseClient != null; + org.smartregister.family.util.JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); JSONObject lookUpJSONObject = getJSONObject(getJSONObject(jsonForm, METADATA), "look_up"); String lookUpEntityId = ""; @@ -164,10 +143,9 @@ public static Pair processOutOfAreaChildRegistrationForm(AllShare Event baseEvent = org.smartregister.util.JsonFormUtils.createEvent(fields, getJSONObject(jsonForm, METADATA), formTag(allSharedPreferences), entityId, getString(jsonForm, ENCOUNTER_TYPE), "ec_out_of_area_child"); tagSyncMetadata(allSharedPreferences, baseEvent); - if (baseClient != null || baseEvent != null) { - String imageLocation = org.smartregister.family.util.JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); - org.smartregister.family.util.JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); - } + String imageLocation = org.smartregister.family.util.JsonFormUtils.getFieldValue(jsonString, Constants.KEY.PHOTO); + assert baseClient != null; + org.smartregister.family.util.JsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); return Pair.create(baseClient, baseEvent); } catch (Exception e) { @@ -225,12 +203,13 @@ private static void processChildEnrollMent(JSONObject jsonForm, JSONArray fields JSONObject surnam_familyName_Same_option = getJSONObject(surnam_familyName_Same_options, 0); String surnam_familyName_SameString = surnam_familyName_Same_option != null ? surnam_familyName_Same_option.getString(VALUE) : null; - if (StringUtils.isNotBlank(surnam_familyName_SameString) && Boolean.valueOf(surnam_familyName_SameString)) { + if (StringUtils.isNotBlank(surnam_familyName_SameString) && Boolean.parseBoolean(surnam_familyName_SameString)) { String familyId = jsonForm.getJSONObject("metadata").getJSONObject("look_up").getString("value"); CommonPersonObject familyObject = ChwApplication.getInstance().getContext().commonrepository("ec_family").findByCaseID(familyId); if (ChwApplication.getApplicationFlavor().hasSurname()) { String lastname = familyObject.getColumnmaps().get(DBConstants.KEY.LAST_NAME); JSONObject surname_object = getFieldJSONObject(fields, "surname"); + assert surname_object != null; surname_object.put(VALUE, lastname); } } @@ -240,338 +219,6 @@ private static void processChildEnrollMent(JSONObject jsonForm, JSONArray fields } - private static String processValueWithChoiceIds(JSONObject jsonObject, String value) { - try { - //spinner - if (jsonObject.has("openmrs_choice_ids")) { - JSONObject choiceObject = jsonObject.getJSONObject("openmrs_choice_ids"); - - for (int i = 0; i < choiceObject.names().length(); i++) { - if (value.equalsIgnoreCase(choiceObject.getString(choiceObject.names().getString(i)))) { - value = choiceObject.names().getString(i); - } - } - - - }//checkbox - else if (jsonObject.has(Constants.JSON_FORM_KEY.OPTIONS)) { - JSONArray option_array = jsonObject.getJSONArray(Constants.JSON_FORM_KEY.OPTIONS); - for (int i = 0; i < option_array.length(); i++) { - JSONObject option = option_array.getJSONObject(i); - if (value.contains(option.getString("key"))) { - option.put("value", "true"); - } - } - } - - } catch (Exception e) { - Timber.e(e); - } - return value; - } - - protected static void processPopulatableFields(CommonPersonObjectClient client, JSONObject jsonObject) throws JSONException { - - switch (jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY).toLowerCase()) { - case Constants.JSON_FORM_KEY.DOB_UNKNOWN: - jsonObject.put(org.smartregister.family.util.JsonFormUtils.READ_ONLY, false); - JSONObject optionsObject = jsonObject.getJSONArray(Constants.JSON_FORM_KEY.OPTIONS).getJSONObject(0); - optionsObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), Constants.JSON_FORM_KEY.DOB_UNKNOWN, false)); - - break; - case DBConstants.KEY.DOB: - - String dobString = Utils.getValue(client.getColumnmaps(), DBConstants.KEY.DOB, false); - if (StringUtils.isNotBlank(dobString)) { - Date dob = Utils.dobStringToDate(dobString); - if (dob != null) { - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, dd_MM_yyyy.format(dob)); - } - } - - break; - - case Constants.KEY.PHOTO: - - Photo photo = ImageUtils.profilePhotoByClientID(client.getCaseId(), Utils.getProfileImageResourceIDentifier()); - if (StringUtils.isNotBlank(photo.getFilePath())) { - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, photo.getFilePath()); - } - - break; - - case DBConstants.KEY.UNIQUE_ID: - - String uniqueId = Utils.getValue(client.getColumnmaps(), DBConstants.KEY.UNIQUE_ID, false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, uniqueId.replace("-", "")); - - break; - - case "fam_name": - - String fam_name = Utils.getValue(client.getColumnmaps(), DBConstants.KEY.FIRST_NAME, false); - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, fam_name); - - break; - - case DBConstants.KEY.VILLAGE_TOWN: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.VILLAGE_TOWN, false)); - - break; - - case DBConstants.KEY.QUATER_CLAN: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.QUATER_CLAN, false)); - - break; - - case DBConstants.KEY.STREET: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.STREET, false)); - - break; - - case DBConstants.KEY.LANDMARK: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.LANDMARK, false)); - - break; - - case DBConstants.KEY.FAMILY_SOURCE_INCOME: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.FAMILY_SOURCE_INCOME, false)); - - break; - - case ChwDBConstants.NEAREST_HEALTH_FACILITY: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), ChwDBConstants.NEAREST_HEALTH_FACILITY, false)); - - break; - - case DBConstants.KEY.GPS: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.GPS, false)); - - break; - - case ChwDBConstants.EVENT_DATE: - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), ChwDBConstants.EVENT_DATE, false)); - - break; - - default: - - Timber.e("ERROR:: Unprocessed Form Object Key " + jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY)); - - break; - - } - - if (jsonObject.getString(org.smartregister.family.util.JsonFormUtils.KEY).equalsIgnoreCase(DBConstants.KEY.DOB)) { - - jsonObject.put(org.smartregister.family.util.JsonFormUtils.READ_ONLY, false); - JSONObject optionsObject = jsonObject.getJSONArray(Constants.JSON_FORM_KEY.OPTIONS).getJSONObject(0); - optionsObject.put(org.smartregister.family.util.JsonFormUtils.VALUE, Utils.getValue(client.getColumnmaps(), DBConstants.KEY.DOB, false)); - - } - } - - public static Vaccine tagSyncMetadata(AllSharedPreferences allSharedPreferences, Vaccine vaccine) { - String providerId = allSharedPreferences.fetchRegisteredANM(); - vaccine.setAnmId(providerId); - vaccine.setLocationId(locationId(allSharedPreferences)); - vaccine.setChildLocationId(allSharedPreferences.fetchCurrentLocality()); - vaccine.setTeam(allSharedPreferences.fetchDefaultTeam(providerId)); - vaccine.setTeamId(allSharedPreferences.fetchDefaultTeamId(providerId)); - return vaccine; - } - - public static ServiceRecord tagSyncMetadata(AllSharedPreferences allSharedPreferences, ServiceRecord serviceRecord) { - String providerId = allSharedPreferences.fetchRegisteredANM(); - serviceRecord.setAnmId(providerId); - serviceRecord.setLocationId(locationId(allSharedPreferences)); - serviceRecord.setChildLocationId(allSharedPreferences.fetchCurrentLocality()); - serviceRecord.setTeam(allSharedPreferences.fetchDefaultTeam(providerId)); - serviceRecord.setTeamId(allSharedPreferences.fetchDefaultTeamId(providerId)); - return serviceRecord; - } - - /** - * @param familyID - * @param allSharedPreferences - * @param jsonObject - * @param providerId - * @return Returns a triple object DateOfDeath as String, BaseEntityID , List of Events that should be processed - */ - public static Triple, String, List> processRemoveMemberEvent(String familyID, AllSharedPreferences allSharedPreferences, JSONObject jsonObject, String providerId) { - - try { - - List events = new ArrayList<>(); - - Triple registrationFormParams = validateParameters(jsonObject.toString()); - - if (!registrationFormParams.getLeft()) { - return null; - } - - Date dod = null; - - - JSONObject metadata = getJSONObject(registrationFormParams.getMiddle(), METADATA); - String memberID = getString(registrationFormParams.getMiddle(), ENTITY_ID); - - JSONArray fields = new JSONArray(); - - int x = 0; - while (x < registrationFormParams.getRight().length()) { - //JSONObject obj = registrationFormParams.getRight().getJSONObject(x); - String myKey = registrationFormParams.getRight().getJSONObject(x).getString(KEY); - - if (myKey.equalsIgnoreCase(org.smartregister.chw.util.Constants.FORM_CONSTANTS.REMOVE_MEMBER_FORM.DATE_MOVED) || - myKey.equalsIgnoreCase(org.smartregister.chw.util.Constants.FORM_CONSTANTS.REMOVE_MEMBER_FORM.REASON) - ) { - fields.put(registrationFormParams.getRight().get(x)); - } - if (myKey.equalsIgnoreCase(org.smartregister.chw.util.Constants.FORM_CONSTANTS.REMOVE_MEMBER_FORM.DATE_DIED)) { - fields.put(registrationFormParams.getRight().get(x)); - try { - dod = dd_MM_yyyy.parse(registrationFormParams.getRight().getJSONObject(x).getString(VALUE)); - } catch (Exception e) { - Timber.d(e.toString()); - } - } - x++; - } - - String encounterType = getString(jsonObject, ENCOUNTER_TYPE); - - String eventType; - String tableName; - - if (encounterType.equalsIgnoreCase(org.smartregister.chw.util.Constants.EventType.REMOVE_CHILD)) { - eventType = org.smartregister.chw.util.Constants.EventType.REMOVE_CHILD; - tableName = org.smartregister.chw.util.Constants.TABLE_NAME.CHILD; - } else if (encounterType.equalsIgnoreCase(org.smartregister.chw.util.Constants.EventType.REMOVE_FAMILY)) { - eventType = org.smartregister.chw.util.Constants.EventType.REMOVE_FAMILY; - tableName = org.smartregister.chw.util.Constants.TABLE_NAME.FAMILY; - } else { - eventType = org.smartregister.chw.util.Constants.EventType.REMOVE_MEMBER; - tableName = org.smartregister.chw.util.Constants.TABLE_NAME.FAMILY_MEMBER; - } - - Event eventMember = JsonFormUtils.createEvent(fields, metadata, formTag(allSharedPreferences), memberID, - eventType, - tableName - ); - JsonFormUtils.tagSyncMetadata(Utils.context().allSharedPreferences(), eventMember); - events.add(eventMember); - - - return Triple.of(Pair.create(dod, encounterType), memberID, events); - } catch (Exception e) { - Timber.e(e.toString()); - return null; - } - } - - public static FamilyMember getFamilyMemberFromRegistrationForm(String jsonString, String familyBaseEntityId, String entityID) throws JSONException { - FamilyMember member = new FamilyMember(); - - Triple registrationFormParams = validateParameters(jsonString); - if (!registrationFormParams.getLeft()) { - return null; - } - - JSONArray fields = registrationFormParams.getRight(); - - member.setFamilyID(familyBaseEntityId); - member.setMemberID(entityID); - member.setPhone(getJsonFieldValue(fields, org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.PHONE_NUMBER)); - member.setOtherPhone(getJsonFieldValue(fields, org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.OTHER_PHONE_NUMBER)); - member.setEduLevel(getJsonFieldValue(fields, org.smartregister.chw.util.Constants.JsonAssets.FAMILY_MEMBER.HIGHEST_EDUCATION_LEVEL)); - member.setPrimaryCareGiver( - getJsonFieldValue(fields, org.smartregister.chw.util.Constants.JsonAssets.PRIMARY_CARE_GIVER).equalsIgnoreCase("Yes") || - getJsonFieldValue(fields, org.smartregister.chw.util.Constants.JsonAssets.IS_PRIMARY_CARE_GIVER).equalsIgnoreCase("Yes") - ); - member.setFamilyHead(false); - - return member; - } - - public static Pair, List> processFamilyUpdateRelations(Context context, FamilyMember familyMember, String lastLocationId) throws Exception { - List clients = new ArrayList<>(); - List events = new ArrayList<>(); - - - ECSyncHelper syncHelper = ChwApplication.getInstance().getEcSyncHelper(); - JSONObject clientObject = syncHelper.getClient(familyMember.getFamilyID()); - Client familyClient = syncHelper.convert(clientObject, Client.class); - if (familyClient == null) { - String birthDate = clientObject.getString("birthdate"); - if (StringUtils.isNotBlank(birthDate)) { - birthDate = birthDate.replace("-00:44:30", getTimeZone()); - clientObject.put("birthdate", birthDate); - } - - familyClient = syncHelper.convert(clientObject, Client.class); - } - - Map> relationships = familyClient.getRelationships(); - - if (familyMember.getPrimaryCareGiver()) { - relationships.put(org.smartregister.chw.util.Constants.RELATIONSHIP.PRIMARY_CAREGIVER, toStringList(familyMember.getMemberID())); - familyClient.setRelationships(relationships); - } - - if (familyMember.getFamilyHead()) { - relationships.put(org.smartregister.chw.util.Constants.RELATIONSHIP.FAMILY_HEAD, toStringList(familyMember.getMemberID())); - familyClient.setRelationships(relationships); - } - - clients.add(familyClient); - - - JSONObject metadata = FormUtils.getInstance(context) - .getFormJson(Utils.metadata().familyRegister.formName) - .getJSONObject(org.smartregister.family.util.JsonFormUtils.METADATA); - - metadata.put(org.smartregister.family.util.JsonFormUtils.ENCOUNTER_LOCATION, lastLocationId); - - FormTag formTag = new FormTag(); - formTag.providerId = Utils.context().allSharedPreferences().fetchRegisteredANM(); - formTag.appVersion = FamilyLibrary.getInstance().getApplicationVersion(); - formTag.databaseVersion = FamilyLibrary.getInstance().getDatabaseVersion(); - - Event eventFamily = JsonFormUtils.createEvent(new JSONArray(), metadata, formTag, familyMember.getFamilyID(), - org.smartregister.chw.util.Constants.EventType.UPDATE_FAMILY_RELATIONS, - Utils.metadata().familyRegister.tableName); - JsonFormUtils.tagSyncMetadata(Utils.context().allSharedPreferences(), eventFamily); - - - Event eventMember = JsonFormUtils.createEvent(new JSONArray(), metadata, formTag, familyMember.getMemberID(), org.smartregister.chw.util.Constants.EventType.UPDATE_FAMILY_MEMBER_RELATIONS, - Utils.metadata().familyMemberRegister.tableName); - JsonFormUtils.tagSyncMetadata(Utils.context().allSharedPreferences(), eventMember); - - eventMember.addObs(new Obs("concept", "text", org.smartregister.chw.util.Constants.FORM_CONSTANTS.CHANGE_CARE_GIVER.PHONE_NUMBER.CODE, "", - toList(familyMember.getPhone()), new ArrayList<>(), null, DBConstants.KEY.PHONE_NUMBER)); - - eventMember.addObs(new Obs("concept", "text", org.smartregister.chw.util.Constants.FORM_CONSTANTS.CHANGE_CARE_GIVER.OTHER_PHONE_NUMBER.CODE, org.smartregister.chw.util.Constants.FORM_CONSTANTS.CHANGE_CARE_GIVER.OTHER_PHONE_NUMBER.PARENT_CODE, - toList(familyMember.getOtherPhone()), new ArrayList<>(), null, DBConstants.KEY.OTHER_PHONE_NUMBER)); - - eventMember.addObs(new Obs("concept", "text", org.smartregister.chw.util.Constants.FORM_CONSTANTS.CHANGE_CARE_GIVER.HIGHEST_EDU_LEVEL.CODE, "", - toList(getEducationLevels(context).get(familyMember.getEduLevel())), toList(familyMember.getEduLevel()), null, DBConstants.KEY.HIGHEST_EDU_LEVEL)); - - - events.add(eventFamily); - events.add(eventMember); - - return Pair.create(clients, events); - } - public static String getTimeZone() { Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.getDefault()); From e211c3fb182f48e16915bbae9a9ecd2964136a29 Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Tue, 3 Aug 2021 11:55:07 +0500 Subject: [PATCH 07/10] - Removed most of the code complexity (Updated) --- .../smartregister/chw/constants/CrvsDbConstants.java | 9 --------- .../chw/fragment/CoreDeadClientsFragment.java | 7 +++---- .../CoreOutOfAreaChildRegisterInteractor.java | 1 - .../CoreOutOfAreaDeathRegisterInteractor.java | 1 - .../chw/provider/OutOfAreaProvider.java | 12 +++--------- .../org/smartregister/chw/util/CrvsConstants.java | 1 + .../smartregister/chw/util/FailSafeRecalledID.java | 2 -- 7 files changed, 7 insertions(+), 26 deletions(-) delete mode 100644 opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java deleted file mode 100644 index 5c5a4f8e8e..0000000000 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/constants/CrvsDbConstants.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.smartregister.chw.constants; - -public class CrvsDbConstants { - - public static final class KEY { - public static final String MOTHER_NAME = "mother_name"; - } - -} diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java index fde09025bf..0deaa3b80d 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/CoreDeadClientsFragment.java @@ -333,18 +333,17 @@ private String customDeathQuery(int limit, int offset, String filter) { private String getFilters(String query, String filter) { String filterQuery = ""; switch (query) { - case "first": - case "third": - filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; - break; case "second": filterQuery = "and ( ec_child.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_child.middle_name like '%" + filter + "%' or ec_child.unique_id like '%" + filter + "%')"; break; case "fourth": filterQuery = "WHERE ( ec_out_of_area_death.name like '%" + filter + "%' or ec_out_of_area_death.official_name like '%" + filter + "%' or ec_out_of_area_death.unique_id like '%" + filter + "%')"; break; + case "first": + case "third": default: filterQuery = "and ( ec_family_member.first_name like '%" + filter + "%' or ec_family_member.last_name like '%" + filter + "%' or ec_family_member.middle_name like '%" + filter + "%' or ec_family_member.unique_id like '%" + filter + "%')"; + break; } return filterQuery; } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java index 71bb8fa6f5..139bf3a184 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaChildRegisterInteractor.java @@ -203,5 +203,4 @@ public UniqueIdRepository getUniqueIdRepository() { return CoreChwApplication.getInstance().getUniqueIdRepository(); } - public enum type {SAVED, UPDATED} } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java index f3989edbed..682db6af8a 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/interactor/CoreOutOfAreaDeathRegisterInteractor.java @@ -204,5 +204,4 @@ public UniqueIdRepository getUniqueIdRepository() { return CoreChwApplication.getInstance().getUniqueIdRepository(); } - public enum type {SAVED, UPDATED} } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java index 7b84346be4..fcc33be4be 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/provider/OutOfAreaProvider.java @@ -10,10 +10,10 @@ import org.apache.commons.lang3.text.WordUtils; import org.smartregister.chw.R; import org.smartregister.chw.application.ChwApplication; -import org.smartregister.chw.constants.CrvsDbConstants; import org.smartregister.chw.core.holders.FooterViewHolder; import org.smartregister.chw.core.holders.RegisterViewHolder; import org.smartregister.chw.task.OutOfAreaChildAsyncTask; +import org.smartregister.chw.util.CrvsConstants; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; import org.smartregister.cursoradapter.RecyclerViewProvider; @@ -122,7 +122,7 @@ public boolean isFooterViewHolder(RecyclerView.ViewHolder viewHolder) { protected void populatePatientColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { try{ - String motherName = Utils.getValue(pc.getColumnmaps(), CrvsDbConstants.KEY.MOTHER_NAME, true); + String motherName = Utils.getValue(pc.getColumnmaps(), CrvsConstants.MOTHER_NAME, true); String parentName = context.getResources().getString(R.string.care_giver_initials) + ": " + motherName; fillValue(viewHolder.textViewParentName, WordUtils.capitalize(parentName)); String firstName = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.FIRST_NAME, true); @@ -131,14 +131,8 @@ protected void populatePatientColumn(CommonPersonObjectClient pc, RegisterViewHo String dobString = getDuration(Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.DOB, false)); String age = WordUtils.capitalize(Utils.getTranslatedDate(dobString, context)); fillValue(viewHolder.textViewChildName, WordUtils.capitalize(childName)+", "+age); - String gender = ""; String gender_key = Utils.getValue(pc.getColumnmaps(), DBConstants.KEY.GENDER, true); - if (gender_key.equalsIgnoreCase("Male")) { - gender = context.getString(org.smartregister.chw.core.R.string.male); - } else if (gender_key.equalsIgnoreCase("Female")) { - gender = context.getString(org.smartregister.chw.core.R.string.female); - } - fillValue(viewHolder.textViewAddressGender, "Gender: "+gender); + fillValue(viewHolder.textViewAddressGender, "Gender: "+gender_key); }catch (Exception e){ e.printStackTrace(); } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java index 146a5f96df..a3fb6549e6 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java @@ -1,6 +1,7 @@ package org.smartregister.chw.util; public class CrvsConstants { + public static String MOTHER_NAME = "mother_name"; public static String STILL = "still"; public static String CHILD = "child"; public static String STEP1 = "step1"; diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/util/FailSafeRecalledID.java b/opensrp-chw/src/main/java/org/smartregister/chw/util/FailSafeRecalledID.java index b212892385..04e19adcb8 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/util/FailSafeRecalledID.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/util/FailSafeRecalledID.java @@ -13,8 +13,6 @@ public class FailSafeRecalledID implements RecalledIdentifier { - private static final String FAIL_SAFE_ID = "P2P_FAIL_SAFE_ID"; - @NonNull @Override public String getUniqueID(Context context) { From d4b2bc5f440f963971480136903c24e4c38fda5c Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Tue, 3 Aug 2021 12:35:43 +0500 Subject: [PATCH 08/10] - Removed required from father fields in OutOfAreaBirth - Mother dob minimum 10Y - Changed icon label from OutOfArea Birth/Death --- .../chw/task/OutOfAreaChildAsyncTask.java | 4 +-- .../chw/task/OutOfAreaDeathAsyncTask.java | 4 +-- .../smartregister/chw/util/CrvsConstants.java | 1 - opensrp-chw/src/crvs/res/values/strings.xml | 1 + .../out_of_area_child_enrollment.json | 32 +++---------------- 5 files changed, 9 insertions(+), 33 deletions(-) diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java index 21f9f855a8..28cfb01f7b 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaChildAsyncTask.java @@ -117,7 +117,7 @@ protected void onPostExecute(Void param) { setUpdateStatusButtonColor(context, viewHolder.dueButton); } } catch (Exception e) { - viewHolder.dueButton.setText(context.getResources().getString(R.string.update_status)); + viewHolder.dueButton.setText(context.getResources().getString(R.string.update_details)); e.printStackTrace(); } viewHolder.dueButton.setOnClickListener(view -> { @@ -158,7 +158,7 @@ public void setReceivedButtonColor(Context context, Button dueButton) { public void setUpdateStatusButtonColor(Context context, Button dueButton) { dueButton.setTextColor(context.getResources().getColor(R.color.pie_chart_yellow)); - dueButton.setText(context.getString(R.string.update_status)); + dueButton.setText(context.getString(R.string.update_details)); dueButton.setBackgroundResource(R.drawable.update_cert_status_btn); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java index 09af61096a..7bd314ac82 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/task/OutOfAreaDeathAsyncTask.java @@ -117,7 +117,7 @@ protected void onPostExecute(Void param) { setUpdateStatusButtonColor(context, viewHolder.dueButton); } } catch (Exception e) { - viewHolder.dueButton.setText(context.getResources().getString(R.string.update_status)); + viewHolder.dueButton.setText(context.getResources().getString(R.string.update_details)); e.printStackTrace(); } viewHolder.dueButton.setOnClickListener(view -> { @@ -158,7 +158,7 @@ public void setReceivedButtonColor(Context context, Button dueButton) { public void setUpdateStatusButtonColor(Context context, Button dueButton) { dueButton.setTextColor(context.getResources().getColor(R.color.pie_chart_yellow)); - dueButton.setText(context.getString(R.string.update_status)); + dueButton.setText(context.getString(R.string.update_details)); dueButton.setBackgroundResource(R.drawable.update_cert_status_btn); } } diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java index a3fb6549e6..544638b615 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/util/CrvsConstants.java @@ -46,7 +46,6 @@ public class CrvsConstants { public static String NATIONALITY = "nationality"; public static String MIDDLE_NAME = "middle_name"; public static String MARITAL_STATUS = "marital_status"; - public static String MOTHER_NAME = "mother_name"; public static String FATHER_NAME = "father_name"; public static String NAME = "name"; public static String NATIONAL_ID = "national_id"; diff --git a/opensrp-chw/src/crvs/res/values/strings.xml b/opensrp-chw/src/crvs/res/values/strings.xml index 59b64176fc..2b6db67cf0 100644 --- a/opensrp-chw/src/crvs/res/values/strings.xml +++ b/opensrp-chw/src/crvs/res/values/strings.xml @@ -12,5 +12,6 @@ Certificate not received Status updated Update Status + Update Details Certified \ No newline at end of file diff --git a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json index cf33d16e37..630e79b367 100644 --- a/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json +++ b/opensrp-chw/src/main/assets/json.form/out_of_area_child_enrollment.json @@ -307,7 +307,7 @@ "label": "Age" }, "min_date": "today-120y", - "max_date": "today", + "max_date": "today-10y", "v_required": { "value": "true", "err": "Please enter the date of birth" @@ -453,11 +453,7 @@ "openmrs_entity_id": "fatherName", "type": "edit_text", "hint": "Father's name", - "edit_type": "name", - "v_required": { - "value": "true", - "err": "Please enter father name" - } + "edit_type": "name" }, { "key": "father_id", @@ -466,11 +462,7 @@ "openmrs_entity_id": "fatherId", "type": "edit_text", "hint": "Father's national ID number", - "edit_type": "name", - "v_required": { - "value": "true", - "err": "Please enter father id" - } + "edit_type": "name" }, { "key": "father_dob_entered", @@ -485,10 +477,6 @@ }, "min_date": "today-120y", "max_date": "today", - "v_required": { - "value": "true", - "err": "Please enter the date of birth" - }, "relevance": { "rules-engine": { "ex-rules": { @@ -531,10 +519,6 @@ "value": "11", "err": "Age must be equal or less than 5" }, - "v_required": { - "value": true, - "err": "Please enter the age" - }, "relevance": { "rules-engine": { "ex-rules": { @@ -551,10 +535,6 @@ "openmrs_data_type": "select one", "type": "spinner", "hint": "Father's marital status", - "v_required": { - "value": "true", - "err": "Please select one option" - }, "values": [ "Married", "Co-habiting", @@ -606,11 +586,7 @@ "type": "edit_text", "hint": "Father's place of birth", "look_up": "true", - "edit_type": "name", - "v_required": { - "value": "true", - "err": "Please enter the birth place" - } + "edit_type": "name" } ] } From d067a932d36d2c5def0235c15629238a2ccd1d4c Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Wed, 4 Aug 2021 17:59:10 +0500 Subject: [PATCH 09/10] - Test cases for OutOfAreaDeathActivity, Fragment and Presenter --- .../chw/activity/OutOfAreaDeathActivity.java | 2 + .../chw/fragment/OutOfAreaDeathFragment.java | 10 +- .../activity/OutOfAreaDeathActivityTest.java | 164 ++++++++++++++++++ .../fragment/OutOfAreaDeathFragmentTest.java | 120 +++++++++++++ .../OutOfAreaDeathFragmentPresenterTest.java | 55 ++++++ 5 files changed, 346 insertions(+), 5 deletions(-) create mode 100644 opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java create mode 100644 opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java create mode 100644 opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java index 3014d272d1..907d145a67 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/activity/OutOfAreaDeathActivity.java @@ -40,6 +40,8 @@ protected void onCreate(Bundle savedInstanceState) { presenter().registerFloatingActionButton(view, View.VISIBLE); } + + @Override protected void registerBottomNavigation() { bottomNavigationHelper = new BottomNavigationHelper(); diff --git a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java index e68aad58ac..e56041ee47 100644 --- a/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java +++ b/opensrp-chw/src/crvs/java/org/smartregister/chw/fragment/OutOfAreaDeathFragment.java @@ -272,7 +272,7 @@ public void countExecute() { } } - private String getCountSelect() { + public String getCountSelect() { String query = countSelect; try { @@ -293,7 +293,7 @@ private String getCountSelect() { return query; } - private String filterandSortQuery() { + public String filterandSortQuery() { String query = ""; try { if (StringUtils.isNoneBlank(filters)) { @@ -312,7 +312,7 @@ private String filterandSortQuery() { return query; } - private String customDeathQuery(int limit, int offset) { + public String customDeathQuery(int limit, int offset) { return "Select ec_out_of_area_death.id as _id, ec_out_of_area_death.relationalid, ec_out_of_area_death.last_interacted_with, " + "ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name, ec_out_of_area_death.national_id, " + "ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, ec_out_of_area_death.age_calculated, " + @@ -321,7 +321,7 @@ private String customDeathQuery(int limit, int offset) { "from ec_out_of_area_death ORDER BY ec_out_of_area_death.last_interacted_with DESC LIMIT " + offset + "," + limit; } - private String customDeathQuery(int limit, int offset, String filter) { + public String customDeathQuery(int limit, int offset, String filter) { return "Select ec_out_of_area_death.id as _id, ec_out_of_area_death.relationalid, ec_out_of_area_death.last_interacted_with, " + "ec_out_of_area_death.base_entity_id , ec_out_of_area_death.name, ec_out_of_area_death.national_id, " + "ec_out_of_area_death.dob, ec_out_of_area_death.dob_unknown, ec_out_of_area_death.age_calculated, " + @@ -330,7 +330,7 @@ private String customDeathQuery(int limit, int offset, String filter) { "from ec_out_of_area_death "+getFilters(filter)+" ORDER BY ec_out_of_area_death.last_interacted_with DESC LIMIT " + offset + "," + limit; } - private String getFilters(String filter) { + public String getFilters(String filter) { return "where ( ec_out_of_area_death.name like '%" + filter + "%' or ec_out_of_area_death.unique_id like '%" + filter + "%')"; } } \ No newline at end of file diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java new file mode 100644 index 0000000000..3255a82f56 --- /dev/null +++ b/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java @@ -0,0 +1,164 @@ +package org.smartregister.chw.activity; + +import android.app.Activity; +import android.app.Application; +import android.content.Intent; + +import org.json.JSONException; +import org.json.JSONObject; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.robolectric.Robolectric; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.android.controller.ActivityController; +import org.robolectric.util.ReflectionHelpers; +import org.smartregister.Context; +import org.smartregister.CoreLibrary; +import org.smartregister.chw.BaseActivityTest; +import org.smartregister.chw.BaseUnitTest; +import org.smartregister.chw.anc.contract.BaseAncHomeVisitContract; +import org.smartregister.chw.contract.CoreOutOfAreaDeathRegisterContract; +import org.smartregister.chw.core.adapter.NavigationAdapter; +import org.smartregister.chw.core.custom_views.NavigationMenu; +import org.smartregister.chw.core.utils.CoreConstants; +import org.smartregister.chw.presenter.CoreOutOfAreaDeathRegisterPresenter; +import org.smartregister.chw.presenter.FamilyProfilePresenter; +import org.smartregister.chw.util.CrvsConstants; +import org.smartregister.family.presenter.BaseFamilyRegisterPresenter; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +import static org.junit.Assert.*; + +public class OutOfAreaDeathActivityTest extends BaseUnitTest { + + @Rule + public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock + private CoreOutOfAreaDeathRegisterPresenter presenter; + + private OutOfAreaDeathActivity activity; + private ActivityController controller; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + Context context = Context.getInstance(); + CoreLibrary.init(context); + + //Auto login by default + context.session().start(context.session().lengthInMilliseconds()); + + MockitoAnnotations.initMocks(this); + controller = Robolectric.buildActivity(OutOfAreaDeathActivity.class); + activity = controller.get(); + activity = Mockito.spy(activity); + // mute this presenter + Mockito.doNothing().when(activity).initializePresenter(); + ReflectionHelpers.setField(activity, "presenter", presenter); + } + + @Test + public void testOnResumption() { + NavigationMenu menu = Mockito.mock(NavigationMenu.class); + NavigationAdapter adapter = Mockito.mock(NavigationAdapter.class); + + Mockito.doReturn(adapter).when(menu).getNavigationAdapter(); + ReflectionHelpers.setStaticField(NavigationMenu.class, "instance", menu); + + ReflectionHelpers.setField(activity, "presenter", presenter); + activity.onResumption(); + + Mockito.verify(adapter).setSelectedView(Mockito.anyString()); + } + + @Test + public void testGetPresenter(){ + Assert.assertEquals(presenter, activity.presenter()); + } + + @Test + public void testActivityLoaded() { + Assert.assertNotNull(activity); + } + + @Test + public void testStartFormActivity() { + JSONObject json = new JSONObject(); + activity.startFormActivity(json); + Mockito.verify(activity).startActivityForResult(Mockito.any(Intent.class), Mockito.anyInt()); + } + + @Test + public void testOnActivityResultVerifyJsonReceived() throws Exception { + OutOfAreaDeathActivity spyActivity = Mockito.spy(activity); + JSONObject form = getFormJson(RuntimeEnvironment.application, CrvsConstants.OUT_OF_AREA_DEATH_FORM); + + CoreOutOfAreaDeathRegisterPresenter presenter = Mockito.mock(CoreOutOfAreaDeathRegisterPresenter.class); + ReflectionHelpers.setField(spyActivity, "presenter", presenter); + + int resultCode = Activity.RESULT_OK; + int requestCode = org.smartregister.family.util.JsonFormUtils.REQUEST_CODE_GET_JSON; + Intent data = new Intent(); + data.putExtra(org.smartregister.family.util.Constants.JSON_FORM_EXTRA.JSON, form.toString()); + spyActivity.onActivityResultExtended(requestCode, resultCode, data); + } + + @Test + public void testPresenterIsSetUp() { + CoreOutOfAreaDeathRegisterPresenter presenter = ReflectionHelpers.getField(activity, "presenter"); + Assert.assertTrue(presenter instanceof CoreOutOfAreaDeathRegisterPresenter); + } + + public JSONObject getFormJson(Application mContext, String formIdentity) { + if (mContext != null) { + try { + InputStream inputStream = mContext.getApplicationContext().getAssets() + .open("json" + ".form/" + formIdentity + ".json"); + BufferedReader reader = new BufferedReader( + new InputStreamReader(inputStream, StandardCharsets.UTF_8)); + String jsonString; + StringBuilder stringBuilder = new StringBuilder(); + + while ((jsonString = reader.readLine()) != null) { + stringBuilder.append(jsonString); + } + inputStream.close(); + + return new JSONObject(stringBuilder.toString()); + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + } + + return null; + } + + @After + public void tearDown() throws Exception { + try { + activity.finish(); + controller.pause().stop().destroy(); //destroy controller if we can + } catch (Exception e) { + e.printStackTrace(); + } + + //logout + Context.getInstance().session().expire(); + System.gc(); + } + +} \ No newline at end of file diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java new file mode 100644 index 0000000000..404512a0cb --- /dev/null +++ b/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java @@ -0,0 +1,120 @@ +package org.smartregister.chw.fragment; + +import android.view.View; +import android.widget.ImageView; +import android.widget.ProgressBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.FragmentActivity; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.robolectric.Robolectric; +import org.robolectric.util.ReflectionHelpers; +import org.smartregister.Context; +import org.smartregister.CoreLibrary; +import org.smartregister.chw.BaseUnitTest; +import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; +import org.smartregister.chw.presenter.OutOfAreaDeathFragmentPresenter; +import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.receiver.SyncStatusBroadcastReceiver; +import java.util.ArrayList; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; +public class OutOfAreaDeathFragmentTest extends BaseUnitTest { + + @Mock + private Context context; + + @Mock + private ProgressBar syncProgressBar; + + @Mock + private CommonRepository commonRepository; + + @Mock + private ImageView syncButton; + + @Mock + private OutOfAreaDeathFragmentPresenter presenter; + + private OutOfAreaDeathFragment fragment; + + private FragmentActivity activity; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + fragment = Mockito.mock(OutOfAreaDeathFragment.class, Mockito.CALLS_REAL_METHODS); + CoreLibrary.init(context); + when(context.commonrepository(anyString())).thenReturn(commonRepository); + activity = Robolectric.buildActivity(AppCompatActivity.class).create().resume().get(); + Context.bindtypes = new ArrayList<>(); + SyncStatusBroadcastReceiver.init(activity); + } + + @Test + public void presenterInitializesCorrectly() { + fragment.initializePresenter(); + Assert.assertNotNull(presenter); + } + + @Test + public void refreshSyncProgressSpinnerTogglesSyncVisibility() { + ReflectionHelpers.setField(fragment, "syncButton", syncButton); + ReflectionHelpers.setField(fragment, "syncProgressBar", syncProgressBar); + fragment.refreshSyncProgressSpinner(); + Mockito.verify(syncProgressBar, Mockito.times(1)).setVisibility(android.view.View.GONE); + Mockito.verify(syncButton, Mockito.times(1)).setVisibility(android.view.View.GONE); + } + + @Test + public void getCountSelect() { + fragment.dueFilterActive = true; + fragment.getCountSelect(); + Mockito.verify(fragment, Mockito.times(1)).getCountSelect(); + } + + @Test + public void getFilterAndSortQuery() { + fragment.dueFilterActive = true; + fragment.filterandSortQuery(); + Mockito.verify(fragment, Mockito.times(1)).filterandSortQuery(); + } + + @Test + public void getCustomDeathQueryWithDueFilters() { + fragment.dueFilterActive = true; + String query = fragment.filterandSortQuery(); + commonRepository.rawCustomQueryForAdapter(query); + } + + @Test + public void getCustomDeathQuery() { + commonRepository.rawCustomQueryForAdapter(fragment.customDeathQuery(0,20)); + } + + @Test + public void getCustomDeathQueryWithFilter() { + String query = fragment.getFilters("a"); + String deathQuery = fragment.customDeathQuery(0,20, query); + commonRepository.rawCustomQueryForAdapter(deathQuery); + } + + @Test + public void getToolbarTitle() { + fragment.dueFilterActive = true; + fragment.getToolBarTitle(); + Mockito.verify(fragment, Mockito.times(1)).getToolBarTitle(); + } + + @Test + public void getShowNotFoundPopup() { + fragment.dueFilterActive = true; + fragment.showNotFoundPopup(Mockito.anyString()); + Mockito.verify(fragment, Mockito.times(1)).showNotFoundPopup(Mockito.anyString()); + } + +} diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java new file mode 100644 index 0000000000..d79d9d88e8 --- /dev/null +++ b/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java @@ -0,0 +1,55 @@ +package org.smartregister.chw.presenter; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.robolectric.util.ReflectionHelpers; +import org.smartregister.chw.application.ChwApplication; +import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; +import org.smartregister.chw.core.contract.FamilyChangeContract; +import org.smartregister.chw.core.domain.FamilyMember; +import org.smartregister.chw.core.interactor.CoreFamilyChangeContractInteractor; +import org.smartregister.chw.core.model.FamilyChangeContractModel; +import org.smartregister.chw.core.presenter.CoreFamilyChangePresenter; +import org.smartregister.chw.model.CoreOutOfAreaDeathFragmentModel; + +import java.util.ArrayList; +import java.util.List; + +public class OutOfAreaDeathFragmentPresenterTest { + + private OutOfAreaDeathFragmentPresenter presenter; + + @Mock + private CoreChildRegisterFragmentContract.View view; + + @Mock + private CoreOutOfAreaDeathFragmentModel model; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + presenter = new OutOfAreaDeathFragmentPresenter(view, model, ""); + } + + @Test + public void testMainConditionWithTableName() { + String tableName = "table_a"; + if (ChwApplication.getApplicationFlavor().dueVaccinesFilterInChildRegister()) { + Assert.assertEquals(" table_a.date_removed is null AND (( ifnull(ec_child.table_a.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.table_a.entry_point,'') = 'PNC' and ( date(ec_child.table_a.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.table_a.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and CASE WHEN ec_child.gender = 'Male' THEN (((( julianday('now') - julianday(ec_child.dob))/365.25) < +5) and ((SELECT alerts.expiryDate FROM alerts WHERE alerts.caseID = ec_child.base_entity_id and alerts.status in ('normal','urgent')) > date())) WHEN ec_child.gender = 'Female' THEN (((( julianday('now') - julianday(ec_child.dob))/365.25) < +5) and ((SELECT alerts.expiryDate FROM alerts WHERE alerts.caseID = ec_child.base_entity_id and alerts.status in ('normal','urgent')) > date())) OR (SELECT ( ((julianday('now') - julianday(ec_child.dob))/365.25) BETWEEN 9 AND 11) AND ((SELECT alerts.expiryDate FROM alerts WHERE alerts.caseID = ec_child.base_entity_id and alerts.status in ('normal','urgent') and alerts.scheduleName = 'HPV') > date())) END", + presenter.getMainCondition(tableName)); + } else { + Assert.assertEquals(" table_a.date_removed is null AND ((( julianday('now') - julianday(ec_child.table_a.dob))/365.25) <5) and (( ifnull(ec_child.table_a.entry_point,'') <> 'PNC' ) or (ifnull(ec_child.table_a.entry_point,'') = 'PNC' and ( date(ec_child.table_a.dob, '+28 days') <= date() and ((SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.table_a.mother_entity_id ) = 0))) or (ifnull(ec_child.entry_point,'') = 'PNC' and (SELECT is_closed FROM ec_family_member WHERE base_entity_id = ec_child.mother_entity_id ) = 1)) and ((( julianday('now') - julianday(ec_child.table_a.dob))/365.25) < 5) ", + presenter.getMainCondition(tableName)); + } + } + + @Test + public void testDefaultSortQuery() { + Assert.assertEquals(" MAX(ec_out_of_area_death.last_interacted_with , 0 DESC ", presenter.getDefaultSortQuery()); + } + +} From ce917cb01d4427ca6e0fc368d40ba9a9e0d5dc9f Mon Sep 17 00:00:00 2001 From: qaziabubakar-vd Date: Thu, 5 Aug 2021 10:58:02 +0500 Subject: [PATCH 10/10] - Removed issues reported by codacy --- .../chw/activity/OutOfAreaDeathActivityTest.java | 10 ---------- .../chw/fragment/OutOfAreaDeathFragmentTest.java | 13 ++++++------- .../OutOfAreaDeathFragmentPresenterTest.java | 10 ---------- 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java index 3255a82f56..2bfc318ff1 100644 --- a/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java +++ b/opensrp-chw/src/test/java/org/smartregister/chw/activity/OutOfAreaDeathActivityTest.java @@ -3,7 +3,6 @@ import android.app.Activity; import android.app.Application; import android.content.Intent; - import org.json.JSONException; import org.json.JSONObject; import org.junit.After; @@ -22,26 +21,17 @@ import org.robolectric.util.ReflectionHelpers; import org.smartregister.Context; import org.smartregister.CoreLibrary; -import org.smartregister.chw.BaseActivityTest; import org.smartregister.chw.BaseUnitTest; -import org.smartregister.chw.anc.contract.BaseAncHomeVisitContract; -import org.smartregister.chw.contract.CoreOutOfAreaDeathRegisterContract; import org.smartregister.chw.core.adapter.NavigationAdapter; import org.smartregister.chw.core.custom_views.NavigationMenu; -import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.presenter.CoreOutOfAreaDeathRegisterPresenter; -import org.smartregister.chw.presenter.FamilyProfilePresenter; import org.smartregister.chw.util.CrvsConstants; -import org.smartregister.family.presenter.BaseFamilyRegisterPresenter; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; -import static org.junit.Assert.*; - public class OutOfAreaDeathActivityTest extends BaseUnitTest { @Rule diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java index 404512a0cb..3aa35dfb01 100644 --- a/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java +++ b/opensrp-chw/src/test/java/org/smartregister/chw/fragment/OutOfAreaDeathFragmentTest.java @@ -1,6 +1,5 @@ package org.smartregister.chw.fragment; -import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import androidx.appcompat.app.AppCompatActivity; @@ -16,13 +15,15 @@ import org.smartregister.Context; import org.smartregister.CoreLibrary; import org.smartregister.chw.BaseUnitTest; -import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; import org.smartregister.chw.presenter.OutOfAreaDeathFragmentPresenter; import org.smartregister.commonregistry.CommonRepository; import org.smartregister.receiver.SyncStatusBroadcastReceiver; import java.util.ArrayList; + +import static android.view.View.GONE; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; + public class OutOfAreaDeathFragmentTest extends BaseUnitTest { @Mock @@ -42,15 +43,13 @@ public class OutOfAreaDeathFragmentTest extends BaseUnitTest { private OutOfAreaDeathFragment fragment; - private FragmentActivity activity; - @Before public void setUp() { MockitoAnnotations.initMocks(this); fragment = Mockito.mock(OutOfAreaDeathFragment.class, Mockito.CALLS_REAL_METHODS); CoreLibrary.init(context); when(context.commonrepository(anyString())).thenReturn(commonRepository); - activity = Robolectric.buildActivity(AppCompatActivity.class).create().resume().get(); + FragmentActivity activity = Robolectric.buildActivity(AppCompatActivity.class).create().resume().get(); Context.bindtypes = new ArrayList<>(); SyncStatusBroadcastReceiver.init(activity); } @@ -66,8 +65,8 @@ public void refreshSyncProgressSpinnerTogglesSyncVisibility() { ReflectionHelpers.setField(fragment, "syncButton", syncButton); ReflectionHelpers.setField(fragment, "syncProgressBar", syncProgressBar); fragment.refreshSyncProgressSpinner(); - Mockito.verify(syncProgressBar, Mockito.times(1)).setVisibility(android.view.View.GONE); - Mockito.verify(syncButton, Mockito.times(1)).setVisibility(android.view.View.GONE); + Mockito.verify(syncProgressBar, Mockito.times(1)).setVisibility(GONE); + Mockito.verify(syncButton, Mockito.times(1)).setVisibility(GONE); } @Test diff --git a/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java b/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java index d79d9d88e8..7be4046f8c 100644 --- a/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java +++ b/opensrp-chw/src/test/java/org/smartregister/chw/presenter/OutOfAreaDeathFragmentPresenterTest.java @@ -4,21 +4,11 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.robolectric.util.ReflectionHelpers; import org.smartregister.chw.application.ChwApplication; import org.smartregister.chw.core.contract.CoreChildRegisterFragmentContract; -import org.smartregister.chw.core.contract.FamilyChangeContract; -import org.smartregister.chw.core.domain.FamilyMember; -import org.smartregister.chw.core.interactor.CoreFamilyChangeContractInteractor; -import org.smartregister.chw.core.model.FamilyChangeContractModel; -import org.smartregister.chw.core.presenter.CoreFamilyChangePresenter; import org.smartregister.chw.model.CoreOutOfAreaDeathFragmentModel; -import java.util.ArrayList; -import java.util.List; - public class OutOfAreaDeathFragmentPresenterTest { private OutOfAreaDeathFragmentPresenter presenter;