From 105a2d0a3f60be74066e8b5079833f095aa64d1d Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 27 Mar 2020 13:02:48 +0300 Subject: [PATCH 001/302] :zap: Adding the language switcher on the me fragment --- .../smartregister/anc/library/AncLibrary.java | 1 - .../anc/library/fragment/MeFragment.java | 85 +++++++++++++++--- .../main/res/drawable-hdpi/ic_language.png | Bin 0 -> 2340 bytes .../main/res/drawable-mdpi/ic_language.png | Bin 0 -> 1286 bytes .../main/res/drawable-xhdpi/ic_language.png | Bin 0 -> 2759 bytes .../main/res/drawable-xxhdpi/ic_language.png | Bin 0 -> 5090 bytes .../main/res/drawable-xxxhdpi/ic_language.png | Bin 0 -> 5787 bytes .../src/main/res/layout/fragment_me.xml | 4 +- opensrp-anc/src/main/res/values/strings.xml | 4 +- .../anc/application/AncApplication.java | 4 +- 10 files changed, 80 insertions(+), 18 deletions(-) create mode 100644 opensrp-anc/src/main/res/drawable-hdpi/ic_language.png create mode 100644 opensrp-anc/src/main/res/drawable-mdpi/ic_language.png create mode 100644 opensrp-anc/src/main/res/drawable-xhdpi/ic_language.png create mode 100644 opensrp-anc/src/main/res/drawable-xxhdpi/ic_language.png create mode 100644 opensrp-anc/src/main/res/drawable-xxxhdpi/ic_language.png diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 8804d96e8..427f0d138 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -264,7 +264,6 @@ private void populateGlobalSettingsCore(Setting setting) { if (value != null && !value.equals(nullObject)) { defaultContactFormGlobals.put(jsonObject.getString(JsonFormConstants.KEY), value); } else { - defaultContactFormGlobals.put(jsonObject.getString(JsonFormConstants.KEY), false); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 7343aa30d..a45a75c9c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -4,22 +4,34 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; +import android.widget.TextView; +import org.apache.commons.lang3.tuple.Pair; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.PopulationCharacteristicsActivity; import org.smartregister.anc.library.activity.SiteCharacteristicsActivity; import org.smartregister.anc.library.presenter.MePresenter; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.util.LangUtils; import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.contract.MeContract; -public class MeFragment extends org.smartregister.view.fragment.MeFragment implements MeContract.View { +import java.util.Arrays; +import java.util.List; +import java.util.Locale; - private RelativeLayout me_pop_characteristics_section; - private RelativeLayout site_characteristics_section; +public class MeFragment extends org.smartregister.view.fragment.MeFragment implements MeContract.View { + private RelativeLayout mePopCharacteristicsSection; + private RelativeLayout siteCharacteristicsSection; + private RelativeLayout languageSwitcherSection; + private TextView languageSwitcherText; + private List> locales; + private String[] languages; @Nullable @Override @@ -31,15 +43,62 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c @Override protected void setUpViews(View view) { super.setUpViews(view); - me_pop_characteristics_section = view.findViewById(R.id.me_pop_characteristics_section); - site_characteristics_section = view.findViewById(R.id.site_characteristics_section); + mePopCharacteristicsSection = view.findViewById(R.id.me_pop_characteristics_section); + siteCharacteristicsSection = view.findViewById(R.id.site_characteristics_section); + languageSwitcherSection = view.findViewById(R.id.language_switcher_section); + languageSwitcherText = languageSwitcherSection.findViewById(R.id.language_switcher_text); + registerLanguageSwitcher(); } protected void setClickListeners() { super.setClickListeners(); - me_pop_characteristics_section.setOnClickListener(meFragmentActionHandler); - site_characteristics_section.setOnClickListener(meFragmentActionHandler); + mePopCharacteristicsSection.setOnClickListener(meFragmentActionHandler); + siteCharacteristicsSection.setOnClickListener(meFragmentActionHandler); + languageSwitcherSection.setOnClickListener(meFragmentActionHandler); + } + + private void registerLanguageSwitcher() { + if (getActivity() != null) { + locales = Arrays.asList(Pair.of("English", Locale.ENGLISH), Pair.of("French", Locale.FRENCH)); + + languages = new String[locales.size()]; + Locale current = getActivity().getResources().getConfiguration().locale; + int x = 0; + while (x < locales.size()) { + languages[x] = locales.get(x).getKey(); + if (current.getLanguage().equals(locales.get(x).getValue().getLanguage())) { + languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), locales.get(x).getKey())); + } + x++; + } + } + } + + private void languageSwitcherDialog(List> locales, String[] languages) { + if (getActivity() != null) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(getActivity().getResources().getString(R.string.choose_language)); + builder.setItems(languages, (dialog, which) -> { + Pair lang = locales.get(which); + languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), lang.getLeft())); + LangUtils.saveLanguage(getActivity().getApplication(), lang.getValue().getLanguage()); + Intent intent = getActivity().getIntent(); + getActivity().finish(); + getActivity().startActivity(intent); + notifyAppContextChange(); + }); + + AlertDialog dialog = builder.create(); + dialog.show(); + } + } + + public void notifyAppContextChange() { + if (getActivity() != null) { + Locale current = getActivity().getResources().getConfiguration().locale; + Utils.saveLanguage(current.getLanguage()); + } } protected void initializePresenter() { @@ -48,14 +107,16 @@ protected void initializePresenter() { @Override protected void onViewClicked(View view) { - int i = view.getId(); - if (i == R.id.logout_section) { + int viewId = view.getId(); + if (viewId == R.id.logout_section) { DrishtiApplication.getInstance().logoutCurrentUser(); - } else if (i == R.id.site_characteristics_section) { + } else if (viewId == R.id.site_characteristics_section) { getContext().startActivity(new Intent(getContext(), SiteCharacteristicsActivity.class)); - } else if (i == R.id.me_pop_characteristics_section) { + } else if (viewId == R.id.me_pop_characteristics_section) { getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); + } else if (viewId == R.id.language_switcher_section) { + languageSwitcherDialog(locales, languages); } } -} +} \ No newline at end of file diff --git a/opensrp-anc/src/main/res/drawable-hdpi/ic_language.png b/opensrp-anc/src/main/res/drawable-hdpi/ic_language.png new file mode 100644 index 0000000000000000000000000000000000000000..e6630f1b2281ec1ec24f57d50aa6d9b2d0af031f GIT binary patch literal 2340 zcmV+<3ETFGP)isZ60k1=(K7Lk0e`)2%|U^Ay0%>EvD2zHJ0lJ&){hYh|+jJ9>%`TX!INbks z_nvdlci!i$;5t8Yoy(6K06uC9-mt*`hXv~Et&C&Nl+;utG3j!aXltStjuK+H0Z5=j z30t+6qeu$)0vFN)Z4*3x%$gOvRs~#>3yuBxmXt1kT82_dlR(JR?g^-*AnpqsIRxO zTShJd-~uo@>Vb10Um@g>2x!i)|jQLRso@<-KO^jIM0Ra9HvRfaw6Nkafw;8o{N_t}lCI z#Y0R0CeL>VM$8eQ>cea!yR_9kySZrE8N+x&`H|#H>FpH)n)oo;CP3ldDsMRGyomc7L*tPLxqk&lLBi*RLF{<@2IB| z>KQwZ%vTMT#@rKS`6mam!oUDb);Trm0gx|86{*VrjuYrfa|&`3L6eozBbp;{yuSwp z7#meLIzgPG;8Ii;azJoLIM_qSFO>P7%+}uy)OHLAAY;YBn^T4b)&exC?jt({HU&CU z7PPIH+ygXPm;nJeD-MpJ!+#`>-e#!5oeOs9@h!^=O#!^(3;E}t zb<=DLe;pAF#6piN|IO&zx7X|*9i*dDfJf}_-}08`&x{2iyQcAXAiine*-T5hd_}pw zXqv3rrkSGoD*&0H_lfx)SN_I?ERf}HEEAy8COWK%$D3XGdwT(>Z5pdJY5|&F2Nb^M zD=Bz17Jw{w<9Y$+hwhMDp|K=V@FH~CwM|o?`FzB(1j~J;1*;MQkX_yQQwWxaiDVb3 zp7gqM-icx^bxpDnj}f{57cYL|+$jR_(ikDp(8P z{vmLoH2|iB`C^5yB;PcW@ms*@Zg`ZCS8a+`5iazU6l{s+VEQCDR3*cGQpl&hu7Z1G zxlpelCSIpQm0l6V?xuSLT-OuCB9D1W@-`#{AgikJ3!-q?CNjhKX0qpVI5Gso0DLW? zDFCe`Oz;hOL}5`+8U+r3*k*?QUIcf0zN1|>iI9nS*tuoCGtnA`2NsqB$?dLKk;RcHL|ItOWQ_WTYhV zmIcgH`mxEVlB_-FBoR`+ zpq$~oPk03)IIJm81v-=Wq^9}HsNf1sQ-VtZtQpfDczV~w^UQ9}D2J%x$jXJ_>Tac0 zC3Ulq3eO5~XM`t!vm$uL)1J2uD@DiBei&?=XL|WgM@xFrPXH;gT_r+!h9WO1;$51} zguU1T@UB2F(jwhLG3j_xm>?A7WdOzlnA@k$v=LZ+OL|J(p@oxs&C~;l88-mKz<_8T zmOKvAInIvR^Xb_q1x3etem`P%` zJ$S_0K=&uOpTHp@Hw7(jX(=l34i>QeF}XSbHYZa99BIiTwa8R0yk8JXgP)8UR>XOT z?1bM)E1>#cE5MH|OE$|-($iiNw*6Tn30000< KMNUMnLSTXk{6eV! literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/drawable-mdpi/ic_language.png b/opensrp-anc/src/main/res/drawable-mdpi/ic_language.png new file mode 100644 index 0000000000000000000000000000000000000000..ef98d6a87b543ae223a9d29f80692c4309a44dfc GIT binary patch literal 1286 zcmV+h1^N1kP) z+g%mZpotLUlTD-+iAIenvHL-76%ivwU}oEjMkJ!NDe1?~F?V*hF57l@K}}z{PqVY< zp84JX`MQJ!UbMj9$4!9iQo!EQo5Q)b`$?iT#9Ru{U1kUg7a90o22M{9PX64aT+KAJ znE`Zl$QwY0C%QwehF;s)Qf)o81?nhbRcN~@?Yv-X0uIy2%sE5R+7VM>-Svm z2V`4x`?-dy-%~-P1aSI8_p-r90F+ox20-WmqgB8Vqm3m@f$;)>D1)CT&{hB&WA>!8 z!F7>l_1pO%<^`}$e!}|rGy#5XRC&&k7ybg^%>aJXJ?d)V*wGn04WNvHP^9oem2)Kj zMP_&a$O1yPO>de{iMau~x@5<2{&4^<08_-M)y9-hikF6+hQVje(=a#dURQ^Bw0DFW ziTD-seU$If$JMirCBbSiePD$xTr@gab-e9?c*tf1nG?Y23p~P1J*LbAw{}H&6>VfV ze8C-HyeFWLC9l*Q%YPG|O7?$wM|4si0gz3MotjrYj24z0OTtZH7LZY9JR0$;!sj(> z7Jw)<%Cilb*-jV-j2yh;75h|F=-VuD02)l{6TXVbWG6De6JGxtWY6id; zs6nhU{$~JR=m41a0QgGxsGH&d&dxp;L+ZPc5IB5+0GL!_eoOPZp2;`~8F=>}W4evN zarusNQW8=u32V$GB=*m1-CXsVV?WGN>jpTJgC(FT9GtXDkmM-J|-fGHW2hYvNg!xa{0t>KSKl zXbTg%0W1Qjzi4#AmGLkVj$#8Qs~=#8IeZxH`k1oMkrxvAQBI&AG>=khD%Ke|1<)D* zC-uS$8yv&=;=b^#ISC2FkmZf>!IhZ;@dnZ!TuTxiu^`0T6CfM|qs^T4MEls_Ng})~ zS~rN=z`Vs$PS_6_hEzAyT=C6(iJbOIW{q0WfW$3FPI5Hgl`IO-AhM+G^PN1QMAH}9 z=9b>9NUm)w#S-xLG&?R6;pxIFlRb0A{JKJrY`mg%aB)uV)pbnreZ(jO8L?}*5xbUy wacW{b=j-HBO9h-Z1nKqpcNRAR7F>b90i);oF!L&cQvd(}07*qoM6N<$f;YBT8~^|S literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/drawable-xhdpi/ic_language.png b/opensrp-anc/src/main/res/drawable-xhdpi/ic_language.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd49de9cec32ed1c67aee84575c379d7d353d10 GIT binary patch literal 2759 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 + android:src="@drawable/ic_language" /> Caffeine intake The maximum daily dose of caffeine intake for a pregnant woman is 300mg, is equivalent to: ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf - Engilish + Current language: %1s + + Choose language \ No newline at end of file diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index b1115c993..6ff78a802 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -30,6 +30,8 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.receiver.TimeChangedBroadcastReceiver; +import java.util.Locale; + import io.fabric.sdk.android.Fabric; import timber.log.Timber; @@ -203,6 +205,4 @@ public void onTimeZoneChanged() { logoutCurrentUser(); } - - } From f642fdce87f5a2a20eaaf48c89c0a2d06bcbc2a1 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 27 Mar 2020 13:31:41 +0300 Subject: [PATCH 002/302] :zap: Adding the language switching configurability --- .../smartregister/anc/library/AncLibrary.java | 14 ++++++++++ .../constants/AncAppPropertyConstants.java | 8 ++++++ .../anc/library/fragment/MeFragment.java | 28 +++++++++++-------- .../src/main/res/layout/fragment_me.xml | 6 ++-- reference-app/src/main/assets/app.properties | 3 +- 5 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 427f0d138..6e0baa253 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -26,12 +26,14 @@ import org.smartregister.anc.library.repository.RegisterQueryProvider; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; +import org.smartregister.anc.library.util.Utils; import org.smartregister.configurableviews.helper.JsonSpecHelper; import org.smartregister.domain.Setting; import org.smartregister.repository.DetailsRepository; import org.smartregister.repository.EventClientRepository; import org.smartregister.repository.UniqueIdRepository; import org.smartregister.sync.ClientProcessorForJava; +import org.smartregister.util.AppProperties; import org.smartregister.view.activity.DrishtiApplication; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.Yaml; @@ -39,6 +41,7 @@ import java.io.IOException; import java.io.InputStreamReader; +import java.util.Locale; import id.zelory.compressor.Compressor; import timber.log.Timber; @@ -309,4 +312,15 @@ public RegisterQueryProvider getRegisterQueryProvider() { public void setRegisterQueryProvider(RegisterQueryProvider registerQueryProvider) { this.registerQueryProvider = registerQueryProvider; } + + public AppProperties getProperties() { + return CoreLibrary.getInstance().context().getAppProperties(); + } + + public void notifyAppContextChange() { + if (getApplicationContext() != null) { + Locale current = getApplicationContext().getResources().getConfiguration().locale; + Utils.saveLanguage(current.getLanguage()); + } + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java new file mode 100644 index 000000000..089e80f0e --- /dev/null +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java @@ -0,0 +1,8 @@ +package org.smartregister.anc.library.constants; + +public class AncAppPropertyConstants { + public final static class KEY { + //language switching + public static final String LANGUAGE_SWITCHING_ENABLED = "language.switching.enabled"; + } +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index a45a75c9c..865da16c9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -12,9 +12,11 @@ import android.widget.TextView; import org.apache.commons.lang3.tuple.Pair; +import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.PopulationCharacteristicsActivity; import org.smartregister.anc.library.activity.SiteCharacteristicsActivity; +import org.smartregister.anc.library.constants.AncAppPropertyConstants; import org.smartregister.anc.library.presenter.MePresenter; import org.smartregister.anc.library.util.Utils; import org.smartregister.util.LangUtils; @@ -46,16 +48,25 @@ protected void setUpViews(View view) { mePopCharacteristicsSection = view.findViewById(R.id.me_pop_characteristics_section); siteCharacteristicsSection = view.findViewById(R.id.site_characteristics_section); - languageSwitcherSection = view.findViewById(R.id.language_switcher_section); - languageSwitcherText = languageSwitcherSection.findViewById(R.id.language_switcher_text); - registerLanguageSwitcher(); + if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KEY.LANGUAGE_SWITCHING_ENABLED)) { + languageSwitcherSection = view.findViewById(R.id.language_switcher_section); + languageSwitcherSection.setVisibility(View.VISIBLE); + + View meLanguageSwitcherSeparator = view.findViewById(R.id.me_language_switcher_separator); + meLanguageSwitcherSeparator.setVisibility(View.VISIBLE); + + languageSwitcherText = languageSwitcherSection.findViewById(R.id.language_switcher_text); + registerLanguageSwitcher(); + } } protected void setClickListeners() { super.setClickListeners(); mePopCharacteristicsSection.setOnClickListener(meFragmentActionHandler); siteCharacteristicsSection.setOnClickListener(meFragmentActionHandler); - languageSwitcherSection.setOnClickListener(meFragmentActionHandler); + if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KEY.LANGUAGE_SWITCHING_ENABLED)) { + languageSwitcherSection.setOnClickListener(meFragmentActionHandler); + } } private void registerLanguageSwitcher() { @@ -86,7 +97,7 @@ private void languageSwitcherDialog(List> locales, String[] Intent intent = getActivity().getIntent(); getActivity().finish(); getActivity().startActivity(intent); - notifyAppContextChange(); + AncLibrary.getInstance().notifyAppContextChange(); }); AlertDialog dialog = builder.create(); @@ -94,12 +105,7 @@ private void languageSwitcherDialog(List> locales, String[] } } - public void notifyAppContextChange() { - if (getActivity() != null) { - Locale current = getActivity().getResources().getConfiguration().locale; - Utils.saveLanguage(current.getLanguage()); - } - } + protected void initializePresenter() { presenter = new MePresenter(this); diff --git a/opensrp-anc/src/main/res/layout/fragment_me.xml b/opensrp-anc/src/main/res/layout/fragment_me.xml index 8eeb5a316..ca7138288 100644 --- a/opensrp-anc/src/main/res/layout/fragment_me.xml +++ b/opensrp-anc/src/main/res/layout/fragment_me.xml @@ -144,7 +144,8 @@ android:layout_marginStart="@dimen/me_page_initials_background_margin" android:layout_marginLeft="@dimen/me_page_initials_background_margin" android:layout_marginEnd="@dimen/me_page_initials_background_margin" - android:layout_marginRight="@dimen/me_page_initials_background_margin"> + android:layout_marginRight="@dimen/me_page_initials_background_margin" + android:visibility="gone"> + android:background="@color/me_page_line_separator" + android:visibility="gone"/> Date: Fri, 27 Mar 2020 13:33:33 +0300 Subject: [PATCH 003/302] :zap: bump up version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1817bf45c..df1f56e20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.0-SNAPSHOT +VERSION_NAME=2.1.0-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library From c8d0caff7de92cfd9d457e116500a0ebbccc503d Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 27 Mar 2020 13:37:32 +0300 Subject: [PATCH 004/302] :ok_hand: fix code review requests --- .../anc/library/activity/BaseActivity.java | 2 +- .../library/activity/BaseContactActivity.java | 2 +- .../activity/BaseHomeRegisterActivity.java | 2 +- .../library/activity/BaseProfileActivity.java | 2 +- .../activity/ContactJsonFormActivity.java | 6 +- .../ContactSummaryFinishActivity.java | 2 +- .../activity/ContactSummarySendActivity.java | 8 +-- .../library/activity/MainContactActivity.java | 48 +++++++------- .../anc/library/activity/ProfileActivity.java | 2 +- .../library/adapter/LastContactAdapter.java | 2 +- .../ContactWizardJsonFormFragment.java | 20 +++--- .../anc/library/fragment/MeFragment.java | 59 +++++++++--------- .../fragment/ProfileContactsFragment.java | 2 +- .../fragment/ProfileTasksFragment.java | 4 +- .../library/interactor/ContactInteractor.java | 2 +- .../interactor/ContactSummaryInteractor.java | 2 +- .../interactor/RegisterInteractor.java | 2 +- .../ContactTaskDisplayClickListener.java | 3 +- .../anc/library/model/BaseContactModel.java | 2 +- .../anc/library/model/ContactVisit.java | 62 +++++++++---------- ...ontactWizardJsonFormFragmentPresenter.java | 2 +- .../PreviousContactDetailsPresenter.java | 2 +- .../library/presenter/ProfilePresenter.java | 2 +- .../repository/PreviousContactRepository.java | 2 +- .../sync/BaseAncClientProcessorForJava.java | 2 +- .../task/BackPressedPersistPartialTask.java | 2 +- .../anc/application/AncApplication.java | 18 +++--- .../anc/repository/AncRepository.java | 3 +- 28 files changed, 131 insertions(+), 136 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java index c45df3737..b7e8ba9ff 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java @@ -8,8 +8,8 @@ import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.SiteCharacteristicsContract; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import java.util.Map; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java index aa4ebb80e..38bdf1374 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java @@ -27,8 +27,8 @@ import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.model.PartialContact; import org.smartregister.anc.library.model.Task; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.view.activity.SecuredActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 393fff3b2..33d8254db 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -38,9 +38,9 @@ import org.smartregister.anc.library.fragment.SortFilterFragment; import org.smartregister.anc.library.presenter.RegisterPresenter; import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.commonregistry.CommonPersonObjectClient; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java index 56194b95a..8bed74f1f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java @@ -19,8 +19,8 @@ import org.smartregister.anc.library.event.ClientDetailsFetchedEvent; import org.smartregister.anc.library.event.PatientRemovedEvent; import org.smartregister.anc.library.task.FetchProfileDataTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.repository.AllSharedPreferences; import org.smartregister.view.activity.SecuredActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 90ce80546..5b565c7ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -22,8 +22,8 @@ import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; import org.smartregister.anc.library.helper.AncRulesEngineFactory; import org.smartregister.anc.library.task.BackPressedPersistPartialTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import java.util.HashMap; import java.util.List; @@ -164,7 +164,7 @@ public void onResume() { formName = getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME); } try { - ANCFormUtils.processCheckboxFilteredItems(mJSONObject); + org.smartregister.anc.library.util.ANCFormUtils.processCheckboxFilteredItems(mJSONObject); } catch (JSONException e) { Timber.e(e, "An error occurred while trying to filter checkbox items"); } @@ -266,7 +266,7 @@ public void proceedToMainContactPage() { Contact contact = getContact(); contact.setJsonForm(ANCFormUtils.addFormDetails(currentJsonState())); contact.setContactNumber(contactNo); - ANCFormUtils.persistPartial(baseEntityId, getContact()); + org.smartregister.anc.library.util.ANCFormUtils.persistPartial(baseEntityId, getContact()); this.startActivity(intent); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java index 203b4a519..6b945907e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java @@ -20,8 +20,8 @@ import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.task.FinalizeContactTask; import org.smartregister.anc.library.task.LoadContactSummaryDataTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.helper.ImageRenderHelper; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java index b61a22685..d251258ce 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java @@ -99,6 +99,10 @@ public HashMap getWomanProfileDetails() { return (HashMap) PatientRepository.getWomanProfileDetails(getEntityId()); } + public String getEntityId() { + return getIntent().getExtras().getString(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID); + } + @Override public void displayPatientName(String fullName) { womanNameTextView.setText(fullName); @@ -134,10 +138,6 @@ public String getReferredContactNo() { return null; } - public String getEntityId() { - return getIntent().getExtras().getString(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID); - } - @Override public void onBackPressed() { Utils.navigateToHomeRegister(this, false, AncLibrary.getInstance().getActivityConfiguration().getHomeRegisterActivityClass()); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index c034c6cd9..8816b16bd 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -20,9 +20,9 @@ import org.smartregister.anc.library.model.PartialContact; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.presenter.ContactPresenter; +import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; import org.smartregister.anc.library.util.Utils; @@ -166,29 +166,6 @@ private void initializeMainContactContainers() { } - private void setRequiredFields(Contact contact) { - if (requiredFieldsMap != null && contact != null && requiredFieldsMap.containsKey(contact.getName())) { - contact.setRequiredFields(requiredFieldsMap.get(contact.getName())); - } - } - - @Override - public void startForms(View view) { - Contact contact = (Contact) view.getTag(); - try { - if (contact != null) { - loadContactGlobalsConfig(); - process(contactForms); - - setRequiredFields(contact); - view.setTag(contact); - super.startForms(view); - } - } catch (IOException e) { - Timber.e(e, " --> startForms"); - } - } - private int getRequiredCountTotal() { int count = -1; Set> entries = requiredFieldsMap.entrySet(); @@ -256,6 +233,12 @@ private void process(String[] mainContactForms) { } } + private void setRequiredFields(Contact contact) { + if (requiredFieldsMap != null && contact != null && requiredFieldsMap.containsKey(contact.getName())) { + contact.setRequiredFields(requiredFieldsMap.get(contact.getName())); + } + } + public Iterable readYaml(String filename) throws IOException { InputStreamReader inputStreamReader = new InputStreamReader(this.getAssets().open((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename))); @@ -546,6 +529,23 @@ protected String getFormJson(PartialContact partialContactRequest, JSONObject fo return ""; } + @Override + public void startForms(View view) { + Contact contact = (Contact) view.getTag(); + try { + if (contact != null) { + loadContactGlobalsConfig(); + process(contactForms); + + setRequiredFields(contact); + view.setTag(contact); + super.startForms(view); + } + } catch (IOException e) { + Timber.e(e, " --> startForms"); + } + } + private void preProcessDefaultValues(JSONObject object) { try { if (object != null) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index c148f5d02..ed765ad8a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -36,9 +36,9 @@ import org.smartregister.anc.library.fragment.ProfileOverviewFragment; import org.smartregister.anc.library.fragment.ProfileTasksFragment; import org.smartregister.anc.library.presenter.ProfilePresenter; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.anc.library.view.CopyToClipboardDialog; import org.smartregister.repository.AllSharedPreferences; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java index 4dc45d19b..9d0a1c169 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java @@ -16,8 +16,8 @@ import org.smartregister.anc.library.R; import org.smartregister.anc.library.domain.LastContactDetailsWrapper; import org.smartregister.anc.library.domain.YamlConfigWrapper; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import java.util.List; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index a09aa48f3..eceaeb7f6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -30,8 +30,8 @@ import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.presenter.ContactWizardJsonFormFragmentPresenter; import org.smartregister.anc.library.task.ANCNextProgressDialogTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.anc.library.viewstate.ContactJsonFormFragmentViewState; @@ -217,6 +217,15 @@ protected void save() { } + @Override + public ContactWizardJsonFormFragment getJsonFormFragment() { + return formFragment; + } + + public void setJsonFormFragment(ContactWizardJsonFormFragment formFragment) { + this.formFragment = formFragment; + } + private void displayReferralDialog() { if (getActivity() != null) { LayoutInflater inflater = getActivity().getLayoutInflater(); @@ -327,15 +336,6 @@ private void setQuickCheckButtonsInvisible(boolean none, boolean other, LinearLa } } - public void setJsonFormFragment(ContactWizardJsonFormFragment formFragment) { - this.formFragment = formFragment; - } - - @Override - public ContactWizardJsonFormFragment getJsonFormFragment() { - return formFragment; - } - private class BottomNavigationListener implements View.OnClickListener { @Override public void onClick(View view) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 865da16c9..e35276ed6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -18,7 +18,6 @@ import org.smartregister.anc.library.activity.SiteCharacteristicsActivity; import org.smartregister.anc.library.constants.AncAppPropertyConstants; import org.smartregister.anc.library.presenter.MePresenter; -import org.smartregister.anc.library.util.Utils; import org.smartregister.util.LangUtils; import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.contract.MeContract; @@ -69,20 +68,21 @@ protected void setClickListeners() { } } - private void registerLanguageSwitcher() { - if (getActivity() != null) { - locales = Arrays.asList(Pair.of("English", Locale.ENGLISH), Pair.of("French", Locale.FRENCH)); + protected void initializePresenter() { + presenter = new MePresenter(this); + } - languages = new String[locales.size()]; - Locale current = getActivity().getResources().getConfiguration().locale; - int x = 0; - while (x < locales.size()) { - languages[x] = locales.get(x).getKey(); - if (current.getLanguage().equals(locales.get(x).getValue().getLanguage())) { - languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), locales.get(x).getKey())); - } - x++; - } + @Override + protected void onViewClicked(View view) { + int viewId = view.getId(); + if (viewId == R.id.logout_section) { + DrishtiApplication.getInstance().logoutCurrentUser(); + } else if (viewId == R.id.site_characteristics_section) { + getContext().startActivity(new Intent(getContext(), SiteCharacteristicsActivity.class)); + } else if (viewId == R.id.me_pop_characteristics_section) { + getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); + } else if (viewId == R.id.language_switcher_section) { + languageSwitcherDialog(locales, languages); } } @@ -97,7 +97,7 @@ private void languageSwitcherDialog(List> locales, String[] Intent intent = getActivity().getIntent(); getActivity().finish(); getActivity().startActivity(intent); - AncLibrary.getInstance().notifyAppContextChange(); + AncLibrary.getInstance().notifyAppContextChange(); }); AlertDialog dialog = builder.create(); @@ -105,23 +105,20 @@ private void languageSwitcherDialog(List> locales, String[] } } + private void registerLanguageSwitcher() { + if (getActivity() != null) { + locales = Arrays.asList(Pair.of("English", Locale.ENGLISH), Pair.of("French", Locale.FRENCH)); - - protected void initializePresenter() { - presenter = new MePresenter(this); - } - - @Override - protected void onViewClicked(View view) { - int viewId = view.getId(); - if (viewId == R.id.logout_section) { - DrishtiApplication.getInstance().logoutCurrentUser(); - } else if (viewId == R.id.site_characteristics_section) { - getContext().startActivity(new Intent(getContext(), SiteCharacteristicsActivity.class)); - } else if (viewId == R.id.me_pop_characteristics_section) { - getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); - } else if (viewId == R.id.language_switcher_section) { - languageSwitcherDialog(locales, languages); + languages = new String[locales.size()]; + Locale current = getActivity().getResources().getConfiguration().locale; + int x = 0; + while (x < locales.size()) { + languages[x] = locales.get(x).getKey(); + if (current.getLanguage().equals(locales.get(x).getValue().getLanguage())) { + languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), locales.get(x).getKey())); + } + x++; + } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index 17c4308d3..cd921c3ba 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -29,10 +29,10 @@ import org.smartregister.anc.library.domain.YamlConfigWrapper; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.presenter.ProfileFragmentPresenter; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.view.fragment.BaseProfileFragment; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java index 9dcb17e6d..b1c82f62c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java @@ -26,10 +26,10 @@ import org.smartregister.anc.library.domain.ButtonAlertStatus; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.presenter.ProfileFragmentPresenter; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; -import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.view.fragment.BaseProfileFragment; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java index 7e26aca81..7e604eb14 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java @@ -21,10 +21,10 @@ import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; import org.smartregister.anc.library.rule.ContactRule; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.clientandeventmodel.Event; import org.smartregister.repository.DetailsRepository; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java index 4c8853cab..3ff1b2ec5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java @@ -10,10 +10,10 @@ import org.smartregister.anc.library.contract.ContactSummarySendContract; import org.smartregister.anc.library.model.ContactSummaryModel; import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import java.util.ArrayList; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index ef85b82c0..0589407aa 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -12,10 +12,10 @@ import org.smartregister.anc.library.event.PatientRemovedEvent; import org.smartregister.anc.library.helper.ECSyncHelper; import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/listener/ContactTaskDisplayClickListener.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/listener/ContactTaskDisplayClickListener.java index a33daca18..82e948247 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/listener/ContactTaskDisplayClickListener.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/listener/ContactTaskDisplayClickListener.java @@ -6,6 +6,7 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.ExpansionPanelValuesModel; +import com.vijay.jsonwizard.utils.FormUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -179,7 +180,7 @@ private JSONArray loadSubFormFields(JSONObject taskValue, Context context) { try { if (taskValue != null && taskValue.has(JsonFormConstants.CONTENT_FORM)) { String subFormName = taskValue.getString(JsonFormConstants.CONTENT_FORM); - JSONObject subForm = ANCFormUtils.getSubFormJson(subFormName, "", context); + JSONObject subForm = FormUtils.getSubFormJson(subFormName, "", context); if (subForm.has(JsonFormConstants.CONTENT_FORM)) { fields = subForm.getJSONArray(JsonFormConstants.CONTENT_FORM); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java index ff4f0ced5..8021bdc86 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java @@ -5,8 +5,8 @@ import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.util.FormUtils; import java.util.Map; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java index 67b690cf8..d365b59f4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java @@ -18,9 +18,9 @@ import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; +import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; import org.smartregister.clientandeventmodel.Event; @@ -149,7 +149,7 @@ private void updateEventAndRequiredStepsField(String baseEntityId, PartialContac } //process attention flags - ANCFormUtils.processRequiredStepsField(facts, formObject); + org.smartregister.anc.library.util.ANCFormUtils.processRequiredStepsField(facts, formObject); //process events Event event = ANCJsonFormUtils.processContactFormEvent(formObject, baseEntityId); @@ -213,7 +213,7 @@ private void processFormFieldKeyValues(String baseEntityId, JSONObject object, S for (int i = 0; i < stepArray.length(); i++) { JSONObject fieldObject = stepArray.getJSONObject(i); - ANCFormUtils.processSpecialWidgets(fieldObject); + org.smartregister.anc.library.util.ANCFormUtils.processSpecialWidgets(fieldObject); if (fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.EXPANSION_PANEL)) { saveExpansionPanelPreviousValues(baseEntityId, fieldObject, contactNo); @@ -262,34 +262,6 @@ private void processTasks(JSONObject formObject) { } } - private void saveOrDeleteTasks(@NotNull JSONArray stepFields) throws JSONException { - for (int i = 0; i < stepFields.length(); i++) { - JSONObject field = stepFields.getJSONObject(i); - if (field != null && field.has(JsonFormConstants.IS_VISIBLE) && field.getBoolean(JsonFormConstants.IS_VISIBLE)) { - JSONArray jsonArray = field.optJSONArray(JsonFormConstants.VALUE); - String key = field.optString(JsonFormConstants.KEY); - if (jsonArray == null || (jsonArray.length() == 0)) { - if (getCurrentClientTasks() != null && !getCurrentClientTasks().containsKey(key)) { - saveTasks(field); - } - } else { - if (StringUtils.isNotBlank(key) && getCurrentClientTasks() != null) { - if (checkTestsStatus(jsonArray)) { - if (!getCurrentClientTasks().containsKey(key)) { - saveTasks(field); - } - } else { - Long tasksId = getCurrentClientTasks().get(key); - if (tasksId != null) { - AncLibrary.getInstance().getContactTasksRepository().deleteContactTask(tasksId); - } - } - } - } - } - } - } - /*** * Method that persist previous invisible required fields * @param baseEntityId unique Id for the woman @@ -328,6 +300,34 @@ private boolean isCheckboxValueEmpty(JSONObject fieldObject) throws JSONExceptio && currentValue.startsWith("[") && currentValue.endsWith("]")); } + private void saveOrDeleteTasks(@NotNull JSONArray stepFields) throws JSONException { + for (int i = 0; i < stepFields.length(); i++) { + JSONObject field = stepFields.getJSONObject(i); + if (field != null && field.has(JsonFormConstants.IS_VISIBLE) && field.getBoolean(JsonFormConstants.IS_VISIBLE)) { + JSONArray jsonArray = field.optJSONArray(JsonFormConstants.VALUE); + String key = field.optString(JsonFormConstants.KEY); + if (jsonArray == null || (jsonArray.length() == 0)) { + if (getCurrentClientTasks() != null && !getCurrentClientTasks().containsKey(key)) { + saveTasks(field); + } + } else { + if (StringUtils.isNotBlank(key) && getCurrentClientTasks() != null) { + if (checkTestsStatus(jsonArray)) { + if (!getCurrentClientTasks().containsKey(key)) { + saveTasks(field); + } + } else { + Long tasksId = getCurrentClientTasks().get(key); + if (tasksId != null) { + AncLibrary.getInstance().getContactTasksRepository().deleteContactTask(tasksId); + } + } + } + } + } + } + } + public Map getCurrentClientTasks() { return currentClientTasks; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java index c52e68066..15a6f663e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java @@ -11,8 +11,8 @@ import com.vijay.jsonwizard.widgets.NativeRadioButtonFactory; import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; /** * Created by keyman on 04/08/18. diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/PreviousContactDetailsPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/PreviousContactDetailsPresenter.java index c76089b9d..292362c68 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/PreviousContactDetailsPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/PreviousContactDetailsPresenter.java @@ -9,8 +9,8 @@ import org.smartregister.anc.library.model.ContactSummaryModel; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; import org.smartregister.anc.library.repository.PreviousContactRepository; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.Utils; import java.io.IOException; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java index 1588dbfcf..db1ab6823 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java @@ -12,9 +12,9 @@ import org.smartregister.anc.library.interactor.ContactInteractor; import org.smartregister.anc.library.interactor.ProfileInteractor; import org.smartregister.anc.library.interactor.RegisterInteractor; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index eb6f4f9bd..6d3d9e13f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -11,8 +11,8 @@ import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.repository.BaseRepository; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index deb1c7ba0..c1796b1f6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -21,9 +21,9 @@ import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.repository.ContactTasksRepository; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.commonregistry.AllCommonsRepository; import org.smartregister.domain.db.Client; import org.smartregister.domain.db.Event; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java index 30563efb5..e5e9f12d9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java @@ -6,8 +6,8 @@ import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.domain.Contact; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; public class BackPressedPersistPartialTask extends AsyncTask { private Contact contact; diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 6ff78a802..767221f1f 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -30,8 +30,6 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.receiver.TimeChangedBroadcastReceiver; -import java.util.Locale; - import io.fabric.sdk.android.Fabric; import timber.log.Timber; @@ -123,10 +121,6 @@ private static String[] getFtsSortFields(String tableName) { } } - public static synchronized AncApplication getInstance() { - return (AncApplication) DrishtiApplication.mInstance; - } - @Override public void logoutCurrentUser() { Intent intent = new Intent(getApplicationContext(), LoginActivity.class); @@ -156,6 +150,10 @@ public Repository getRepository() { return repository; } + public static synchronized AncApplication getInstance() { + return (AncApplication) DrishtiApplication.mInstance; + } + public String getPassword() { if (password == null) { String username = getContext().userService().getAllSharedPreferences().fetchRegisteredANM(); @@ -170,10 +168,6 @@ public ClientProcessorForJava getClientProcessor() { return BaseAncClientProcessorForJava.getInstance(this); } - public Context getContext() { - return context; - } - @Override public void onTerminate() { logInfo("Application is terminating. Stopping Sync scheduler and resetting isSyncInProgress setting."); @@ -191,6 +185,10 @@ protected void cleanUpSyncState() { } } + public Context getContext() { + return context; + } + @Override public void onTimeChanged() { Utils.showToast(this, this.getString(org.smartregister.anc.library.R.string.device_time_changed)); diff --git a/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java b/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java index 93cd3e0f4..8f0446023 100644 --- a/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java +++ b/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java @@ -7,10 +7,9 @@ import org.smartregister.AllConstants; import org.smartregister.CoreLibrary; import org.smartregister.anc.BuildConfig; -import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.repository.ContactTasksRepository; import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; -import org.smartregister.anc.library.repository.ContactTasksRepository; import org.smartregister.configurableviews.repository.ConfigurableViewsRepository; import org.smartregister.repository.EventClientRepository; import org.smartregister.repository.Repository; From 485973a1df305d4328ac6175a7c654fd18e091fc Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 27 Mar 2020 13:47:56 +0300 Subject: [PATCH 005/302] :ok_hand: Fix code review requests --- .../library/activity/ContactJsonFormActivity.java | 8 ++++---- .../library/constants/AncAppPropertyConstants.java | 2 +- .../anc/library/fragment/MeFragment.java | 4 ++-- .../anc/library/model/ContactVisit.java | 12 ++++++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 5b565c7ac..07e3a5138 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -38,7 +38,7 @@ public class ContactJsonFormActivity extends JsonFormActivity { protected AncRulesEngineFactory rulesEngineFactory = null; private ProgressDialog progressDialog; private String formName; - private ANCFormUtils ANCFormUtils = new ANCFormUtils(); + private ANCFormUtils ancFormUtils = new ANCFormUtils(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -164,7 +164,7 @@ public void onResume() { formName = getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME); } try { - org.smartregister.anc.library.util.ANCFormUtils.processCheckboxFilteredItems(mJSONObject); + ANCFormUtils.processCheckboxFilteredItems(mJSONObject); } catch (JSONException e) { Timber.e(e, "An error occurred while trying to filter checkbox items"); } @@ -264,9 +264,9 @@ public void proceedToMainContactPage() { intent.putExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME, getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME)); intent.putExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, contactNo); Contact contact = getContact(); - contact.setJsonForm(ANCFormUtils.addFormDetails(currentJsonState())); + contact.setJsonForm(ancFormUtils.addFormDetails(currentJsonState())); contact.setContactNumber(contactNo); - org.smartregister.anc.library.util.ANCFormUtils.persistPartial(baseEntityId, getContact()); + ANCFormUtils.persistPartial(baseEntityId, getContact()); this.startActivity(intent); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java index 089e80f0e..9b38a4626 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.constants; public class AncAppPropertyConstants { - public final static class KEY { + public final static class keyUtils { //language switching public static final String LANGUAGE_SWITCHING_ENABLED = "language.switching.enabled"; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index e35276ed6..1e4c9610c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -47,7 +47,7 @@ protected void setUpViews(View view) { mePopCharacteristicsSection = view.findViewById(R.id.me_pop_characteristics_section); siteCharacteristicsSection = view.findViewById(R.id.site_characteristics_section); - if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KEY.LANGUAGE_SWITCHING_ENABLED)) { + if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.keyUtils.LANGUAGE_SWITCHING_ENABLED)) { languageSwitcherSection = view.findViewById(R.id.language_switcher_section); languageSwitcherSection.setVisibility(View.VISIBLE); @@ -63,7 +63,7 @@ protected void setClickListeners() { super.setClickListeners(); mePopCharacteristicsSection.setOnClickListener(meFragmentActionHandler); siteCharacteristicsSection.setOnClickListener(meFragmentActionHandler); - if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KEY.LANGUAGE_SWITCHING_ENABLED)) { + if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.keyUtils.LANGUAGE_SWITCHING_ENABLED)) { languageSwitcherSection.setOnClickListener(meFragmentActionHandler); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java index d365b59f4..c7c656ce6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java @@ -55,7 +55,7 @@ public class ContactVisit { ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT); private Map currentClientTasks = new HashMap<>(); - private ANCFormUtils ANCFormUtils = new ANCFormUtils(); + private ANCFormUtils ancFormUtils = new ANCFormUtils(); public ContactVisit(Map details, String referral, String baseEntityId, int nextContact, String nextContactVisitDate, PartialContactRepository partialContactRepository, @@ -149,7 +149,7 @@ private void updateEventAndRequiredStepsField(String baseEntityId, PartialContac } //process attention flags - org.smartregister.anc.library.util.ANCFormUtils.processRequiredStepsField(facts, formObject); + ANCFormUtils.processRequiredStepsField(facts, formObject); //process events Event event = ANCJsonFormUtils.processContactFormEvent(formObject, baseEntityId); @@ -226,7 +226,7 @@ private void processFormFieldKeyValues(String baseEntityId, JSONObject object, S !isCheckboxValueEmpty(fieldObject)) { fieldObject.put(PreviousContactRepository.CONTACT_NO, contactNo); - ANCFormUtils.savePreviousContactItem(baseEntityId, fieldObject); + ancFormUtils.savePreviousContactItem(baseEntityId, fieldObject); } if (fieldObject.has(ConstantsUtils.KeyUtils.SECONDARY_VALUES) && @@ -235,7 +235,7 @@ private void processFormFieldKeyValues(String baseEntityId, JSONObject object, S for (int count = 0; count < secondaryValues.length(); count++) { JSONObject secondaryValuesJSONObject = secondaryValues.getJSONObject(count); secondaryValuesJSONObject.put(PreviousContactRepository.CONTACT_NO, contactNo); - ANCFormUtils.savePreviousContactItem(baseEntityId, secondaryValuesJSONObject); + ancFormUtils.savePreviousContactItem(baseEntityId, secondaryValuesJSONObject); } } } @@ -272,7 +272,7 @@ private void processTasks(JSONObject formObject) { private void persistRequiredInvisibleFields(String baseEntityId, String contactNo, JSONObject object) throws JSONException { if (object.has(JsonFormConstants.INVISIBLE_REQUIRED_FIELDS)) { String key = JsonFormConstants.INVISIBLE_REQUIRED_FIELDS + "_" + object.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_TYPE).toLowerCase().replace(" ", "_"); - ANCFormUtils.savePreviousContactItem(baseEntityId, new JSONObject().put(JsonFormConstants.KEY, key) + ancFormUtils.savePreviousContactItem(baseEntityId, new JSONObject().put(JsonFormConstants.KEY, key) .put(JsonFormConstants.VALUE, object.getString(JsonFormConstants.INVISIBLE_REQUIRED_FIELDS)) .put(PreviousContactRepository.CONTACT_NO, contactNo)); } @@ -286,7 +286,7 @@ private void saveExpansionPanelPreviousValues(String baseEntityId, JSONObject fi } for (int j = 0; j < value.length(); j++) { JSONObject valueItem = value.getJSONObject(j); - ANCFormUtils.saveExpansionPanelValues(baseEntityId, contactNo, valueItem); + ancFormUtils.saveExpansionPanelValues(baseEntityId, contactNo, valueItem); } } } From edf80a163788b5a3ebf38229efecad2a477877e0 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 27 Mar 2020 13:49:11 +0300 Subject: [PATCH 006/302] :ok_hand: Fix code review requests --- .../java/org/smartregister/anc/library/model/ContactVisit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java index c7c656ce6..3129598a2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java @@ -213,7 +213,7 @@ private void processFormFieldKeyValues(String baseEntityId, JSONObject object, S for (int i = 0; i < stepArray.length(); i++) { JSONObject fieldObject = stepArray.getJSONObject(i); - org.smartregister.anc.library.util.ANCFormUtils.processSpecialWidgets(fieldObject); + ANCFormUtils.processSpecialWidgets(fieldObject); if (fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.EXPANSION_PANEL)) { saveExpansionPanelPreviousValues(baseEntityId, fieldObject, contactNo); From 71c80d0435cce6328a16362367a159d43177383a Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Sat, 28 Mar 2020 20:53:44 +0300 Subject: [PATCH 007/302] :heavy_check_mark: Add tests --- .../library/repository/PatientRepository.java | 20 +-- .../anc/library/util/ANCJsonFormUtils.java | 26 +-- .../library/util/ANCJsonFormUtilsTest.java | 168 ++++++++++++++++-- 3 files changed, 174 insertions(+), 40 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index f1e33f196..b500a72a4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -108,9 +108,7 @@ public static void updateWomanAlertStatus(String baseEntityId, String alertStatu ContentValues contentValues = new ContentValues(); contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, alertStatus); - getMasterRepository().getWritableDatabase() - .update(getRegisterQueryProvider().getDetailsTable(), contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{baseEntityId}); + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); updateLastInteractedWith(baseEntityId); } @@ -120,8 +118,7 @@ private static void updateLastInteractedWith(String baseEntityId) { lastInteractedWithContentValue.put(DBConstantsUtils.KeyUtils.LAST_INTERACTED_WITH, Calendar.getInstance().getTimeInMillis()); - getMasterRepository().getWritableDatabase().update(getRegisterQueryProvider().getDemographicTable(), lastInteractedWithContentValue, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{baseEntityId}); + updatePatient(baseEntityId, lastInteractedWithContentValue, getRegisterQueryProvider().getDemographicTable()); } public static void updateContactVisitDetails(WomanDetail patientDetail, boolean isFinalize) { @@ -142,8 +139,7 @@ public static void updateContactVisitDetails(WomanDetail patientDetail, boolean } } - getMasterRepository().getWritableDatabase().update(getRegisterQueryProvider().getDetailsTable(), contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{patientDetail.getBaseEntityId()}); + updatePatient(patientDetail.getBaseEntityId(), contentValues, getRegisterQueryProvider().getDetailsTable()); updateLastInteractedWith(patientDetail.getBaseEntityId()); } @@ -156,8 +152,12 @@ public static void updateEDDDate(String baseEntityId, String edd) { } else { contentValues.putNull(DBConstantsUtils.KeyUtils.EDD); } + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + } + + public static void updatePatient(String baseEntityId, ContentValues contentValues, String detailsTable) { getMasterRepository().getWritableDatabase() - .update(getRegisterQueryProvider().getDetailsTable(), contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", + .update(detailsTable, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", new String[]{baseEntityId}); } @@ -169,9 +169,7 @@ public static void updateContactVisitStartDate(String baseEntityId, String conta } else { contentValues.putNull(DBConstantsUtils.KeyUtils.VISIT_START_DATE); } - getMasterRepository().getWritableDatabase() - .update(getRegisterQueryProvider().getDetailsTable(), contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{baseEntityId}); + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 090c22807..ab7d2ec5f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -728,8 +728,7 @@ public static Pair createContactVisitEvent(List formSubmis contactVisitEvent.addDetails(ConstantsUtils.FORM_SUBMISSION_IDS, formSubmissionIDs.toString()); contactVisitEvent.addDetails(ConstantsUtils.OPEN_TEST_TASKS, String.valueOf(getOpenTasks(baseEntityId))); - tagSyncMetadata(AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(), - contactVisitEvent); + tagSyncMetadata(AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(), contactVisitEvent); PatientRepository.updateContactVisitStartDate(baseEntityId, null);//reset contact visit date @@ -738,17 +737,18 @@ public static Pair createContactVisitEvent(List formSubmis EventClientRepository db = AncLibrary.getInstance().getEventClientRepository(); JSONObject clientForm = db.getClientByBaseEntityId(baseEntityId); - JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, contactNo); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); - attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, - womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); - attributes.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, womanDetails.get(DBConstantsUtils.KeyUtils.CONTACT_STATUS)); - attributes.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT)); - attributes.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT)); - attributes.put(DBConstantsUtils.KeyUtils.EDD, womanDetails.get(DBConstantsUtils.KeyUtils.EDD)); - clientForm.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); - + if (clientForm.has(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES)) { + JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, contactNo); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); + attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, + womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); + attributes.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, womanDetails.get(DBConstantsUtils.KeyUtils.CONTACT_STATUS)); + attributes.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT)); + attributes.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT)); + attributes.put(DBConstantsUtils.KeyUtils.EDD, womanDetails.get(DBConstantsUtils.KeyUtils.EDD)); + clientForm.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); + } FormTag formTag = getFormTag(AncLibrary.getInstance().getContext().allSharedPreferences()); formTag.childLocationId = LocationHelper.getInstance().getChildLocationId(); formTag.locationId = LocationHelper.getInstance().getParentLocationId(); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java index 7f921631a..22d6e9b2a 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java @@ -1,8 +1,13 @@ package org.smartregister.anc.library.util; +import android.content.ContentValues; import android.graphics.Bitmap; +import android.support.v4.util.Pair; + +import net.sqlcipher.database.SQLiteDatabase; import org.apache.commons.lang3.tuple.Triple; +import org.jetbrains.annotations.NotNull; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -27,13 +32,19 @@ import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.model.ContactSummaryModel; +import org.smartregister.anc.library.model.Task; +import org.smartregister.anc.library.repository.ContactTasksRepository; +import org.smartregister.anc.library.repository.RegisterQueryProvider; import org.smartregister.clientandeventmodel.Event; import org.smartregister.domain.Photo; import org.smartregister.domain.ProfileImage; import org.smartregister.domain.form.FormLocation; import org.smartregister.location.helper.LocationHelper; import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.repository.EventClientRepository; import org.smartregister.repository.ImageRepository; +import org.smartregister.repository.Repository; +import org.smartregister.service.UserService; import org.smartregister.util.FormUtils; import org.smartregister.util.ImageUtils; import org.smartregister.view.LocationPickerView; @@ -119,17 +130,31 @@ public class ANCJsonFormUtilsTest { private LocationHelper locationHelper; @Mock private Photo photo; + @Mock + private ContactTasksRepository contactTasksRepository; + @Mock + private AllSharedPreferences allSharedPreferences; + @Mock + private UserService userService; + @Mock + private DrishtiApplication drishtiApplication; + @Mock + private Repository repository; + @Mock + private SQLiteDatabase sqLiteDatabase; + @Mock + private EventClientRepository eventClientRepository; + @Mock + private RegisterQueryProvider registerQueryProvider; @Before public void setUp() throws JSONException { - MockitoAnnotations.initMocks(this); formObject = new JSONObject(); JSONObject metadataObject = new JSONObject(); JSONArray fieldsObject = new JSONArray(); - JSONObject fieldObject = new JSONObject(); fieldObject.put(ANCJsonFormUtils.KEY, ConstantsUtils.JsonFormKeyUtils.ANC_ID); fieldObject.put(ANCJsonFormUtils.VALUE, ""); @@ -334,20 +359,7 @@ public void testSaveImageInvokesSaveStaticImageToDiskWithCorrectParamsWhereCompr @Test @PrepareForTest({FormUtils.class, CoreLibrary.class, LocationHelper.class, ImageUtils.class}) public void testGetAutoPopulatedJsonEditFormStringInjectsValuesCorrectlyInForm() throws Exception { - String firstName = "First Name"; - String lastName = "Last Name"; - - Map details = new HashMap<>(); - details.put(DBConstantsUtils.KeyUtils.FIRST_NAME, firstName); - details.put(DBConstantsUtils.KeyUtils.LAST_NAME, lastName); - details.put(DBConstantsUtils.KeyUtils.EDD, "2018-10-19"); - details.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, "2018-08-09"); - details.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, DUMMY_BASE_ENTITY_ID); - details.put(DBConstantsUtils.KeyUtils.ANC_ID, DUMMY_BASE_ENTITY_ID); - details.put(DBConstantsUtils.KeyUtils.DOB, "09-08-1995"); - details.put(DBConstantsUtils.KeyUtils.DOB_UNKNOWN, "false"); - details.put(DBConstantsUtils.KeyUtils.HOME_ADDRESS, "Roysambu"); - details.put(DBConstantsUtils.KeyUtils.AGE, "23"); + Map details = getWomanDetails(); PowerMockito.mockStatic(CoreLibrary.class); PowerMockito.when(CoreLibrary.getInstance()).thenReturn(coreLibrary); @@ -400,6 +412,24 @@ public void testGetAutoPopulatedJsonEditFormStringInjectsValuesCorrectlyInForm() JSONAssert.assertEquals(expectedProcessedJson, resultJsonFormString, new CustomComparator(JSONCompareMode.LENIENT, new Customization("step1.fields[key=age]", new AgeValueMatcher()))); } + @NotNull + private Map getWomanDetails() { + String firstName = "First Name"; + String lastName = "Last Name"; + Map details = new HashMap<>(); + details.put(DBConstantsUtils.KeyUtils.FIRST_NAME, firstName); + details.put(DBConstantsUtils.KeyUtils.LAST_NAME, lastName); + details.put(DBConstantsUtils.KeyUtils.EDD, "2018-10-19"); + details.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, "2018-08-09"); + details.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, DUMMY_BASE_ENTITY_ID); + details.put(DBConstantsUtils.KeyUtils.ANC_ID, DUMMY_BASE_ENTITY_ID); + details.put(DBConstantsUtils.KeyUtils.DOB, "09-08-1995"); + details.put(DBConstantsUtils.KeyUtils.DOB_UNKNOWN, "false"); + details.put(DBConstantsUtils.KeyUtils.HOME_ADDRESS, "Roysambu"); + details.put(DBConstantsUtils.KeyUtils.AGE, "23"); + return details; + } + @Test public void testGetTemplate() { String template = "Occupation: {occupation}"; @@ -540,4 +570,110 @@ public void testSaveRemovedFromANCRegister() { Assert.assertNotNull(eventEventTriple.getRight()); Assert.assertEquals("Update ANC Registration", eventEventTriple.getRight().getEventType()); } + + @Test + @PrepareForTest({AncLibrary.class, LocationHelper.class, DrishtiApplication.class}) + public void testCreateContactVisitEvent() throws JSONException { + String providerId = "demo"; + JSONObject patient = new JSONObject("{\n" + + " \"addresses\": [\n" + + " {\n" + + " \"addressFields\": {\n" + + " \"address2\": \"Home\"\n" + + " },\n" + + " \"addressType\": \"\"\n" + + " }\n" + + " ],\n" + + " \"attributes\": {\n" + + " \"age\": \"19\",\n" + + " \"date_removed\": \"2019-12-12\",\n" + + " \"next_contact\": \"1\",\n" + + " \"next_contact_date\": \"2019-12-11\"\n" + + " },\n" + + " \"baseEntityId\": \"cde284a4-06e4-4d26-8be1-c224479f1905\",\n" + + " \"birthdate\": \"2009-12-11T00:00:00.000Z\",\n" + + " \"birthdateApprox\": false,\n" + + " \"clientApplicationVersion\": 1,\n" + + " \"clientDatabaseVersion\": 2,\n" + + " \"dateCreated\": \"2019-12-11T14:36:00.151Z\",\n" + + " \"dateEdited\": \"2019-12-13T08:34:18.796Z\",\n" + + " \"deathdateApprox\": false,\n" + + " \"firstName\": \"Diana\",\n" + + " \"gender\": \"F\",\n" + + " \"id\": \"f09efb0c-3c18-4ebf-a567-8a71f3930068\",\n" + + " \"identifiers\": {\n" + + " \"ANC_ID\": \"14936017\",\n" + + " \"OPENMRS_UUID\": \"2da87e22-0200-4be2-a0a0-7e77b88594bb\"\n" + + " },\n" + + " \"lastName\": \"Princeness\",\n" + + " \"relationships\": {},\n" + + " \"revision\": \"v6\",\n" + + " \"serverVersion\": 1576225866661,\n" + + " \"type\": \"Client\"\n" + + "}"); + + Map details = getWomanDetails(); + details.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, "4"); + details.put(DBConstantsUtils.KeyUtils.VISIT_START_DATE, "2020-03-05"); + + + List formSubmissionIds = new ArrayList<>(); + formSubmissionIds.add("f71f74e7-8a5e-41a5-aadf-0900034ba974"); + formSubmissionIds.add("bb5d2ca2-d0ea-4a8d-97c8-b3ac2ef6d7d3"); + formSubmissionIds.add("2a3f8ed5-03f6-443d-96bb-209679c18512"); + + List taskList = new ArrayList<>(); + taskList.add(getTask()); + + PowerMockito.mockStatic(AncLibrary.class); + PowerMockito.when(AncLibrary.getInstance()).thenReturn(ancLibrary); + PowerMockito.when(ancLibrary.getDatabaseVersion()).thenReturn(2); + + PowerMockito.mockStatic(LocationHelper.class); + PowerMockito.when(LocationHelper.getInstance()).thenReturn(locationHelper); + PowerMockito.when(locationHelper.getOpenMrsLocationId("locality")).thenReturn("821a7e48-2592-46be-99d6-d29bc4e58839"); + + PowerMockito.when(ancLibrary.getContactTasksRepository()).thenReturn(contactTasksRepository); + PowerMockito.when(contactTasksRepository.getOpenTasks(ArgumentMatchers.anyString())).thenReturn(taskList); + + PowerMockito.when(ancLibrary.getContext()).thenReturn(context); + PowerMockito.when(context.userService()).thenReturn(userService); + PowerMockito.when(userService.getAllSharedPreferences()).thenReturn(allSharedPreferences); + + Mockito.when(allSharedPreferences.fetchCurrentLocality()).thenReturn("locality"); + Mockito.when(allSharedPreferences.fetchRegisteredANM()).thenReturn(providerId); + Mockito.when(allSharedPreferences.fetchDefaultLocalityId(providerId)).thenReturn("4fca717e-6072-472e-82f6-bfe3907def66"); + Mockito.when(allSharedPreferences.fetchDefaultTeam(providerId)).thenReturn("bukesa"); + Mockito.when(allSharedPreferences.fetchDefaultTeamId(providerId)).thenReturn("39305854-5db8-4538-a367-8d4b7118f9af"); + + PowerMockito.mockStatic(DrishtiApplication.class); + PowerMockito.when(DrishtiApplication.getInstance()).thenReturn(drishtiApplication); + PowerMockito.when(drishtiApplication.getRepository()).thenReturn(repository); + PowerMockito.when(repository.getWritableDatabase()).thenReturn(sqLiteDatabase); + PowerMockito.when(sqLiteDatabase.update(ArgumentMatchers.anyString(),ArgumentMatchers.eq(new ContentValues()),ArgumentMatchers.anyString(),ArgumentMatchers.eq(new String[]{}))).thenReturn(2); + + PowerMockito.when(ancLibrary.getRegisterQueryProvider()).thenReturn(registerQueryProvider); + PowerMockito.when(registerQueryProvider.getDetailsTable()).thenReturn(DBConstantsUtils.RegisterTable.DETAILS); + + PowerMockito.when(ancLibrary.getEventClientRepository()).thenReturn(eventClientRepository); + PowerMockito.when(eventClientRepository.getClientByBaseEntityId(ArgumentMatchers.anyString())).thenReturn(patient); + + PowerMockito.when(ancLibrary.getContext()).thenReturn(context); + PowerMockito.when(context.allSharedPreferences()).thenReturn(allSharedPreferences); + Mockito.when(allSharedPreferences.fetchRegisteredANM()).thenReturn(providerId); + + Pair eventPair = ANCJsonFormUtils.createContactVisitEvent(formSubmissionIds, details); + Assert.assertNotNull(eventPair); + Assert.assertNotNull(eventPair.first); + Assert.assertEquals("Contact Visit", eventPair.first.getEventType()); + + Assert.assertNotNull(eventPair.second); + Assert.assertEquals("Update ANC Registration", eventPair.second.getEventType()); + } + + private Task getTask() { + Task task = new Task(DUMMY_BASE_ENTITY_ID, "myTask", String.valueOf(new JSONObject()), true, true); + task.setId(Long.valueOf(1)); + return task; + } } From 07acc2bf423176caeed9ddea303822497b79f934 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Sat, 28 Mar 2020 20:55:08 +0300 Subject: [PATCH 008/302] :hammer: Reformat code --- .../anc/library/repository/PatientRepository.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index b500a72a4..754e517d4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -113,6 +113,12 @@ public static void updateWomanAlertStatus(String baseEntityId, String alertStatu updateLastInteractedWith(baseEntityId); } + public static void updatePatient(String baseEntityId, ContentValues contentValues, String detailsTable) { + getMasterRepository().getWritableDatabase() + .update(detailsTable, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", + new String[]{baseEntityId}); + } + private static void updateLastInteractedWith(String baseEntityId) { ContentValues lastInteractedWithContentValue = new ContentValues(); @@ -155,12 +161,6 @@ public static void updateEDDDate(String baseEntityId, String edd) { updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); } - public static void updatePatient(String baseEntityId, ContentValues contentValues, String detailsTable) { - getMasterRepository().getWritableDatabase() - .update(detailsTable, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{baseEntityId}); - } - public static void updateContactVisitStartDate(String baseEntityId, String contactVisitStartDate) { ContentValues contentValues = new ContentValues(); From dd57373047e35b90bd97e8899fc0abaa4a9b60be Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 2 Apr 2020 17:13:38 +0300 Subject: [PATCH 009/302] :zap: Adding the interpolated forms --- opensrp-anc/build.gradle | 4 +- .../assets/json.form/anc_quick_check.json | 133 +++++++++--------- .../main/assets/json.form/anc_register.json | 65 ++++----- .../library/activity/BaseContactActivity.java | 1 + .../activity/BaseHomeRegisterActivity.java | 2 + .../smartregister/anc/library/util/Utils.java | 8 +- .../resources/anc_quick_check_en.properties | 65 +++++++++ .../test/resources/anc_register_en.properties | 31 ++++ reference-app/build.gradle | 4 +- reference-app/src/main/AndroidManifest.xml | 3 +- .../resources/anc_quick_check_en.properties | 65 +++++++++ .../test/resources/anc_register_en.properties | 31 ++++ 12 files changed, 307 insertions(+), 105 deletions(-) create mode 100644 opensrp-anc/src/test/resources/anc_quick_check_en.properties create mode 100644 opensrp-anc/src/test/resources/anc_register_en.properties create mode 100644 reference-app/src/test/resources/anc_quick_check_en.properties create mode 100644 reference-app/src/test/resources/anc_register_en.properties diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 19e961355..cb80866ec 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.28-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3004-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -177,7 +177,7 @@ dependencies { annotationProcessor 'com.jakewharton:butterknife:10.2.0' implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar' implementation 'commons-validator:commons-validator:1.6' - implementation('com.crashlytics.sdk.android:crashlytics:2.9.3@aar') { + implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { transitive = true } implementation 'com.google.code.gson:gson:2.8.6' diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index 7af26eba3..f714a9efa 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -55,7 +55,7 @@ } }, "step1": { - "title": "Quick Check", + "title": "{{anc_quick_check.step1.title}}", "fields": [ { "key": "contact_reason", @@ -63,26 +63,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160288AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason for coming to facility", + "label": "{{anc_quick_check.step1.contact_reason.label}}", "label_text_style": "bold", "options": [ { "key": "first_contact", - "text": "First contact", + "text": "{{anc_quick_check.step1.contact_reason.options.first_contact.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165269AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "scheduled_contact", - "text": "Scheduled contact", + "text": "{{anc_quick_check.step1.contact_reason.options.scheduled_contact.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "specific_complaint", - "text": "Specific complaint", + "text": "{{anc_quick_check.step1.contact_reason.options.specific_complaint.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -90,7 +90,7 @@ ], "v_required": { "value": "true", - "err": "Reason for coming to facility is required" + "err": "{{anc_quick_check.step1.contact_reason.v_required.err}}" } }, { @@ -99,7 +99,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Specific complaint(s)", + "label": "{{anc_quick_check.step1.specific_complaint.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -109,7 +109,7 @@ "options": [ { "key": "abnormal_discharge", - "text": "Abnormal vaginal discharge", + "text": "{{anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -117,7 +117,7 @@ }, { "key": "altered_skin_color", - "text": "Jaundice", + "text": "{{anc_quick_check.step1.specific_complaint.options.altered_skin_color.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -125,7 +125,7 @@ }, { "key": "changes_in_bp", - "text": "Changes in blood pressure", + "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -133,7 +133,7 @@ }, { "key": "constipation", - "text": "Constipation", + "text": "{{anc_quick_check.step1.specific_complaint.options.constipation.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -141,7 +141,7 @@ }, { "key": "contractions", - "text": "Contractions", + "text": "{{anc_quick_check.step1.specific_complaint.options.contractions.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -149,7 +149,7 @@ }, { "key": "cough", - "text": "Cough", + "text": "{{anc_quick_check.step1.specific_complaint.options.cough.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -157,7 +157,7 @@ }, { "key": "depression", - "text": "Depression", + "text": "{{anc_quick_check.step1.specific_complaint.options.depression.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -165,7 +165,7 @@ }, { "key": "anxiety", - "text": "Anxiety", + "text": "{{anc_quick_check.step1.specific_complaint.options.anxiety.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -173,7 +173,7 @@ }, { "key": "dizziness", - "text": "Dizziness", + "text": "{{anc_quick_check.step1.specific_complaint.options.dizziness.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -181,7 +181,7 @@ }, { "key": "domestic_violence", - "text": "Domestic violence", + "text": "{{anc_quick_check.step1.specific_complaint.options.domestic_violence.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -189,7 +189,7 @@ }, { "key": "extreme_pelvic_pain", - "text": "Extreme pelvic pain - can't walk (symphysis pubis dysfunction)", + "text": "{{anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -197,7 +197,7 @@ }, { "key": "fever", - "text": "Fever", + "text": "{{anc_quick_check.step1.specific_complaint.options.fever.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -205,7 +205,7 @@ }, { "key": "full_abdominal_pain", - "text": "Full abdominal pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -213,7 +213,7 @@ }, { "key": "flu_symptoms", - "text": "Flu symptoms", + "text": "{{anc_quick_check.step1.specific_complaint.options.flu_symptoms.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -221,7 +221,7 @@ }, { "key": "fluid_loss", - "text": "Fluid loss", + "text": "{{anc_quick_check.step1.specific_complaint.options.fluid_loss.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -229,7 +229,7 @@ }, { "key": "headache", - "text": "Headache", + "text": "{{anc_quick_check.step1.specific_complaint.options.headache.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -237,7 +237,7 @@ }, { "key": "heartburn", - "text": "Heartburn", + "text": "{{anc_quick_check.step1.specific_complaint.options.heartburn.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -245,7 +245,7 @@ }, { "key": "leg_cramps", - "text": "Leg cramps", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_cramps.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -253,7 +253,7 @@ }, { "key": "leg_pain", - "text": "Leg pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -261,7 +261,7 @@ }, { "key": "leg_redness", - "text": "Leg redness", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_redness.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -269,7 +269,7 @@ }, { "key": "low_back_pain", - "text": "Low back pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.low_back_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -277,7 +277,7 @@ }, { "key": "pelvic_pain", - "text": "Pelvic pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.pelvic_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -285,7 +285,7 @@ }, { "key": "nausea_vomiting_diarrhea", - "text": "Nausea / vomiting / diarrhea", + "text": "{{anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -293,7 +293,7 @@ }, { "key": "no_fetal_movement", - "text": "No fetal movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -301,7 +301,7 @@ }, { "key": "oedema", - "text": "Oedema", + "text": "{{anc_quick_check.step1.specific_complaint.options.oedema.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -309,7 +309,7 @@ }, { "key": "other_bleeding", - "text": "Other bleeding", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_bleeding.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -317,7 +317,7 @@ }, { "key": "other_pain", - "text": "Other pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -325,7 +325,7 @@ }, { "key": "other_psychological_symptoms", - "text": "Other psychological symptoms", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -333,7 +333,7 @@ }, { "key": "other_skin_disorder", - "text": "Other skin disorder", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -341,7 +341,7 @@ }, { "key": "other_types_of_violence", - "text": "Other types of violence", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -349,7 +349,7 @@ }, { "key": "dysuria", - "text": "Pain during urination (dysuria)", + "text": "{{anc_quick_check.step1.specific_complaint.options.dysuria.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -357,7 +357,7 @@ }, { "key": "pruritus", - "text": "Pruritus", + "text": "{{anc_quick_check.step1.specific_complaint.options.pruritus.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -365,7 +365,7 @@ }, { "key": "reduced_fetal_movement", - "text": "Reduced or poor fetal movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -373,7 +373,7 @@ }, { "key": "shortness_of_breath", - "text": "Shortness of breath", + "text": "{{anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -381,7 +381,7 @@ }, { "key": "tiredness", - "text": "Tiredness", + "text": "{{anc_quick_check.step1.specific_complaint.options.tiredness.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -389,7 +389,7 @@ }, { "key": "trauma", - "text": "Trauma", + "text": "{{anc_quick_check.step1.specific_complaint.options.trauma.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -397,7 +397,7 @@ }, { "key": "bleeding", - "text": "Vaginal bleeding", + "text": "{{anc_quick_check.step1.specific_complaint.options.bleeding.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -405,7 +405,7 @@ }, { "key": "visual_disturbance", - "text": "Visual disturbance", + "text": "{{anc_quick_check.step1.specific_complaint.options.visual_disturbance.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -413,7 +413,7 @@ }, { "key": "other_specify", - "text": "Other (specify)", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_specify.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -422,7 +422,7 @@ ], "v_required": { "value": "true", - "err": "Specific complain is required" + "err": "{{anc_quick_check.step1.specific_complaint.v_required.err}}" }, "relevance": { "step1:contact_reason": { @@ -438,10 +438,10 @@ "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "normal_edit_text", "edit_text_style": "bordered", - "hint": "Specify", + "hint": "{{anc_quick_check.step1.specific_complaint_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{anc_quick_check.step1.specific_complaint_other.v_regex.err}}" }, "relevance": { "step1:specific_complaint": { @@ -461,7 +461,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160939AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Danger signs", + "label": "{{anc_quick_check.step1.danger_signs.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -470,7 +470,7 @@ "options": [ { "key": "danger_none", - "text": "None", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_none.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -478,7 +478,7 @@ }, { "key": "danger_bleeding", - "text": "Bleeding vaginally", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_bleeding.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -486,7 +486,7 @@ }, { "key": "central_cyanosis", - "text": "Central cyanosis", + "text": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.text}}", "label_info_text": "Bluish discolouration around the mucous membranes in the mouth, lips and tongue", "label_info_title": "Central cyanosis", "value": false, @@ -496,7 +496,7 @@ }, { "key": "convulsing", - "text": "Convulsing", + "text": "{{anc_quick_check.step1.danger_signs.options.convulsing.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -504,7 +504,7 @@ }, { "key": "danger_fever", - "text": "Fever", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_fever.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -512,7 +512,7 @@ }, { "key": "severe_headache", - "text": "Severe headache", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_headache.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -520,7 +520,7 @@ }, { "key": "visual_disturbance", - "text": "Visual disturbance", + "text": "{{anc_quick_check.step1.danger_signs.options.visual_disturbance.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -528,7 +528,7 @@ }, { "key": "imminent_delivery", - "text": "Imminent delivery", + "text": "{{anc_quick_check.step1.danger_signs.options.imminent_delivery.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -536,7 +536,7 @@ }, { "key": "labour", - "text": "Labour", + "text": "{{anc_quick_check.step1.danger_signs.options.labour.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -544,7 +544,7 @@ }, { "key": "looks_very_ill", - "text": "Looks very ill", + "text": "{{anc_quick_check.step1.danger_signs.options.looks_very_ill.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -552,7 +552,7 @@ }, { "key": "severe_vomiting", - "text": "Severe vomiting", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_vomiting.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -560,7 +560,7 @@ }, { "key": "severe_pain", - "text": "Severe pain", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -568,7 +568,7 @@ }, { "key": "severe_abdominal_pain", - "text": "Severe abdominal pain", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -576,7 +576,7 @@ }, { "key": "unconscious", - "text": "Unconscious", + "text": "{{anc_quick_check.step1.danger_signs.options.unconscious.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -585,7 +585,7 @@ ], "v_required": { "value": "true", - "err": "Danger signs is required" + "err": "{{anc_quick_check.step1.danger_signs.v_required.err}}" }, "relevance": { "rules-engine": { @@ -596,5 +596,6 @@ } } ] - } + }, + "properties_file_name": "anc_quick_check" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 5b49920f0..56de7fd38 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -52,7 +52,7 @@ } }, "step1": { - "title": "ANC Registration", + "title": "{{anc_register.step1.title}}", "fields": [ { "key": "wom_image", @@ -69,16 +69,16 @@ "openmrs_entity_id": "ANC_ID", "type": "barcode", "barcode_type": "qrcode", - "hint": "ANC ID", + "hint": "{{anc_register.step1.anc_id.hint}}", "value": "0", "scanButtonText": "Scan QR Code", "v_numeric": { "value": "true", - "err": "Please enter a valid ANC ID" + "err": "{{anc_register.step1.anc_id.v_numeric.err}}" }, "v_required": { "value": "true", - "err": "Please enter the Woman's ANC ID" + "err": "{{anc_register.step1.anc_id.v_required.err}}" } }, { @@ -87,15 +87,15 @@ "openmrs_entity": "person", "openmrs_entity_id": "first_name", "type": "edit_text", - "hint": "First name", + "hint": "{{anc_register.step1.first_name.hint}}", "edit_type": "name", "v_required": { "value": "true", - "err": "Please enter the first name" + "err": "{{anc_register.step1.first_name.v_required.err}}" }, "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter a valid name" + "err": "{{anc_register.step1.first_name.v_regex.err}}" } }, { @@ -104,15 +104,15 @@ "openmrs_entity": "person", "openmrs_entity_id": "last_name", "type": "edit_text", - "hint": "Last name", + "hint": "{{anc_register.step1.last_name.hint}}", "edit_type": "name", "v_required": { "value": "true", - "err": "Please enter the last name" + "err": "{{anc_register.step1.last_name.v_required.err}}" }, "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter a valid name" + "err": "{{anc_register.step1.last_name.v_regex.err}}" } }, { @@ -159,16 +159,16 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "date_picker", - "hint": "Date of birth (DOB)", + "hint": "{{anc_register.step1.dob_entered.hint}}", "expanded": false, "duration": { - "label": "Age" + "label": "{{anc_register.step1.dob_entered.duration.label}}" }, "min_date": "today-49y", "max_date": "today-10y", "v_required": { "value": "true", - "err": "Please enter the date of birth" + "err": "{{anc_register.step1.dob_entered.v_required.err}}" }, "relevance": { "step1:dob_unknown": { @@ -191,7 +191,7 @@ "options": [ { "key": "dob_unknown", - "text": "DOB unknown?", + "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", @@ -236,10 +236,10 @@ "openmrs_entity": "person", "openmrs_entity_id": "age", "type": "edit_text", - "hint": "Age", + "hint": "{{anc_register.step1.age_entered.hint}}", "v_numeric": { "value": "true", - "err": "Age must be a number" + "err": "{{anc_register.step1.age_entered.v_numeric.err}}" }, "v_min": { "value": "10", @@ -262,7 +262,7 @@ }, "v_required": { "value": "true", - "err": "Please enter the woman's age" + "err": "{{anc_register.step1.age_entered.v_required.err}}" } }, { @@ -271,11 +271,11 @@ "openmrs_entity": "person_address", "openmrs_entity_id": "address2", "type": "edit_text", - "hint": "Home address", + "hint": "{{anc_register.step1.home_address.hint}}", "edit_type": "name", "v_required": { "value": "true", - "err": "Please enter the woman's home address" + "err": "{{anc_register.step1.home_address.v_required.err}}" } }, { @@ -284,14 +284,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Mobile phone number", + "hint": "{{anc_register.step1.phone_number.hint}}", "v_numeric": { "value": "true", - "err": "Phone number must be numeric" + "err": "{{anc_register.step1.phone_number.v_numeric.err}}" }, "v_required": { "value": "true", - "err": "Please specify the woman's phone number" + "err": "{{anc_register.step1.phone_number.v_required.err}}" } }, { @@ -300,27 +300,27 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Woman wants to receive reminders during pregnancy", - "label_info_text": "Does she want to receive reminders for care and messages regarding her health throughout her pregnancy?", + "label": "{{anc_register.step1.reminders.label}}", + "label_info_text": "{{anc_register.step1.reminders.label_info_text}}", "label_text_style": "normal", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_register.step1.reminders.options.yes.text}}", "openmrs_entity": "", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_register.step1.reminders.options.no.text}}", "openmrs_entity": "", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], "v_required": { "value": true, - "err": "Please select whether the woman has agreed to receiving reminder notifications" + "err": "{{anc_register.step1.reminders.v_required.err}}" } }, { @@ -329,13 +329,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Alternate contact name", + "hint": "{{anc_register.step1.alt_name.hint}}", "edit_type": "name", "look_up": "true", "entity_id": "", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter a valid VHT name" + "err": "{{anc_register.step1.alt_name.v_regex.err}}" } }, { @@ -344,10 +344,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Alternate contact phone number", + "hint": "{{anc_register.step1.alt_phone_number.hint}}", "v_numeric": { "value": "true", - "err": "Phone number must be numeric" + "err": "{{anc_register.step1.alt_phone_number.v_numeric.err}}" } }, { @@ -415,5 +415,6 @@ "value": "" } ] - } + }, + "properties_file_name": "anc_register" } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java index 38bdf1374..98e2811cc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java @@ -100,6 +100,7 @@ private void formStartActions(JSONObject form, Contact contact, Intent intent) { intent.putExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP, getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP)); intent.putExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME, contact.getFormName()); intent.putExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, contactNo); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); } catch (JSONException e) { Timber.e(e, " --> formStartActions"); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 33d8254db..52760f9d2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -17,6 +17,7 @@ import com.google.android.gms.vision.barcode.Barcode; import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.constants.JsonFormConstants; import org.apache.commons.lang3.StringUtils; import org.greenrobot.eventbus.EventBus; @@ -195,6 +196,7 @@ public void startFormActivity(String formName, String entityId, String metaData) public void startFormActivity(JSONObject form) { Intent intent = new Intent(this, JsonFormActivity.class); intent.putExtra(ConstantsUtils.JsonFormExtraUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 6bf4a0439..42db7f3d0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -21,6 +21,7 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import net.sqlcipher.database.SQLiteDatabase; @@ -94,7 +95,8 @@ public class Utils extends org.smartregister.util.Utils { public static void saveLanguage(String language) { Utils.getAllSharedPreferences().saveLanguagePreference(language); - setLocale(new Locale(language)); + Locale.setDefault(new Locale(language)); + NativeFormLangUtils.setLocale(new Locale(language)); } public static void setLocale(Locale locale) { @@ -103,8 +105,10 @@ public static void setLocale(Locale locale) { DisplayMetrics displayMetrics = resources.getDisplayMetrics(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { configuration.setLocale(locale); + Locale.setDefault(locale); AncLibrary.getInstance().getApplicationContext().createConfigurationContext(configuration); } else { + Locale.setDefault(locale); configuration.locale = locale; resources.updateConfiguration(configuration, displayMetrics); } @@ -234,6 +238,7 @@ public static void proceedToContact(String baseEntityId, HashMap intent.putExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP, personObjectClient); intent.putExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME, partialContactRequest.getType()); intent.putExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, partialContactRequest.getContactNo()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); Activity activity = (Activity) context; activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); } else { @@ -243,6 +248,7 @@ public static void proceedToContact(String baseEntityId, HashMap intent.putExtra(ConstantsUtils.IntentKeyUtils.FORM_NAME, partialContactRequest.getType()); intent.putExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, Integer.valueOf(personObjectClient.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT))); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); context.startActivity(intent); } diff --git a/opensrp-anc/src/test/resources/anc_quick_check_en.properties b/opensrp-anc/src/test/resources/anc_quick_check_en.properties new file mode 100644 index 000000000..38c0bad6e --- /dev/null +++ b/opensrp-anc/src/test/resources/anc_quick_check_en.properties @@ -0,0 +1,65 @@ +anc_quick_check.step1.specific_complaint.options.dizziness.text = Dizziness +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Domestic violence +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Other bleeding +anc_quick_check.step1.specific_complaint.options.depression.text = Depression +anc_quick_check.step1.specific_complaint.options.heartburn.text = Heartburn +anc_quick_check.step1.specific_complaint.options.other_specify.text = Other (specify) +anc_quick_check.step1.specific_complaint.options.oedema.text = Oedema +anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions +anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Leg cramps +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Other psychological symptoms +anc_quick_check.step1.specific_complaint.options.fever.text = Fever +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Scheduled contact +anc_quick_check.step1.danger_signs.options.severe_headache.text = Severe headache +anc_quick_check.step1.danger_signs.options.danger_fever.text = Fever +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Looks very ill +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Visual disturbance +anc_quick_check.step1.specific_complaint.options.leg_redness.text = Leg redness +anc_quick_check.step1.specific_complaint_other.hint = Specify +anc_quick_check.step1.specific_complaint.options.tiredness.text = Tiredness +anc_quick_check.step1.danger_signs.options.severe_pain.text = Severe pain +anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Central cyanosis +anc_quick_check.step1.specific_complaint_other.v_regex.err = Please enter valid content +anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Other skin disorder +anc_quick_check.step1.danger_signs.options.danger_none.text = None +anc_quick_check.step1.specific_complaint.label = Specific complaint(s) +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Leg pain +anc_quick_check.step1.title = Quick Check +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Reduced or poor fetal movement +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Bleeding vaginally +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Full abdominal pain +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge +anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Other types of violence +anc_quick_check.step1.specific_complaint.options.other_pain.text = Other pain +anc_quick_check.step1.specific_complaint.options.anxiety.text = Anxiety +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Extreme pelvic pain - can't walk (symphysis pubis dysfunction) +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Pelvic pain +anc_quick_check.step1.specific_complaint.options.bleeding.text = Vaginal bleeding +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Changes in blood pressure +anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Shortness of breath +anc_quick_check.step1.specific_complaint.v_required.err = Specific complain is required +anc_quick_check.step1.contact_reason.v_required.err = Reason for coming to facility is required +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Severe abdominal pain +anc_quick_check.step1.contact_reason.label = Reason for coming to facility +anc_quick_check.step1.danger_signs.label = Danger signs +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Low back pain +anc_quick_check.step1.specific_complaint.options.trauma.text = Trauma +anc_quick_check.step1.danger_signs.options.unconscious.text = Unconscious +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaundice +anc_quick_check.step1.danger_signs.options.labour.text = Labour +anc_quick_check.step1.specific_complaint.options.headache.text = Headache +anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Visual disturbance +anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Imminent delivery +anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus +anc_quick_check.step1.specific_complaint.options.cough.text = Cough +anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain during urination (dysuria) +anc_quick_check.step1.contact_reason.options.first_contact.text = First contact +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Flu symptoms +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea / vomiting / diarrhea +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = No fetal movement +anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsing +anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Severe vomiting +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Specific complaint +anc_quick_check.step1.danger_signs.v_required.err = Danger signs is required diff --git a/opensrp-anc/src/test/resources/anc_register_en.properties b/opensrp-anc/src/test/resources/anc_register_en.properties new file mode 100644 index 000000000..072478062 --- /dev/null +++ b/opensrp-anc/src/test/resources/anc_register_en.properties @@ -0,0 +1,31 @@ +anc_register.step1.dob_unknown.options.dob_unknown.text = DOB unknown? +anc_register.step1.reminders.options.no.text = No +anc_register.step1.reminders.label = Woman wants to receive reminders during pregnancy +anc_register.step1.dob_entered.v_required.err = Please enter the date of birth +anc_register.step1.home_address.hint = Home address +anc_register.step1.alt_name.v_regex.err = Please enter a valid VHT name +anc_register.step1.anc_id.hint = ANC ID +anc_register.step1.alt_phone_number.v_numeric.err = Phone number must be numeric +anc_register.step1.age_entered.v_numeric.err = Age must be a number +anc_register.step1.phone_number.hint = Mobile phone number +anc_register.step1.last_name.v_required.err = Please enter the last name +anc_register.step1.last_name.v_regex.err = Please enter a valid name +anc_register.step1.first_name.v_required.err = Please enter the first name +anc_register.step1.dob_entered.hint = Date of birth (DOB) +anc_register.step1.age_entered.hint = Age +anc_register.step1.reminders.label_info_text = Does she want to receive reminders for care and messages regarding her health throughout her pregnancy? +anc_register.step1.title = ANC Registration +anc_register.step1.anc_id.v_numeric.err = Please enter a valid ANC ID +anc_register.step1.alt_name.hint = Alternate contact name +anc_register.step1.home_address.v_required.err = Please enter the woman's home address +anc_register.step1.first_name.hint = First name +anc_register.step1.alt_phone_number.hint = Alternate contact phone number +anc_register.step1.reminders.v_required.err = Please select whether the woman has agreed to receiving reminder notifications +anc_register.step1.first_name.v_regex.err = Please enter a valid name +anc_register.step1.reminders.options.yes.text = Yes +anc_register.step1.phone_number.v_numeric.err = Phone number must be numeric +anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID +anc_register.step1.last_name.hint = Last name +anc_register.step1.age_entered.v_required.err = Please enter the woman's age +anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number +anc_register.step1.dob_entered.duration.label = Age diff --git a/reference-app/build.gradle b/reference-app/build.gradle index cadd0a7aa..21d61de28 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -130,7 +130,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc-preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.28-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3004-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/AndroidManifest.xml b/reference-app/src/main/AndroidManifest.xml index d49ab07b6..34150416b 100644 --- a/reference-app/src/main/AndroidManifest.xml +++ b/reference-app/src/main/AndroidManifest.xml @@ -20,8 +20,7 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/AncAppTheme" - android:usesCleartextTraffic="true"> + android:theme="@style/AncAppTheme"> Date: Sat, 4 Apr 2020 21:09:26 +0300 Subject: [PATCH 010/302] :zap: Add the interpolated forms and properties files --- opensrp-anc/build.gradle | 2 +- .../json.form/anc_counselling_treatment.json | 1301 +++++++++-------- .../assets/json.form/anc_physical_exam.json | 345 ++--- .../main/assets/json.form/anc_profile.json | 653 ++++----- .../json.form/anc_site_characteristics.json | 41 +- .../json.form/anc_symptoms_follow_up.json | 379 ++--- .../src/main/assets/json.form/anc_test.json | 117 +- .../activity/ContactJsonFormActivity.java | 1 + .../smartregister/anc/library/util/Utils.java | 2 +- .../anc_counselling_treatment_en.properties | 648 ++++++++ .../resources/anc_physical_exam_en.properties | 169 +++ .../main/resources/anc_profile_en.properties | 317 ++++ .../resources/anc_quick_check_en.properties | 0 .../resources/anc_register_en.properties | 0 .../anc_site_characteristics_en.properties | 19 + .../anc_symptoms_follow_up_en.properties | 188 +++ .../main/resources/anc_test._en.properties | 57 + .../resources/robolectric.properties | 0 reference-app/build.gradle | 2 +- .../anc_counselling_treatment_en.properties | 648 ++++++++ .../resources/anc_physical_exam_en.properties | 169 +++ .../main/resources/anc_profile_en.properties | 317 ++++ .../resources/anc_quick_check_en.properties | 0 .../resources/anc_register_en.properties | 0 .../anc_site_characteristics_en.properties | 19 + .../anc_symptoms_follow_up_en.properties | 188 +++ .../src/main/resources/anc_test_en.properties | 57 + .../resources/robolectric.properties | 0 28 files changed, 4221 insertions(+), 1418 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties create mode 100644 opensrp-anc/src/main/resources/anc_physical_exam_en.properties create mode 100644 opensrp-anc/src/main/resources/anc_profile_en.properties rename opensrp-anc/src/{test => main}/resources/anc_quick_check_en.properties (100%) rename opensrp-anc/src/{test => main}/resources/anc_register_en.properties (100%) create mode 100644 opensrp-anc/src/main/resources/anc_site_characteristics_en.properties create mode 100644 opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties create mode 100644 opensrp-anc/src/main/resources/anc_test._en.properties rename opensrp-anc/src/{test => main}/resources/robolectric.properties (100%) create mode 100644 reference-app/src/main/resources/anc_counselling_treatment_en.properties create mode 100644 reference-app/src/main/resources/anc_physical_exam_en.properties create mode 100644 reference-app/src/main/resources/anc_profile_en.properties rename reference-app/src/{test => main}/resources/anc_quick_check_en.properties (100%) rename reference-app/src/{test => main}/resources/anc_register_en.properties (100%) create mode 100644 reference-app/src/main/resources/anc_site_characteristics_en.properties create mode 100644 reference-app/src/main/resources/anc_symptoms_follow_up_en.properties create mode 100644 reference-app/src/main/resources/anc_test_en.properties rename reference-app/src/{test => main}/resources/robolectric.properties (100%) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index cb80866ec..6e1e524de 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.3004-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json index 578d49c1f..1b0b25592 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json +++ b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json @@ -82,7 +82,7 @@ "flu_date" ], "step1": { - "title": "Hospital Referral", + "title": "{{anc_counselling_treatment.step1.title}}", "next": "step2", "fields": [ { @@ -91,8 +91,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Danger sign(s): {danger_signs}", - "toaster_info_text": "Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital!", + "text": "{{anc_counselling_treatment.step1.danger_signs_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -115,8 +115,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg", - "toaster_info_text": "Procedure:\n\n- Refer urgently to hospital for further investigation and management!", + "text": "{{anc_counselling_treatment.step1.severe_hypertension_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -139,8 +139,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia}", - "toaster_info_text": "Procedure:\n\n- Refer urgently to hospital for further investigation and management!", + "text": "{{anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -163,9 +163,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia diagnosis", - "toaster_info_text": "Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan", - "toaster_info_title": "Pre-eclampsia diagnosis", + "text": "{{anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -181,9 +181,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Severe pre-eclampsia diagnosis", - "toaster_info_text": "Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital!", - "toaster_info_title": "Severe pre-eclampsia diagnosis", + "text": "{{anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -199,9 +199,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Fever: {body_temp_repeat}ºC", - "toaster_info_text": "Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital!", - "toaster_info_title": "Fever: {body_temp_repeat}ºC", + "text": "{{anc_counselling_treatment.step1.fever_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.fever_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step1.fever_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -224,8 +224,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal pulse rate: {pulse_rate_repeat}bpm", - "toaster_info_text": "Procedure:\n\n- Check for fever, infection, respiratory distress, and arrhythmia\n\n- Refer for further investigation", + "text": "{{anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -248,8 +248,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Respiratory distress: {respiratory_exam_abnormal}", - "toaster_info_text": "Procedure:\n\n- Refer urgently to hospital!", + "text": "{{anc_counselling_treatment.step1.resp_distress_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -272,8 +272,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Low oximetry: {oximetry}%", - "toaster_info_text": "Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital!", + "text": "{{anc_counselling_treatment.step1.low_oximetry_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -296,8 +296,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal cardiac exam: {cardiac_exam_abnormal}", - "toaster_info_text": "Procedure:\n\n- Refer urgently to hospital!", + "text": "{{anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -320,8 +320,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal breast exam: {breast_exam_abnormal}", - "toaster_info_text": "Procedure:\n\n- Refer for further investigation", + "text": "{{anc_counselling_treatment.step1.abn_breast_exam_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -344,8 +344,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal abdominal exam: {abdominal_exam_abnormal}", - "toaster_info_text": "Procedure:\n\n- Refer for further investigation", + "text": "{{anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -368,8 +368,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal pelvic exam: {pelvic_exam_abnormal}", - "toaster_info_text": "Procedure:\n\n- Refer for further investigation", + "text": "{{anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -392,9 +392,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "No fetal heartbeat observed", - "toaster_info_text": "Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital.", - "toaster_info_title": "No fetal heartbeat observed", + "text": "{{anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -410,8 +410,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm", - "toaster_info_text": "Procedure:\n\n- Refer to hospital", + "text": "{{anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -434,20 +434,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1788AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Referred to hospital?", + "label": "{{anc_counselling_treatment.step1.referred_hosp.label}}", "multi_relevance": true, "label_text_style": "bold", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_counselling_treatment.step1.referred_hosp.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_counselling_treatment.step1.referred_hosp.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -455,7 +455,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step1.referred_hosp.v_required.err}}" }, "relevance": { "rules-engine": { @@ -472,27 +472,27 @@ "openmrs_entity_id": "165307AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step1.referred_hosp_notdone.label}}", + "hint": "{{anc_counselling_treatment.step1.referred_hosp_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "woman_refused", - "text": "Woman refused", + "text": "{{anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165306AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_necessary", - "text": "Not necessary", + "text": "{{anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165305AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -500,7 +500,7 @@ ], "v_required": { "value": true, - "err": "Enter reason hospital referral was not done" + "err": "{{anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err}}" }, "relevance": { "step1:referred_hosp": { @@ -520,7 +520,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step1.referred_hosp_notdone_other.hint}}", "edit_type": "name", "relevance": { "step1:referred_hosp_notdone": { @@ -537,7 +537,7 @@ ] }, "step2": { - "title": "Behaviour Counseling", + "title": "{{anc_counselling_treatment.step2.title}}", "next": "step3", "fields": [ { @@ -546,21 +546,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Caffeine reduction counseling", - "label_info_text": "Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving.", - "label_info_title": "Caffeine reduction counseling", + "label": "{{anc_counselling_treatment.step2.caffeine_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step2.caffeine_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step2.caffeine_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step2.caffeine_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -568,7 +568,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step2.caffeine_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -585,20 +585,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step2.caffeine_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step2.caffeine_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "165311AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -617,7 +617,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step2:caffeine_counsel_notdone": { @@ -637,21 +637,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Tobacco cessation counseling", - "label_info_text": "Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters.", - "label_info_title": "Tobacco cessation counseling", + "label": "{{anc_counselling_treatment.step2.tobacco_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step2.tobacco_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step2.tobacco_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step2.tobacco_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -659,7 +659,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step2.tobacco_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -676,20 +676,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step2.tobacco_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step2.tobacco_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -708,7 +708,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step2:tobacco_counsel_notdone": { @@ -728,21 +728,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Second-hand smoke counseling", - "label_info_text": "Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home.", - "label_info_title": "Second-hand smoke counseling", + "label": "{{anc_counselling_treatment.step2.shs_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step2.shs_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step2.shs_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step2.shs_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step2.shs_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -750,7 +750,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step2.shs_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -767,20 +767,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step2.shs_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step2.shs_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "165312AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -799,7 +799,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step2.shs_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step2:shs_counsel_notdone": { @@ -819,21 +819,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Condom counseling", - "label_info_text": "Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy.", - "label_info_title": "Condom counseling", + "label": "{{anc_counselling_treatment.step2.condom_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step2.condom_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step2.condom_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step2.condom_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step2.condom_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -854,20 +854,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step2.condom_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step2.condom_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "161594AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -886,7 +886,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step2.condom_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step2:condom_counsel_notdone": { @@ -906,21 +906,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Alcohol / substance use counseling", - "label_info_text": "Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable.", - "label_info_title": "Alcohol / substance use counseling", + "label": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -928,7 +928,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -945,20 +945,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "165313AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -977,7 +977,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step2:alcohol_substance_counsel_notdone": { @@ -994,7 +994,7 @@ ] }, "step3": { - "title": "Physiological Symptoms Counseling", + "title": "{{anc_counselling_treatment.step3.title}}", "next": "step4", "fields": [ { @@ -1003,21 +1003,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Non-pharma measures to relieve nausea and vomiting counseling", - "label_info_text": "Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy.", - "label_info_title": "Non-pharma measures to relieve nausea and vomiting counseling", + "label": "{{anc_counselling_treatment.step3.nausea_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.nausea_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.nausea_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.nausea_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.nausea_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1025,7 +1025,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step3.nausea_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1042,20 +1042,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.nausea_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.nausea_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1074,7 +1074,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:nausea_counsel_notdone": { @@ -1089,21 +1089,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Pharmacological treatments for nausea and vomiting counseling", - "label_info_text": "Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor.", - "label_info_title": "Pharmacological treatments for nausea and vomiting counseling", + "label": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1124,20 +1124,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1156,7 +1156,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:nausea_not_relieved_counsel_notdone": { @@ -1187,21 +1187,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Diet and lifestyle changes to prevent and relieve heartburn counseling", - "label_info_text": "Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification.", - "label_info_title": "Diet and lifestyle changes to prevent and relieve heartburn counseling", + "label": "{{anc_counselling_treatment.step3.heartburn_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.heartburn_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.heartburn_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.heartburn_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1209,7 +1209,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step3.heartburn_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1226,20 +1226,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.heartburn_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.heartburn_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1258,7 +1258,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:heartburn_counsel_notdone": { @@ -1273,21 +1273,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Antacid preparations to relieve heartburn counseling", - "label_info_text": "Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages.", - "label_info_title": "Antacid preparations to relieve heartburn counseling", + "label": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1308,20 +1308,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1340,7 +1340,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:heartburn_not_relieved_counsel_notdone": { @@ -1371,21 +1371,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Non-pharmacological treatment for the relief of leg cramps counseling", - "label_info_text": "Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy.", - "label_info_title": "Non-pharmacological treatment for the relief of leg cramps counseling", + "label": "{{anc_counselling_treatment.step3.leg_cramp_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1393,7 +1393,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1410,20 +1410,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1442,7 +1442,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:leg_cramp_counsel_notdone": { @@ -1457,21 +1457,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Magnesium and calcium to relieve leg cramps counseling", - "label_info_text": "If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks.", - "label_info_title": "Magnesium and calcium to relieve leg cramps counseling", + "label": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1492,20 +1492,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1524,7 +1524,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:leg_cramp_not_relieved_counsel_notdone": { @@ -1539,21 +1539,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Dietary modifications to relieve constipation counseling", - "label_info_text": "Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains).", - "label_info_title": "Dietary modifications to relieve constipation counseling", + "label": "{{anc_counselling_treatment.step3.constipation_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.constipation_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.constipation_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.constipation_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.constipation_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1561,7 +1561,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step3.constipation_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1578,20 +1578,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.constipation_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.constipation_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1610,7 +1610,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:constipation_counsel_notdone": { @@ -1625,21 +1625,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Wheat bran or other fiber supplements to relieve constipation counseling", - "label_info_text": "Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate.", - "label_info_title": "Wheat bran or other fiber supplements to relieve constipation counseling", + "label": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1660,20 +1660,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1692,7 +1692,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:constipation_not_relieved_counsel_notdone": { @@ -1707,21 +1707,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling", - "label_info_text": "Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options.", - "label_info_title": "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling", + "label": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1736,7 +1736,7 @@ }, "v_required": { "value": true, - "err": "Please select an option" + "err": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err}}" } }, { @@ -1746,20 +1746,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1778,7 +1778,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:back_pelvic_pain_counsel_notdone": { @@ -1793,7 +1793,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications or onset of labour, related to low back and pelvic pain", + "text": "{{anc_counselling_treatment.step3.back_pelvic_pain_toaster.text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -1809,21 +1809,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Non-pharmacological options for varicose veins and oedema counseling", - "label_info_text": "Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options.", - "label_info_title": "Non-pharmacological options for varicose veins and oedema counseling", + "label": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1838,7 +1838,7 @@ }, "v_required": { "value": true, - "err": "Please select an option" + "err": "{{anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err}}" } }, { @@ -1848,20 +1848,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1880,7 +1880,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step3:varicose_oedema_counsel_notdone": { @@ -1895,7 +1895,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications, including thrombosis, related to varicose veins and oedema", + "text": "{{anc_counselling_treatment.step3.varicose_vein_toaster.text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -1908,7 +1908,7 @@ ] }, "step4": { - "title": "Diet Counseling", + "title": "{{anc_counselling_treatment.step4.title}}", "next": "step5", "fields": [ { @@ -1917,7 +1917,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}.", + "text": "{{anc_counselling_treatment.step4.body_mass_toaster.text}}", "toaster_type": "info", "calculation": { "rules-engine": { @@ -1933,7 +1933,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg", + "text": "{{anc_counselling_treatment.step4.average_weight_toaster.text}}", "toaster_type": "info", "calculation": { "rules-engine": { @@ -1949,21 +1949,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Healthy eating and keeping physically active counseling", - "label_info_text": "Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder]", - "label_info_title": "Healthy eating and keeping physically active counseling", + "label": "{{anc_counselling_treatment.step4.eat_exercise_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1971,7 +1971,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err}}" } }, { @@ -1981,20 +1981,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2002,7 +2002,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err}}" }, "relevance": { "step4:eat_exercise_counsel": { @@ -2017,7 +2017,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step4:eat_exercise_counsel_notdone": { @@ -2037,7 +2037,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Counseling on healthy eating and keeping physically active done!", + "text": "{{anc_counselling_treatment.step4.average_weight_toaster.text}}", "toaster_type": "positive", "relevance": { "step4:eat_exercise_counsel": { @@ -2052,21 +2052,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Increase daily energy and protein intake counseling", - "label_info_text": "Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. \n\n[Protein and Energy Sources Folder]", - "label_info_title": "Increase daily energy and protein intake counseling", + "label": "{{anc_counselling_treatment.step4.increase_energy_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step4.increase_energy_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step4.increase_energy_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step4.increase_energy_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2074,7 +2074,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.increase_energy_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2091,20 +2091,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2112,7 +2112,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err}}" }, "relevance": { "step4:increase_energy_counsel": { @@ -2127,7 +2127,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step4:increase_energy_counsel_notdone": { @@ -2147,21 +2147,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Balanced energy and protein dietary supplementation counseling", - "label_info_text": "Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.", - "label_info_title": "Balanced energy and protein dietary supplementation counseling", + "label": "{{anc_counselling_treatment.step4.balanced_energy_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2169,7 +2169,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2186,20 +2186,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2207,7 +2207,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err}}" }, "relevance": { "step4:balanced_energy_counsel": { @@ -2222,7 +2222,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step4:balanced_energy_counsel_notdone": { @@ -2239,7 +2239,7 @@ ] }, "step5": { - "title": "Diagnoses", + "title": "{{anc_counselling_treatment.step5.title}}", "next": "step6", "fields": [ { @@ -2248,21 +2248,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hypertension counseling", - "label_info_text": "Counseling:\n\n- Advice to reduce workload and to rest- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available", - "label_info_title": "Hypertension counseling", + "label": "{{anc_counselling_treatment.step5.hypertension_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.hypertension_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.hypertension_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.hypertension_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2270,7 +2270,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.hypertension_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2286,21 +2286,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "HIV positive counseling", - "label_info_text": "Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB", - "label_info_title": "HIV positive counseling", + "label": "{{anc_counselling_treatment.step5.hiv_positive_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2308,7 +2308,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2324,21 +2324,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hepatitis B positive counseling", - "label_info_text": "Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital", - "label_info_title": "Hepatitis B positive counseling", + "label": "{{anc_counselling_treatment.step5.hepb_positive_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2346,7 +2346,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2362,21 +2362,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hepatitis C positive counseling", - "label_info_text": "Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital", - "label_info_title": "Hepatitis C positive counseling", + "label": "{{anc_counselling_treatment.step5.hepc_positive_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2384,7 +2384,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2400,21 +2400,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Syphilis counselling and treatment", - "label_info_text": "Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms", - "label_info_title": "Syphilis counselling and treatment", + "label": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2422,7 +2422,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2438,21 +2438,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Syphilis counselling and further testing", - "label_info_text": "Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test", - "label_info_title": "Syphilis counselling and further testing", + "label": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2460,7 +2460,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2492,21 +2492,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB)", - "label_info_text": "A seven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight neonates.", - "label_info_title": "Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB)", + "label": "{{anc_counselling_treatment.step5.asb_positive_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.asb_positive_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.asb_positive_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.asb_positive_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2514,7 +2514,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.asb_positive_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2530,19 +2530,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step5.asb_positive_counsel_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2550,7 +2550,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err}}" }, "relevance": { "step5:asb_positive_counsel": { @@ -2565,7 +2565,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step5:asb_positive_counsel_notdone": { @@ -2596,21 +2596,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Diabetes counseling", - "label_info_text": "Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder]", - "label_info_title": "Diabetes counseling", + "label": "{{anc_counselling_treatment.step5.diabetes_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.diabetes_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.diabetes_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.diabetes_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2618,7 +2618,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.diabetes_counsel.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2634,21 +2634,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia ", - "label_info_text": "If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder]", - "label_info_title": "Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia", + "label": "{{anc_counselling_treatment.step5.ifa_anaemia.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.ifa_anaemia.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.ifa_anaemia.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.ifa_anaemia.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2656,7 +2656,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step5.ifa_anaemia.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2673,27 +2673,27 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone.label}}", + "hint": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "side_effects", - "text": "Side effects prevent woman from taking it", + "text": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165273AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2712,7 +2712,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint}}", "edit_type": "name", "relevance": { "step5:ifa_anaemia_notdone": { @@ -2748,21 +2748,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "TB screening positive counseling", - "label_info_text": "Treat according to local protocol and/or refer for treatment.", - "label_info_title": "TB screening positive counseling", + "label": "{{anc_counselling_treatment.step5.tb_positive_counseling.label}}", + "label_info_text": "{{anc_counselling_treatment.step5.tb_positive_counseling.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step5.tb_positive_counseling.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step5.tb_positive_counseling.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2779,7 +2779,7 @@ ] }, "step6": { - "title": "Risks", + "title": "{{anc_counselling_treatment.step6.title}}", "next": "step7", "fields": [ { @@ -2788,19 +2788,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) for pre-eclampsia risk", + "label": "{{anc_counselling_treatment.step6.pe_risk_aspirin.label}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2808,7 +2808,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2824,33 +2824,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "no_stock", - "text": "No stock", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "side_effects", - "text": "Side effects", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165273AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergy", - "text": "Allergy", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2858,7 +2858,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err}}" }, "relevance": { "step6:pe_risk_aspirin": { @@ -2873,7 +2873,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint}}", "edit_type": "name", "relevance": { "step6:pe_risk_aspirin_notdone": { @@ -2888,19 +2888,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk ", + "label": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2908,7 +2908,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2924,33 +2924,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "no_stock", - "text": "No stock", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "side_effects", - "text": "Side effects", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165273AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergy", - "text": "Allergy", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2958,7 +2958,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err}}" }, "relevance": { "step6:pe_risk_aspirin_calcium": { @@ -2973,7 +2973,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint}}", "edit_type": "name", "relevance": { "step6:pe_risk_aspirin_calcium_notdone": { @@ -3004,21 +3004,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "HIV risk counseling", - "label_info_text": "Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits", - "label_info_title": "HIV risk counseling", + "label": "{{anc_counselling_treatment.step6.hiv_risk_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3038,9 +3038,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Partner HIV test recommended", - "toaster_info_text": "Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested.", - "toaster_info_title": "Partner HIV test recommended", + "text": "{{anc_counselling_treatment.step6.prep_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step6.prep_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step6.prep_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -3056,21 +3056,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "PrEP for HIV prevention counseling", - "label_info_text": "Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework]", - "label_info_title": "PrEP for HIV prevention counseling", + "label": "{{anc_counselling_treatment.step6.hiv_prep.label}}", + "label_info_text": "{{anc_counselling_treatment.step6.hiv_prep.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step6.hiv_prep.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step6.hiv_prep.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step6.hiv_prep.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3090,33 +3090,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165336AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{anc_counselling_treatment.step6.hiv_prep_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "refered_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no_drugs", - "text": "No drugs available", + "text": "{{anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_refused", - "text": "Woman did not accept", + "text": "{{anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3124,7 +3124,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err}}" }, "relevance": { "step6:hiv_prep": { @@ -3139,7 +3139,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step6.hiv_prep_notdone_other.hint}}", "edit_type": "name", "relevance": { "step6:hiv_prep_notdone": { @@ -3175,21 +3175,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Gestational diabetes mellitus (GDM) risk counseling", - "label_info_text": "Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy", - "label_info_title": "Gestational diabetes mellitus (GDM) risk counseling", + "label": "{{anc_counselling_treatment.step6.gdm_risk_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3206,7 +3206,7 @@ ] }, "step7": { - "title": "Counseling", + "title": "{{anc_counselling_treatment.step7.title}}", "next": "step8", "fields": [ { @@ -3215,21 +3215,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Seeking care for danger signs counseling", - "label_info_text": "Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs", - "label_info_title": "Seeking care for danger signs counseling", + "label": "{{anc_counselling_treatment.step7.danger_signs_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.danger_signs_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.danger_signs_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.danger_signs_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3242,21 +3242,21 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "native_radio", - "label": "Counseling on going immediately to the hospital if severe danger signs ", - "label_info_text": "Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with blurred vision\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing", - "label_info_title": "Counseling on going immediately to the hospital if severe danger signs ", + "label": "{{anc_counselling_treatment.step7.emergency_hosp_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -3269,21 +3269,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "ANC contact schedule counseling", - "label_info_text": "It is recommended that a woman sees a healthcare provider 8 times during pregnancy (this can change if the woman has any complications). This schedule shows when the woman should come in to be able to access all the important care and information.", - "label_info_title": "ANC contact schedule counseling", + "label": "{{anc_counselling_treatment.step7.anc_contact_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.anc_contact_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.anc_contact_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.anc_contact_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3296,21 +3296,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Birth preparedness and complications readiness counseling", - "label_info_text": "This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications", - "label_info_title": "Birth preparedness and complications readiness counseling", + "label": "{{anc_counselling_treatment.step7.birth_prep_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.birth_prep_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.birth_prep_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.birth_prep_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3323,9 +3323,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman should plan to give birth at a facility due to risk factors", + "text": "{{anc_counselling_treatment.step7.birth_plan_toaster.text}}", "toaster_type": "info", - "toaster_info_text": "Risk factors necessitating a facility birth:\n- Age 17 or under\n- Primigravida\n- Parity 6 or higher\n- Prior C-section\n- Previous pregnancy complications: Heavy bleeding, Forceps or vacuum delivery, Convulsions, or 3rd or 4th degree tear\n- Vaginal bleeding\n- Multiple fetuses\n- Abnormal fetal presentation\n- HIV+\n- Wants IUD or tubal ligation following delivery", + "toaster_info_text": "{{anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text}}", "relevance": { "rules-engine": { "ex-rules": { @@ -3340,33 +3340,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159758AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Planned birth place", + "label": "{{anc_counselling_treatment.step7.delivery_place.label}}", "label_text_style": "bold", "options": [ { "key": "facility", - "text": "Facility", + "text": "{{anc_counselling_treatment.step7.delivery_place.options.facility.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "facility_elective", - "text": "Facility (elective C-section)", + "text": "{{anc_counselling_treatment.step7.delivery_place.options.facility_elective.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "155886AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "home", - "text": "Home", + "text": "{{anc_counselling_treatment.step7.delivery_place.options.home.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1536AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other", + "text": "{{anc_counselling_treatment.step7.delivery_place.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3379,7 +3379,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Encourage delivery at a facility!", + "text": "{{anc_counselling_treatment.step7.encourage_facility_toaster.text}}", "toaster_type": "warning", "relevance": { "step7:delivery_place": { @@ -3394,21 +3394,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Rh factor negative counseling", - "label_info_text": "Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive", - "label_info_title": "Rh factor negative counseling", + "label": "{{anc_counselling_treatment.step7.rh_negative_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.rh_negative_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.rh_negative_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.rh_negative_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3428,21 +3428,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling", - "label_info_text": "Pregnant women with GBS colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection.", - "label_info_title": "Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling", + "label": "{{anc_counselling_treatment.step7.gbs_agent_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3462,19 +3462,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Postpartum family planning counseling ", + "label": "{{anc_counselling_treatment.step7.family_planning_counsel.label}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.family_planning_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3482,7 +3482,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step7.family_planning_counsel.v_required.err}}" } }, { @@ -3491,61 +3491,61 @@ "openmrs_entity": "concept", "openmrs_entity_id": "374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "FP method accepted", + "label": "{{anc_counselling_treatment.step7.family_planning_type.label}}", "label_text_style": "bold", "options": [ { "key": "oral_contraceptive", - "text": "Oral contraceptive", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "injectable", - "text": "Injectable", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.injectable.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "implant", - "text": "Implant", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.implant.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159589AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "iud", - "text": "IUD", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.iud.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "vaginal_ring", - "text": "Vaginal ring", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "162473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "tubal_ligation", - "text": "Tubal ligation", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1472AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "sterilization", - "text": "Sterilization (partner)", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.sterilization.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "none", - "text": "None", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3564,21 +3564,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Breastfeeding counseling", - "label_info_text": "To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers", - "label_info_title": "Breastfeeding counseling", + "label": "{{anc_counselling_treatment.step7.breastfeed_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step7.breastfeed_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step7.breastfeed_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step7.breastfeed_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3595,7 +3595,7 @@ ] }, "step8": { - "title": "Intimate Partner Violence (IPV)", + "title": "{{anc_counselling_treatment.step8.title}}", "next": "step9", "fields": [ { @@ -3604,19 +3604,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165352AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Clinical enquiry for intimate partner violence (IPV) ", + "label": "{{anc_counselling_treatment.step8.ipv_enquiry.label}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3624,7 +3624,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step8.ipv_enquiry.v_required.err}}" }, "relevance": { "rules-engine": { @@ -3641,20 +3641,20 @@ "openmrs_entity_id": "165353AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.label}}", + "hint": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3668,7 +3668,7 @@ }, "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err}}" } }, { @@ -3677,7 +3677,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint}}", "edit_type": "name", "relevance": { "step8:ipv_enquiry_notdone": { @@ -3692,33 +3692,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165354AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "IPV enquiry results", + "label": "{{anc_counselling_treatment.step8.ipv_enquiry_results.label}}", "label_text_style": "bold", "options": [ { "key": "treated", - "text": "Treated", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1185AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "referred", - "text": "Referred", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no_action", - "text": "No action necessary", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other", + "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3726,7 +3726,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err}}" }, "relevance": { "step8:ipv_enquiry": { @@ -3741,9 +3741,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "If the woman presents with risk of intimate partner violence (IPV), refer for assessment.", - "toaster_info_text": "Risk of IPV includes any of the following:\n\n- Traumatic injury, particularly if repeated and with vague or implausible explanations;\n\n- An intrusive partner or husband present at consultations;\n\n- Multiple unintended pregnancies and/or terminations;\n\n- Delay in seeking ANC;\n\n- Adverse birth outcomes;\n\n- Repeated STIs;\n\n- Unexplained or repeated genitourinary symptoms;\n\n- Symptoms of depression and anxiety;\n\n- Alcohol or other substance use; or\n\n- Self-harm or suicidal feelings.", - "toaster_info_title": "If the woman presents with risk of intimate partner violence (IPV), refer for assessment.", + "text": "{{anc_counselling_treatment.step8.ipv_refer_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -3756,7 +3756,7 @@ ] }, "step9": { - "title": "Nutrition Supplementation", + "title": "{{anc_counselling_treatment.step9.title}}", "next": "step10", "fields": [ { @@ -3765,21 +3765,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention ", - "label_info_text": "Due to the population's high anaemia prevalence, a daily dose of 60 mg of elemental iron is preferred over a lower dose. A daily dose of 400 mcg (0.4 mg) folic acid is also recommended.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder]", - "label_info_title": "Prescribe daily dose of 60 mg iron and 0.4 mg folic acid", + "label": "{{anc_counselling_treatment.step9.ifa_high_prev.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3787,7 +3787,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_high_prev.v_required.err}}" }, "relevance": { "rules-engine": { @@ -3804,20 +3804,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3831,7 +3831,7 @@ }, "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err}}" } }, { @@ -3840,7 +3840,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:ifa_high_prev_notdone": { @@ -3860,21 +3860,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention ", - "label_info_text": "Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder]", - "label_info_title": "Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid", + "label": "{{anc_counselling_treatment.step9.ifa_low_prev.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.ifa_low_prev.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.ifa_low_prev.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step9.ifa_low_prev.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3882,7 +3882,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_low_prev.v_required.err}}" }, "relevance": { "rules-engine": { @@ -3899,20 +3899,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3920,7 +3920,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err}}" }, "relevance": { "step9:ifa_low_prev": { @@ -3935,7 +3935,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:ifa_low_prev_notdone": { @@ -3955,21 +3955,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention ", - "label_info_text": "If daily iron is not acceptable due to side effects, provide intermittent iron and folic acid supplementation instead (120 mg of elemental iron and 2.8 mg of folic acid once weekly).\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder]", - "label_info_title": "Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid ", + "label": "{{anc_counselling_treatment.step9.ifa_weekly.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.ifa_weekly.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.ifa_weekly.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step9.ifa_weekly.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step9.ifa_weekly.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3977,7 +3977,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_weekly.v_required.err}}" }, "relevance": { "rules-engine": { @@ -3994,20 +3994,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step9.ifa_weekly_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.ifa_weekly_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4015,7 +4015,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err}}" }, "relevance": { "step9:ifa_weekly": { @@ -4030,7 +4030,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:ifa_weekly_notdone": { @@ -4066,21 +4066,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium)", - "label_info_text": "Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder]", - "label_info_title": "Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium)", + "label": "{{anc_counselling_treatment.step9.calcium_supp.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.calcium_supp.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.calcium_supp.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step9.calcium_supp.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step9.calcium_supp.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4088,7 +4088,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.calcium_supp.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4105,20 +4105,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step9.calcium_supp_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.calcium_supp_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4132,7 +4132,7 @@ }, "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err}}" } }, { @@ -4141,7 +4141,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step9.calcium_supp_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:calcium_supp_notdone": { @@ -4162,7 +4162,7 @@ "key": "calcium", "type": "hidden", "label_text_style": "bold", - "text": "0", + "text": "{{anc_counselling_treatment.step9.calcium.text}}", "text_color": "#FF0000", "calculation": { "rules-engine": { @@ -4178,21 +4178,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU", - "label_info_text": "Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder]", - "label_info_title": "Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU", + "label": "{{anc_counselling_treatment.step9.vita_supp.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.vita_supp.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.vita_supp.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step9.vita_supp.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step9.vita_supp.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4200,7 +4200,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.vita_supp.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4217,20 +4217,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step9.vita_supp_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.vita_supp_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step9.vita_supp_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4238,7 +4238,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step9.vita_supp_notdone.v_required.err}}" }, "relevance": { "step9:vita_supp": { @@ -4253,7 +4253,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step9.vita_supp_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:vita_supp_notdone": { @@ -4286,7 +4286,7 @@ ] }, "step10": { - "title": "Deworming & Malaria Prophylaxis", + "title": "{{anc_counselling_treatment.step10.title}}", "next": "step11", "fields": [ { @@ -4295,20 +4295,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Prescribe single dose albendazole 400 mg or mebendazole 500 mg", - "label_info_text": "In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes.", + "label": "{{anc_counselling_treatment.step10.deworm.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.deworm.label_info_text}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step10.deworm.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step10.deworm.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4323,7 +4323,7 @@ }, "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step10.deworm.v_required.err}}" } }, { @@ -4333,20 +4333,20 @@ "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step10.deworm_notdone.label}}", + "hint": "{{anc_counselling_treatment.step10.deworm_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step10.deworm_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4354,7 +4354,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step10.deworm_notdone.v_required.err}}" }, "relevance": { "step10:deworm": { @@ -4369,7 +4369,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step10.deworm_notdone_other.hint}}", "edit_type": "name", "relevance": { "step10:deworm_notdone": { @@ -4398,21 +4398,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "IPTp-SP dose 1", - "label_info_text": "Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received.", - "label_info_title": "IPTp-SP dose 1", + "label": "{{anc_counselling_treatment.step10.iptp_sp1.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.iptp_sp1.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step10.iptp_sp1.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step10.iptp_sp1.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step10.iptp_sp1.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4420,7 +4420,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step10.iptp_sp1.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4450,21 +4450,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "IPTp-SP dose 2", - "label_info_text": "Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received.", - "label_info_title": "IPTp-SP dose 2", + "label": "{{anc_counselling_treatment.step10.iptp_sp2.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.iptp_sp2.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step10.iptp_sp2.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step10.iptp_sp2.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step10.iptp_sp2.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4472,7 +4472,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step10.iptp_sp2.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4502,21 +4502,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "IPTp-SP dose 3", - "label_info_text": "Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received.", - "label_info_title": "IPTp-SP dose 3", + "label": "{{anc_counselling_treatment.step10.iptp_sp3.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.iptp_sp3.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step10.iptp_sp3.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step10.iptp_sp3.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step10.iptp_sp3.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4524,7 +4524,7 @@ ], "v_required": { "value": true, - "err": "Please select and option" + "err": "{{anc_counselling_treatment.step10.iptp_sp3.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4554,9 +4554,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Do not give IPTp-SP, because woman is taking co-trimoxazole.", - "toaster_info_text": "Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia.", - "toaster_info_title": "Do not give IPTp-SP, because woman is taking co-trimoxazole.", + "text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -4572,34 +4572,34 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165359AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step10.iptp_sp_notdone.label}}", + "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "stock_out", - "text": "Stock out", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired", - "text": "Expired", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4619,7 +4619,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone_other.hint}}", "edit_type": "name", "relevance": { "step10:iptp_sp_notdone": { @@ -4653,21 +4653,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Malaria prevention counseling", - "label_info_text": "Sleeping under an insecticide-treated bednet and the importance of seeking care and getting treatment as soon as she has any symptoms.", - "label_info_title": "Malaria prevention counseling", + "label": "{{anc_counselling_treatment.step10.malaria_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4688,20 +4688,20 @@ "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "", "type": "native_radio", - "label": "Reason", - "hint": "Reason", + "label": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { "key": "referred_instead", - "text": "Referred instead", + "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4720,7 +4720,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint}}", "edit_type": "name", "relevance": { "step10:malaria_counsel_notdone": { @@ -4732,7 +4732,7 @@ ] }, "step11": { - "title": "Immunizations", + "title": "{{anc_counselling_treatment.step11.title}}", "next": "step12", "fields": [ { @@ -4741,27 +4741,27 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "TT dose #1", - "label_info_text": "Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\n1-4 doses of TTCV in the past:\n\n- 1 dose scheme: Woman should receive one dose of TTCV during each subsequent pregnancy to a total of five doses (five doses protects throughout the childbearing years).\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose", + "label": "{{anc_counselling_treatment.step11.tt1_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.tt1_date.label_info_text}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4769,7 +4769,7 @@ ], "v_required": { "value": true, - "err": "TT dose #1 is required" + "err": "{{anc_counselling_treatment.step11.tt1_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4815,7 +4815,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date TT dose #1 was given.", + "hint": "{{anc_counselling_treatment.step11.tt1_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -4827,7 +4827,7 @@ }, "v_required": { "value": true, - "err": "Date for TT dose #1 is required" + "err": "{{anc_counselling_treatment.step11.tt1_date_done.v_required.err}}" } }, { @@ -4836,28 +4836,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "TT dose #2", - "label_info_text": "Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose", - "label_info_title": "TT dose #2", + "label": "{{anc_counselling_treatment.step11.tt2_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.tt2_date.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step11.tt2_date.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4865,7 +4865,7 @@ ], "v_required": { "value": true, - "err": "TT dose #2 is required" + "err": "{{anc_counselling_treatment.step11.tt2_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -4911,7 +4911,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date TT dose #2 was given.", + "hint": "{{anc_counselling_treatment.step11.tt2_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -4923,7 +4923,7 @@ }, "v_required": { "value": true, - "err": "Date for TT dose #2 is required" + "err": "{{anc_counselling_treatment.step11.tt2_date_done.v_required.err}}" } }, { @@ -4932,28 +4932,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "TT dose #3", - "label_info_text": "Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose", - "label_info_title": "TT dose #3", + "label": "{{anc_counselling_treatment.step11.tt3_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.tt3_date.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step11.tt3_date.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.tt3_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.tt3_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.tt3_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -4961,7 +4961,7 @@ ], "v_required": { "value": true, - "err": "TT dose #3 is required" + "err": "{{anc_counselling_treatment.step11.tt3_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5007,7 +5007,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date TT dose #3 was given.", + "hint": "{{anc_counselling_treatment.step11.tt3_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5019,7 +5019,7 @@ }, "v_required": { "value": true, - "err": "Date for TT dose #3 is required" + "err": "{{anc_counselling_treatment.step11.tt3_date_done.v_required.err}}" } }, { @@ -5028,40 +5028,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step11.tt_dose_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "vaccine_available", - "text": "No vaccine available", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_is_ill", - "text": "Woman is ill", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160585AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_refused", - "text": "Woman refused", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergies", - "text": "Allergies", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5069,7 +5069,7 @@ ], "v_required": { "value": true, - "err": "Reason TT dose was not given is required" + "err": "{{anc_counselling_treatment.step11.tt_dose_notdone.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5085,7 +5085,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step11.tt_dose_notdone_other.hint}}", "edit_type": "name", "relevance": { "step11:tt_dose_notdone": { @@ -5100,7 +5100,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is fully immunised against tetanus!", + "text": "{{anc_counselling_treatment.step11.woman_immunised_toaster.text}}", "toaster_type": "positive", "relevance": { "rules-engine": { @@ -5116,21 +5116,21 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B negative counseling and vaccination", - "label_info_text": "Counseling:\n\n- Provide post-testing counselling\n\n- Advise retesting and immunisation if ongoing risk or known exposure", - "label_info_title": "Hep B negative counseling and vaccination", + "label": "{{anc_counselling_treatment.step11.hepb_negative_note.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.hepb_negative_note.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step11.hepb_negative_note.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "Done", + "text": "{{anc_counselling_treatment.step11.hepb_negative_note.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5150,26 +5150,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B dose #1", + "label": "{{anc_counselling_treatment.step11.hepb1_date.label}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.hepb1_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.hepb1_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5177,7 +5177,7 @@ ], "v_required": { "value": true, - "err": "Hep B dose #1 is required" + "err": "{{anc_counselling_treatment.step11.hepb1_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5223,7 +5223,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date Hep B dose #1 was given.", + "hint": "{{anc_counselling_treatment.step11.hepb1_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5235,7 +5235,7 @@ }, "v_required": { "value": true, - "err": "Date for Hep B dose #1 is required" + "err": "{{anc_counselling_treatment.step11.hepb1_date_done.v_required.err}}" } }, { @@ -5244,26 +5244,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B dose #2 ", + "label": "{{anc_counselling_treatment.step11.hepb2_date.label}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.hepb2_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.hepb2_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5271,7 +5271,7 @@ ], "v_required": { "value": true, - "err": "Hep B dose #2 is required" + "err": "{{anc_counselling_treatment.step11.hepb2_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5317,7 +5317,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date Hep B dose #2 was given.", + "hint": "{{anc_counselling_treatment.step11.hepb2_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5329,7 +5329,7 @@ }, "v_required": { "value": true, - "err": "Date for Hep B dose #2 is required" + "err": "{{anc_counselling_treatment.step11.hepb2_date_done.v_required.err}}" } }, { @@ -5338,26 +5338,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B dose #3", + "label": "{{anc_counselling_treatment.step11.hepb3_date.label}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.hepb3_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.hepb3_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5365,7 +5365,7 @@ ], "v_required": { "value": true, - "err": "Hep B dose #3 is required" + "err": "{{anc_counselling_treatment.step11.hepb3_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5411,7 +5411,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date Hep B dose #3 was given.", + "hint": "{{anc_counselling_treatment.step11.hepb3_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5423,7 +5423,7 @@ }, "v_required": { "value": true, - "err": "Date for Hep B dose #3 is required" + "err": "{{anc_counselling_treatment.step11.hepb3_date_done.v_required.err}}" } }, { @@ -5432,40 +5432,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step11.hepb_dose_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "vaccine_available", - "text": "No vaccine available", + "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_is_ill", - "text": "Woman is ill", + "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160585AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_refused", - "text": "Woman refused", + "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergies", - "text": "Allergies", + "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5480,7 +5480,7 @@ }, "v_required": { "value": true, - "err": "Reason Hep B was not given is required" + "err": "{{anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err}}" } }, { @@ -5489,7 +5489,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step11.hepb_dose_notdone_other.hint}}", "edit_type": "name", "relevance": { "step11:hepb_dose_notdone": { @@ -5504,7 +5504,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is fully immunised against Hep B!", + "text": "{{anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text}}", "toaster_type": "positive", "relevance": { "rules-engine": { @@ -5520,28 +5520,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Flu dose", - "label_info_text": "Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. ", - "label_info_title": "Flu dose", + "label": "{{anc_counselling_treatment.step11.flu_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.flu_date.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step11.flu_date.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "Done today", + "text": "{{anc_counselling_treatment.step11.flu_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "Done earlier", + "text": "{{anc_counselling_treatment.step11.flu_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "Not done", + "text": "{{anc_counselling_treatment.step11.flu_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5549,7 +5549,7 @@ ], "v_required": { "value": true, - "err": "Flu dose is required" + "err": "{{anc_counselling_treatment.step11.flu_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5581,7 +5581,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date flu dose was given", + "hint": "{{anc_counselling_treatment.step11.flu_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5598,40 +5598,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{anc_counselling_treatment.step11.flu_dose_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "vaccine_available", - "text": "No vaccine available", + "text": "{{anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_is_ill", - "text": "Woman is ill", + "text": "{{anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160585AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_refused", - "text": "Woman refused", + "text": "{{anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergies", - "text": "Allergies", + "text": "{{anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_counselling_treatment.step11.flu_dose_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5639,7 +5639,7 @@ ], "v_required": { "value": true, - "err": "Reason Flu dose was not done is required" + "err": "{{anc_counselling_treatment.step11.flu_dose_notdone.v_required.err}}" }, "relevance": { "step11:flu_date": { @@ -5654,7 +5654,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_counselling_treatment.step11.flu_dose_notdone_other.hint}}", "edit_type": "name", "relevance": { "step11:flu_dose_notdone": { @@ -5669,7 +5669,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is immunised against flu!", + "text": "{{anc_counselling_treatment.step11.woman_immunised_flu_toaster.text}}", "toaster_type": "positive", "relevance": { "rules-engine": { @@ -5682,7 +5682,7 @@ ] }, "step12": { - "title": "Not Recommended", + "title": "{{anc_counselling_treatment.step12.title}}", "fields": [ { "key": "prep_toaster", @@ -5690,10 +5690,11 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Zinc supplement\n\n- Multiple micronutrient supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement", - "toaster_info_text": "Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\n[Vitamin C folder]\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day.", + "text": "{{anc_counselling_treatment.step12.prep_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step12.prep_toaster.toaster_info_text}}", "toaster_type": "info" } ] - } + }, + "properties_file_name": "anc_counselling_treatment" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 4da7a65a4..400d31d8b 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -74,14 +74,14 @@ } }, "step1": { - "title": "Height & Weight", + "title": "{{anc_physical_exam.step1.title}}", "next": "step2", "fields": [ { "key": "height_label", "type": "label", "label_text_style": "bold", - "text": "Height (cm)", + "text": "{{anc_physical_exam.step1.height_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -97,11 +97,11 @@ "edit_type": "number", "v_required": { "value": "true", - "err": "Please enter the height" + "err": "{{anc_physical_exam.step1.height.v_required.err}}" }, "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step1.height.v_numeric.err}}" }, "v_min": { "value": "100", @@ -124,11 +124,11 @@ "key": "pregest_weight_label", "type": "label", "label_text_style": "bold", - "text": "Pre-gestational weight (kg)", + "text": "{{anc_physical_exam.step1.pregest_weight_label.text}}", "text_color": "#000000", "v_required": { "value": "true", - "err": "Please enter pre-gestational weight" + "err": "{{anc_physical_exam.step1.pregest_weight_label.v_required.err}}" }, "relevance": { "step1:pregest_weight_unknown": { @@ -163,7 +163,7 @@ }, "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step1.pregest_weight.v_numeric.err}}" }, "v_min": { "value": "30", @@ -175,7 +175,7 @@ }, "v_required": { "value": "true", - "err": "Pre-gestational weight is required" + "err": "{{anc_physical_exam.step1.pregest_weight.v_required.err}}" } }, { @@ -187,7 +187,7 @@ "options": [ { "key": "pregest_weight_unknown", - "text": "Pre-gestational weight unknown", + "text": "{{anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text}}", "value": "false", "openmrs_entity_parent": "165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -207,7 +207,7 @@ "key": "current_weight_label", "type": "label", "label_text_style": "bold", - "text": "Current weight (kg)", + "text": "{{anc_physical_exam.step1.current_weight_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -223,7 +223,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step1.current_weight.v_numeric.err}}" }, "v_min": { "value": "30", @@ -235,7 +235,7 @@ }, "v_required": { "value": "true", - "err": "Please enter the current weight" + "err": "{{anc_physical_exam.step1.current_weight.v_required.err}}" } }, { @@ -356,7 +356,7 @@ "openmrs_entity": "Body mass Index", "openmrs_entity_id": "1432", "type": "toaster_notes", - "text": "Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg.", + "text": "{{anc_physical_exam.step1.toaster1.text}}", "text_color": "#1199F9", "toaster_type": "info", "calculation": { @@ -373,7 +373,7 @@ "openmrs_entity": "Weight gain finding", "openmrs_entity_id": "122887", "type": "toaster_notes", - "text": "Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg", + "text": "{{anc_physical_exam.step1.toaster2.text}}", "text_color": "#1199F9", "toaster_type": "info", "calculation": { @@ -390,9 +390,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Gestational diabetes mellitus (GDM) risk counseling", + "text": "{{anc_physical_exam.step1.toaster3.text}}", "text_color": "#D56900", - "toaster_info_text": "Please provide appropriate counseling for GDM risk mitigation, including:\n- Reasserting dietary interventions\n- Reasserting physical activity during pregnancy", + "toaster_info_text": "{{anc_physical_exam.step1.toaster3.toaster_info_text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -408,11 +408,11 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Healthy eating and keeping physically active counseling", + "text": "{{anc_physical_exam.step1.toaster4.text}}", "text_color": "#1199F9", "toaster_type": "info", - "toaster_info_text": "Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.", - "toaster_info_title": "Nutritional and Exercise Folder" + "toaster_info_text": "{{anc_physical_exam.step1.toaster4.toaster_info_text}}", + "toaster_info_title": "{{anc_physical_exam.step1.toaster4.toaster_info_title}}" }, { "key": "toaster5", @@ -420,11 +420,11 @@ "openmrs_entity": "Weight gain finding", "openmrs_entity_id": "122887", "type": "toaster_notes", - "text": "Increase daily energy and protein intake counseling", + "text": "{{anc_physical_exam.step1.toaster5.text}}", "text_color": "#1199F9", "toaster_type": "info", - "toaster_info_text": "Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates.", - "toaster_info_title": "Increase daily energy and protein intake counseling", + "toaster_info_text": "{{anc_physical_exam.step1.toaster5.toaster_info_text}}", + "toaster_info_title": "{{anc_physical_exam.step1.toaster5.toaster_info_title}}", "relevance": { "rules-engine": { "ex-rules": { @@ -439,11 +439,11 @@ "openmrs_entity": "Weight gain finding", "openmrs_entity_id": "122887", "type": "toaster_notes", - "text": "Balanced energy and protein dietary supplementation counseling", + "text": "{{anc_physical_exam.step1.toaster6.text}}", "text_color": "#1199F9", "toaster_type": "info", - "toaster_info_text": "Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.", - "toaster_info_title": "Balanced energy and protein dietary supplementation counseling", + "toaster_info_text": "{{anc_physical_exam.step1.toaster6.toaster_info_text}}", + "toaster_info_title": "{{anc_physical_exam.step1.toaster6.toaster_info_title}}", "relevance": { "rules-engine": { "ex-rules": { @@ -455,14 +455,14 @@ ] }, "step2": { - "title": "Blood Pressure", + "title": "{{anc_physical_exam.step2.title}}", "next": "step3", "fields": [ { "key": "bp_systolic_label", "type": "label", "label_text_style": "bold", - "text": "Systolic blood pressure (SBP) (mmHg)", + "text": "{{anc_physical_exam.step2.bp_systolic_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -489,7 +489,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step2.bp_systolic.v_numeric.err}}" }, "v_min": { "value": "20", @@ -501,7 +501,7 @@ }, "v_required": { "value": "true", - "err": "Field systolic is required" + "err": "{{anc_physical_exam.step2.bp_systolic.v_required.err}}" }, "relevance": { "step2:cant_record_bp": { @@ -538,7 +538,7 @@ "key": "bp_diastolic_label", "type": "label", "label_text_style": "bold", - "text": "Diastolic blood pressure (DBP) (mmHg)", + "text": "{{anc_physical_exam.step2.bp_diastolic_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -565,7 +565,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step2.bp_diastolic.v_numeric.err}}" }, "v_min": { "value": "20", @@ -577,7 +577,7 @@ }, "v_required": { "value": "true", - "err": "Field diastolic is required" + "err": "{{anc_physical_exam.step2.bp_diastolic.v_required.err}}" }, "relevance": { "step2:cant_record_bp": { @@ -600,7 +600,7 @@ "options": [ { "key": "cant_record_bp", - "text": "Unable to record BP", + "text": "{{anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "", @@ -613,28 +613,28 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Reason", + "label": "{{anc_physical_exam.step2.cant_record_bp_reason.label}}", "type": "check_box", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "bp_cuff_unavailable", - "text": "BP cuff (sphygmomanometer) not available", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "bp_cuff_broken", - "text": "BP cuff (sphygmomanometer) is broken", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -642,7 +642,7 @@ ], "v_required": { "value": "true", - "err": "Reason why SBP and DPB is cannot be done is required" + "err": "{{anc_physical_exam.step2.cant_record_bp_reason.v_required.err}}" }, "relevance": { "step2:cant_record_bp": { @@ -670,7 +670,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Measure BP again after 10-15 minutes rest.", + "text": "{{anc_physical_exam.step2.toaster7.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -693,7 +693,7 @@ "key": "bp_systolic_repeat_label", "type": "label", "label_text_style": "bold", - "text": "SBP after 10-15 minutes rest", + "text": "{{anc_physical_exam.step2.bp_systolic_repeat_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -716,7 +716,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err}}" }, "v_min": { "value": "20", @@ -728,7 +728,7 @@ }, "v_required": { "value": "true", - "err": "Field systolic repeat is required" + "err": "{{anc_physical_exam.step2.bp_systolic_repeat.v_required.err}}" }, "relevance": { "rules-engine": { @@ -750,7 +750,7 @@ "key": "bp_diastolic_repeat_label", "type": "label", "label_text_style": "bold", - "text": "DBP after 10-15 minutes rest", + "text": "{{anc_physical_exam.step2.bp_diastolic_repeat_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -773,7 +773,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err}}" }, "v_min": { "value": "20", @@ -785,7 +785,7 @@ }, "v_required": { "value": "true", - "err": "Field diastolic repeat is required" + "err": "{{anc_physical_exam.step2.bp_diastolic_repeat.v_required.err}}" }, "relevance": { "rules-engine": { @@ -801,7 +801,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Do urine dipstick test for protein.", + "text": "{{anc_physical_exam.step2.toaster8.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -826,7 +826,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Any symptoms of severe pre-eclampsia?", + "label": "{{anc_physical_exam.step2.symp_sev_preeclampsia.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -835,7 +835,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -843,7 +843,7 @@ }, { "key": "severe_headache", - "text": "Severe headache", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -851,7 +851,7 @@ }, { "key": "blurred_vision", - "text": "Blurred vision", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -859,7 +859,7 @@ }, { "key": "epigastric_pain", - "text": "Epigastric pain", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "141128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -867,7 +867,7 @@ }, { "key": "dizziness", - "text": "Dizziness", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -875,7 +875,7 @@ }, { "key": "vomiting", - "text": "Vomiting", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "122983AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -884,7 +884,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms or select none" + "err": "{{anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err}}" }, "relevance": { "rules-engine": { @@ -900,13 +900,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Urine dipstick result - protein", + "label": "{{anc_physical_exam.step2.urine_protein.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "none", - "text": "None", + "text": "{{anc_physical_exam.step2.urine_protein.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -914,7 +914,7 @@ }, { "key": "+", - "text": "+", + "text": "{{anc_physical_exam.step2.urine_protein.options.+.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -922,7 +922,7 @@ }, { "key": "++", - "text": "++", + "text": "{{anc_physical_exam.step2.urine_protein.options.++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -930,7 +930,7 @@ }, { "key": "+++", - "text": "+++", + "text": "{{anc_physical_exam.step2.urine_protein.options.+++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -938,7 +938,7 @@ }, { "key": "++++", - "text": "++++", + "text": "{{anc_physical_exam.step2.urine_protein.options.++++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -947,7 +947,7 @@ ], "v_required": { "value": "true", - "err": "Please enter the result for the dipstick test." + "err": "{{anc_physical_exam.step2.urine_protein.v_required.err}}" }, "relevance": { "rules-engine": { @@ -991,8 +991,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hypertension diagnosis! Provide counseling.", - "toaster_info_text": "Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\\n\\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available", + "text": "{{anc_physical_exam.step2.toaster9.text}}", + "toaster_info_text": "{{anc_physical_exam.step2.toaster9.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1009,8 +1009,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Severe hypertension! Refer urgently to hospital!", - "toaster_info_text": "Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management.", + "text": "{{anc_physical_exam.step2.toaster10.text}}", + "toaster_info_text": "{{anc_physical_exam.step2.toaster10.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1027,8 +1027,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Symptom(s) of severe pre-eclampsia! Refer urgently to hospital!", - "toaster_info_text": "Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management.", + "text": "{{anc_physical_exam.step2.toaster11.text}}", + "toaster_info_text": "{{anc_physical_exam.step2.toaster11.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1059,8 +1059,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital!", - "toaster_info_text": "Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital!", + "text": "{{anc_physical_exam.step2.toaster13.text}}", + "toaster_info_text": "{{anc_physical_exam.step2.toaster13.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1091,9 +1091,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.", - "toaster_info_text": "Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan", - "toaster_info_title": "Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.", + "text": "{{anc_physical_exam.step2.toaster14.text}}", + "toaster_info_text": "{{anc_physical_exam.step2.toaster14.toaster_info_text}}", + "toaster_info_title": "{{anc_physical_exam.step2.toaster14.toaster_info_title}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1107,14 +1107,14 @@ ] }, "step3": { - "title": "Maternal Exam", + "title": "{{anc_physical_exam.step3.title}}", "next": "step4", "fields": [ { "key": "body_temp_label", "type": "label", "label_text_style": "bold", - "text": "Temperature (ºC)", + "text": "{{anc_physical_exam.step3.body_temp_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -1130,11 +1130,11 @@ "edit_type": "number", "v_required": { "value": "true", - "err": "Please enter body temperature" + "err": "{{anc_physical_exam.step3.body_temp.v_required.err}}" }, "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step3.body_temp.v_numeric.err}}" }, "v_min": { "value": "35", @@ -1151,7 +1151,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Temperature of 38ºC or above! Measure temperature again.", + "text": "{{anc_physical_exam.step3.toaster15.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1173,9 +1173,9 @@ "key": "body_temp_repeat_label", "type": "label", "label_text_style": "bold", - "text": "Second temperature (ºC)", + "text": "{{anc_physical_exam.step3.body_temp_repeat_label.text}}", "text_color": "#000000", - "label_info_text": "Retake the woman's temperature if the first reading was 38ºC or higher.", + "label_info_text": "Retake the woman\u0027s temperature if the first reading was 38ºC or higher.", "v_required": { "value": true }, @@ -1196,7 +1196,7 @@ "edit_type": "number", "v_required": { "value": "true", - "err": "Please enter second body temperature" + "err": "{{anc_physical_exam.step3.body_temp_repeat.v_required.err}}" }, "relevance": { "step3:body_temp": { @@ -1206,7 +1206,7 @@ }, "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step3.body_temp_repeat.v_numeric.err}}" }, "v_min": { "value": "35", @@ -1223,8 +1223,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman has a fever. Provide treatment and refer urgently to hospital!", - "toaster_info_text": "Procedure:\n- Insert an IV line\n- Give fluids slowly\n- Refer urgently to hospital!", + "text": "{{anc_physical_exam.step3.toaster16.text}}", + "toaster_info_text": "{{anc_physical_exam.step3.toaster16.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1246,7 +1246,7 @@ "key": "pulse_rate_label", "type": "label", "label_text_style": "bold", - "text": "Pulse rate (bpm)", + "text": "{{anc_physical_exam.step3.pulse_rate_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -1262,11 +1262,11 @@ "edit_type": "number", "v_required": { "value": "true", - "err": "Please enter pulse rate" + "err": "{{anc_physical_exam.step3.pulse_rate.v_required.err}}" }, "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step3.pulse_rate.v_numeric.err}}" }, "v_min": { "value": "20", @@ -1283,7 +1283,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal pulse rate. Check again after 10 minutes rest.", + "text": "{{anc_physical_exam.step3.toaster17.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1306,8 +1306,8 @@ "key": "pulse_rate_repeat_label", "type": "label", "label_text_style": "bold", - "text": "Second pulse rate (bpm)", - "label_info_text": "Retake the woman's pulse rate if the first reading was lower than 60 or higher than 100.", + "text": "{{anc_physical_exam.step3.pulse_rate_repeat_label.text}}", + "label_info_text": "Retake the woman\u0027s pulse rate if the first reading was lower than 60 or higher than 100.", "text_color": "#000000", "v_required": { "value": true @@ -1330,7 +1330,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "" + "err": "{{anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err}}" }, "v_min": { "value": "20", @@ -1342,7 +1342,7 @@ }, "v_required": { "value": "true", - "err": "Please enter repeated pulse rate" + "err": "{{anc_physical_exam.step3.pulse_rate_repeat.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1358,8 +1358,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal pulse rate. Refer for further investigation.", - "toaster_info_text": "Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation", + "text": "{{anc_physical_exam.step3.toaster18.text}}", + "toaster_info_text": "{{anc_physical_exam.step3.toaster18.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1384,20 +1384,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "5245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Pallor present?", + "label": "{{anc_physical_exam.step3.pallor.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_physical_exam.step3.pallor.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_physical_exam.step3.pallor.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1424,8 +1424,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Anaemia diagnosis! Haemoglobin (Hb) test recommended.", - "toaster_info_text": "Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor.", + "text": "{{anc_physical_exam.step3.toaster19.text}}", + "toaster_info_text": "{{anc_physical_exam.step3.toaster19.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1442,7 +1442,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Respiratory exam", + "label": "{{anc_physical_exam.step3.respiratory_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1450,21 +1450,21 @@ "options": [ { "key": "1", - "text": "Not done", + "text": "{{anc_physical_exam.step3.respiratory_exam.options.1.text}}", "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "2", - "text": "Normal", + "text": "{{anc_physical_exam.step3.respiratory_exam.options.2.text}}", "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "3", - "text": "Abnormal", + "text": "{{anc_physical_exam.step3.respiratory_exam.options.3.text}}", "specify_info": "specify...", "specify_widget": "check_box", "specify_info_color": "#8C8C8C", @@ -1481,7 +1481,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman has respiratory distress. Refer urgently to the hospital!", + "text": "{{anc_physical_exam.step3.toaster20.text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1495,7 +1495,7 @@ "key": "oximetry_label", "type": "label", "label_text_style": "bold", - "text": "Oximetry (%)", + "text": "{{anc_physical_exam.step3.oximetry_label.text}}", "text_color": "#000000", "relevance": { "step3:respiratory_exam": { @@ -1525,8 +1525,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman has low oximetry. Refer urgently to the hospital!", - "toaster_info_text": "Procedure:\n- Give oxygen\n- Refer urgently to hospital!", + "text": "{{anc_physical_exam.step3.toaster21.text}}", + "toaster_info_text": "{{anc_physical_exam.step3.toaster21.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1551,7 +1551,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Cardiac exam", + "label": "{{anc_physical_exam.step3.cardiac_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1559,21 +1559,21 @@ "options": [ { "key": "1", - "text": "Not done", + "text": "{{anc_physical_exam.step3.cardiac_exam.options.1.text}}", "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "2", - "text": "Normal", + "text": "{{anc_physical_exam.step3.cardiac_exam.options.2.text}}", "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "3", - "text": "Abnormal", + "text": "{{anc_physical_exam.step3.cardiac_exam.options.3.text}}", "specify_info": "specify...", "specify_widget": "check_box", "specify_info_color": "#8C8C8C", @@ -1590,7 +1590,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal cardiac exam. Refer urgently to the hospital!", + "text": "{{anc_physical_exam.step3.toaster22.text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1615,7 +1615,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Breast exam", + "label": "{{anc_physical_exam.step3.breast_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1623,21 +1623,21 @@ "options": [ { "key": "1", - "text": "Not done", + "text": "{{anc_physical_exam.step3.breast_exam.options.1.text}}", "openmrs_entity_parent": "165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "2", - "text": "Normal", + "text": "{{anc_physical_exam.step3.breast_exam.options.2.text}}", "openmrs_entity_parent": "165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "3", - "text": "Abnormal", + "text": "{{anc_physical_exam.step3.breast_exam.options.3.text}}", "specify_info": "specify...", "specify_widget": "check_box", "specify_info_color": "#8C8C8C", @@ -1654,7 +1654,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal breast exam. Refer for further investigation.", + "text": "{{anc_physical_exam.step3.toaster23.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1679,7 +1679,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Abdominal exam", + "label": "{{anc_physical_exam.step3.abdominal_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1687,21 +1687,21 @@ "options": [ { "key": "1", - "text": "Not done", + "text": "{{anc_physical_exam.step3.abdominal_exam.options.1.text}}", "openmrs_entity_parent": "165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "2", - "text": "Normal", + "text": "{{anc_physical_exam.step3.abdominal_exam.options.2.text}}", "openmrs_entity_parent": "165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "3", - "text": "Abnormal", + "text": "{{anc_physical_exam.step3.abdominal_exam.options.3.text}}", "specify_info": "specify...", "specify_widget": "check_box", "specify_info_color": "#8C8C8C", @@ -1718,7 +1718,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal abdominal exam. Consider high level evaluation or referral.", + "text": "{{anc_physical_exam.step3.toaster24.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1743,7 +1743,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Pelvic exam (visual)", + "label": "{{anc_physical_exam.step3.pelvic_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1751,21 +1751,21 @@ "options": [ { "key": "1", - "text": "Not done", + "text": "{{anc_physical_exam.step3.pelvic_exam.options.1.text}}", "openmrs_entity_parent": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "2", - "text": "Normal", + "text": "{{anc_physical_exam.step3.pelvic_exam.options.2.text}}", "openmrs_entity_parent": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "3", - "text": "Abnormal", + "text": "{{anc_physical_exam.step3.pelvic_exam.options.3.text}}", "specify_info": "specify...", "specify_widget": "check_box", "specify_info_color": "#8C8C8C", @@ -1782,7 +1782,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral.", + "text": "{{anc_physical_exam.step3.toaster25.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1807,7 +1807,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Cervical exam done?", + "label": "{{anc_physical_exam.step3.cervical_exam.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1815,7 +1815,7 @@ "options": [ { "key": "1", - "text": "Done", + "text": "{{anc_physical_exam.step3.cervical_exam.options.1.text}}", "openmrs_entity_parent": "165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1827,7 +1827,7 @@ }, { "key": "2", - "text": "Not done", + "text": "{{anc_physical_exam.step3.cervical_exam.options.2.text}}", "openmrs_entity_parent": "165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1859,7 +1859,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks).", + "text": "{{anc_physical_exam.step3.toaster26.text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -1884,7 +1884,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Oedema present?", + "label": "{{anc_physical_exam.step3.oedema.label}}", "label_text_style": "bold", "text_color": "#000000", "extra_rel": true, @@ -1892,7 +1892,7 @@ "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_physical_exam.step3.oedema.options.yes.text}}", "specify_info": "specify type...", "specify_widget": "radio_button", "specify_info_color": "#8C8C8C", @@ -1903,7 +1903,7 @@ }, { "key": "no", - "text": "No", + "text": "{{anc_physical_exam.step3.oedema.options.no.text}}", "openmrs_entity_parent": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -1916,13 +1916,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Oedema severity", + "label": "{{anc_physical_exam.step3.oedema_severity.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "+", - "text": "+", + "text": "{{anc_physical_exam.step3.oedema_severity.options.+.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1930,7 +1930,7 @@ }, { "key": "++", - "text": "++", + "text": "{{anc_physical_exam.step3.oedema_severity.options.++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1938,7 +1938,7 @@ }, { "key": "+++", - "text": "+++", + "text": "{{anc_physical_exam.step3.oedema_severity.options.+++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1946,7 +1946,7 @@ }, { "key": "++++", - "text": "++++", + "text": "{{anc_physical_exam.step3.oedema_severity.options.++++.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1955,7 +1955,7 @@ ], "v_required": { "value": "false", - "err": "Please enter the result for the dipstick test." + "err": "{{anc_physical_exam.step3.oedema_severity.v_required.err}}" }, "relevance": { "step3:oedema": { @@ -1967,13 +1967,13 @@ ] }, "step4": { - "title": "Fetal Assessment", + "title": "{{anc_physical_exam.step4.title}}", "fields": [ { "key": "sfh_label", "type": "label", "label_text_style": "bold", - "text": "Symphysis-fundal height (SFH) in centimetres (cm)", + "text": "{{anc_physical_exam.step4.sfh_label.text}}", "text_color": "#000000", "v_required": { "value": false @@ -2001,7 +2001,7 @@ }, "v_required": { "value": "false", - "err": "Please enter the SFH" + "err": "{{anc_physical_exam.step4.sfh.v_required.err}}" } }, { @@ -2018,13 +2018,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Fetal movement felt?", + "label": "{{anc_physical_exam.step4.fetal_movement.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_physical_exam.step4.fetal_movement.options.yes.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2032,7 +2032,7 @@ }, { "key": "no", - "text": "No", + "text": "{{anc_physical_exam.step4.fetal_movement.options.no.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2041,7 +2041,7 @@ ], "v_required": { "value": "false", - "err": "Please this field is required." + "err": "{{anc_physical_exam.step4.fetal_movement.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2057,13 +2057,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Fetal heartbeat present?", + "label": "{{anc_physical_exam.step4.fetal_heartbeat.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_physical_exam.step4.fetal_heartbeat.options.yes.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2071,7 +2071,7 @@ }, { "key": "no", - "text": "No", + "text": "{{anc_physical_exam.step4.fetal_heartbeat.options.no.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2080,18 +2080,18 @@ ], "v_required": { "value": "true", - "err": "Please specify if fetal heartbeat is present." + "err": "{{anc_physical_exam.step4.fetal_heartbeat.v_required.err}}" } }, { "key": "fetal_heart_rate_label", "type": "label", "label_text_style": "bold", - "text": "Fetal heart rate (bpm)", + "text": "{{anc_physical_exam.step4.fetal_heart_rate_label.text}}", "text_color": "#000000", "v_required": { "value": "true", - "err": "Please specify if fetal heartbeat is present." + "err": "{{anc_physical_exam.step4.fetal_heart_rate_label.v_required.err}}" }, "relevance": { "step4:fetal_heartbeat": { @@ -2128,7 +2128,7 @@ }, "v_required": { "value": "true", - "err": "Please specify if fetal heartbeat is present." + "err": "{{anc_physical_exam.step4.fetal_heart_rate.v_required.err}}" } }, { @@ -2137,8 +2137,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "No fetal heartbeat observed. Refer to hospital.", - "toaster_info_text": "Procedure:\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n- Refer to hospital.", + "text": "{{anc_physical_exam.step4.toaster27.text}}", + "toaster_info_text": "{{anc_physical_exam.step4.toaster27.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -2155,7 +2155,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again.", + "text": "{{anc_physical_exam.step4.toaster28.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -2178,7 +2178,7 @@ "key": "fetal_heart_rate_repeat_label", "type": "label", "label_text_style": "bold", - "text": "Second fetal heart rate (bpm)", + "text": "{{anc_physical_exam.step4.fetal_heart_rate_repeat_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -2201,7 +2201,7 @@ "edit_type": "number", "v_required": { "value": "true", - "err": "Please enter result for the second fetal heart rate" + "err": "{{anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2217,7 +2217,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Abnormal fetal heart rate. Refer to hospital.", + "text": "{{anc_physical_exam.step4.toaster29.text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -2240,7 +2240,7 @@ "key": "no_of_fetuses_label", "type": "label", "label_text_style": "bold", - "text": "No. of fetuses", + "text": "{{anc_physical_exam.step4.no_of_fetuses_label.text}}", "text_color": "#000000", "v_required": { "value": false @@ -2320,7 +2320,7 @@ "options": [ { "key": "no_of_fetuses_unknown", - "text": "No. of fetuses unknown", + "text": "{{anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text}}", "value": "false", "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2348,9 +2348,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia risk counseling", + "text": "{{anc_physical_exam.step4.toaster30.text}}", "text_color": "#D56900", - "toaster_info_text": "The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. ", + "toaster_info_text": "{{anc_physical_exam.step4.toaster30.toaster_info_text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -2366,13 +2366,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Fetal presentation", + "label": "{{anc_physical_exam.step4.fetal_presentation.label}}", "label_text_style": "bold", - "label_info_text": "If multiple fetuses, indicate the fetal position of the first fetus to be delivered.", + "label_info_text": "{{anc_physical_exam.step4.fetal_presentation.label_info_text}}", "options": [ { "key": "unknown", - "text": "Unknown", + "text": "{{anc_physical_exam.step4.fetal_presentation.options.unknown.text}}", "value": "false", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2380,7 +2380,7 @@ }, { "key": "cephalic", - "text": "Cephalic", + "text": "{{anc_physical_exam.step4.fetal_presentation.options.cephalic.text}}", "value": "false", "openmrs_entity": "concept", "openmrs_entity_id": "160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2388,7 +2388,7 @@ }, { "key": "pelvic", - "text": "Pelvic", + "text": "{{anc_physical_exam.step4.fetal_presentation.options.pelvic.text}}", "value": "false", "openmrs_entity": "concept", "openmrs_entity_id": "146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2396,7 +2396,7 @@ }, { "key": "transverse", - "text": "Transverse", + "text": "{{anc_physical_exam.step4.fetal_presentation.options.transverse.text}}", "value": "false", "openmrs_entity": "concept", "openmrs_entity_id": "112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2404,7 +2404,7 @@ }, { "key": "other", - "text": "Other", + "text": "{{anc_physical_exam.step4.fetal_presentation.options.other.text}}", "value": "false", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2413,7 +2413,7 @@ ], "v_required": { "value": "true", - "err": "Fetal representation field is required" + "err": "{{anc_physical_exam.step4.fetal_presentation.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2424,5 +2424,6 @@ } } ] - } + }, + "properties_file_name": "anc_physical_exam" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index dd11e0061..f945b95fc 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -145,7 +145,7 @@ "sfh_ultrasound_gest_age_selection" ], "step1": { - "title": "Demographic Info", + "title": "{{anc_profile.step1.title}}", "next": "step2", "fields": [ { @@ -154,7 +154,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1712AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Highest level of school", + "label": "{{anc_profile.step1.educ_level.label}}", "label_text_style": "bold", "options": [ { @@ -162,32 +162,32 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "None" + "text": "{{anc_profile.step1.educ_level.options.none.text}}" }, { "key": "dont_know", - "text": "Don't know", + "text": "{{anc_profile.step1.educ_level.options.dont_know.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "primary", - "text": "Primary", + "text": "{{anc_profile.step1.educ_level.options.primary.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1713AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "secondary", - "text": "Secondary", + "text": "{{anc_profile.step1.educ_level.options.secondary.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "higher", - "text": "Higher", + "text": "{{anc_profile.step1.educ_level.options.higher.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160292AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -195,7 +195,7 @@ ], "v_required": { "value": true, - "err": "Please specify your education level" + "err": "{{anc_profile.step1.educ_level.v_required.err}}" } }, { @@ -204,33 +204,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Marital status", + "label": "{{anc_profile.step1.marital_status.label}}", "label_text_style": "bold", "options": [ { "key": "married", - "text": "Married or living together", + "text": "{{anc_profile.step1.marital_status.options.married.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "divorced", - "text": "Divorced / separated", + "text": "{{anc_profile.step1.marital_status.options.divorced.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1058AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "single", - "text": "Never married and never lived together (single)", + "text": "{{anc_profile.step1.marital_status.options.single.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "widowed", - "text": "Widowed", + "text": "{{anc_profile.step1.marital_status.options.widowed.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -238,7 +238,7 @@ ], "v_required": { "value": true, - "err": "Please specify your marital status" + "err": "{{anc_profile.step1.marital_status.v_required.err}}" } }, { @@ -248,48 +248,48 @@ "openmrs_entity_id": "1542AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "check_box", - "label": "Occupation", - "hint": "Occupation", + "label": "{{anc_profile.step1.occupation.label}}", + "hint": "{{anc_profile.step1.occupation.hint}}", "label_text_style": "bold", "options": [ { "key": "student", - "text": "Student", + "text": "{{anc_profile.step1.occupation.options.student.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159465AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "unemployed", - "text": "Unemployed", + "text": "{{anc_profile.step1.occupation.options.unemployed.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "123801AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "formal_employment", - "text": "Formal employment", + "text": "{{anc_profile.step1.occupation.options.formal_employment.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "informal_employment_sex_worker", - "text": "Informal employment (sex worker)", + "text": "{{anc_profile.step1.occupation.options.informal_employment_sex_worker.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160579AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "informal_employment_other", - "text": "Informal employment (other)", + "text": "{{anc_profile.step1.occupation.options.informal_employment_other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_profile.step1.occupation.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -297,7 +297,7 @@ ], "v_required": { "value": true, - "err": "Please select at least one occupation" + "err": "{{anc_profile.step1.occupation.v_required.err}}" } }, { @@ -306,7 +306,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step1.occupation_other.hint}}", "edit_type": "name", "relevance": { "step1:occupation": { @@ -321,11 +321,11 @@ }, "v_required": { "value": false, - "err": "Please specify your occupation" + "err": "{{anc_profile.step1.occupation_other.v_required.err}}" }, "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please specify your occupation" + "err": "{{anc_profile.step1.occupation_other.v_regex.err}}" } }, { @@ -353,9 +353,9 @@ "openmrs_entity": "Counselling (Human immunodeficiency virus [HIV] counselling)", "openmrs_entity_id": "2047", "type": "toaster_notes", - "text": "HIV risk counseling", - "toaster_info_text": "Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits", - "toaster_info_title": "HIV risk counseling", + "text": "{{anc_profile.step1.hiv_risk_counseling_toaster.text}}", + "toaster_info_text": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title}}", "toaster_type": "problem", "text_color": "#CF0800", "relevance": { @@ -369,7 +369,7 @@ ] }, "step2": { - "title": "Current Pregnancy", + "title": "{{anc_profile.step2.title}}", "next": "step3", "fields": [ { @@ -378,15 +378,15 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "LMP known?", - "label_info_text": "LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort).", - "label_info_title": "LMP known?", + "label": "{{anc_profile.step2.lmp_known.label}}", + "label_info_text": "{{anc_profile.step2.lmp_known.label_info_text}}", + "label_info_title": "{{anc_profile.step2.lmp_known.label_info_title}}", "label_text_style": "bold", "max_date": "today", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step2.lmp_known.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -397,7 +397,7 @@ }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step2.lmp_known.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -405,7 +405,7 @@ ], "v_required": { "value": true, - "err": "Lmp unknown is required" + "err": "{{anc_profile.step2.lmp_known.v_required.err}}" } }, { @@ -461,14 +461,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Ultrasound done?", - "label_info_text": "An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location).", - "label_info_title": "Ultrasound done?", + "label": "{{anc_profile.step2.ultrasound_done.label}}", + "label_info_text": "{{anc_profile.step2.ultrasound_done.label_info_text}}", + "label_info_title": "{{anc_profile.step2.ultrasound_done.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step2.ultrasound_done.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -479,7 +479,7 @@ }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step2.ultrasound_done.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -487,7 +487,7 @@ ], "v_required": { "value": true, - "err": "Ultrasound done is required" + "err": "{{anc_profile.step2.ultrasound_done.v_required.err}}" } }, { @@ -505,10 +505,10 @@ "openmrs_entity": "person_attribute", "openmrs_entity_id": "toaster_notes", "type": "toaster_notes", - "text": "Ultrasound recommended", + "text": "{{anc_profile.step2.ultrasound_toaster.text}}", "text_color": "#1199F9", - "toaster_info_text": "An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location).", - "toaster_info_title": "Ultrasound recommended", + "toaster_info_text": "{{anc_profile.step2.ultrasound_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step2.ultrasound_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -524,10 +524,10 @@ "openmrs_entity": "person_attribute", "openmrs_entity_id": "toaster_notes", "type": "toaster_notes", - "text": "Refer for ultrasound in facility with U/S equipment", + "text": "{{anc_profile.step2.facility_in_us_toaster.text}}", "text_color": "#1199F9", - "toaster_info_text": "An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location).", - "toaster_info_title": "Refer for ultrasound in facility with U/S equipment", + "toaster_info_text": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -543,7 +543,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "edit_text", - "hint": "GA from ultrasound - weeks", + "hint": "{{anc_profile.step2.ultrasound_gest_age_wks.hint}}", "relevance": { "step2:ultrasound_done": { "type": "string", @@ -552,7 +552,7 @@ }, "v_required": { "value": true, - "err": "Please give the GA from ultrasound - weeks" + "err": "{{anc_profile.step2.ultrasound_gest_age_wks.v_required.err}}" }, "v_numeric_integer": { "value": true, @@ -573,7 +573,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "edit_text", - "hint": "GA from ultrasound - days", + "hint": "{{anc_profile.step2.ultrasound_gest_age_days.hint}}", "relevance": { "step2:ultrasound_done": { "type": "string", @@ -582,7 +582,7 @@ }, "v_required": { "value": false, - "err": "Please give the GA from ultrasound - days" + "err": "{{anc_profile.step2.ultrasound_gest_age_days.v_required.err}}" }, "v_numeric_integer": { "value": true, @@ -673,12 +673,12 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn't done or it wasn't done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", "label_info_title": "GA from SFH or abdominal palpation - weeks", - "hint": "GA from SFH or palpation - weeks", + "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", "v_required": { "value": true, - "err": "Please give the GA from SFH or abdominal palpation - weeks" + "err": "{{anc_profile.step2.sfh_gest_age.v_required.err}}" }, "v_numeric_integer": { "value": true, @@ -737,13 +737,13 @@ { "key": "select_gest_age_edd_label", "type": "label", - "text": "Select preferred gestational age", + "text": "{{anc_profile.step2.select_gest_age_edd_label.text}}", "label_info_text": "If the difference between GA from LMP and early ultrasound is one week or less, then use GA from LMP. If the difference is more than 7 days, use the early ultrasound GA. If ultrasound was done late, use GA from LMP. Between late ultrasound and SFH or abdominal palpation, use your best judgment to select GA.", "label_text_style": "bold", "text_color": "#000000", "v_required": { "value": true, - "err": "Select preferred gestational age" + "err": "{{anc_profile.step2.select_gest_age_edd_label.v_required.err}}" } }, { @@ -752,20 +752,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "", + "label": "{{anc_profile.step2.lmp_gest_age_selection.label}}", "options": [ { "key": "lmp", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "Using LMP", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" } ], "v_required": { "value": true, - "err": "Please select preferred gestational age" + "err": "{{anc_profile.step2.lmp_gest_age_selection.v_required.err}}" }, "calculation": { "rules-engine": { @@ -788,20 +788,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "", + "label": "{{anc_profile.step2.ultrasound_gest_age_selection.label}}", "options": [ { "key": "ultrasound", - "text": "Using ultrasound", + "text": "{{anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { "value": true, - "err": "Please select preferred gestational age" + "err": "{{anc_profile.step2.ultrasound_gest_age_selection.v_required.err}}" }, "calculation": { "rules-engine": { @@ -824,20 +824,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "", + "label": "{{anc_profile.step2.sfh_gest_age_selection.label}}", "options": [ { "key": "sfh", - "text": "Using SFH or abdominal palpation", + "text": "{{anc_profile.step2.sfh_gest_age_selection.options.sfh.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { "value": true, - "err": "Please select preferred gestational age" + "err": "{{anc_profile.step2.sfh_gest_age_selection.v_required.err}}" }, "calculation": { "rules-engine": { @@ -860,28 +860,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "", + "label": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.label}}", "options": [ { "key": "lmp", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "Using LMP", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" }, { "key": "ultrasound", - "text": "Using ultrasound", + "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { "value": true, - "err": "Please select preferred gestational age" + "err": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err}}" }, "calculation": { "rules-engine": { @@ -904,28 +904,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "", + "label": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.label}}", "options": [ { "key": "ultrasound", - "text": "Using ultrasound", + "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" }, { "key": "sfh", - "text": "Using SFH or abdominal palpation", + "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { "value": true, - "err": "Please select preferred gestational age" + "err": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err}}" }, "calculation": { "rules-engine": { @@ -1078,7 +1078,7 @@ ] }, "step3": { - "title": "Obstetric History", + "title": "{{anc_profile.step3.title}}", "next": "step4", "fields": [ { @@ -1093,11 +1093,11 @@ "key": "gravida_label", "type": "label", "label_text_style": "bold", - "text": "No. of pregnancies (including this pregnancy)", + "text": "{{anc_profile.step3.gravida_label.text}}", "text_color": "#000000", "v_required": { "value": true, - "err": "No of pregnancies is required" + "err": "{{anc_profile.step3.gravida_label.v_required.err}}" } }, { @@ -1114,7 +1114,7 @@ "selected_text_color": "#ffffff", "v_required": { "value": true, - "err": "No of pregnancies is required" + "err": "{{anc_profile.step3.gravida.v_required.err}}" } }, { @@ -1127,7 +1127,7 @@ "text_color": "#FF0000", "v_required": { "value": true, - "err": "Previous pregnancies is required" + "err": "{{anc_profile.step3.previous_pregnancies.v_required.err}}" }, "calculation": { "rules-engine": { @@ -1149,7 +1149,7 @@ "key": "miscarriages_abortions_label", "type": "label", "label_text_style": "bold", - "text": "No. of pregnancies lost/ended (before 22 weeks / 5 months)", + "text": "{{anc_profile.step3.miscarriages_abortions_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -1176,7 +1176,7 @@ "selected_text_color": "#ffffff", "v_required": { "value": true, - "err": "Miscarriage abortions is required" + "err": "{{anc_profile.step3.miscarriages_abortions.v_required.err}}" }, "constraints": { "rules-engine": { @@ -1205,7 +1205,7 @@ "key": "live_births_label", "type": "label", "label_text_style": "bold", - "text": "No. of live births (after 22 weeks)", + "text": "{{anc_profile.step3.live_births_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -1232,7 +1232,7 @@ "selected_text_color": "#ffffff", "v_required": { "value": true, - "err": "Live births is required" + "err": "{{anc_profile.step3.live_births.v_required.err}}" }, "constraints": { "rules-engine": { @@ -1263,25 +1263,25 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "native_radio", - "label": "Was the last live birth preterm (less than 37 weeks)?", + "label": "{{anc_profile.step3.last_live_birth_preterm.label}}", "text_color": "#000000", "label_text_style": "bold", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.yes.text}}", "openmrs_entity": "", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.no.text}}", "openmrs_entity": "", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "dont_know", - "text": "Don't know", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.dont_know.text}}", "openmrs_entity": "", "openmrs_entity_id": "" } @@ -1295,18 +1295,18 @@ }, "v_required": { "value": false, - "err": "Last live birth preterm is required" + "err": "{{anc_profile.step3.last_live_birth_preterm.v_required.err}}" } }, { "key": "stillbirths_label", "type": "label", "label_text_style": "bold", - "text": "No. of stillbirths (after 22 weeks)", + "text": "{{anc_profile.step3.stillbirths_label.text}}", "text_color": "#000000", "v_required": { "value": true, - "err": "Still births is required" + "err": "{{anc_profile.step3.stillbirths_label.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1330,7 +1330,7 @@ "selected_text_color": "#ffffff", "v_required": { "value": true, - "err": "Still births is required" + "err": "{{anc_profile.step3.stillbirths.v_required.err}}" }, "constraints": { "rules-engine": { @@ -1378,7 +1378,7 @@ "key": "c_sections_label", "type": "label", "label_text_style": "bold", - "text": "No. of C-sections", + "text": "{{anc_profile.step3.c_sections_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -1405,7 +1405,7 @@ "selected_text_color": "#ffffff", "v_required": { "value": true, - "err": "C-sections is required" + "err": "{{anc_profile.step3.c_sections.v_required.err}}" }, "constraints": { "rules-engine": { @@ -1437,7 +1437,7 @@ "openmrs_entity_id": "1430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Any past pregnancy problems?", + "label": "{{anc_profile.step3.prev_preg_comps.label}}", "label_text_style": "bold", "exclusive": [ "none", @@ -1449,110 +1449,110 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "None" + "text": "{{anc_profile.step3.prev_preg_comps.options.none.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dont_know", - "text": "Don't know" + "text": "{{anc_profile.step3.prev_preg_comps.options.dont_know.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "pre_eclampsia", - "text": "Pre-eclampsia" + "text": "{{anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "118744AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "eclampsia", - "text": "Eclampsia" + "text": "{{anc_profile.step3.prev_preg_comps.options.eclampsia.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "113054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "convulsions", - "text": "Convulsions" + "text": "{{anc_profile.step3.prev_preg_comps.options.convulsions.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1449AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "gestational_diabetes", - "text": "Gestational Diabetes" + "text": "{{anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "tobacco_use", - "text": "Tobacco use" + "text": "{{anc_profile.step3.prev_preg_comps.options.tobacco_use.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "alcohol_use", - "text": "Alcohol use" + "text": "{{anc_profile.step3.prev_preg_comps.options.alcohol_use.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "illicit_substance", - "text": "Substance use" + "text": "{{anc_profile.step3.prev_preg_comps.options.illicit_substance.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "heavy_bleeding", - "text": "Heavy bleeding (during or after delivery)" + "text": "{{anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "baby_died_in_24_hrs", - "text": "Baby died within 24 hours of birth" + "text": "{{anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "140951AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "macrosomia", - "text": "Macrosomia" + "text": "{{anc_profile.step3.prev_preg_comps.options.macrosomia.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "118159AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "vacuum_delivery", - "text": "Forceps or vacuum delivery" + "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "124858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "3rd_degree_tear", - "text": "3rd or 4th degree tear" + "text": "{{anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "Other (specify)" + "text": "{{anc_profile.step3.prev_preg_comps.options.other.text}}" } ], "v_required": { "value": true, - "err": "Please select at least one past pregnancy problems" + "err": "{{anc_profile.step3.prev_preg_comps.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1568,7 +1568,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step3.prev_preg_comps_other.hint}}", "relevance": { "step3:prev_preg_comps": { "ex-checkbox": [ @@ -1582,11 +1582,11 @@ }, "v_required": { "value": false, - "err": "Please specify other past pregnancy problems" + "err": "{{anc_profile.step3.prev_preg_comps_other.v_required.err}}" }, "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please specify other past pregnancy problems" + "err": "{{anc_profile.step3.prev_preg_comps_other.v_regex.err}}" } }, { @@ -1596,7 +1596,7 @@ "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Specify illicit substance use", + "label": "{{anc_profile.step3.substances_used.label}}", "label_text_style": "bold", "relevance": { "step3:prev_preg_comps": { @@ -1615,33 +1615,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "marijuana", - "text": "Marijuana" + "text": "{{anc_profile.step3.substances_used.options.marijuana.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "cocaine", - "text": "Cocaine / Crack" + "text": "{{anc_profile.step3.substances_used.options.cocaine.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "injectable_drugs", - "text": "Injectable drugs" + "text": "{{anc_profile.step3.substances_used.options.injectable_drugs.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "Other (specify)" + "text": "{{anc_profile.step3.substances_used.options.other.text}}" } ], "v_required": { "value": false, - "err": "Please select at least one alcohol or illicit substance use" + "err": "{{anc_profile.step3.substances_used.v_required.err}}" } }, { @@ -1650,7 +1650,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step3.substances_used_other.hint}}", "relevance": { "step3:substances_used": { "ex-checkbox": [ @@ -1664,11 +1664,11 @@ }, "v_required": { "value": false, - "err": "Please specify other substances abused" + "err": "{{anc_profile.step3.substances_used_other.v_required.err}}" }, "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please specify other specify other substances abused" + "err": "{{anc_profile.step3.substances_used_other.v_regex.err}}" } }, { @@ -1696,10 +1696,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia risk counseling", + "text": "{{anc_profile.step3.pre_eclampsia_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling.", - "toaster_info_title": "Pre-eclampsia risk counseling", + "toaster_info_text": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -1734,10 +1734,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Gestational diabetes mellitus (GDM) risk counseling", + "text": "{{anc_profile.step3.gestational_diabetes_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy", - "toaster_info_title": "Gestational diabetes mellitus (GDM) risk counseling", + "toaster_info_text": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -1750,7 +1750,7 @@ ] }, "step4": { - "title": "Medical History", + "title": "{{anc_profile.step4.title}}", "next": "step5", "fields": [ { @@ -1760,9 +1760,9 @@ "openmrs_entity_id": "160643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Any allergies?", + "label": "{{anc_profile.step4.allergies.label}}", "label_text_style": "bold", - "hint": "Any allergies?", + "hint": "{{anc_profile.step4.allergies.hint}}", "exclusive": [ "none", "dont_know" @@ -1773,110 +1773,110 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "None" + "text": "{{anc_profile.step4.allergies.options.none.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dont_know", - "text": "Don't know" + "text": "{{anc_profile.step4.allergies.options.dont_know.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "70439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "albendazole", - "text": "Albendazole" + "text": "{{anc_profile.step4.allergies.options.albendazole.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "70991AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "aluminium_hydroxide", - "text": "Aluminium hydroxide" + "text": "{{anc_profile.step4.allergies.options.aluminium_hydroxide.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "calcium", - "text": "Calcium" + "text": "{{anc_profile.step4.allergies.options.calcium.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "73154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "chamomile", - "text": "Chamomile" + "text": "{{anc_profile.step4.allergies.options.chamomile.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "folic_acid", - "text": "Folic acid" + "text": "{{anc_profile.step4.allergies.options.folic_acid.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "77001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "ginger", - "text": "Ginger" + "text": "{{anc_profile.step4.allergies.options.ginger.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "iron", - "text": "Iron" + "text": "{{anc_profile.step4.allergies.options.iron.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "79229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "magnesium_carbonate", - "text": "Magnesium carbonate" + "text": "{{anc_profile.step4.allergies.options.magnesium_carbonate.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "924AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "malaria_medication", - "text": "Malaria medication (sulfadoxine-pyrimethamine)" + "text": "{{anc_profile.step4.allergies.options.malaria_medication.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "79413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "mebendazole", - "text": "Mebendazole" + "text": "{{anc_profile.step4.allergies.options.mebendazole.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "81724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "penicillin", - "text": "Penicillin" + "text": "{{anc_profile.step4.allergies.options.penicillin.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "84797AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "prep_tenofovir_disoproxil_fumarate", - "text": "PrEP tenofovir disoproxil fumarate (TDF)" + "text": "{{anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "Other (specify)" + "text": "{{anc_profile.step4.allergies.options.other.text}}" } ], "v_required": { "value": false, - "err": "Please select at least one allergy" + "err": "{{anc_profile.step4.allergies.v_required.err}}" } }, { @@ -1885,7 +1885,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step4.allergies_other.hint}}", "edit_type": "edit_text", "relevance": { "step4:allergies": { @@ -1906,9 +1906,9 @@ "openmrs_entity_id": "1651AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Any surgeries?", + "label": "{{anc_profile.step4.surgeries.label}}", "label_text_style": "bold", - "hint": "Any surgeries?", + "hint": "{{anc_profile.step4.surgeries.hint}}", "exclusive": [ "none", "dont_know" @@ -1919,75 +1919,75 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "None" + "text": "{{anc_profile.step4.surgeries.options.none.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dont_know", - "text": "Don't know" + "text": "{{anc_profile.step4.surgeries.options.dont_know.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1637AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dilation_and_curettage", - "text": "Dilation and curettage" + "text": "{{anc_profile.step4.surgeries.options.dilation_and_curettage.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161829AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "removal_of_fibroid", - "text": "Removal of fibroids (myomectomy)" + "text": "{{anc_profile.step4.surgeries.options.removal_of_fibroid.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165262AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "removal_of_ovarian_cysts", - "text": "Removal of ovarian cysts" + "text": "{{anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161844AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "removal_of_ovary", - "text": "Removal of ovary (oophorectomy)" + "text": "{{anc_profile.step4.surgeries.options.removal_of_ovary.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161835AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "removal_of_the_tube", - "text": "Removal of the tube (salpingectomy)" + "text": "{{anc_profile.step4.surgeries.options.removal_of_the_tube.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "162811AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "cervical_cone", - "text": "Partial removal of the cervix (cervical cone)" + "text": "{{anc_profile.step4.surgeries.options.cervical_cone.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165263AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other_gynecological_procedures", - "text": "Other gynecological procedures (specify)" + "text": "{{anc_profile.step4.surgeries.options.other_gynecological_procedures.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "Other surgeries (specify)" + "text": "{{anc_profile.step4.surgeries.options.other.text}}" } ], "v_required": { "value": false, - "err": "Please select at least one surgeries" + "err": "{{anc_profile.step4.surgeries.v_required.err}}" } }, { @@ -1996,7 +1996,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Other gynecological procedures", + "hint": "{{anc_profile.step4.surgeries_other_gyn_proced.hint}}", "edit_type": "edit_text", "other_for": { "parent_key": "surgeries", @@ -2015,7 +2015,7 @@ }, "v_required": { "value": false, - "err": "Please specify the other gynecological procedures" + "err": "{{anc_profile.step4.surgeries_other_gyn_proced.v_required.err}}" } }, { @@ -2024,11 +2024,11 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Other surgeries", + "hint": "{{anc_profile.step4.surgeries_other.hint}}", "edit_type": "edit_text", "v_required": { "value": false, - "err": "Please specify the Other surgeries" + "err": "{{anc_profile.step4.surgeries_other.v_required.err}}" }, "relevance": { "step4:surgeries": { @@ -2049,9 +2049,9 @@ "openmrs_entity_id": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Any chronic or past health conditions?", + "label": "{{anc_profile.step4.health_conditions.label}}", "label_text_style": "bold", - "hint": "Any chronic or past health conditions?", + "hint": "{{anc_profile.step4.health_conditions.hint}}", "exclusive": [ "none", "dont_know" @@ -2062,82 +2062,82 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "None" + "text": "{{anc_profile.step4.health_conditions.options.none.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dont_know", - "text": "Don't know" + "text": "{{anc_profile.step4.health_conditions.options.dont_know.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "148117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "autoimmune_disease", - "text": "Autoimmune disease" + "text": "{{anc_profile.step4.health_conditions.options.autoimmune_disease.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165223AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "blood_disorder", - "text": "Blood disorder (e.g. sickle cell anemia, thalassemia)" + "text": "{{anc_profile.step4.health_conditions.options.blood_disorder.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "151286AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "cancer", - "text": "Cancer" + "text": "{{anc_profile.step4.health_conditions.options.cancer.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "119481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "diabetes", - "text": "Diabetes" + "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "155AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "epilepsy", - "text": "Epilepsy" + "text": "{{anc_profile.step4.health_conditions.options.epilepsy.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "138571AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "hiv", - "text": "HIV" + "text": "{{anc_profile.step4.health_conditions.options.hiv.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "117399AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "hypertension", - "text": "Hypertension" + "text": "{{anc_profile.step4.health_conditions.options.hypertension.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "6033AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "kidney_disease", - "text": "Kidney disease" + "text": "{{anc_profile.step4.health_conditions.options.kidney_disease.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "Other (specify)" + "text": "{{anc_profile.step4.health_conditions.options.other.text}}" } ], "v_required": { "value": false, - "err": "Please select at least one chronic or past health conditions" + "err": "{{anc_profile.step4.health_conditions.v_required.err}}" } }, { @@ -2146,11 +2146,11 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step4.health_conditions_other.hint}}", "edit_type": "edit_text", "v_required": { "value": false, - "err": "Please specify the chronic or past health conditions" + "err": "{{anc_profile.step4.health_conditions_other.v_required.err}}" }, "relevance": { "step4:health_conditions": { @@ -2189,10 +2189,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia risk counseling", + "text": "{{anc_profile.step4.pre_eclampsia_two_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling.", - "toaster_info_title": "Pre-eclampsia risk counseling", + "toaster_info_text": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -2208,7 +2208,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "HIV diagnosis date", + "hint": "{{anc_profile.step4.hiv_diagnosis_date.hint}}", "expanded": false, "relevance": { "rules-engine": { @@ -2220,7 +2220,7 @@ "max_date": "today", "v_required": { "value": true, - "err": "Please enter the HIV diagnosis date" + "err": "{{anc_profile.step4.hiv_diagnosis_date.v_required.err}}" } }, { @@ -2237,13 +2237,13 @@ "openmrs_entity": "", "openmrs_entity_id": "", "key": "yes", - "text": "HIV diagnosis date unknown?", + "text": "{{anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text}}", "value": false } ], "v_required": { "value": false, - "err": "Please select the unknown HIV Date" + "err": "{{anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err}}" }, "relevance": { "step4:health_conditions": { @@ -2279,7 +2279,7 @@ ] }, "step5": { - "title": "Immunisation Status", + "title": "{{anc_profile.step5.title}}", "next": "step6", "fields": [ { @@ -2288,34 +2288,34 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "TT immunisation status", + "label": "{{anc_profile.step5.tt_immun_status.label}}", "label_text_style": "bold", "multi_relevance": true, "options": [ { "key": "3_doses", - "text": "3 doses of TTCV in past 5 years", + "text": "{{anc_profile.step5.tt_immun_status.options.3_doses.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "164134AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "1-4_doses", - "text": "1-4 doses of TTCV in the past", + "text": "{{anc_profile.step5.tt_immun_status.options.1-4_doses.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "ttcv_not_received", - "text": "TTCV not received", + "text": "{{anc_profile.step5.tt_immun_status.options.ttcv_not_received.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "unknown", - "text": "Unknown", + "text": "{{anc_profile.step5.tt_immun_status.options.unknown.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2323,7 +2323,7 @@ ], "v_required": { "value": true, - "err": "Please select TT Immunisation status" + "err": "{{anc_profile.step5.tt_immun_status.v_required.err}}" } }, { @@ -2332,10 +2332,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "TT immunisation recommended", + "text": "{{anc_profile.step5.tt_immunisation_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.", - "toaster_info_title": "TT immunisation recommended", + "toaster_info_text": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "step5:tt_immun_status": { @@ -2357,7 +2357,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is fully immunised against tetanus!", + "text": "{{anc_profile.step5.fully_immunised_toaster.text}}", "text_color": "#000000", "toaster_type": "positive", "relevance": { @@ -2378,7 +2378,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B immunisation status", + "label": "{{anc_profile.step5.hepb_immun_status.label}}", "label_text_style": "bold", "multi_relevance": true, "options": [ @@ -2387,25 +2387,25 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "3 doses" + "text": "{{anc_profile.step5.hepb_immun_status.options.3_doses.text}}" }, { "key": "incomplete", - "text": "Incomplete", + "text": "{{anc_profile.step5.hepb_immun_status.options.incomplete.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_received", - "text": "Not received", + "text": "{{anc_profile.step5.hepb_immun_status.options.not_received.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "unknown", - "text": "Unknown", + "text": "{{anc_profile.step5.hepb_immun_status.options.unknown.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2413,7 +2413,7 @@ ], "v_required": { "value": true, - "err": "Please select Hep B immunisation status" + "err": "{{anc_profile.step5.hepb_immun_status.v_required.err}}" }, "relevance": { "rules-engine": { @@ -2429,10 +2429,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hep B testing recommended", + "text": "{{anc_profile.step5.hep_b_testing_recommended_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Hep B testing is recommended for at risk women who are not already fully immunised against Hep B.", - "toaster_info_title": "Hep B testing recommended", + "toaster_info_text": "{{anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "step5:hepb_immun_status": { @@ -2454,7 +2454,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is fully immunised against Hep B!", + "text": "{{anc_profile.step5.fully_hep_b_immunised_toaster.text}}", "text_color": "#000000", "toaster_type": "positive", "relevance": { @@ -2475,27 +2475,27 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Flu immunisation status", + "label": "{{anc_profile.step5.flu_immun_status.label}}", "label_text_style": "bold", "multi_relevance": true, "options": [ { "key": "seasonal_flu_dose_given", - "text": "Seasonal flu dose given", + "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "seasonal_flu_dose_missing", - "text": "Seasonal flu dose missing", + "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "unknown", - "text": "Unknown", + "text": "{{anc_profile.step5.flu_immun_status.options.unknown.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2503,7 +2503,7 @@ ], "v_required": { "value": true, - "err": "Please select Hep B immunisation status" + "err": "{{anc_profile.step5.flu_immun_status.v_required.err}}" } }, { @@ -2512,10 +2512,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Flu immunisation recommended", + "text": "{{anc_profile.step5.flu_immunisation_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. ", - "toaster_info_title": "Flu immunisation recommended", + "toaster_info_text": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "step5:flu_immun_status": { @@ -2536,7 +2536,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Woman is immunised against flu!", + "text": "{{anc_profile.step5.immunised_against_flu_toaster.text}}", "text_color": "#000000", "toaster_type": "positive", "relevance": { @@ -2554,7 +2554,7 @@ ] }, "step6": { - "title": "Medications", + "title": "{{anc_profile.step6.title}}", "next": "step7", "fields": [ { @@ -2563,7 +2563,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Current medications", + "label": "{{anc_profile.step6.medications.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -2573,7 +2573,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_profile.step6.medications.options.none.text}}", "value": false, "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "", @@ -2581,7 +2581,7 @@ }, { "key": "dont_know", - "text": "Don't know", + "text": "{{anc_profile.step6.medications.options.dont_know.text}}", "value": false, "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "", @@ -2589,7 +2589,7 @@ }, { "key": "antacids", - "text": "Antacids", + "text": "{{anc_profile.step6.medications.options.antacids.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "944AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2597,7 +2597,7 @@ }, { "key": "aspirin", - "text": "Aspirin", + "text": "{{anc_profile.step6.medications.options.aspirin.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2605,7 +2605,7 @@ }, { "key": "calcium", - "text": "Calcium", + "text": "{{anc_profile.step6.medications.options.calcium.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2613,7 +2613,7 @@ }, { "key": "doxylamine", - "text": "Doxylamine", + "text": "{{anc_profile.step6.medications.options.doxylamine.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "75229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2621,7 +2621,7 @@ }, { "key": "folic_acid", - "text": "Folic Acid", + "text": "{{anc_profile.step6.medications.options.folic_acid.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2629,7 +2629,7 @@ }, { "key": "iron", - "text": "Iron", + "text": "{{anc_profile.step6.medications.options.iron.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2637,7 +2637,7 @@ }, { "key": "magnesium", - "text": "Magnesium", + "text": "{{anc_profile.step6.medications.options.magnesium.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "79224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2645,7 +2645,7 @@ }, { "key": "metoclopramide", - "text": "Metoclopramide", + "text": "{{anc_profile.step6.medications.options.metoclopramide.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "79755AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2653,7 +2653,7 @@ }, { "key": "vitamina", - "text": "Vitamin A", + "text": "{{anc_profile.step6.medications.options.vitamina.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "86339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2661,7 +2661,7 @@ }, { "key": "analgesic", - "text": "Analgesic", + "text": "{{anc_profile.step6.medications.options.analgesic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165231AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2669,7 +2669,7 @@ }, { "key": "anti_convulsive", - "text": "Anti-convulsive", + "text": "{{anc_profile.step6.medications.options.anti_convulsive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2677,7 +2677,7 @@ }, { "key": "anti_diabetic", - "text": "Anti-diabetic", + "text": "{{anc_profile.step6.medications.options.anti_diabetic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "159460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2685,7 +2685,7 @@ }, { "key": "anthelmintic", - "text": "Anthelmintic", + "text": "{{anc_profile.step6.medications.options.anthelmintic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2693,7 +2693,7 @@ }, { "key": "anti_hypertensive", - "text": "Anti-hypertensive", + "text": "{{anc_profile.step6.medications.options.anti_hypertensive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165237AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2701,7 +2701,7 @@ }, { "key": "anti_malarials", - "text": "Anti-malarials", + "text": "{{anc_profile.step6.medications.options.anti_malarials.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5839AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2709,7 +2709,7 @@ }, { "key": "antivirals", - "text": "Antivirals", + "text": "{{anc_profile.step6.medications.options.antivirals.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165236AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2717,7 +2717,7 @@ }, { "key": "arvs", - "text": "Antiretrovirals (ARVs)", + "text": "{{anc_profile.step6.medications.options.arvs.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2725,7 +2725,7 @@ }, { "key": "antitussive", - "text": "Antitussive", + "text": "{{anc_profile.step6.medications.options.antitussive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165235AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2733,7 +2733,7 @@ }, { "key": "asthma", - "text": "Asthma", + "text": "{{anc_profile.step6.medications.options.asthma.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165234AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2741,7 +2741,7 @@ }, { "key": "cotrimoxazole", - "text": "Cotrimoxazole", + "text": "{{anc_profile.step6.medications.options.cotrimoxazole.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2749,7 +2749,7 @@ }, { "key": "antibiotics", - "text": "Other antibiotics", + "text": "{{anc_profile.step6.medications.options.antibiotics.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1195AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2757,7 +2757,7 @@ }, { "key": "hematinic", - "text": "Hematinic", + "text": "{{anc_profile.step6.medications.options.hematinic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165233AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2765,7 +2765,7 @@ }, { "key": "hemorrhoidal", - "text": "Hemorrhoidal medication", + "text": "{{anc_profile.step6.medications.options.hemorrhoidal.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165255AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2773,7 +2773,7 @@ }, { "key": "multivitamin", - "text": "Multivitamin", + "text": "{{anc_profile.step6.medications.options.multivitamin.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "461AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2781,7 +2781,7 @@ }, { "key": "thyroid", - "text": "Thyroid medication", + "text": "{{anc_profile.step6.medications.options.thyroid.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2789,7 +2789,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_profile.step6.medications.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2798,7 +2798,7 @@ ], "v_required": { "value": true, - "err": "Please select at least one medication" + "err": "{{anc_profile.step6.medications.v_required.err}}" } }, { @@ -2807,11 +2807,11 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step6.medications_other.hint}}", "edit_type": "edit_text", "v_required": { "value": false, - "err": "Please specify the Other medications" + "err": "{{anc_profile.step6.medications_other.v_required.err}}" }, "relevance": { "step6:medications": { @@ -2828,7 +2828,7 @@ ] }, "step7": { - "title": "Woman's Behaviour", + "title": "{{anc_profile.step7.title}}", "next": "step8", "fields": [ { @@ -2838,9 +2838,9 @@ "openmrs_entity_id": "165243AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select multiple", "type": "check_box", - "label": "Daily caffeine intake", + "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", - "hint": "Daily caffeine intake", + "hint": "{{anc_profile.step7.caffeine_intake.hint}}", "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- 2 cups (200 ml) of filtered or commercially brewed coffee\n- 2 small cups (50 ml) of espresso\n- 3 cups (300 ml) of instant coffee\n- 48 pieces (squares) of chocolate\n\nPlease indicate if the woman consumes more than these amounts per day.", "exclusive": [ "none" @@ -2851,40 +2851,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165239AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "commercially_brewed_coffee", - "text": "More than 2 cups (200 ml) of filtered or commercially brewed coffee" + "text": "{{anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "more_than_2_small_cups_50_ml_of_espresso", - "text": "More than 2 small cups (50 ml) of espresso" + "text": "{{anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165241AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "more_than_3_cups_300ml_of_instant_coffee", - "text": "More than 3 cups (300 ml) of instant coffee" + "text": "{{anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "more_than_48_pieces_squares_of_chocolate", - "text": "More than 48 pieces (squares) of chocolate" + "text": "{{anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "None of the above" + "text": "{{anc_profile.step7.caffeine_intake.options.none.text}}" } ], "v_required": { "value": true, - "err": "Daily caffeine intake is required" + "err": "{{anc_profile.step7.caffeine_intake.v_required.err}}" } }, { @@ -2893,10 +2893,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Caffeine reduction counseling", + "text": "{{anc_profile.step7.caffeine_reduction_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving.", - "toaster_info_title": "Caffeine reduction counseling", + "toaster_info_text": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "step7:caffeine_intake": { @@ -2919,27 +2919,27 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163731AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Uses tobacco products?", + "label": "{{anc_profile.step7.tobacco_user.label}}", "label_text_style": "bold", "multi_relevance": true, "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step7.tobacco_user.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159450AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step7.tobacco_user.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "recently_quit", - "text": "Recently quit", + "text": "{{anc_profile.step7.tobacco_user.options.recently_quit.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2947,7 +2947,7 @@ ], "v_required": { "value": true, - "err": "Please select if woman uses any tobacco products" + "err": "{{anc_profile.step7.tobacco_user.v_required.err}}" } }, { @@ -2956,10 +2956,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Tobacco cessation counseling", + "text": "{{anc_profile.step7.tobacco_cessation_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters.", - "toaster_info_title": "Tobacco cessation counseling", + "toaster_info_text": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "step7:tobacco_user": { @@ -2980,19 +2980,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "152721AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Anyone in the household smokes tobacco products?", + "label": "{{anc_profile.step7.shs_exposure.label}}", "label_text_style": "bold", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step7.shs_exposure.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step7.shs_exposure.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3000,7 +3000,7 @@ ], "v_required": { "value": false, - "err": "Please select if you use any tobacco products" + "err": "{{anc_profile.step7.shs_exposure.v_required.err}}" } }, { @@ -3009,10 +3009,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Second-hand smoke counseling", + "text": "{{anc_profile.step7.second_hand_smoke_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home.", - "toaster_info_title": "Second-hand smoke counseling", + "toaster_info_text": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "step7:shs_exposure": { @@ -3027,19 +3027,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1357AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Uses condoms during sex?", + "label": "{{anc_profile.step7.condom_use.label}}", "label_text_style": "bold", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step7.condom_use.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step7.condom_use.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3047,7 +3047,7 @@ ], "v_required": { "value": false, - "err": "Please select if you use any tobacco products" + "err": "{{anc_profile.step7.condom_use.v_required.err}}" } }, { @@ -3056,10 +3056,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Condom counseling", + "text": "{{anc_profile.step7.condom_counseling_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy.", - "toaster_info_title": "Condom counseling", + "toaster_info_text": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "step7:condom_use": { @@ -3074,20 +3074,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165268AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Clinical enquiry for alcohol and other substance use done?", + "label": "{{anc_profile.step7.alcohol_substance_enquiry.label}}", "label_text_style": "bold", - "label_info_text": "This refers to the application of a specific enquiry to assess alcohol or other substance use.", + "label_info_text": "{{anc_profile.step7.alcohol_substance_enquiry.label_info_text}}", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3095,7 +3095,7 @@ ], "v_required": { "value": true, - "err": "Please select if you use any tobacco products" + "err": "{{anc_profile.step7.alcohol_substance_enquiry.v_required.err}}" } }, { @@ -3104,7 +3104,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Uses alcohol and/or other substances?", + "label": "{{anc_profile.step7.alcohol_substance_use.label}}", "label_text_style": "bold", "exclusive": [ "none" @@ -3112,42 +3112,42 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_profile.step7.alcohol_substance_use.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "alcohol", - "text": "Alcohol", + "text": "{{anc_profile.step7.alcohol_substance_use.options.alcohol.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "marijuana", - "text": "Marijuana", + "text": "{{anc_profile.step7.alcohol_substance_use.options.marijuana.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "cocaine", - "text": "Cocaine / Crack", + "text": "{{anc_profile.step7.alcohol_substance_use.options.cocaine.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "injectable_drugs", - "text": "Injectable drugs", + "text": "{{anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_profile.step7.alcohol_substance_use.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3155,7 +3155,7 @@ ], "v_required": { "value": true, - "err": "Please specify if woman uses alcohol/abuses substances" + "err": "{{anc_profile.step7.alcohol_substance_use.v_required.err}}" } }, { @@ -3164,11 +3164,11 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_profile.step7.other_substance_use.hint}}", "edit_type": "edit_text", "v_required": { "value": false, - "err": "Please specify other substances abused" + "err": "{{anc_profile.step7.other_substance_use.v_required.err}}" }, "relevance": { "step7:alcohol_substance_use": { @@ -3188,10 +3188,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Alcohol / substance use counseling", + "text": "{{anc_profile.step7.substance_use_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable.", - "toaster_info_title": "Alcohol / substance use counseling", + "toaster_info_text": "{{anc_profile.step7.substance_use_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.substance_use_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "step7:alcohol_substance_use": { @@ -3234,10 +3234,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "HIV risk counseling", + "text": "{{anc_profile.step7.hiv_counselling_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits", - "toaster_info_title": "HIV risk counseling", + "toaster_info_text": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -3250,7 +3250,7 @@ ] }, "step8": { - "title": "Partner's HIV Status", + "title": "{{anc_profile.step8.title}}", "fields": [ { "key": "partner_hiv_status", @@ -3258,26 +3258,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1436AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Partner HIV status", + "label": "{{anc_profile.step8.partner_hiv_status.label}}", "label_text_style": "bold", "options": [ { "key": "dont_know", - "text": "Don't know", + "text": "{{anc_profile.step8.partner_hiv_status.options.dont_know.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "positive", - "text": "Positive", + "text": "{{anc_profile.step8.partner_hiv_status.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{anc_profile.step8.partner_hiv_status.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3285,7 +3285,7 @@ ], "v_required": { "value": false, - "err": "Please select one" + "err": "{{anc_profile.step8.partner_hiv_status.v_required.err}}" } }, { @@ -3313,10 +3313,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Advise woman to bring partner(s) in for HIV testing.", + "text": "{{anc_profile.step8.bring_partners_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested.", - "toaster_info_title": "Advise woman to bring partner(s) in for HIV testing.", + "toaster_info_text": "{{anc_profile.step8.bring_partners_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step8.bring_partners_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "step8:partner_hiv_status": { @@ -3350,10 +3350,10 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "HIV risk counseling", + "text": "{{anc_profile.step8.hiv_risk_counselling_toaster.text}}", "text_color": "#000000", - "toaster_info_text": "Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits", - "toaster_info_title": "HIV risk counseling", + "toaster_info_text": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -3364,5 +3364,6 @@ } } ] - } + }, + "properties_file_name": "anc_profile" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json index ed9c294ed..b72606f07 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json +++ b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json @@ -53,17 +53,17 @@ } }, "step1": { - "title": "Site Characteristics", + "title": "{{anc_site_characteristics.step1.title}}", "fields": [ { "key": "label_site_ipv_assess", "type": "label", - "text": "1. Are all of the following in place at your facility:", + "text": "{{anc_site_characteristics.step1.label_site_ipv_assess.text}}", "text_size": "22px", "text_color": "black", "v_required": { "value": true, - "err": "Please select where stock was issued" + "err": "{{anc_site_characteristics.step1.label_site_ipv_assess.v_required.err}}" } }, { @@ -72,22 +72,22 @@ "openmrs_entity": "", "openmrs_entity_id": "", "openmrs_data_type": "select one", - "label": "a. A protocol or standard operating procedure for Intimate Partner Violence (IPV)

b. A health worker trained on how to ask about IPV and how to provide the minimum response or beyond

c. A private setting

d. A way to ensure confidentiality

e. Time to allow for appropriate disclosure

f. A system for referral in place.", + "label": "{{anc_site_characteristics.step1.site_ipv_assess.label}}", "type": "native_radio", "options": [ { "key": "1", - "text": "Yes" + "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.1.text}}" }, { "key": "0", - "text": "No" + "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.0.text}}" } ], "value": "", "v_required": { "value": "false", - "err": "Please select where stock was issued" + "err": "{{anc_site_characteristics.step1.site_ipv_assess.v_required.err}}" } }, { @@ -96,22 +96,22 @@ "openmrs_entity": "", "openmrs_entity_id": "", "openmrs_data_type": "select one", - "label": "2. Is the HIV prevalence consistently greater than 1% in pregnant women attending antenatal clinics at your facility?", + "label": "{{anc_site_characteristics.step1.site_anc_hiv.label}}", "type": "native_radio", "options": [ { "key": "1", - "text": "Yes" + "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.1.text}}" }, { "key": "0", - "text": "No" + "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.0.text}}" } ], "value": "", "v_required": { "value": "true", - "err": "Please select where stock was issued" + "err": "{{anc_site_characteristics.step1.site_anc_hiv.v_required.err}}" } }, { @@ -121,21 +121,21 @@ "openmrs_entity_id": "", "openmrs_data_type": "select one", "type": "native_radio", - "label": "3. Is an ultrasound machine available and functional at your facility and a trained health worker available to use it?", + "label": "{{anc_site_characteristics.step1.site_ultrasound.label}}", "options": [ { "key": "1", - "text": "Yes" + "text": "{{anc_site_characteristics.step1.site_ultrasound.options.1.text}}" }, { "key": "0", - "text": "No" + "text": "{{anc_site_characteristics.step1.site_ultrasound.options.0.text}}" } ], "value": "", "v_required": { "value": "true", - "err": "Please select where stock was issued" + "err": "{{anc_site_characteristics.step1.site_ultrasound.v_required.err}}" } }, { @@ -145,23 +145,24 @@ "openmrs_entity_id": "", "openmrs_data_type": "select one", "type": "native_radio", - "label": "4. Does your facility use an automated blood pressure (BP) measurement tool?", + "label": "{{anc_site_characteristics.step1.site_bp_tool.label}}", "options": [ { "key": "1", - "text": "Yes" + "text": "{{anc_site_characteristics.step1.site_bp_tool.options.1.text}}" }, { "key": "0", - "text": "No" + "text": "{{anc_site_characteristics.step1.site_bp_tool.options.0.text}}" } ], "value": "", "v_required": { "value": "true", - "err": "Please select where stock was issued" + "err": "{{anc_site_characteristics.step1.site_bp_tool.v_required.err}}" } } ] - } + }, + "properties_file_name": "anc_site_characteristics" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json index 1fec573ab..79f48bde2 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json +++ b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json @@ -87,7 +87,7 @@ } }, "step1": { - "title": "Medication Follow-up", + "title": "{{anc_symptoms_follow_up.step1.title}}", "next": "step2", "fields": [ { @@ -96,7 +96,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "What medications (including supplements and vitamins) is she still taking?", + "label": "{{anc_symptoms_follow_up.step1.medications.label}}", "label_info_text": "The woman reported taking these medications in the previous contact. Un-select the medications that she has stopped taking. If still taking, leave them selected.", "label_info_title": "Medication follow-up", "label_text_style": "bold", @@ -108,7 +108,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step1.medications.options.none.text}}", "value": false, "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "", @@ -116,7 +116,7 @@ }, { "key": "dont_know", - "text": "Don't know", + "text": "{{anc_symptoms_follow_up.step1.medications.options.dont_know.text}}", "value": false, "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "", @@ -124,7 +124,7 @@ }, { "key": "antacids", - "text": "Antacids", + "text": "{{anc_symptoms_follow_up.step1.medications.options.antacids.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "944AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -132,7 +132,7 @@ }, { "key": "aspirin", - "text": "Aspirin", + "text": "{{anc_symptoms_follow_up.step1.medications.options.aspirin.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -140,7 +140,7 @@ }, { "key": "calcium", - "text": "Calcium", + "text": "{{anc_symptoms_follow_up.step1.medications.options.calcium.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -148,7 +148,7 @@ }, { "key": "doxylamine", - "text": "Doxylamine", + "text": "{{anc_symptoms_follow_up.step1.medications.options.doxylamine.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "75229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -156,7 +156,7 @@ }, { "key": "folic_acid", - "text": "Folic Acid", + "text": "{{anc_symptoms_follow_up.step1.medications.options.folic_acid.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -164,7 +164,7 @@ }, { "key": "iron", - "text": "Iron", + "text": "{{anc_symptoms_follow_up.step1.medications.options.iron.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -172,7 +172,7 @@ }, { "key": "magnesium", - "text": "Magnesium", + "text": "{{anc_symptoms_follow_up.step1.medications.options.magnesium.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "79224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -180,7 +180,7 @@ }, { "key": "metoclopramide", - "text": "Metoclopramide", + "text": "{{anc_symptoms_follow_up.step1.medications.options.metoclopramide.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "79755AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -188,7 +188,7 @@ }, { "key": "vitamina", - "text": "Vitamin A", + "text": "{{anc_symptoms_follow_up.step1.medications.options.vitamina.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "86339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -196,7 +196,7 @@ }, { "key": "analgesic", - "text": "Analgesic", + "text": "{{anc_symptoms_follow_up.step1.medications.options.analgesic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165231AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -204,7 +204,7 @@ }, { "key": "anti_convulsive", - "text": "Anti-convulsive", + "text": "{{anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -212,7 +212,7 @@ }, { "key": "anti_diabetic", - "text": "Anti-diabetic", + "text": "{{anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "159460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -220,7 +220,7 @@ }, { "key": "anthelmintic", - "text": "Anthelmintic", + "text": "{{anc_symptoms_follow_up.step1.medications.options.anthelmintic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -228,7 +228,7 @@ }, { "key": "anti_hypertensive", - "text": "Anti-hypertensive", + "text": "{{anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165237AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -236,7 +236,7 @@ }, { "key": "anti_malarials", - "text": "Anti-malarials", + "text": "{{anc_symptoms_follow_up.step1.medications.options.anti_malarials.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5839AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -244,7 +244,7 @@ }, { "key": "antivirals", - "text": "Antivirals", + "text": "{{anc_symptoms_follow_up.step1.medications.options.antivirals.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165236AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -252,7 +252,7 @@ }, { "key": "arvs", - "text": "Antiretrovirals (ARVs)", + "text": "{{anc_symptoms_follow_up.step1.medications.options.arvs.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -260,7 +260,7 @@ }, { "key": "antitussive", - "text": "Antitussive", + "text": "{{anc_symptoms_follow_up.step1.medications.options.antitussive.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165235AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -268,7 +268,7 @@ }, { "key": "asthma", - "text": "Asthma", + "text": "{{anc_symptoms_follow_up.step1.medications.options.asthma.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165234AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -276,7 +276,7 @@ }, { "key": "cotrimoxazole", - "text": "Cotrimoxazole", + "text": "{{anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -284,7 +284,7 @@ }, { "key": "antibiotics", - "text": "Other antibiotics", + "text": "{{anc_symptoms_follow_up.step1.medications.options.antibiotics.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1195AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -292,7 +292,7 @@ }, { "key": "hematinic", - "text": "Hematinic", + "text": "{{anc_symptoms_follow_up.step1.medications.options.hematinic.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165233AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -300,7 +300,7 @@ }, { "key": "hemorrhoidal", - "text": "Hemorrhoidal medication", + "text": "{{anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165255AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -308,7 +308,7 @@ }, { "key": "multivitamin", - "text": "Multivitamin", + "text": "{{anc_symptoms_follow_up.step1.medications.options.multivitamin.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "461AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -316,7 +316,7 @@ }, { "key": "thyroid", - "text": "Thyroid medication", + "text": "{{anc_symptoms_follow_up.step1.medications.options.thyroid.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -324,7 +324,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_symptoms_follow_up.step1.medications.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -333,7 +333,7 @@ ], "v_required": { "value": "true", - "err": "Please specify the medication(s) that the woman is still taking" + "err": "{{anc_symptoms_follow_up.step1.medications.v_required.err}}" }, "relevance": { "rules-engine": { @@ -349,10 +349,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_symptoms_follow_up.step1.medications_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{anc_symptoms_follow_up.step1.medications_other.v_regex.err}}" }, "relevance": { "step1:medications": { @@ -372,20 +372,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165272AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Is she taking her calcium supplements?", + "label": "{{anc_symptoms_follow_up.step1.calcium_comply.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.calcium_comply.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.calcium_comply.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -405,20 +405,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165273AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Any calcium supplement side effects?", + "label": "{{anc_symptoms_follow_up.step1.calcium_effects.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.calcium_effects.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.calcium_effects.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -438,20 +438,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165272AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Is she taking her IFA tablets?", + "label": "{{anc_symptoms_follow_up.step1.ifa_comply.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.ifa_comply.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.ifa_comply.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -471,20 +471,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165273AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Any IFA side effects?", + "label": "{{anc_symptoms_follow_up.step1.ifa_effects.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.ifa_effects.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.ifa_effects.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -504,20 +504,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165272AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Is she taking her aspirin tablets?", + "label": "{{anc_symptoms_follow_up.step1.aspirin_comply.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.aspirin_comply.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -537,20 +537,20 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165272AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Is she taking her Vitamin A supplements?", + "label": "{{anc_symptoms_follow_up.step1.vita_comply.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.vita_comply.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.vita_comply.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -570,22 +570,22 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165272AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Is she taking her penicillin treatment for syphilis?", + "label": "{{anc_symptoms_follow_up.step1.penicillin_comply.label}}", "label_text_style": "bold", "text_color": "#000000", - "label_info_text": "A maximum of up to 3 weekly doses may be required.", - "label_info_title": "Syphilis Compliance", + "label_info_text": "{{anc_symptoms_follow_up.step1.penicillin_comply.label_info_text}}", + "label_info_title": "{{anc_symptoms_follow_up.step1.penicillin_comply.label_info_title}}", "options": [ { "key": "yes", - "text": "Yes", + "text": "{{anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", - "text": "No", + "text": "{{anc_symptoms_follow_up.step1.penicillin_comply.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -602,7 +602,7 @@ ] }, "step2": { - "title": "Previous Behaviour", + "title": "{{anc_symptoms_follow_up.step2.title}}", "next": "step3", "fields": [ { @@ -611,7 +611,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Which of the following behaviours persist?", + "label": "{{anc_symptoms_follow_up.step2.behaviour_persist.label}}", "label_info_text": "These behaviours were reported in the previous contact. Select the ones that are still occurring or select \"None\".", "label_info_title": "Previous behaviours", "label_text_style": "bold", @@ -648,7 +648,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -656,7 +656,7 @@ }, { "key": "caffeine_intake", - "text": "High caffeine intake", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165249AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -666,7 +666,7 @@ }, { "key": "tobacco_user", - "text": "Current tobacco use or recently quit", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "152722AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -674,7 +674,7 @@ }, { "key": "shs_exposure", - "text": "Exposure to second-hand smoke in the home", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "152721AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -682,7 +682,7 @@ }, { "key": "condom_use", - "text": "No condom use during sex", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165250AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -690,7 +690,7 @@ }, { "key": "alcohol_use", - "text": "Alcohol use", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -698,7 +698,7 @@ }, { "key": "substance_use", - "text": "Substance use", + "text": "{{anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "160246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -707,7 +707,7 @@ ], "v_required": { "value": "true", - "err": "Previous persisting behaviour is required" + "err": "{{anc_symptoms_follow_up.step2.behaviour_persist.v_required.err}}" }, "relevance": { "rules-engine": { @@ -723,9 +723,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Caffeine reduction counseling", - "toaster_info_text": "Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving.", - "toaster_info_title": "Caffeine intake folder", + "text": "{{anc_symptoms_follow_up.step2.toaster0.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step2.toaster0.toaster_info_text}}", + "toaster_info_title": "{{anc_symptoms_follow_up.step2.toaster0.toaster_info_title}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -746,8 +746,8 @@ "openmrs_entity": "TOBACCO USE COUNSELLING", "openmrs_entity_id": "1455", "type": "toaster_notes", - "text": "Tobacco cessation counseling", - "toaster_info_text": "Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters.", + "text": "{{anc_symptoms_follow_up.step2.toaster1.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step2.toaster1.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -768,8 +768,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Second-hand smoke counseling", - "toaster_info_text": "Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home.", + "text": "{{anc_symptoms_follow_up.step2.toaster2.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step2.toaster2.toaster_info_text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -790,8 +790,8 @@ "openmrs_entity": "Counseling regarding condom", "openmrs_entity_id": "161594", "type": "toaster_notes", - "text": "Condom counseling", - "toaster_info_text": "Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy.", + "text": "{{anc_symptoms_follow_up.step2.toaster3.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step2.toaster3.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -812,8 +812,8 @@ "openmrs_entity": "ALCOHOL COUNSELING", "openmrs_entity_id": "1288", "type": "toaster_notes", - "text": "Alcohol / substance use counseling", - "toaster_info_text": "Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable.", + "text": "{{anc_symptoms_follow_up.step2.toaster4.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step2.toaster4.toaster_info_text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -832,7 +832,7 @@ ] }, "step3": { - "title": "Previous Symptoms", + "title": "{{anc_symptoms_follow_up.step3.title}}", "next": "step4", "fields": [ { @@ -841,7 +841,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Which of the following physiological symptoms persist?", + "label": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.label}}", "label_info_text": "These symptoms were reported in the previous contact. Select the ones that are still occurring or select \"None\".", "label_info_title": "Previous Symptoms", "label_text_style": "bold", @@ -853,7 +853,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -861,7 +861,7 @@ }, { "key": "nausea_vomiting", - "text": "Nausea and vomiting", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "133473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -869,7 +869,7 @@ }, { "key": "heartburn", - "text": "Heartburn", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -877,7 +877,7 @@ }, { "key": "leg_cramps", - "text": "Leg cramps", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -885,7 +885,7 @@ }, { "key": "constipation", - "text": "Constipation", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "996AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -893,7 +893,7 @@ }, { "key": "low_back_pain", - "text": "Low back pain", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -901,7 +901,7 @@ }, { "key": "pelvic_pain", - "text": "Pelvic pain", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -909,7 +909,7 @@ }, { "key": "varicose_veins", - "text": "Varicose veins", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "156666AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -917,7 +917,7 @@ }, { "key": "oedema", - "text": "Oedema", + "text": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -926,7 +926,7 @@ ], "v_required": { "value": "true", - "err": "Previous persisting physiological symptoms is required" + "err": "{{anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err}}" }, "relevance": { "rules-engine": { @@ -942,7 +942,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any other symptoms related to low back and pelvic pain?", + "label": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -951,7 +951,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -959,7 +959,7 @@ }, { "key": "contractions", - "text": "Contractions", + "text": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "163750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -967,7 +967,7 @@ }, { "key": "dysuria", - "text": "Pain during urination (dysuria)", + "text": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "118771AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -975,7 +975,7 @@ }, { "key": "pelvic_pains", - "text": "Extreme pelvic pain, can't walk (symphysis pubis dysfunction)", + "text": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165270AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -984,7 +984,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms related to low back pain or select none" + "err": "{{anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err}}" }, "relevance": { "step3:phys_symptoms_persist": { @@ -1005,7 +1005,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any other symptoms related to varicose veins or oedema?", + "label": "{{anc_symptoms_follow_up.step3.other_sym_vvo.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -1014,7 +1014,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1022,7 +1022,7 @@ }, { "key": "leg_pain", - "text": "Leg pain", + "text": "{{anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "114395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1030,7 +1030,7 @@ }, { "key": "leg_redness", - "text": "Leg redness", + "text": "{{anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165215AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1039,7 +1039,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms related varicose vein/oedema or select none" + "err": "{{anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1055,8 +1055,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pharmacological treatments for nausea and vomiting counseling", - "toaster_info_text": "Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor.", + "text": "{{anc_symptoms_follow_up.step3.toaster5.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster5.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1077,8 +1077,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Antacid preparations to relieve heartburn counseling", - "toaster_info_text": "Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages.", + "text": "{{anc_symptoms_follow_up.step3.toaster6.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster6.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1099,8 +1099,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Magnesium and calcium to relieve leg cramps counseling", - "toaster_info_text": "If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks.", + "text": "{{anc_symptoms_follow_up.step3.toaster7.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster7.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1121,8 +1121,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Wheat bran or other fiber supplements to relieve constipation counseling", - "toaster_info_text": "Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate.", + "text": "{{anc_symptoms_follow_up.step3.toaster8.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster8.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1143,8 +1143,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling", - "toaster_info_text": "Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options.", + "text": "{{anc_symptoms_follow_up.step3.toaster9.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster9.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1161,7 +1161,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications or onset of labour, related to low back and pelvic pain", + "text": "{{anc_symptoms_follow_up.step3.toaster10.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1183,8 +1183,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Urine test required", - "toaster_info_text": "Woman has dysuria. Please investigate urinary tract infection and treat if positive.", + "text": "{{anc_symptoms_follow_up.step3.toaster11.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster11.toaster_info_text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1205,8 +1205,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Non-pharmacological options for varicose veins and oedema counseling", - "toaster_info_text": "Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options.", + "text": "{{anc_symptoms_follow_up.step3.toaster12.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step3.toaster12.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1223,7 +1223,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications, including thrombosis, related to varicose veins and oedema", + "text": "{{anc_symptoms_follow_up.step3.toaster13.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1245,7 +1245,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Which of the following other symptoms persist?", + "label": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.label}}", "label_text_style": "bold", "label_info_text": "These symptoms were reported in the previous contact. Select the ones that are still occurring or select \"None\".", "label_info_title": "Previous Symptoms", @@ -1257,7 +1257,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1265,7 +1265,7 @@ }, { "key": "abnormal_vaginal_discharge", - "text": "Abnormal vaginal discharge", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1273,7 +1273,7 @@ }, { "key": "breathing_difficulty", - "text": "Breathing difficulty", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "142373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1281,7 +1281,7 @@ }, { "key": "breathless", - "text": "Breathless during routine activities", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "110265AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1289,7 +1289,7 @@ }, { "key": "cough", - "text": "Cough lasting more than 3 weeks", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1487AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1297,7 +1297,7 @@ }, { "key": "fever", - "text": "Fever", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1305,7 +1305,7 @@ }, { "key": "easily_tired", - "text": "Gets tired easily", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "140501AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1313,7 +1313,7 @@ }, { "key": "headache", - "text": "Headache", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1321,7 +1321,7 @@ }, { "key": "vaginal_bleeding", - "text": "Vaginal bleeding", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "147232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1329,7 +1329,7 @@ }, { "key": "vaginal_discharge", - "text": "Vaginal discharge", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1337,7 +1337,7 @@ }, { "key": "visual_disturbance", - "text": "Visual disturbance", + "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1355,7 +1355,7 @@ ] }, "step4": { - "title": "Physiological Symptoms", + "title": "{{anc_symptoms_follow_up.step4.title}}", "fields": [ { "key": "phys_symptoms", @@ -1363,7 +1363,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any physiological symptoms?", + "label": "{{anc_symptoms_follow_up.step4.phys_symptoms.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -1372,7 +1372,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1380,7 +1380,7 @@ }, { "key": "nausea_vomiting", - "text": "Nausea and vomiting", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "133473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1388,7 +1388,7 @@ }, { "key": "heartburn", - "text": "Heartburn", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1396,7 +1396,7 @@ }, { "key": "leg_cramps", - "text": "Leg cramps", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1404,7 +1404,7 @@ }, { "key": "constipation", - "text": "Constipation", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "996AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1412,7 +1412,7 @@ }, { "key": "low_back_pain", - "text": "Low back pain", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1420,7 +1420,7 @@ }, { "key": "pelvic_pain", - "text": "Pelvic pain", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1428,7 +1428,7 @@ }, { "key": "varicose_veins", - "text": "Varicose veins", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "156666AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1436,7 +1436,7 @@ }, { "key": "oedema", - "text": "Oedema", + "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1445,7 +1445,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other physiological symptoms or select none" + "err": "{{anc_symptoms_follow_up.step4.phys_symptoms.v_required.err}}" } }, { @@ -1454,7 +1454,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any other symptoms related to low back and pelvic pain?", + "label": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -1463,7 +1463,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1471,7 +1471,7 @@ }, { "key": "contractions", - "text": "Contractions", + "text": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "163750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1479,7 +1479,7 @@ }, { "key": "dysuria", - "text": "Pain during urination (dysuria)", + "text": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "118771AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1487,7 +1487,7 @@ }, { "key": "pelvic_pains", - "text": "Extreme pelvic pain, can't walk (symphysis pubis dysfunction)", + "text": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165270AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1496,7 +1496,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms related low back and pelvic pain or select none" + "err": "{{anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err}}" }, "relevance": { "step4:phys_symptoms": { @@ -1517,7 +1517,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any other symptoms related to varicose veins or oedema?", + "label": "{{anc_symptoms_follow_up.step4.other_sym_vvo.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -1526,7 +1526,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1534,7 +1534,7 @@ }, { "key": "leg_pain", - "text": "Leg pain", + "text": "{{anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "114395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1542,7 +1542,7 @@ }, { "key": "leg_redness", - "text": "Leg redness", + "text": "{{anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165215AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1551,7 +1551,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms related varicose vein/oedema or select none" + "err": "{{anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err}}" }, "relevance": { "rules-engine": { @@ -1567,8 +1567,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Non-pharma measures to relieve nausea and vomiting counseling", - "toaster_info_text": "Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy.", + "text": "{{anc_symptoms_follow_up.step4.toaster14.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster14.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1589,8 +1589,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Diet and lifestyle changes to prevent and relieve heartburn counseling", - "toaster_info_text": "Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification.", + "text": "{{anc_symptoms_follow_up.step4.toaster15.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster15.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1611,8 +1611,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Non-pharmacological treatment for the relief of leg cramps counseling", - "toaster_info_text": "Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy.", + "text": "{{anc_symptoms_follow_up.step4.toaster16.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster16.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1633,8 +1633,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Dietary modifications to relieve constipation counseling", - "toaster_info_text": "Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains).", + "text": "{{anc_symptoms_follow_up.step4.toaster17.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster17.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1655,8 +1655,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling", - "toaster_info_text": "Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options.", + "text": "{{anc_symptoms_follow_up.step4.toaster18.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster18.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1673,7 +1673,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications or onset of labour, related to low back and pelvic pain", + "text": "{{anc_symptoms_follow_up.step4.toaster19.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1695,8 +1695,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Urine test required", - "toaster_info_text": "Woman has dysuria. Please investigate urinary tract infection and treat if positive.", + "text": "{{anc_symptoms_follow_up.step4.toaster20.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster20.toaster_info_text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1717,8 +1717,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Non-pharmacological options for varicose veins and oedema counseling", - "toaster_info_text": "Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options.", + "text": "{{anc_symptoms_follow_up.step4.toaster21.text}}", + "toaster_info_text": "{{anc_symptoms_follow_up.step4.toaster21.toaster_info_text}}", "text_color": "#4855B3", "toaster_type": "info", "relevance": { @@ -1735,7 +1735,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Please investigate any possible complications, including thrombosis, related to varicose veins and oedema", + "text": "{{anc_symptoms_follow_up.step4.toaster22.text}}", "text_color": "#D56900", "toaster_type": "warning", "relevance": { @@ -1757,7 +1757,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "check_box", - "label": "Any other symptoms?", + "label": "{{anc_symptoms_follow_up.step4.other_symptoms.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -1766,7 +1766,7 @@ "options": [ { "key": "none", - "text": "None", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.none.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1774,7 +1774,7 @@ }, { "key": "abnormal_vaginal_discharge", - "text": "Abnormal vaginal discharge", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1782,7 +1782,7 @@ }, { "key": "breathing_difficulty", - "text": "Breathing difficulty", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "142373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1790,7 +1790,7 @@ }, { "key": "breathless", - "text": "Breathless during routine activities", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "110265AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1798,7 +1798,7 @@ }, { "key": "cough", - "text": "Cough lasting more than 3 weeks", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.cough.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1487AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1806,7 +1806,7 @@ }, { "key": "fever", - "text": "Fever", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.fever.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1814,7 +1814,7 @@ }, { "key": "easily_tired", - "text": "Gets tired easily", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "140501AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1822,7 +1822,7 @@ }, { "key": "headache", - "text": "Headache", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.headache.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1830,7 +1830,7 @@ }, { "key": "vaginal_bleeding", - "text": "Vaginal bleeding", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "147232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1838,7 +1838,7 @@ }, { "key": "vaginal_discharge", - "text": "Vaginal discharge", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1846,7 +1846,7 @@ }, { "key": "visual_disturbance", - "text": "Visual disturbance", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1854,7 +1854,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1863,7 +1863,7 @@ ], "v_required": { "value": "true", - "err": "Please specify any other symptoms or select none" + "err": "{{anc_symptoms_follow_up.step4.other_symptoms.v_required.err}}" } }, { @@ -1872,10 +1872,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{anc_symptoms_follow_up.step4.other_symptoms_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err}}" }, "relevance": { "step4:other_symptoms": { @@ -1895,13 +1895,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "162107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Has the woman felt the baby move?", + "label": "{{anc_symptoms_follow_up.step4.mat_percept_fetal_move.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "normal_fetal_move", - "text": "Normal fetal movement", + "text": "{{anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "162108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1909,7 +1909,7 @@ }, { "key": "reduced_fetal_move", - "text": "Reduced or poor fetal movement", + "text": "{{anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "113377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1917,7 +1917,7 @@ }, { "key": "no_fetal_move", - "text": "No fetal movement", + "text": "{{anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1933,9 +1933,10 @@ }, "v_required": { "value": "true", - "err": "Field has the woman felt the baby move is required" + "err": "{{anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err}}" } } ] - } + }, + "properties_file_name": "anc_symptoms_follow_up" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_test.json b/opensrp-anc/src/main/assets/json.form/anc_test.json index 5930f93ba..7f7ea041a 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_test.json +++ b/opensrp-anc/src/main/assets/json.form/anc_test.json @@ -74,7 +74,7 @@ "hepb_positive" ], "step1": { - "title": "Due", + "title": "{{anc_test.step1.title}}", "next": "step2", "fields": [ { @@ -82,9 +82,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Ultrasound test", - "accordion_info_text": "An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location).", - "accordion_info_title": "Ultrasound test", + "text": "{{anc_test.step1.accordion_ultrasound.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_ultrasound.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_ultrasound.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_ultrasound_sub_form", "container": "anc_test", @@ -101,7 +101,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Blood Type test", + "text": "{{anc_test.step1.accordion_blood_type.text}}", "type": "expansion_panel", "content_form": "tests_blood_type_sub_form", "container": "anc_test", @@ -118,9 +118,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "HIV test", - "accordion_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+.", - "accordion_info_title": "HIV test", + "text": "{{anc_test.step1.accordion_hiv.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_hiv.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_hiv.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hiv_sub_form", "container": "anc_test", @@ -137,9 +137,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Hepatitis B test", - "accordion_info_text": "In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B.", - "accordion_info_title": "Hepatitis B test", + "text": "{{anc_test.step1.accordion_hepatitis_b.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_hepatitis_b.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_hepatitis_b.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hepatitis_b_sub_form", "container": "anc_test", @@ -156,9 +156,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Hepatitis C test", - "accordion_info_text": "In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required.", - "accordion_info_title": "Hepatitis C test", + "text": "{{anc_test.step1.accordion_hepatitis_c.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_hepatitis_c.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_hepatitis_c.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hepatitis_c_sub_form", "container": "anc_test", @@ -175,9 +175,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Syphilis test", - "accordion_info_text": "A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested.", - "accordion_info_title": "Syphilis test", + "text": "{{anc_test.step1.accordion_syphilis.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_syphilis.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_syphilis.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_syphilis_sub_form", "container": "anc_test", @@ -194,9 +194,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Urine test", - "accordion_info_text": "A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia.", - "accordion_info_title": "Urine test", + "text": "{{anc_test.step1.accordion_urine.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_urine.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_urine.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_urine_sub_form", "container": "anc_test", @@ -213,9 +213,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Blood Haemoglobin test", - "accordion_info_text": "Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy.", - "accordion_info_title": "Blood haemoglobin test", + "text": "{{anc_test.step1.accordion_blood_haemoglobin.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_blood_haemoglobin.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_blood_haemoglobin.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_blood_haemoglobin_sub_form", "container": "anc_test", @@ -232,9 +232,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "TB Screening", - "accordion_info_text": "In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended.", - "accordion_info_title": "TB screening", + "text": "{{anc_test.step1.accordion_tb_screening.text}}", + "accordion_info_text": "{{anc_test.step1.accordion_tb_screening.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step1.accordion_tb_screening.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_tb_screening_sub_form", "container": "anc_test", @@ -249,16 +249,16 @@ ] }, "step2": { - "title": "Other", + "title": "{{anc_test.step2.title}}", "fields": [ { "key": "accordion_ultrasound", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Ultrasound test", - "accordion_info_text": "An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location).", - "accordion_info_title": "Ultrasound test", + "text": "{{anc_test.step2.accordion_ultrasound.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_ultrasound.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_ultrasound.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_ultrasound_sub_form", "container": "anc_test", @@ -275,7 +275,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Blood Type test", + "text": "{{anc_test.step2.accordion_blood_type.text}}", "type": "expansion_panel", "content_form": "tests_blood_type_sub_form", "container": "anc_test", @@ -292,9 +292,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "HIV test", - "accordion_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+.", - "accordion_info_title": "HIV test", + "text": "{{anc_test.step2.accordion_hiv.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_hiv.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_hiv.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hiv_sub_form", "container": "anc_test", @@ -311,7 +311,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Partner HIV test", + "text": "{{anc_test.step2.accordion_partner_hiv.text}}", "type": "expansion_panel", "content_form": "tests_partner_hiv_sub_form", "container": "anc_test", @@ -328,9 +328,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Hepatitis B test", - "accordion_info_text": "In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B.", - "accordion_info_title": "Hepatitis B test", + "text": "{{anc_test.step2.accordion_hepatitis_b.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_hepatitis_b.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_hepatitis_b.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hepatitis_b_sub_form", "container": "anc_test", @@ -347,9 +347,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Hepatitis C test", - "accordion_info_text": "In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required.", - "accordion_info_title": "Hepatitis C test", + "text": "{{anc_test.step2.accordion_hepatitis_c.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_hepatitis_c.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_hepatitis_c.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_hepatitis_c_sub_form", "container": "anc_test", @@ -366,9 +366,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Syphilis test", - "accordion_info_text": "A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested.", - "accordion_info_title": "Syphilis test", + "text": "{{anc_test.step2.accordion_syphilis.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_syphilis.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_syphilis.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_syphilis_sub_form", "container": "anc_test", @@ -385,9 +385,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Urine test", - "accordion_info_text": "A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia.", - "accordion_info_title": "Urine test", + "text": "{{anc_test.step2.accordion_urine.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_urine.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_urine.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_urine_sub_form", "container": "anc_test", @@ -404,7 +404,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Blood Glucose test", + "text": "{{anc_test.step2.accordion_blood_glucose.text}}", "type": "expansion_panel", "display_bottom_section": true, "content_form": "tests_blood_glucose_sub_form", @@ -415,9 +415,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Blood Haemoglobin test", - "accordion_info_text": "Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy.", - "accordion_info_title": "Blood haemoglobin test", + "text": "{{anc_test.step2.accordion_blood_haemoglobin.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_blood_haemoglobin.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_blood_haemoglobin.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_blood_haemoglobin_sub_form", "container": "anc_test", @@ -434,9 +434,9 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "TB Screening", - "accordion_info_text": "In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended.", - "accordion_info_title": "TB screening", + "text": "{{anc_test.step2.accordion_tb_screening.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_tb_screening.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_tb_screening.accordion_info_title}}", "type": "expansion_panel", "content_form": "tests_tb_screening_sub_form", "container": "anc_test", @@ -453,14 +453,15 @@ "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "text": "Other Tests", - "accordion_info_text": "If any other test was done that is not included here, add it here.", - "accordion_info_title": "Other test", + "text": "{{anc_test.step2.accordion_other_tests.text}}", + "accordion_info_text": "{{anc_test.step2.accordion_other_tests.accordion_info_text}}", + "accordion_info_title": "{{anc_test.step2.accordion_other_tests.accordion_info_title}}", "type": "expansion_panel", "display_bottom_section": true, "content_form": "tests_other_tests_sub_form", "container": "anc_test" } ] - } + }, + "properties_file_name": "anc_test" } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 07e3a5138..d54c77246 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -13,6 +13,7 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.json.JSONArray; import org.json.JSONException; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 42db7f3d0..cc338c867 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -96,7 +96,7 @@ public class Utils extends org.smartregister.util.Utils { public static void saveLanguage(String language) { Utils.getAllSharedPreferences().saveLanguagePreference(language); Locale.setDefault(new Locale(language)); - NativeFormLangUtils.setLocale(new Locale(language)); + //NativeFormLangUtils.setLocale(new Locale(language)); } public static void setLocale(Locale locale) { diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties new file mode 100644 index 000000000..74b85147b --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties @@ -0,0 +1,648 @@ +anc_counselling_treatment.step9.ifa_weekly.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Done +anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step11.tt3_date.label_info_title = TT dose #3 +anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Other +anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Not done +anc_counselling_treatment.step11.tt3_date_done.v_required.err = Date for TT dose #3 is required +anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Reason +anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Specify +anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium.text = 0 +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Severe pre-eclampsia diagnosis +anc_counselling_treatment.step11.tt1_date.label = TT dose #1 +anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel.label = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Done +anc_counselling_treatment.step6.gdm_risk_counsel.label = Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel.label_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_counselling_treatment.step2.caffeine_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel.label = Condom counseling +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.label = Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step10.deworm_notdone_other.hint = Specify +anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Please select and option +anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Reason +anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.hepc_positive_counsel.label = Hepatitis C positive counseling +anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital! +anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.nausea_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test +anc_counselling_treatment.step10.deworm_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Facility (elective C-section) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Done +anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Done +anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step10.deworm.options.done.text = Done +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Reason +anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Seeking care for danger signs counseling +anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = Woman did not accept +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risk of IPV includes any of the following:\n\n- Traumatic injury, particularly if repeated and with vague or implausible explanations;\n\n- An intrusive partner or husband present at consultations;\n\n- Multiple unintended pregnancies and/or terminations;\n\n- Delay in seeking ANC;\n\n- Adverse birth outcomes;\n\n- Repeated STIs;\n\n- Unexplained or repeated genitourinary symptoms;\n\n- Symptoms of depression and anxiety;\n\n- Alcohol or other substance use; or\n\n- Self-harm or suicidal feelings. +anc_counselling_treatment.step2.condom_counsel.label_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Reason +anc_counselling_treatment.step3.constipation_counsel.v_required.err = Please select and option +anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Done +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Caffeine reduction counseling +anc_counselling_treatment.step11.hepb2_date.v_required.err = Hep B dose #2 is required +anc_counselling_treatment.step11.tt3_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step11.flu_date.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_counselling_treatment.step10.iptp_sp3.label_info_title = IPTp-SP dose 3 +anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Partner HIV test recommended +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Please select and option +anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.anc_contact_counsel.label = ANC contact schedule counseling +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Done +anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step11.hepb1_date.v_required.err = Hep B dose #1 is required +anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp1.label_info_title = IPTp-SP dose 1 +anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select and option +anc_counselling_treatment.step1.referred_hosp.options.no.text = No +anc_counselling_treatment.step1.title = Hospital Referral +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.body_mass_toaster.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}. +anc_counselling_treatment.step5.hypertension_counsel.label = Hypertension counseling +anc_counselling_treatment.step10.deworm_notdone.hint = Reason +anc_counselling_treatment.step1.referred_hosp.label = Referred to hospital? +anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Diabetes counseling +anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Syphilis counselling and further testing +anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Please select and option +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = HIV positive counseling +anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Vaginal ring +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Not necessary +anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm +anc_counselling_treatment.step11.tt1_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\n1-4 doses of TTCV in the past:\n\n- 1 dose scheme: Woman should receive one dose of TTCV during each subsequent pregnancy to a total of five doses (five doses protects throughout the childbearing years).\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step11.hepb3_date.label = Hep B dose #3 +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Done +anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] +anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.options.done.text = Done +anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injectable +anc_counselling_treatment.step9.ifa_high_prev.label = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step11.tt2_date.label_info_title = TT dose #2 +anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Done +anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Reason +anc_counselling_treatment.step11.tt1_date.v_required.err = TT dose #1 is required +anc_counselling_treatment.step11.hepb1_date.label = Hep B dose #1 +anc_counselling_treatment.step11.tt2_date.options.not_done.text = Not done +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Abnormal pulse rate: {pulse_rate_repeat}bpm +anc_counselling_treatment.step7.delivery_place.options.facility.text = Facility +anc_counselling_treatment.step10.iptp_sp1.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.deworm_notdone.label = Reason +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.ifa_anaemia.label_info_text = If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Done today +anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.malaria_counsel.options.done.text = Done +anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt2_date.v_required.err = TT dose #2 is required +anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step9.ifa_low_prev.label = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step1.abn_breast_exam_toaster.text = Abnormal breast exam: {breast_exam_abnormal} +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text = Pregnant women with GBS colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. +anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label = Syphilis counselling and treatment +anc_counselling_treatment.step10.iptp_sp_notdone.hint = Reason +anc_counselling_treatment.step9.ifa_low_prev.label_info_title = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Specify +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Healthy eating and keeping physically active counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Reason +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Pre-eclampsia diagnosis +anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Treat according to local protocol and/or refer for treatment. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Done +anc_counselling_treatment.step2.shs_counsel_notdone.label = Reason +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Please select and option +anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Rh factor negative counseling +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Reason +anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Done today +anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Please select and option +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with blurred vision\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing +anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = ANC contact schedule counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital +anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Specify +anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Please select and option +anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Advise retesting and immunisation if ongoing risk or known exposure +anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Reason +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step9.vita_supp.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step5.hiv_positive_counsel.label = HIV positive counseling +anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Please select and option +anc_counselling_treatment.step1.low_oximetry_toaster.text = Low oximetry: {oximetry}% +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.hepb_positive_counsel.label = Hepatitis B positive counseling +anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.malaria_counsel.label_info_title = Malaria prevention counseling +anc_counselling_treatment.step7.family_planning_type.options.none.text = None +anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_weekly.label_info_title = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid +anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step10.malaria_counsel.label_info_text = Sleeping under an insecticide-treated bednet and the importance of seeking care and getting treatment as soon as she has any symptoms. +anc_counselling_treatment.step6.hiv_prep_notdone.label = Reason +anc_counselling_treatment.step2.caffeine_counsel.label = Caffeine reduction counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. \n\n[Protein and Energy Sources Folder] +anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Done +anc_counselling_treatment.step11.tt1_date.options.done_today.text = Done today +anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Specify +anc_counselling_treatment.step1.resp_distress_toaster.text = Respiratory distress: {respiratory_exam_abnormal} +anc_counselling_treatment.step12.prep_toaster.text = Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Zinc supplement\n\n- Multiple micronutrient supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement +anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Enter reason hospital referral was not done +anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_results.label = IPV enquiry results +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Done +anc_counselling_treatment.step4.increase_energy_counsel.label = Increase daily energy and protein intake counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Hepatitis C positive counseling +anc_counselling_treatment.step11.tt1_date_done.v_required.err = Date for TT dose #1 is required +anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Abnormal cardiac exam: {cardiac_exam_abnormal} +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Done +anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp.v_required.err = Please select and option +anc_counselling_treatment.step2.condom_counsel_notdone.hint = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Please select and option +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Done +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.label_info_title = Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step11.flu_date.label_info_title = Flu dose +anc_counselling_treatment.step11.woman_immunised_toaster.text = Woman is fully immunised against tetanus! +anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Not done +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Reason Hep B was not given is required +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Please select and option +anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb3_date_done.v_required.err = Date for Hep B dose #3 is required +anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = No drugs available +anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium_supp.options.done.text = Done +anc_counselling_treatment.step9.vita_supp.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text = Abnormal abdominal exam: {abdominal_exam_abnormal} +anc_counselling_treatment.step5.tb_positive_counseling.label_info_title = TB screening positive counseling +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title = Severe pre-eclampsia diagnosis +anc_counselling_treatment.step7.encourage_facility_toaster.text = Encourage delivery at a facility! +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_counselling_treatment.step1.fever_toaster.text = Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_refer_toaster.text = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. +anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested. +anc_counselling_treatment.step11.tt3_date.label = TT dose #3 +anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia. +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Done +anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = No action necessary +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan +anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Specify +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb2_date.label = Hep B dose #2 +anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp.label = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step5.asb_positive_counsel.label = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms +anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Referred +anc_counselling_treatment.step3.constipation_counsel.label = Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step10.iptp_sp2.label_info_title = IPTp-SP dose 2 +anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step2.condom_counsel.options.done.text = Done +anc_counselling_treatment.step10.malaria_counsel_notdone.label = Reason +anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Done today +anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Done +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Specify +anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step6.hiv_prep.label = PrEP for HIV prevention counseling +anc_counselling_treatment.step7.emergency_hosp_counsel.label = Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step7.anc_contact_counsel.label_info_text = It is recommended that a woman sees a healthcare provider 8 times during pregnancy (this can change if the woman has any complications). This schedule shows when the woman should come in to be able to access all the important care and information. +anc_counselling_treatment.step5.title = Diagnoses +anc_counselling_treatment.step9.calcium_supp_notdone.hint = Reason +anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Specify +anc_counselling_treatment.step7.gbs_agent_counsel.label = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step8.ipv_enquiry.label = Clinical enquiry for intimate partner violence (IPV) +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital! +anc_counselling_treatment.step11.tt3_date.v_required.err = TT dose #3 is required +anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Sterilization (partner) +anc_counselling_treatment.step11.hepb2_date_done.hint = Date Hep B dose #2 was given. +anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Specify +anc_counselling_treatment.step10.deworm.v_required.err = Please select and option +anc_counselling_treatment.step5.diabetes_counsel.label = Diabetes counseling +anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk +anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Done +anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.shs_counsel.label_info_title = Second-hand smoke counseling +anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.vita_supp.v_required.err = Please select and option +anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers +anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Please select and option +anc_counselling_treatment.step7.family_planning_type.options.iud.text = IUD +anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel.label = Second-hand smoke counseling +anc_counselling_treatment.step10.iptp_sp3.label = IPTp-SP dose 3 +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp2.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Specify +anc_counselling_treatment.step11.hepb3_date_done.hint = Date Hep B dose #3 was given. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Reason +anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Hep B negative counseling and vaccination +anc_counselling_treatment.step3.varicose_vein_toaster.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_counselling_treatment.step7.birth_prep_counsel.label = Birth preparedness and complications readiness counseling +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = No fetal heartbeat observed +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.flu_date.v_required.err = Flu dose is required +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Abnormal pelvic exam: {pelvic_exam_abnormal} +anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Birth preparedness and complications readiness counseling +anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Reason +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.constipation_counsel.options.done.text = Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_weekly.label = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention +anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt3_date_done.hint = Date TT dose #3 was given. +anc_counselling_treatment.step3.nausea_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB +anc_counselling_treatment.step11.flu_date.label_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = Woman is immunised against flu! +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = No fetal heartbeat observed +anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Reason Flu dose was not done is required +anc_counselling_treatment.step10.deworm_notdone.v_required.err = Please select and option +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Pre-eclampsia diagnosis +anc_counselling_treatment.step5.tb_positive_counseling.label = TB screening positive counseling +anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.tt2_date.label = TT dose #2 +anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb_negative_note.label = Hep B negative counseling and vaccination +anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implant +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = HIV risk counseling +anc_counselling_treatment.step2.shs_counsel.options.done.text = Done +anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_counselling_treatment.step9.ifa_weekly_notdone.label = Reason +anc_counselling_treatment.step11.tt1_date.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label = Reason +anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Please select an option +anc_counselling_treatment.step9.vita_supp.label_info_text = Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder] +anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs +anc_counselling_treatment.step10.iptp_sp_toaster.text = Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Counseling:\n\n- Advice to reduce workload and to rest- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available +anc_counselling_treatment.step1.referred_hosp_notdone.label = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel_notdone.label = Reason +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text = Not done +anc_counselling_treatment.step3.leg_cramp_counsel.label = Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Due to the population's high anaemia prevalence, a daily dose of 60 mg of elemental iron is preferred over a lower dose. A daily dose of 400 mcg (0.4 mg) folic acid is also recommended.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_weekly.options.done.text = Done +anc_counselling_treatment.step11.flu_date.label = Flu dose +anc_counselling_treatment.step11.hepb2_date_done.v_required.err = Date for Hep B dose #2 is required +anc_counselling_treatment.step9.vita_supp.label = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step11.hepb1_date_done.hint = Date Hep B dose #1 was given. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step6.hiv_prep.label_info_text = Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework] +anc_counselling_treatment.step10.deworm.label_info_text = In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes. +anc_counselling_treatment.step11.tt2_date.options.done_today.text = Done today +anc_counselling_treatment.step11.tt3_date.options.not_done.text = Not done +anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = Woman is fully immunised against Hep B! +anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Treated +anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Reason +anc_counselling_treatment.step6.hiv_prep.options.done.text = Done +anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Not done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt3_date.options.done_today.text = Done today +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_counselling_treatment.step3.constipation_counsel.label_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step1.referred_hosp.v_required.err = Please select and option +anc_counselling_treatment.step1.severe_hypertension_toaster.text = Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg +anc_counselling_treatment.step4.average_weight_toaster.text = Counseling on healthy eating and keeping physically active done! +anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Not done +anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Oral contraceptive +anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Tubal ligation +anc_counselling_treatment.step11.tt_dose_notdone.label = Reason +anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Allergy +anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp_notdone.label = Reason +anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Please select and option +anc_counselling_treatment.step7.delivery_place.options.home.text = Home +anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Reason +anc_counselling_treatment.step4.eat_exercise_counsel.label = Healthy eating and keeping physically active counseling +anc_counselling_treatment.step10.iptp_sp3.options.done.text = Done +anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step9.vita_supp_notdone.label = Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp3.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step11.hepb1_date_done.v_required.err = Date for Hep B dose #1 is required +anc_counselling_treatment.step11.flu_date_done.hint = Date flu dose was given +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_low_prev.options.done.text = Done +anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step7.breastfeed_counsel.label_info_title = Breastfeeding counseling +anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel_notdone.hint = Reason +anc_counselling_treatment.step8.title = Intimate Partner Violence (IPV) +anc_counselling_treatment.step10.iptp_sp1.v_required.err = Please select and option +anc_counselling_treatment.step2.shs_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.varicose_oedema_counsel.label = Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step7.delivery_place.options.other.text = Other +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_high_prev.label_info_title = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text = Side effects +anc_counselling_treatment.step7.danger_signs_counsel.label = Seeking care for danger signs counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_title = Increase daily energy and protein intake counseling +anc_counselling_treatment.step10.iptp_sp1.label = IPTp-SP dose 1 +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text = Side effects +anc_counselling_treatment.step7.family_planning_type.label = FP method accepted +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt3_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) for pre-eclampsia risk +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title = Alcohol / substance use counseling +anc_counselling_treatment.step3.constipation_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.malaria_counsel.label = Malaria prevention counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.deworm.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Not done +anc_counselling_treatment.step11.title = Immunizations +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Reason +anc_counselling_treatment.step7.breastfeed_counsel.label = Breastfeeding counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Expired +anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step3.nausea_counsel.label_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Done +anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp2.v_required.err = Please select and option +anc_counselling_treatment.step7.rh_negative_counsel.label = Rh factor negative counseling +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Syphilis counselling and further testing +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Stock out +anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. +anc_counselling_treatment.step5.ifa_anaemia.label = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Allergy +anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step10.iptp_sp2.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.label = Reason +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.title = Behaviour Counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.tt2_date_done.v_required.err = Date for TT dose #2 is required +anc_counselling_treatment.step2.tobacco_counsel.label = Tobacco cessation counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step6.hiv_risk_counsel.label = HIV risk counseling +anc_counselling_treatment.step11.hepb3_date.v_required.err = Hep B dose #3 is required +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.condom_counsel.label_info_title = Condom counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Done +anc_counselling_treatment.step10.deworm.label = Prescribe single dose albendazole 400 mg or mebendazole 500 mg +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital. +anc_counselling_treatment.step9.vita_supp.label_info_title = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Please select and option +anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step11.flu_date.options.done_today.text = Done today +anc_counselling_treatment.step11.tt1_date_done.hint = Date TT dose #1 was given. +anc_counselling_treatment.step3.title = Physiological Symptoms Counseling +anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Hypertension counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.title = Nutrition Supplementation +anc_counselling_treatment.step2.alcohol_substance_counsel.label = Alcohol / substance use counseling +anc_counselling_treatment.step7.birth_plan_toaster.text = Woman should plan to give birth at a facility due to risk factors +anc_counselling_treatment.step10.malaria_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.anc_contact_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Specify +anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_counsel_notdone.label = Reason +anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Please select and option +anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step11.hepb_dose_notdone.label = Reason +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Side effects prevent woman from taking it +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Please select an option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step4.title = Diet Counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Stock out +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Reason +anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step9.calcium_supp_notdone.label = Reason +anc_counselling_treatment.step11.tt2_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step12.title = Not Recommended +anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Done +anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Hepatitis B positive counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Reason TT dose was not given is required +anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Done +anc_counselling_treatment.step7.title = Counseling +anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Not done +anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_weekly.label_info_text = If daily iron is not acceptable due to side effects, provide intermittent iron and folic acid supplementation instead (120 mg of elemental iron and 2.8 mg of folic acid once weekly).\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step2.tobacco_counsel.options.done.text = Done +anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp1.options.done.text = Done +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text = Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia} +anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step6.hiv_prep_notdone_other.hint = Specify +anc_counselling_treatment.step5.ifa_anaemia.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp2.label = IPTp-SP dose 2 +anc_counselling_treatment.step5.asb_positive_counsel.label_info_text = A seven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight neonates. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step9.vita_supp_notdone.hint = Reason +anc_counselling_treatment.step6.title = Risks +anc_counselling_treatment.step6.hiv_prep.label_info_title = PrEP for HIV prevention counseling +anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Reason +anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_counsel.label_info_title = Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step1.danger_signs_toaster.text = Danger sign(s): {danger_signs} +anc_counselling_treatment.step6.prep_toaster.text = Partner HIV test recommended +anc_counselling_treatment.step1.referred_hosp_notdone.hint = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt2_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step3.nausea_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text = Risk factors necessitating a facility birth:\n- Age 17 or under\n- Primigravida\n- Parity 6 or higher\n- Prior C-section\n- Previous pregnancy complications: Heavy bleeding, Forceps or vacuum delivery, Convulsions, or 3rd or 4th degree tear\n- Vaginal bleeding\n- Multiple fetuses\n- Abnormal fetal presentation\n- HIV+\n- Wants IUD or tubal ligation following delivery +anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step10.title = Deworming & Malaria Prophylaxis +anc_counselling_treatment.step3.nausea_counsel_notdone.hint = Reason +anc_counselling_treatment.step11.flu_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step10.iptp_sp_notdone_other.hint = Specify +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel.label = Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\n[Vitamin C folder]\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. +anc_counselling_treatment.step1.referred_hosp.options.yes.text = Yes +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Syphilis counselling and treatment +anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.delivery_place.label = Planned birth place +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title = Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = Procedure:\n\n- Check for fever, infection, respiratory distress, and arrhythmia\n\n- Refer for further investigation +anc_counselling_treatment.step7.family_planning_counsel.label = Postpartum family planning counseling +anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Tobacco cessation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt2_date_done.hint = Date TT dose #2 was given. diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_en.properties b/opensrp-anc/src/main/resources/anc_physical_exam_en.properties new file mode 100644 index 000000000..24e430154 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_physical_exam_en.properties @@ -0,0 +1,169 @@ +anc_physical_exam.step3.respiratory_exam.label = Respiratory exam +anc_physical_exam.step3.body_temp_repeat.v_required.err = Please enter second body temperature +anc_physical_exam.step3.cardiac_exam.options.1.text = Not done +anc_physical_exam.step3.cervical_exam.label = Cervical exam done? +anc_physical_exam.step4.toaster29.text = Abnormal fetal heart rate. Refer to hospital. +anc_physical_exam.step1.height_label.text = Height (cm) +anc_physical_exam.step3.pelvic_exam.options.2.text = Normal +anc_physical_exam.step3.oedema_severity.v_required.err = Please enter the result for the dipstick test. +anc_physical_exam.step1.toaster6.toaster_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. +anc_physical_exam.step3.pelvic_exam.options.1.text = Not done +anc_physical_exam.step1.pregest_weight_label.v_required.err = Please enter pre-gestational weight +anc_physical_exam.step3.cardiac_exam.options.2.text = Normal +anc_physical_exam.step3.pulse_rate_label.text = Pulse rate (bpm) +anc_physical_exam.step4.fetal_presentation.label = Fetal presentation +anc_physical_exam.step3.toaster25.text = Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral. +anc_physical_exam.step2.toaster11.toaster_info_text = Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management. +anc_physical_exam.step3.pallor.options.yes.text = Yes +anc_physical_exam.step2.urine_protein.options.++++.text = ++++ +anc_physical_exam.step3.cardiac_exam.label = Cardiac exam +anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required +anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) +anc_physical_exam.step3.toaster24.text = Abnormal abdominal exam. Consider high level evaluation or referral. +anc_physical_exam.step3.body_temp_repeat.v_numeric.err = +anc_physical_exam.step1.height.v_required.err = Please enter the height +anc_physical_exam.step3.toaster21.toaster_info_text = Procedure:\n- Give oxygen\n- Refer urgently to hospital! +anc_physical_exam.step3.body_temp.v_required.err = Please enter body temperature +anc_physical_exam.step3.pelvic_exam.options.3.text = Abnormal +anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverse +anc_physical_exam.step2.bp_diastolic.v_required.err = Field diastolic is required +anc_physical_exam.step2.toaster13.toaster_info_text = Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital! +anc_physical_exam.step3.breast_exam.options.1.text = Not done +anc_physical_exam.step4.toaster27.text = No fetal heartbeat observed. Refer to hospital. +anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg. +anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) +anc_physical_exam.step2.urine_protein.options.+.text = + +anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH +anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available +anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Blurred vision +anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vomiting +anc_physical_exam.step1.toaster4.toaster_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy. +anc_physical_exam.step3.respiratory_exam.options.2.text = Normal +anc_physical_exam.step3.breast_exam.options.3.text = Abnormal +anc_physical_exam.step2.cant_record_bp_reason.v_required.err = Reason why SBP and DPB is cannot be done is required +anc_physical_exam.step3.abdominal_exam.options.2.text = Normal +anc_physical_exam.step4.no_of_fetuses_label.text = No. of fetuses +anc_physical_exam.step1.pregest_weight.v_numeric.err = +anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to record BP +anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required +anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other +anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = No. of fetuses unknown +anc_physical_exam.step3.oedema_severity.options.+++.text = +++ +anc_physical_exam.step4.fetal_heartbeat.label = Fetal heartbeat present? +anc_physical_exam.step1.toaster2.text = Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg +anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes rest. +anc_physical_exam.step3.cervical_exam.options.1.text = Done +anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Please enter result for the second fetal heart rate +anc_physical_exam.step3.toaster22.text = Abnormal cardiac exam. Refer urgently to the hospital! +anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = +anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) +anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation +anc_physical_exam.step3.oedema.options.yes.text = Yes +anc_physical_exam.step1.title = Height & Weight +anc_physical_exam.step2.urine_protein.options.++.text = ++ +anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Yes +anc_physical_exam.step4.toaster30.text = Pre-eclampsia risk counseling +anc_physical_exam.step3.pelvic_exam.label = Pelvic exam (visual) +anc_physical_exam.step4.fetal_presentation.options.other.text = Other +anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text = None +anc_physical_exam.step1.toaster6.toaster_info_title = Balanced energy and protein dietary supplementation counseling +anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text = Epigastric pain +anc_physical_exam.step4.sfh_label.text = Symphysis-fundal height (SFH) in centimetres (cm) +anc_physical_exam.step1.toaster5.toaster_info_title = Increase daily energy and protein intake counseling +anc_physical_exam.step2.toaster10.toaster_info_text = Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management. +anc_physical_exam.step2.toaster10.text = Severe hypertension! Refer urgently to hospital! +anc_physical_exam.step1.toaster4.toaster_info_title = Nutritional and Exercise Folder +anc_physical_exam.step3.pallor.options.no.text = No +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text = BP cuff (sphygmomanometer) not available +anc_physical_exam.step4.fetal_heart_rate_label.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step3.toaster18.text = Abnormal pulse rate. Refer for further investigation. +anc_physical_exam.step3.toaster15.text = Temperature of 38ºC or above! Measure temperature again. +anc_physical_exam.step4.fetal_heartbeat.options.no.text = No +anc_physical_exam.step4.fetal_presentation.options.unknown.text = Unknown +anc_physical_exam.step4.fetal_heartbeat.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step1.current_weight.v_required.err = Please enter the current weight +anc_physical_exam.step2.bp_systolic_label.text = Systolic blood pressure (SBP) (mmHg) +anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = BP cuff (sphygmomanometer) is broken +anc_physical_exam.step3.abdominal_exam.label = Abdominal exam +anc_physical_exam.step4.fetal_presentation.v_required.err = Fetal representation field is required +anc_physical_exam.step2.bp_systolic_repeat_label.text = SBP after 10-15 minutes rest +anc_physical_exam.step3.oedema.label = Oedema present? +anc_physical_exam.step3.toaster20.text = Woman has respiratory distress. Refer urgently to the hospital! +anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseling. +anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ +anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. +anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling +anc_physical_exam.step2.bp_systolic.v_numeric.err = +anc_physical_exam.step2.urine_protein.options.none.text = None +anc_physical_exam.step2.cant_record_bp_reason.label = Reason +anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! +anc_physical_exam.step3.pallor.label = Pallor present? +anc_physical_exam.step4.fetal_movement.v_required.err = Please this field is required. +anc_physical_exam.step4.title = Fetal Assessment +anc_physical_exam.step4.fetal_movement.label = Fetal movement felt? +anc_physical_exam.step2.toaster8.text = Do urine dipstick test for protein. +anc_physical_exam.step4.fetal_heart_rate.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step1.toaster6.text = Balanced energy and protein dietary supplementation counseling +anc_physical_exam.step2.toaster14.toaster_info_title = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. +anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = +anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre-eclampsia? +anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! +anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! +anc_physical_exam.step1.pregest_weight.v_required.err = Pre-gestational weight is required +anc_physical_exam.step2.urine_protein.options.+++.text = +++ +anc_physical_exam.step3.respiratory_exam.options.3.text = Abnormal +anc_physical_exam.step3.oedema_severity.options.++.text = ++ +anc_physical_exam.step1.pregest_weight_label.text = Pre-gestational weight (kg) +anc_physical_exam.step3.breast_exam.label = Breast exam +anc_physical_exam.step3.toaster19.text = Anaemia diagnosis! Haemoglobin (Hb) test recommended. +anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text = Dizziness +anc_physical_exam.step1.current_weight_label.text = Current weight (kg) +anc_physical_exam.step4.fetal_presentation.options.cephalic.text = Cephalic +anc_physical_exam.step3.body_temp_label.text = Temperature (ºC) +anc_physical_exam.step3.abdominal_exam.options.1.text = Not done +anc_physical_exam.step2.bp_diastolic_repeat_label.text = DBP after 10-15 minutes rest +anc_physical_exam.step3.oedema_severity.label = Oedema severity +anc_physical_exam.step1.toaster4.text = Healthy eating and keeping physically active counseling +anc_physical_exam.step4.fetal_presentation.options.pelvic.text = Pelvic +anc_physical_exam.step3.toaster16.toaster_info_text = Procedure:\n- Insert an IV line\n- Give fluids slowly\n- Refer urgently to hospital! +anc_physical_exam.step2.toaster11.text = Symptom(s) of severe pre-eclampsia! Refer urgently to hospital! +anc_physical_exam.step2.toaster14.text = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. +anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Please specify any other symptoms or select none +anc_physical_exam.step3.body_temp.v_numeric.err = +anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Pre-gestational weight unknown +anc_physical_exam.step2.title = Blood Pressure +anc_physical_exam.step2.urine_protein.v_required.err = Please enter the result for the dipstick test. +anc_physical_exam.step4.toaster30.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_physical_exam.step2.toaster14.toaster_info_text = Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan +anc_physical_exam.step3.cervical_exam.options.2.text = Not done +anc_physical_exam.step1.height.v_numeric.err = +anc_physical_exam.step3.oximetry_label.text = Oximetry (%) +anc_physical_exam.step2.bp_diastolic_label.text = Diastolic blood pressure (DBP) (mmHg) +anc_physical_exam.step2.urine_protein.label = Urine dipstick result - protein +anc_physical_exam.step3.respiratory_exam.options.1.text = Not done +anc_physical_exam.step4.fetal_heart_rate_label.text = Fetal heart rate (bpm) +anc_physical_exam.step1.toaster5.toaster_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. +anc_physical_exam.step4.fetal_movement.options.no.text = No +anc_physical_exam.step3.abdominal_exam.options.3.text = Abnormal +anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk counseling +anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache +anc_physical_exam.step3.oedema_severity.options.+.text = + +anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. +anc_physical_exam.step3.pulse_rate.v_numeric.err = +anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate +anc_physical_exam.step2.bp_diastolic.v_numeric.err = +anc_physical_exam.step1.current_weight.v_numeric.err = +anc_physical_exam.step3.title = Maternal Exam +anc_physical_exam.step3.toaster19.toaster_info_text = Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor. +anc_physical_exam.step4.fetal_movement.options.yes.text = Yes +anc_physical_exam.step1.toaster3.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n- Reasserting dietary interventions\n- Reasserting physical activity during pregnancy +anc_physical_exam.step4.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. +anc_physical_exam.step3.pulse_rate_repeat.v_required.err = Please enter repeated pulse rate +anc_physical_exam.step3.cardiac_exam.options.3.text = Abnormal +anc_physical_exam.step3.toaster23.text = Abnormal breast exam. Refer for further investigation. +anc_physical_exam.step3.toaster26.text = Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks). +anc_physical_exam.step3.breast_exam.options.2.text = Normal +anc_physical_exam.step2.bp_systolic.v_required.err = Field systolic is required +anc_physical_exam.step3.oedema.options.no.text = No +anc_physical_exam.step4.toaster27.toaster_info_text = Procedure:\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n- Refer to hospital. diff --git a/opensrp-anc/src/main/resources/anc_profile_en.properties b/opensrp-anc/src/main/resources/anc_profile_en.properties new file mode 100644 index 000000000..668afae02 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_profile_en.properties @@ -0,0 +1,317 @@ +anc_profile.step1.occupation.options.other.text = Other (specify) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 48 pieces (squares) of chocolate +anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_done.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Hep B testing recommended +anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) +anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required +anc_profile.step3.prev_preg_comps_other.hint = Specify +anc_profile.step6.medications.options.antibiotics.text = Other antibiotics +anc_profile.step6.medications.options.aspirin.text = Aspirin +anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide +anc_profile.step2.sfh_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine / Crack +anc_profile.step5.hepb_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step8.partner_hiv_status.label = Partner HIV status +anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) +anc_profile.step1.occupation.options.formal_employment.text = Formal employment +anc_profile.step3.substances_used.options.marijuana.text = Marijuana +anc_profile.step2.lmp_gest_age_selection.label = +anc_profile.step2.lmp_known.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step7.other_substance_use.hint = Specify +anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems +anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia +anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age +anc_profile.step1.educ_level.options.secondary.text = Secondary +anc_profile.step5.title = Immunisation Status +anc_profile.step3.gravida.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? +anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) +anc_profile.step4.allergies.label = Any allergies? +anc_profile.step6.medications.options.folic_acid.text = Folic Acid +anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive +anc_profile.step2.ultrasound_gest_age_selection.label = +anc_profile.step7.condom_counseling_toaster.text = Condom counseling +anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused +anc_profile.step6.medications_other.hint = Specify +anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) +anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) +anc_profile.step8.partner_hiv_status.options.negative.text = Negative +anc_profile.step7.caffeine_intake.options.none.text = None of the above +anc_profile.step4.title = Medical History +anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions +anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days +anc_profile.step3.substances_used.label = Specify illicit substance use +anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage +anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling +anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused +anc_profile.step3.c_sections.v_required.err = C-sections is required +anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures +anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = 3rd or 4th degree tear +anc_profile.step4.allergies.options.folic_acid.text = Folic acid +anc_profile.step6.medications.options.other.text = Other (specify) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs +anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days +anc_profile.step2.ultrasound_done.options.yes.text = Yes +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling +anc_profile.step1.occupation.hint = Occupation +anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) +anc_profile.step7.caffeine_intake.label = Daily caffeine intake +anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) +anc_profile.step5.flu_immun_status.label = Flu immunisation status +anc_profile.step2.sfh_ultrasound_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? +anc_profile.step1.occupation_other.v_required.err = Please specify your occupation +anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) +anc_profile.step1.educ_level.options.higher.text = Higher +anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use +anc_profile.step6.medications.label = Current medications +anc_profile.step6.medications.options.magnesium.text = Magnesium +anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic +anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) +anc_profile.step1.educ_level.v_required.err = Please specify your education level +anc_profile.step4.health_conditions.options.hiv.text = HIV +anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses +anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling +anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products +anc_profile.step3.substances_used.options.other.text = Other (specify) +anc_profile.step6.medications.options.calcium.text = Calcium +anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_profile.step6.title = Medications +anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication +anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling +anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step4.surgeries.options.dont_know.text = Don't know +anc_profile.step6.medications.v_required.err = Please select at least one medication +anc_profile.step1.occupation.options.student.text = Student +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs +anc_profile.step5.flu_immun_status.options.unknown.text = Unknown +anc_profile.step7.alcohol_substance_enquiry.options.no.text = No +anc_profile.step4.surgeries.label = Any surgeries? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Seasonal flu dose given +anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive +anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know +anc_profile.step5.tt_immun_status.options.unknown.text = Unknown +anc_profile.step5.flu_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes +anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended +anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_profile.step1.marital_status.options.divorced.text = Divorced / separated +anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses of TTCV in past 5 years +anc_profile.step8.title = Partner's HIV Status +anc_profile.step4.allergies.options.iron.text = Iron +anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) +anc_profile.step6.medications.options.multivitamin.text = Multivitamin +anc_profile.step7.shs_exposure.options.no.text = No +anc_profile.step1.educ_level.options.dont_know.text = Don't know +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling +anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy +anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required +anc_profile.step4.allergies.v_required.err = Please select at least one allergy +anc_profile.step4.surgeries.options.none.text = None +anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV not received +anc_profile.step5.hepb_immun_status.options.unknown.text = Unknown +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps or vacuum delivery +anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended +anc_profile.step5.hepb_immun_status.options.not_received.text = Not received +anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step3.substances_used_other.hint = Specify +anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products +anc_profile.step6.medications.options.antitussive.text = Antitussive +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) +anc_profile.step5.tt_immun_status.label = TT immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TT immunisation recommended +anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana +anc_profile.step4.allergies.options.calcium.text = Calcium +anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee +anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status +anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use +anc_profile.step2.lmp_known.options.yes.text = Yes +anc_profile.step2.lmp_known.label_info_title = LMP known? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_profile.step4.allergies.options.chamomile.text = Chamomile +anc_profile.step2.lmp_known.label = LMP known? +anc_profile.step3.live_births.v_required.err = Live births is required +anc_profile.step7.condom_use.options.no.text = No +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth +anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures +anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation +anc_profile.step1.marital_status.label = Marital status +anc_profile.step7.title = Woman's Behaviour +anc_profile.step4.surgeries_other.hint = Other surgeries +anc_profile.step3.substances_used.options.cocaine.text = Cocaine / Crack +anc_profile.step1.educ_level.options.primary.text = Primary +anc_profile.step4.health_conditions.options.other.text = Other (specify) +anc_profile.step6.medications_other.v_required.err = Please specify the Other medications +anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling +anc_profile.step1.educ_level.options.none.text = None +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Hep B testing is recommended for at risk women who are not already fully immunised against Hep B. +anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions +anc_profile.step7.alcohol_substance_use.options.none.text = None +anc_profile.step7.tobacco_user.options.yes.text = Yes +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups (200 ml) of filtered or commercially brewed coffee +anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) +anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment +anc_profile.step6.medications.options.none.text = None +anc_profile.step2.ultrasound_done.label = Ultrasound done? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step6.medications.options.iron.text = Iron +anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease +anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling +anc_profile.step4.health_conditions.options.diabetes.text = Diabetes +anc_profile.step1.occupation_other.hint = Specify +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step1.marital_status.v_required.err = Please specify your marital status +anc_profile.step8.partner_hiv_status.v_required.err = Please select one +anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step3.prev_preg_comps.options.none.text = None +anc_profile.step4.allergies.options.dont_know.text = Don't know +anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling +anc_profile.step4.allergies.hint = Any allergies? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date +anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment +anc_profile.step4.surgeries.hint = Any surgeries? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts +anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? +anc_profile.step7.tobacco_user.label = Uses tobacco products? +anc_profile.step1.occupation.label = Occupation +anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products +anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know +anc_profile.step6.medications.options.hematinic.text = Hematinic +anc_profile.step3.c_sections_label.text = No. of C-sections +anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions +anc_profile.step5.hepb_immun_status.options.incomplete.text = Incomplete +anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol +anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required +anc_profile.step4.allergies.options.albendazole.text = Albendazole +anc_profile.step5.tt_immunisation_toaster.text = TT immunisation recommended +anc_profile.step1.educ_level.label = Highest level of school +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling +anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes +anc_profile.step4.allergies.options.penicillin.text = Penicillin +anc_profile.step1.occupation.options.unemployed.text = Unemployed +anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required +anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) +anc_profile.step5.hepb_immun_status.label = Hep B immunisation status +anc_profile.step1.marital_status.options.widowed.text = Widowed +anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? +anc_profile.step4.health_conditions_other.hint = Specify +anc_profile.step6.medications.options.antivirals.text = Antivirals +anc_profile.step6.medications.options.antacids.text = Antacids +anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling +anc_profile.step3.title = Obstetric History +anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! +anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling +anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) +anc_profile.step4.health_conditions.label = Any chronic or past health conditions? +anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries +anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know +anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required +anc_profile.step4.health_conditions.options.dont_know.text = Don't know +anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? +anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease +anc_profile.step6.medications.options.vitamina.text = Vitamin A +anc_profile.step6.medications.options.dont_know.text = Don't know +anc_profile.step7.condom_use.options.yes.text = Yes +anc_profile.step4.health_conditions.options.cancer.text = Cancer +anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Seasonal flu dose missing +anc_profile.step4.allergies_other.hint = Specify +anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step7.caffeine_intake.hint = Daily caffeine intake +anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks +anc_profile.step4.allergies.options.other.text = Other (specify) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries +anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks +anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step4.allergies.options.none.text = None +anc_profile.step3.stillbirths.v_required.err = Still births is required +anc_profile.step7.tobacco_user.options.no.text = No +anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems +anc_profile.step1.marital_status.options.married.text = Married or living together +anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date +anc_profile.step7.shs_exposure.options.yes.text = Yes +anc_profile.step5.hep_b_testing_recommended_toaster.text = Hep B testing recommended +anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. +anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) +anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date +anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Informal employment (sex worker) +anc_profile.step4.allergies.options.mebendazole.text = Mebendazole +anc_profile.step7.condom_use.label = Uses condoms during sex? +anc_profile.step1.occupation.v_required.err = Please select at least one occupation +anc_profile.step6.medications.options.analgesic.text = Analgesic +anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits +anc_profile.step5.fully_hep_b_immunised_toaster.text = Woman is fully immunised against Hep B! +anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) +anc_profile.step8.partner_hiv_status.options.positive.text = Positive +anc_profile.step4.allergies.options.ginger.text = Ginger +anc_profile.step2.title = Current Pregnancy +anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age +anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses of TTCV in the past +anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia +anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! +anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) +anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate +anc_profile.step4.health_conditions.options.none.text = None +anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step6.medications.options.asthma.text = Asthma +anc_profile.step6.medications.options.doxylamine.text = Doxylamine +anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use +anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. +anc_profile.step3.last_live_birth_preterm.options.no.text = No +anc_profile.step3.stillbirths_label.v_required.err = Still births is required +anc_profile.step4.health_conditions.options.hypertension.text = Hypertension +anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus. +anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole +anc_profile.step6.medications.options.thyroid.text = Thyroid medication +anc_profile.step1.title = Demographic Info +anc_profile.step2.lmp_ultrasound_gest_age_selection.label = +anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? +anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). +anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended diff --git a/opensrp-anc/src/test/resources/anc_quick_check_en.properties b/opensrp-anc/src/main/resources/anc_quick_check_en.properties similarity index 100% rename from opensrp-anc/src/test/resources/anc_quick_check_en.properties rename to opensrp-anc/src/main/resources/anc_quick_check_en.properties diff --git a/opensrp-anc/src/test/resources/anc_register_en.properties b/opensrp-anc/src/main/resources/anc_register_en.properties similarity index 100% rename from opensrp-anc/src/test/resources/anc_register_en.properties rename to opensrp-anc/src/main/resources/anc_register_en.properties diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_en.properties b/opensrp-anc/src/main/resources/anc_site_characteristics_en.properties new file mode 100644 index 000000000..97ce4f108 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_site_characteristics_en.properties @@ -0,0 +1,19 @@ +anc_site_characteristics.step1.title = Site Characteristics +anc_site_characteristics.step1.site_ultrasound.options.0.text = No +anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Are all of the following in place at your facility: +anc_site_characteristics.step1.site_ultrasound.label = 3. Is an ultrasound machine available and functional at your facility and a trained health worker available to use it? +anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_bp_tool.options.0.text = No +anc_site_characteristics.step1.site_ultrasound.options.1.text = Yes +anc_site_characteristics.step1.site_bp_tool.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_anc_hiv.options.1.text = Yes +anc_site_characteristics.step1.site_bp_tool.options.1.text = Yes +anc_site_characteristics.step1.site_ipv_assess.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_ipv_assess.label = a. A protocol or standard operating procedure for Intimate Partner Violence (IPV)

b. A health worker trained on how to ask about IPV and how to provide the minimum response or beyond

c. A private setting

d. A way to ensure confidentiality

e. Time to allow for appropriate disclosure

f. A system for referral in place. +anc_site_characteristics.step1.site_anc_hiv.options.0.text = No +anc_site_characteristics.step1.site_anc_hiv.label = 2. Is the HIV prevalence consistently greater than 1% in pregnant women attending antenatal clinics at your facility? +anc_site_characteristics.step1.site_ipv_assess.options.0.text = No +anc_site_characteristics.step1.site_ipv_assess.options.1.text = Yes +anc_site_characteristics.step1.site_anc_hiv.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_ultrasound.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_bp_tool.label = 4. Does your facility use an automated blood pressure (BP) measurement tool? diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties new file mode 100644 index 000000000..94cc1b09d --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties @@ -0,0 +1,188 @@ +anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contractions +anc_symptoms_follow_up.step4.other_symptoms_other.hint = Specify +anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Oedema +anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step2.toaster0.text = Caffeine reduction counseling +anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step2.title = Previous Behaviour +anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Low back pain +anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anti-convulsive +anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = None +anc_symptoms_follow_up.step4.toaster18.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step3.toaster5.text = Pharmacological treatments for nausea and vomiting counseling +anc_symptoms_follow_up.step3.toaster11.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussive +anc_symptoms_follow_up.step1.medications.options.dont_know.text = Don't know +anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = None +anc_symptoms_follow_up.step1.calcium_effects.options.no.text = No +anc_symptoms_follow_up.step3.toaster13.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Hemorrhoidal medication +anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Yes +anc_symptoms_follow_up.step2.toaster1.text = Tobacco cessation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Leg cramps +anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Headache +anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = None +anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabetic +anc_symptoms_follow_up.step4.toaster19.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Other antibiotics +anc_symptoms_follow_up.step4.title = Physiological Symptoms +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Oedema +anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Other (specify) +anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_symptoms_follow_up.step1.medications.options.calcium.text = Calcium +anc_symptoms_follow_up.step1.medications_other.hint = Specify +anc_symptoms_follow_up.step3.toaster7.toaster_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Fever +anc_symptoms_follow_up.step2.behaviour_persist.label = Which of the following behaviours persist? +anc_symptoms_follow_up.step4.toaster16.text = Non-pharmacological treatment for the relief of leg cramps counseling +anc_symptoms_follow_up.step4.toaster21.text = Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = No +anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Substance use +anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Fever +anc_symptoms_follow_up.step4.phys_symptoms.label = Any physiological symptoms? +anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Current tobacco use or recently quit +anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Please enter valid content +anc_symptoms_follow_up.step1.medications.options.iron.text = Iron +anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamin A +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = No fetal movement +anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Yes +anc_symptoms_follow_up.step4.toaster15.text = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazole +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Pelvic pain +anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamin +anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = High caffeine intake +anc_symptoms_follow_up.step2.toaster3.text = Condom counseling +anc_symptoms_follow_up.step3.toaster11.text = Urine test required +anc_symptoms_follow_up.step1.vita_comply.label = Is she taking her Vitamin A supplements? +anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Please specify any other symptoms related low back and pelvic pain or select none +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Leg pain +anc_symptoms_follow_up.step1.medications.v_required.err = Please specify the medication(s) that the woman is still taking +anc_symptoms_follow_up.step1.medications.options.antacids.text = Antacids +anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnesium +anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Leg cramps +anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Yes +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Normal fetal movement +anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirals +anc_symptoms_follow_up.step4.toaster22.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.ifa_comply.label = Is she taking her IFA tablets? +anc_symptoms_follow_up.step1.penicillin_comply.label = Is she taking her penicillin treatment for syphilis? +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = None +anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Nausea and vomiting +anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Which of the following physiological symptoms persist? +anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = Previous persisting behaviour is required +anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Heartburn +anc_symptoms_follow_up.step1.medications.label = What medications (including supplements and vitamins) is she still taking? +anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = None +anc_symptoms_follow_up.step3.toaster6.text = Antacid preparations to relieve heartburn counseling +anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Pelvic pain +anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = Has the woman felt the baby move? +anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = No +anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_symptoms_follow_up.step4.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Heartburn +anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Gets tired easily +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Breathing difficulty +anc_symptoms_follow_up.step1.ifa_comply.options.no.text = No +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Vaginal discharge +anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Please specify any other symptoms related to low back pain or select none +anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hypertensive +anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirin +anc_symptoms_follow_up.step1.calcium_comply.label = Is she taking her calcium supplements? +anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Anti-malarials +anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) +anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramide +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Nausea and vomiting +anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Cough lasting more than 3 weeks +anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Headache +anc_symptoms_follow_up.step3.title = Previous Symptoms +anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Folic Acid +anc_symptoms_follow_up.step3.toaster9.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.toaster10.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Visual disturbance +anc_symptoms_follow_up.step4.other_symptoms.options.none.text = None +anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Breathless during routine activities +anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_symptoms_follow_up.step3.other_symptoms_persist.label = Which of the following other symptoms persist? +anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Please specify any other symptoms or select none +anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipation +anc_symptoms_follow_up.step1.ifa_effects.options.no.text = No +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Low back pain +anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_symptoms_follow_up.step1.medications.options.none.text = None +anc_symptoms_follow_up.step2.toaster4.text = Alcohol / substance use counseling +anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposure to second-hand smoke in the home +anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) +anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Cough lasting more than 3 weeks +anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirals (ARVs) +anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hematinic +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Leg pain +anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Reduced or poor fetal movement +anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgesic +anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = No condom use during sex +anc_symptoms_follow_up.step1.title = Medication Follow-up +anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = Field has the woman felt the baby move is required +anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = None +anc_symptoms_follow_up.step1.medications.options.other.text = Other (specify) +anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Yes +anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxylamine +anc_symptoms_follow_up.step3.toaster7.text = Magnesium and calcium to relieve leg cramps counseling +anc_symptoms_follow_up.step1.calcium_effects.label = Any calcium supplement side effects? +anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Visual disturbance +anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = None +anc_symptoms_follow_up.step4.toaster20.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipation +anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Anthelmintic +anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Syphilis Compliance +anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Alcohol use +anc_symptoms_follow_up.step4.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Breathing difficulty +anc_symptoms_follow_up.step4.other_symptoms.label = Any other symptoms? +anc_symptoms_follow_up.step1.medications.options.asthma.text = Asthma +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Vaginal bleeding +anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Please specify any other physiological symptoms or select none +anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contractions +anc_symptoms_follow_up.step1.vita_comply.options.no.text = No +anc_symptoms_follow_up.step1.calcium_comply.options.no.text = No +anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varicose veins +anc_symptoms_follow_up.step4.toaster14.text = Non-pharma measures to relieve nausea and vomiting counseling +anc_symptoms_follow_up.step1.ifa_effects.label = Any IFA side effects? +anc_symptoms_follow_up.step4.toaster17.text = Dietary modifications to relieve constipation counseling +anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Caffeine intake folder +anc_symptoms_follow_up.step1.medications_other.v_regex.err = Please enter valid content +anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. +anc_symptoms_follow_up.step3.toaster8.text = Wheat bran or other fiber supplements to relieve constipation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Breathless during routine activities +anc_symptoms_follow_up.step4.toaster20.text = Urine test required +anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = None +anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Yes +anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Yes +anc_symptoms_follow_up.step3.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step1.aspirin_comply.label = Is she taking her aspirin tablets? +anc_symptoms_follow_up.step1.medications.options.thyroid.text = Thyroid medication +anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = Previous persisting physiological symptoms is required +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Leg redness +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Vaginal bleeding +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Vaginal discharge +anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Yes +anc_symptoms_follow_up.step2.toaster2.text = Second-hand smoke counseling +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Leg redness +anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varicose veins +anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = A maximum of up to 3 weekly doses may be required. +anc_symptoms_follow_up.step3.toaster12.text = Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Gets tired easily diff --git a/opensrp-anc/src/main/resources/anc_test._en.properties b/opensrp-anc/src/main/resources/anc_test._en.properties new file mode 100644 index 000000000..ebeed0e39 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_test._en.properties @@ -0,0 +1,57 @@ +anc_test.step1.accordion_hepatitis_b.accordion_info_title = Hepatitis B test +anc_test.step1.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_hiv.accordion_info_title = HIV test +anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step1.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_hepatitis_b.accordion_info_title = Hepatitis B test +anc_test.step2.accordion_blood_glucose.text = Blood Glucose test +anc_test.step1.accordion_blood_type.text = Blood Type test +anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step1.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.title = Other +anc_test.step2.accordion_hiv.accordion_info_title = HIV test +anc_test.step2.accordion_blood_type.text = Blood Type test +anc_test.step1.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. +anc_test.step2.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. +anc_test.step2.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. +anc_test.step2.accordion_partner_hiv.text = Partner HIV test +anc_test.step1.accordion_syphilis.text = Syphilis test +anc_test.step1.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.accordion_ultrasound.text = Ultrasound test +anc_test.step1.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.title = Due +anc_test.step2.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step2.accordion_urine.text = Urine test +anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_other_tests.accordion_info_title = Other test +anc_test.step2.accordion_ultrasound.text = Ultrasound test +anc_test.step2.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step1.accordion_hepatitis_b.text = Hepatitis B test +anc_test.step2.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. +anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step1.accordion_urine.text = Urine test +anc_test.step1.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. +anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step1.accordion_hiv.text = HIV test +anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_hiv.text = HIV test +anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_other_tests.text = Other Tests +anc_test.step2.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step1.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step2.accordion_hepatitis_b.text = Hepatitis B test +anc_test.step1.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step2.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step1.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_syphilis.text = Syphilis test diff --git a/opensrp-anc/src/test/resources/robolectric.properties b/opensrp-anc/src/main/resources/robolectric.properties similarity index 100% rename from opensrp-anc/src/test/resources/robolectric.properties rename to opensrp-anc/src/main/resources/robolectric.properties diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 21d61de28..aa95c0413 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.3004-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/resources/anc_counselling_treatment_en.properties b/reference-app/src/main/resources/anc_counselling_treatment_en.properties new file mode 100644 index 000000000..74b85147b --- /dev/null +++ b/reference-app/src/main/resources/anc_counselling_treatment_en.properties @@ -0,0 +1,648 @@ +anc_counselling_treatment.step9.ifa_weekly.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Done +anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step11.tt3_date.label_info_title = TT dose #3 +anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Other +anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Not done +anc_counselling_treatment.step11.tt3_date_done.v_required.err = Date for TT dose #3 is required +anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Reason +anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Specify +anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium.text = 0 +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Severe pre-eclampsia diagnosis +anc_counselling_treatment.step11.tt1_date.label = TT dose #1 +anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel.label = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Done +anc_counselling_treatment.step6.gdm_risk_counsel.label = Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel.label_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_counselling_treatment.step2.caffeine_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel.label = Condom counseling +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.label = Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step10.deworm_notdone_other.hint = Specify +anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Please select and option +anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Reason +anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.hepc_positive_counsel.label = Hepatitis C positive counseling +anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital! +anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.nausea_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test +anc_counselling_treatment.step10.deworm_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Facility (elective C-section) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Done +anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Done +anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step10.deworm.options.done.text = Done +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Reason +anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Seeking care for danger signs counseling +anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = Woman did not accept +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risk of IPV includes any of the following:\n\n- Traumatic injury, particularly if repeated and with vague or implausible explanations;\n\n- An intrusive partner or husband present at consultations;\n\n- Multiple unintended pregnancies and/or terminations;\n\n- Delay in seeking ANC;\n\n- Adverse birth outcomes;\n\n- Repeated STIs;\n\n- Unexplained or repeated genitourinary symptoms;\n\n- Symptoms of depression and anxiety;\n\n- Alcohol or other substance use; or\n\n- Self-harm or suicidal feelings. +anc_counselling_treatment.step2.condom_counsel.label_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Reason +anc_counselling_treatment.step3.constipation_counsel.v_required.err = Please select and option +anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Done +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Caffeine reduction counseling +anc_counselling_treatment.step11.hepb2_date.v_required.err = Hep B dose #2 is required +anc_counselling_treatment.step11.tt3_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step11.flu_date.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_counselling_treatment.step10.iptp_sp3.label_info_title = IPTp-SP dose 3 +anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Partner HIV test recommended +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Please select and option +anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.anc_contact_counsel.label = ANC contact schedule counseling +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Done +anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step11.hepb1_date.v_required.err = Hep B dose #1 is required +anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp1.label_info_title = IPTp-SP dose 1 +anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select and option +anc_counselling_treatment.step1.referred_hosp.options.no.text = No +anc_counselling_treatment.step1.title = Hospital Referral +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.body_mass_toaster.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}. +anc_counselling_treatment.step5.hypertension_counsel.label = Hypertension counseling +anc_counselling_treatment.step10.deworm_notdone.hint = Reason +anc_counselling_treatment.step1.referred_hosp.label = Referred to hospital? +anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Diabetes counseling +anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Syphilis counselling and further testing +anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Please select and option +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = HIV positive counseling +anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Vaginal ring +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Not necessary +anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm +anc_counselling_treatment.step11.tt1_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\n1-4 doses of TTCV in the past:\n\n- 1 dose scheme: Woman should receive one dose of TTCV during each subsequent pregnancy to a total of five doses (five doses protects throughout the childbearing years).\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step11.hepb3_date.label = Hep B dose #3 +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Done +anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] +anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.options.done.text = Done +anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injectable +anc_counselling_treatment.step9.ifa_high_prev.label = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step11.tt2_date.label_info_title = TT dose #2 +anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Done +anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Reason +anc_counselling_treatment.step11.tt1_date.v_required.err = TT dose #1 is required +anc_counselling_treatment.step11.hepb1_date.label = Hep B dose #1 +anc_counselling_treatment.step11.tt2_date.options.not_done.text = Not done +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Abnormal pulse rate: {pulse_rate_repeat}bpm +anc_counselling_treatment.step7.delivery_place.options.facility.text = Facility +anc_counselling_treatment.step10.iptp_sp1.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.deworm_notdone.label = Reason +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.ifa_anaemia.label_info_text = If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Done today +anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.malaria_counsel.options.done.text = Done +anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt2_date.v_required.err = TT dose #2 is required +anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step9.ifa_low_prev.label = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step1.abn_breast_exam_toaster.text = Abnormal breast exam: {breast_exam_abnormal} +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text = Pregnant women with GBS colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. +anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label = Syphilis counselling and treatment +anc_counselling_treatment.step10.iptp_sp_notdone.hint = Reason +anc_counselling_treatment.step9.ifa_low_prev.label_info_title = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Specify +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Healthy eating and keeping physically active counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Reason +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Pre-eclampsia diagnosis +anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Treat according to local protocol and/or refer for treatment. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Done +anc_counselling_treatment.step2.shs_counsel_notdone.label = Reason +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Please select and option +anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Rh factor negative counseling +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Reason +anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Done today +anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Please select and option +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with blurred vision\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing +anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = ANC contact schedule counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital +anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Specify +anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Please select and option +anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Advise retesting and immunisation if ongoing risk or known exposure +anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Reason +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step9.vita_supp.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step5.hiv_positive_counsel.label = HIV positive counseling +anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Please select and option +anc_counselling_treatment.step1.low_oximetry_toaster.text = Low oximetry: {oximetry}% +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.hepb_positive_counsel.label = Hepatitis B positive counseling +anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.malaria_counsel.label_info_title = Malaria prevention counseling +anc_counselling_treatment.step7.family_planning_type.options.none.text = None +anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_weekly.label_info_title = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid +anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step10.malaria_counsel.label_info_text = Sleeping under an insecticide-treated bednet and the importance of seeking care and getting treatment as soon as she has any symptoms. +anc_counselling_treatment.step6.hiv_prep_notdone.label = Reason +anc_counselling_treatment.step2.caffeine_counsel.label = Caffeine reduction counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. \n\n[Protein and Energy Sources Folder] +anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Done +anc_counselling_treatment.step11.tt1_date.options.done_today.text = Done today +anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Specify +anc_counselling_treatment.step1.resp_distress_toaster.text = Respiratory distress: {respiratory_exam_abnormal} +anc_counselling_treatment.step12.prep_toaster.text = Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Zinc supplement\n\n- Multiple micronutrient supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement +anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Enter reason hospital referral was not done +anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_results.label = IPV enquiry results +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Not done +anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Done +anc_counselling_treatment.step4.increase_energy_counsel.label = Increase daily energy and protein intake counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Hepatitis C positive counseling +anc_counselling_treatment.step11.tt1_date_done.v_required.err = Date for TT dose #1 is required +anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Abnormal cardiac exam: {cardiac_exam_abnormal} +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Done +anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp.v_required.err = Please select and option +anc_counselling_treatment.step2.condom_counsel_notdone.hint = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Please select and option +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Done +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step3.nausea_counsel.label_info_title = Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step11.flu_date.label_info_title = Flu dose +anc_counselling_treatment.step11.woman_immunised_toaster.text = Woman is fully immunised against tetanus! +anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Not done +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Reason Hep B was not given is required +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Please select and option +anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb3_date_done.v_required.err = Date for Hep B dose #3 is required +anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = No drugs available +anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.calcium_supp.options.done.text = Done +anc_counselling_treatment.step9.vita_supp.options.not_done.text = Not done +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text = Abnormal abdominal exam: {abdominal_exam_abnormal} +anc_counselling_treatment.step5.tb_positive_counseling.label_info_title = TB screening positive counseling +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title = Severe pre-eclampsia diagnosis +anc_counselling_treatment.step7.encourage_facility_toaster.text = Encourage delivery at a facility! +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_counselling_treatment.step1.fever_toaster.text = Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_refer_toaster.text = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. +anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested. +anc_counselling_treatment.step11.tt3_date.label = TT dose #3 +anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia. +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Done +anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = No action necessary +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan +anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Specify +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb2_date.label = Hep B dose #2 +anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp.label = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step5.asb_positive_counsel.label = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms +anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Referred +anc_counselling_treatment.step3.constipation_counsel.label = Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step10.iptp_sp2.label_info_title = IPTp-SP dose 2 +anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step2.condom_counsel.options.done.text = Done +anc_counselling_treatment.step10.malaria_counsel_notdone.label = Reason +anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Done today +anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Done +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Specify +anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step6.hiv_prep.label = PrEP for HIV prevention counseling +anc_counselling_treatment.step7.emergency_hosp_counsel.label = Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step7.anc_contact_counsel.label_info_text = It is recommended that a woman sees a healthcare provider 8 times during pregnancy (this can change if the woman has any complications). This schedule shows when the woman should come in to be able to access all the important care and information. +anc_counselling_treatment.step5.title = Diagnoses +anc_counselling_treatment.step9.calcium_supp_notdone.hint = Reason +anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Specify +anc_counselling_treatment.step7.gbs_agent_counsel.label = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step8.ipv_enquiry.label = Clinical enquiry for intimate partner violence (IPV) +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital! +anc_counselling_treatment.step11.tt3_date.v_required.err = TT dose #3 is required +anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Sterilization (partner) +anc_counselling_treatment.step11.hepb2_date_done.hint = Date Hep B dose #2 was given. +anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Specify +anc_counselling_treatment.step10.deworm.v_required.err = Please select and option +anc_counselling_treatment.step5.diabetes_counsel.label = Diabetes counseling +anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk +anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Done +anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step2.shs_counsel.label_info_title = Second-hand smoke counseling +anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.vita_supp.v_required.err = Please select and option +anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers +anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Please select and option +anc_counselling_treatment.step7.family_planning_type.options.iud.text = IUD +anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel.label = Second-hand smoke counseling +anc_counselling_treatment.step10.iptp_sp3.label = IPTp-SP dose 3 +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp2.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Specify +anc_counselling_treatment.step11.hepb3_date_done.hint = Date Hep B dose #3 was given. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Reason +anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Hep B negative counseling and vaccination +anc_counselling_treatment.step3.varicose_vein_toaster.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_counselling_treatment.step7.birth_prep_counsel.label = Birth preparedness and complications readiness counseling +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = No fetal heartbeat observed +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.flu_date.v_required.err = Flu dose is required +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Abnormal pelvic exam: {pelvic_exam_abnormal} +anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Birth preparedness and complications readiness counseling +anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = Referred instead +anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Reason +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step3.constipation_counsel.options.done.text = Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_weekly.label = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention +anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt3_date_done.hint = Date TT dose #3 was given. +anc_counselling_treatment.step3.nausea_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB +anc_counselling_treatment.step11.flu_date.label_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = Woman is immunised against flu! +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = No fetal heartbeat observed +anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Reason Flu dose was not done is required +anc_counselling_treatment.step10.deworm_notdone.v_required.err = Please select and option +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Pre-eclampsia diagnosis +anc_counselling_treatment.step5.tb_positive_counseling.label = TB screening positive counseling +anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.tt2_date.label = TT dose #2 +anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.hepb_negative_note.label = Hep B negative counseling and vaccination +anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implant +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = HIV risk counseling +anc_counselling_treatment.step2.shs_counsel.options.done.text = Done +anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_counselling_treatment.step9.ifa_weekly_notdone.label = Reason +anc_counselling_treatment.step11.tt1_date.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label = Reason +anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Please select an option +anc_counselling_treatment.step9.vita_supp.label_info_text = Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder] +anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs +anc_counselling_treatment.step10.iptp_sp_toaster.text = Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Counseling:\n\n- Advice to reduce workload and to rest- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available +anc_counselling_treatment.step1.referred_hosp_notdone.label = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel_notdone.label = Reason +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text = Not done +anc_counselling_treatment.step3.leg_cramp_counsel.label = Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Due to the population's high anaemia prevalence, a daily dose of 60 mg of elemental iron is preferred over a lower dose. A daily dose of 400 mcg (0.4 mg) folic acid is also recommended.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_weekly.options.done.text = Done +anc_counselling_treatment.step11.flu_date.label = Flu dose +anc_counselling_treatment.step11.hepb2_date_done.v_required.err = Date for Hep B dose #2 is required +anc_counselling_treatment.step9.vita_supp.label = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step11.hepb1_date_done.hint = Date Hep B dose #1 was given. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step6.hiv_prep.label_info_text = Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework] +anc_counselling_treatment.step10.deworm.label_info_text = In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes. +anc_counselling_treatment.step11.tt2_date.options.done_today.text = Done today +anc_counselling_treatment.step11.tt3_date.options.not_done.text = Not done +anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = Woman is fully immunised against Hep B! +anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Treated +anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Reason +anc_counselling_treatment.step6.hiv_prep.options.done.text = Done +anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Not done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt3_date.options.done_today.text = Done today +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_counselling_treatment.step3.constipation_counsel.label_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step1.referred_hosp.v_required.err = Please select and option +anc_counselling_treatment.step1.severe_hypertension_toaster.text = Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg +anc_counselling_treatment.step4.average_weight_toaster.text = Counseling on healthy eating and keeping physically active done! +anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Not done +anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Oral contraceptive +anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Tubal ligation +anc_counselling_treatment.step11.tt_dose_notdone.label = Reason +anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Allergy +anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp_notdone.label = Reason +anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Please select and option +anc_counselling_treatment.step7.delivery_place.options.home.text = Home +anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Reason +anc_counselling_treatment.step4.eat_exercise_counsel.label = Healthy eating and keeping physically active counseling +anc_counselling_treatment.step10.iptp_sp3.options.done.text = Done +anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step9.vita_supp_notdone.label = Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp3.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step11.hepb1_date_done.v_required.err = Date for Hep B dose #1 is required +anc_counselling_treatment.step11.flu_date_done.hint = Date flu dose was given +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_low_prev.options.done.text = Done +anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step7.breastfeed_counsel.label_info_title = Breastfeeding counseling +anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Not done +anc_counselling_treatment.step2.shs_counsel_notdone.hint = Reason +anc_counselling_treatment.step8.title = Intimate Partner Violence (IPV) +anc_counselling_treatment.step10.iptp_sp1.v_required.err = Please select and option +anc_counselling_treatment.step2.shs_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.varicose_oedema_counsel.label = Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step7.delivery_place.options.other.text = Other +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_high_prev.label_info_title = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text = Side effects +anc_counselling_treatment.step7.danger_signs_counsel.label = Seeking care for danger signs counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_title = Increase daily energy and protein intake counseling +anc_counselling_treatment.step10.iptp_sp1.label = IPTp-SP dose 1 +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text = Side effects +anc_counselling_treatment.step7.family_planning_type.label = FP method accepted +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt3_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) for pre-eclampsia risk +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title = Alcohol / substance use counseling +anc_counselling_treatment.step3.constipation_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.malaria_counsel.label = Malaria prevention counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step10.deworm.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Not done +anc_counselling_treatment.step11.title = Immunizations +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Reason +anc_counselling_treatment.step7.breastfeed_counsel.label = Breastfeeding counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Expired +anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step3.nausea_counsel.label_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Done +anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Not done +anc_counselling_treatment.step10.iptp_sp2.v_required.err = Please select and option +anc_counselling_treatment.step7.rh_negative_counsel.label = Rh factor negative counseling +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Syphilis counselling and further testing +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Stock out +anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Not done +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. +anc_counselling_treatment.step5.ifa_anaemia.label = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Allergy +anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step10.iptp_sp2.options.done.text = Done +anc_counselling_treatment.step11.flu_dose_notdone.label = Reason +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.title = Behaviour Counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step11.tt2_date_done.v_required.err = Date for TT dose #2 is required +anc_counselling_treatment.step2.tobacco_counsel.label = Tobacco cessation counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step6.hiv_risk_counsel.label = HIV risk counseling +anc_counselling_treatment.step11.hepb3_date.v_required.err = Hep B dose #3 is required +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step2.condom_counsel.label_info_title = Condom counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Done +anc_counselling_treatment.step10.deworm.label = Prescribe single dose albendazole 400 mg or mebendazole 500 mg +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital. +anc_counselling_treatment.step9.vita_supp.label_info_title = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Please select and option +anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step11.flu_date.options.done_today.text = Done today +anc_counselling_treatment.step11.tt1_date_done.hint = Date TT dose #1 was given. +anc_counselling_treatment.step3.title = Physiological Symptoms Counseling +anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Hypertension counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step9.title = Nutrition Supplementation +anc_counselling_treatment.step2.alcohol_substance_counsel.label = Alcohol / substance use counseling +anc_counselling_treatment.step7.birth_plan_toaster.text = Woman should plan to give birth at a facility due to risk factors +anc_counselling_treatment.step10.malaria_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.anc_contact_counsel.options.done.text = Done +anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Specify +anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_counsel_notdone.label = Reason +anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Please select and option +anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step11.hepb_dose_notdone.label = Reason +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Side effects prevent woman from taking it +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Please select an option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step4.title = Diet Counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Stock out +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = Woman is ill +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Reason +anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step9.calcium_supp_notdone.label = Reason +anc_counselling_treatment.step11.tt2_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step12.title = Not Recommended +anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Done +anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Hepatitis B positive counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Not done +anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Reason TT dose was not given is required +anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Done +anc_counselling_treatment.step7.title = Counseling +anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Not done +anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Not done +anc_counselling_treatment.step9.ifa_weekly.label_info_text = If daily iron is not acceptable due to side effects, provide intermittent iron and folic acid supplementation instead (120 mg of elemental iron and 2.8 mg of folic acid once weekly).\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step2.tobacco_counsel.options.done.text = Done +anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp1.options.done.text = Done +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text = Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia} +anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step6.hiv_prep_notdone_other.hint = Specify +anc_counselling_treatment.step5.ifa_anaemia.options.done.text = Done +anc_counselling_treatment.step10.iptp_sp2.label = IPTp-SP dose 2 +anc_counselling_treatment.step5.asb_positive_counsel.label_info_text = A seven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight neonates. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint = Reason +anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text = Woman refused +anc_counselling_treatment.step9.vita_supp_notdone.hint = Reason +anc_counselling_treatment.step6.title = Risks +anc_counselling_treatment.step6.hiv_prep.label_info_title = PrEP for HIV prevention counseling +anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Reason +anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint = Specify +anc_counselling_treatment.step3.constipation_counsel.label_info_title = Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step1.danger_signs_toaster.text = Danger sign(s): {danger_signs} +anc_counselling_treatment.step6.prep_toaster.text = Partner HIV test recommended +anc_counselling_treatment.step1.referred_hosp_notdone.hint = Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step11.tt2_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step3.nausea_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text = Not done +anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text = Risk factors necessitating a facility birth:\n- Age 17 or under\n- Primigravida\n- Parity 6 or higher\n- Prior C-section\n- Previous pregnancy complications: Heavy bleeding, Forceps or vacuum delivery, Convulsions, or 3rd or 4th degree tear\n- Vaginal bleeding\n- Multiple fetuses\n- Abnormal fetal presentation\n- HIV+\n- Wants IUD or tubal ligation following delivery +anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step10.title = Deworming & Malaria Prophylaxis +anc_counselling_treatment.step3.nausea_counsel_notdone.hint = Reason +anc_counselling_treatment.step11.flu_date.options.done_earlier.text = Done earlier +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint = Reason +anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint = Specify +anc_counselling_treatment.step10.iptp_sp_notdone_other.hint = Specify +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel.label = Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\n[Vitamin C folder]\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. +anc_counselling_treatment.step1.referred_hosp.options.yes.text = Yes +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Syphilis counselling and treatment +anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Reason +anc_counselling_treatment.step7.delivery_place.label = Planned birth place +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title = Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text = Done +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label = Reason +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = Procedure:\n\n- Check for fever, infection, respiratory distress, and arrhythmia\n\n- Refer for further investigation +anc_counselling_treatment.step7.family_planning_counsel.label = Postpartum family planning counseling +anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Tobacco cessation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Specify +anc_counselling_treatment.step11.tt2_date_done.hint = Date TT dose #2 was given. diff --git a/reference-app/src/main/resources/anc_physical_exam_en.properties b/reference-app/src/main/resources/anc_physical_exam_en.properties new file mode 100644 index 000000000..24e430154 --- /dev/null +++ b/reference-app/src/main/resources/anc_physical_exam_en.properties @@ -0,0 +1,169 @@ +anc_physical_exam.step3.respiratory_exam.label = Respiratory exam +anc_physical_exam.step3.body_temp_repeat.v_required.err = Please enter second body temperature +anc_physical_exam.step3.cardiac_exam.options.1.text = Not done +anc_physical_exam.step3.cervical_exam.label = Cervical exam done? +anc_physical_exam.step4.toaster29.text = Abnormal fetal heart rate. Refer to hospital. +anc_physical_exam.step1.height_label.text = Height (cm) +anc_physical_exam.step3.pelvic_exam.options.2.text = Normal +anc_physical_exam.step3.oedema_severity.v_required.err = Please enter the result for the dipstick test. +anc_physical_exam.step1.toaster6.toaster_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. +anc_physical_exam.step3.pelvic_exam.options.1.text = Not done +anc_physical_exam.step1.pregest_weight_label.v_required.err = Please enter pre-gestational weight +anc_physical_exam.step3.cardiac_exam.options.2.text = Normal +anc_physical_exam.step3.pulse_rate_label.text = Pulse rate (bpm) +anc_physical_exam.step4.fetal_presentation.label = Fetal presentation +anc_physical_exam.step3.toaster25.text = Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral. +anc_physical_exam.step2.toaster11.toaster_info_text = Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management. +anc_physical_exam.step3.pallor.options.yes.text = Yes +anc_physical_exam.step2.urine_protein.options.++++.text = ++++ +anc_physical_exam.step3.cardiac_exam.label = Cardiac exam +anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required +anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) +anc_physical_exam.step3.toaster24.text = Abnormal abdominal exam. Consider high level evaluation or referral. +anc_physical_exam.step3.body_temp_repeat.v_numeric.err = +anc_physical_exam.step1.height.v_required.err = Please enter the height +anc_physical_exam.step3.toaster21.toaster_info_text = Procedure:\n- Give oxygen\n- Refer urgently to hospital! +anc_physical_exam.step3.body_temp.v_required.err = Please enter body temperature +anc_physical_exam.step3.pelvic_exam.options.3.text = Abnormal +anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverse +anc_physical_exam.step2.bp_diastolic.v_required.err = Field diastolic is required +anc_physical_exam.step2.toaster13.toaster_info_text = Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital! +anc_physical_exam.step3.breast_exam.options.1.text = Not done +anc_physical_exam.step4.toaster27.text = No fetal heartbeat observed. Refer to hospital. +anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg. +anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) +anc_physical_exam.step2.urine_protein.options.+.text = + +anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH +anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available +anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Blurred vision +anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vomiting +anc_physical_exam.step1.toaster4.toaster_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy. +anc_physical_exam.step3.respiratory_exam.options.2.text = Normal +anc_physical_exam.step3.breast_exam.options.3.text = Abnormal +anc_physical_exam.step2.cant_record_bp_reason.v_required.err = Reason why SBP and DPB is cannot be done is required +anc_physical_exam.step3.abdominal_exam.options.2.text = Normal +anc_physical_exam.step4.no_of_fetuses_label.text = No. of fetuses +anc_physical_exam.step1.pregest_weight.v_numeric.err = +anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to record BP +anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required +anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other +anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = No. of fetuses unknown +anc_physical_exam.step3.oedema_severity.options.+++.text = +++ +anc_physical_exam.step4.fetal_heartbeat.label = Fetal heartbeat present? +anc_physical_exam.step1.toaster2.text = Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg +anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes rest. +anc_physical_exam.step3.cervical_exam.options.1.text = Done +anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Please enter result for the second fetal heart rate +anc_physical_exam.step3.toaster22.text = Abnormal cardiac exam. Refer urgently to the hospital! +anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = +anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) +anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation +anc_physical_exam.step3.oedema.options.yes.text = Yes +anc_physical_exam.step1.title = Height & Weight +anc_physical_exam.step2.urine_protein.options.++.text = ++ +anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Yes +anc_physical_exam.step4.toaster30.text = Pre-eclampsia risk counseling +anc_physical_exam.step3.pelvic_exam.label = Pelvic exam (visual) +anc_physical_exam.step4.fetal_presentation.options.other.text = Other +anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text = None +anc_physical_exam.step1.toaster6.toaster_info_title = Balanced energy and protein dietary supplementation counseling +anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text = Epigastric pain +anc_physical_exam.step4.sfh_label.text = Symphysis-fundal height (SFH) in centimetres (cm) +anc_physical_exam.step1.toaster5.toaster_info_title = Increase daily energy and protein intake counseling +anc_physical_exam.step2.toaster10.toaster_info_text = Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management. +anc_physical_exam.step2.toaster10.text = Severe hypertension! Refer urgently to hospital! +anc_physical_exam.step1.toaster4.toaster_info_title = Nutritional and Exercise Folder +anc_physical_exam.step3.pallor.options.no.text = No +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text = BP cuff (sphygmomanometer) not available +anc_physical_exam.step4.fetal_heart_rate_label.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step3.toaster18.text = Abnormal pulse rate. Refer for further investigation. +anc_physical_exam.step3.toaster15.text = Temperature of 38ºC or above! Measure temperature again. +anc_physical_exam.step4.fetal_heartbeat.options.no.text = No +anc_physical_exam.step4.fetal_presentation.options.unknown.text = Unknown +anc_physical_exam.step4.fetal_heartbeat.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step1.current_weight.v_required.err = Please enter the current weight +anc_physical_exam.step2.bp_systolic_label.text = Systolic blood pressure (SBP) (mmHg) +anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = BP cuff (sphygmomanometer) is broken +anc_physical_exam.step3.abdominal_exam.label = Abdominal exam +anc_physical_exam.step4.fetal_presentation.v_required.err = Fetal representation field is required +anc_physical_exam.step2.bp_systolic_repeat_label.text = SBP after 10-15 minutes rest +anc_physical_exam.step3.oedema.label = Oedema present? +anc_physical_exam.step3.toaster20.text = Woman has respiratory distress. Refer urgently to the hospital! +anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseling. +anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ +anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. +anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling +anc_physical_exam.step2.bp_systolic.v_numeric.err = +anc_physical_exam.step2.urine_protein.options.none.text = None +anc_physical_exam.step2.cant_record_bp_reason.label = Reason +anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! +anc_physical_exam.step3.pallor.label = Pallor present? +anc_physical_exam.step4.fetal_movement.v_required.err = Please this field is required. +anc_physical_exam.step4.title = Fetal Assessment +anc_physical_exam.step4.fetal_movement.label = Fetal movement felt? +anc_physical_exam.step2.toaster8.text = Do urine dipstick test for protein. +anc_physical_exam.step4.fetal_heart_rate.v_required.err = Please specify if fetal heartbeat is present. +anc_physical_exam.step1.toaster6.text = Balanced energy and protein dietary supplementation counseling +anc_physical_exam.step2.toaster14.toaster_info_title = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. +anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = +anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre-eclampsia? +anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! +anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! +anc_physical_exam.step1.pregest_weight.v_required.err = Pre-gestational weight is required +anc_physical_exam.step2.urine_protein.options.+++.text = +++ +anc_physical_exam.step3.respiratory_exam.options.3.text = Abnormal +anc_physical_exam.step3.oedema_severity.options.++.text = ++ +anc_physical_exam.step1.pregest_weight_label.text = Pre-gestational weight (kg) +anc_physical_exam.step3.breast_exam.label = Breast exam +anc_physical_exam.step3.toaster19.text = Anaemia diagnosis! Haemoglobin (Hb) test recommended. +anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text = Dizziness +anc_physical_exam.step1.current_weight_label.text = Current weight (kg) +anc_physical_exam.step4.fetal_presentation.options.cephalic.text = Cephalic +anc_physical_exam.step3.body_temp_label.text = Temperature (ºC) +anc_physical_exam.step3.abdominal_exam.options.1.text = Not done +anc_physical_exam.step2.bp_diastolic_repeat_label.text = DBP after 10-15 minutes rest +anc_physical_exam.step3.oedema_severity.label = Oedema severity +anc_physical_exam.step1.toaster4.text = Healthy eating and keeping physically active counseling +anc_physical_exam.step4.fetal_presentation.options.pelvic.text = Pelvic +anc_physical_exam.step3.toaster16.toaster_info_text = Procedure:\n- Insert an IV line\n- Give fluids slowly\n- Refer urgently to hospital! +anc_physical_exam.step2.toaster11.text = Symptom(s) of severe pre-eclampsia! Refer urgently to hospital! +anc_physical_exam.step2.toaster14.text = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. +anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Please specify any other symptoms or select none +anc_physical_exam.step3.body_temp.v_numeric.err = +anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Pre-gestational weight unknown +anc_physical_exam.step2.title = Blood Pressure +anc_physical_exam.step2.urine_protein.v_required.err = Please enter the result for the dipstick test. +anc_physical_exam.step4.toaster30.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_physical_exam.step2.toaster14.toaster_info_text = Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan +anc_physical_exam.step3.cervical_exam.options.2.text = Not done +anc_physical_exam.step1.height.v_numeric.err = +anc_physical_exam.step3.oximetry_label.text = Oximetry (%) +anc_physical_exam.step2.bp_diastolic_label.text = Diastolic blood pressure (DBP) (mmHg) +anc_physical_exam.step2.urine_protein.label = Urine dipstick result - protein +anc_physical_exam.step3.respiratory_exam.options.1.text = Not done +anc_physical_exam.step4.fetal_heart_rate_label.text = Fetal heart rate (bpm) +anc_physical_exam.step1.toaster5.toaster_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. +anc_physical_exam.step4.fetal_movement.options.no.text = No +anc_physical_exam.step3.abdominal_exam.options.3.text = Abnormal +anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk counseling +anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache +anc_physical_exam.step3.oedema_severity.options.+.text = + +anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. +anc_physical_exam.step3.pulse_rate.v_numeric.err = +anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate +anc_physical_exam.step2.bp_diastolic.v_numeric.err = +anc_physical_exam.step1.current_weight.v_numeric.err = +anc_physical_exam.step3.title = Maternal Exam +anc_physical_exam.step3.toaster19.toaster_info_text = Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor. +anc_physical_exam.step4.fetal_movement.options.yes.text = Yes +anc_physical_exam.step1.toaster3.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n- Reasserting dietary interventions\n- Reasserting physical activity during pregnancy +anc_physical_exam.step4.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. +anc_physical_exam.step3.pulse_rate_repeat.v_required.err = Please enter repeated pulse rate +anc_physical_exam.step3.cardiac_exam.options.3.text = Abnormal +anc_physical_exam.step3.toaster23.text = Abnormal breast exam. Refer for further investigation. +anc_physical_exam.step3.toaster26.text = Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks). +anc_physical_exam.step3.breast_exam.options.2.text = Normal +anc_physical_exam.step2.bp_systolic.v_required.err = Field systolic is required +anc_physical_exam.step3.oedema.options.no.text = No +anc_physical_exam.step4.toaster27.toaster_info_text = Procedure:\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n- Refer to hospital. diff --git a/reference-app/src/main/resources/anc_profile_en.properties b/reference-app/src/main/resources/anc_profile_en.properties new file mode 100644 index 000000000..668afae02 --- /dev/null +++ b/reference-app/src/main/resources/anc_profile_en.properties @@ -0,0 +1,317 @@ +anc_profile.step1.occupation.options.other.text = Other (specify) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 48 pieces (squares) of chocolate +anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_done.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Hep B testing recommended +anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) +anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required +anc_profile.step3.prev_preg_comps_other.hint = Specify +anc_profile.step6.medications.options.antibiotics.text = Other antibiotics +anc_profile.step6.medications.options.aspirin.text = Aspirin +anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide +anc_profile.step2.sfh_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine / Crack +anc_profile.step5.hepb_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step8.partner_hiv_status.label = Partner HIV status +anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) +anc_profile.step1.occupation.options.formal_employment.text = Formal employment +anc_profile.step3.substances_used.options.marijuana.text = Marijuana +anc_profile.step2.lmp_gest_age_selection.label = +anc_profile.step2.lmp_known.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step7.other_substance_use.hint = Specify +anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems +anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia +anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age +anc_profile.step1.educ_level.options.secondary.text = Secondary +anc_profile.step5.title = Immunisation Status +anc_profile.step3.gravida.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? +anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) +anc_profile.step4.allergies.label = Any allergies? +anc_profile.step6.medications.options.folic_acid.text = Folic Acid +anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive +anc_profile.step2.ultrasound_gest_age_selection.label = +anc_profile.step7.condom_counseling_toaster.text = Condom counseling +anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused +anc_profile.step6.medications_other.hint = Specify +anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) +anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) +anc_profile.step8.partner_hiv_status.options.negative.text = Negative +anc_profile.step7.caffeine_intake.options.none.text = None of the above +anc_profile.step4.title = Medical History +anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions +anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days +anc_profile.step3.substances_used.label = Specify illicit substance use +anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage +anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling +anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused +anc_profile.step3.c_sections.v_required.err = C-sections is required +anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures +anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = 3rd or 4th degree tear +anc_profile.step4.allergies.options.folic_acid.text = Folic acid +anc_profile.step6.medications.options.other.text = Other (specify) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs +anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days +anc_profile.step2.ultrasound_done.options.yes.text = Yes +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling +anc_profile.step1.occupation.hint = Occupation +anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) +anc_profile.step7.caffeine_intake.label = Daily caffeine intake +anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) +anc_profile.step5.flu_immun_status.label = Flu immunisation status +anc_profile.step2.sfh_ultrasound_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? +anc_profile.step1.occupation_other.v_required.err = Please specify your occupation +anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) +anc_profile.step1.educ_level.options.higher.text = Higher +anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use +anc_profile.step6.medications.label = Current medications +anc_profile.step6.medications.options.magnesium.text = Magnesium +anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic +anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) +anc_profile.step1.educ_level.v_required.err = Please specify your education level +anc_profile.step4.health_conditions.options.hiv.text = HIV +anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses +anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling +anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products +anc_profile.step3.substances_used.options.other.text = Other (specify) +anc_profile.step6.medications.options.calcium.text = Calcium +anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_profile.step6.title = Medications +anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication +anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling +anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step4.surgeries.options.dont_know.text = Don't know +anc_profile.step6.medications.v_required.err = Please select at least one medication +anc_profile.step1.occupation.options.student.text = Student +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs +anc_profile.step5.flu_immun_status.options.unknown.text = Unknown +anc_profile.step7.alcohol_substance_enquiry.options.no.text = No +anc_profile.step4.surgeries.label = Any surgeries? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Seasonal flu dose given +anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive +anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know +anc_profile.step5.tt_immun_status.options.unknown.text = Unknown +anc_profile.step5.flu_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes +anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended +anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_profile.step1.marital_status.options.divorced.text = Divorced / separated +anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses of TTCV in past 5 years +anc_profile.step8.title = Partner's HIV Status +anc_profile.step4.allergies.options.iron.text = Iron +anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) +anc_profile.step6.medications.options.multivitamin.text = Multivitamin +anc_profile.step7.shs_exposure.options.no.text = No +anc_profile.step1.educ_level.options.dont_know.text = Don't know +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling +anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy +anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required +anc_profile.step4.allergies.v_required.err = Please select at least one allergy +anc_profile.step4.surgeries.options.none.text = None +anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV not received +anc_profile.step5.hepb_immun_status.options.unknown.text = Unknown +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps or vacuum delivery +anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended +anc_profile.step5.hepb_immun_status.options.not_received.text = Not received +anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step3.substances_used_other.hint = Specify +anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products +anc_profile.step6.medications.options.antitussive.text = Antitussive +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) +anc_profile.step5.tt_immun_status.label = TT immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TT immunisation recommended +anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana +anc_profile.step4.allergies.options.calcium.text = Calcium +anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee +anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status +anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use +anc_profile.step2.lmp_known.options.yes.text = Yes +anc_profile.step2.lmp_known.label_info_title = LMP known? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_profile.step4.allergies.options.chamomile.text = Chamomile +anc_profile.step2.lmp_known.label = LMP known? +anc_profile.step3.live_births.v_required.err = Live births is required +anc_profile.step7.condom_use.options.no.text = No +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth +anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures +anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation +anc_profile.step1.marital_status.label = Marital status +anc_profile.step7.title = Woman's Behaviour +anc_profile.step4.surgeries_other.hint = Other surgeries +anc_profile.step3.substances_used.options.cocaine.text = Cocaine / Crack +anc_profile.step1.educ_level.options.primary.text = Primary +anc_profile.step4.health_conditions.options.other.text = Other (specify) +anc_profile.step6.medications_other.v_required.err = Please specify the Other medications +anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling +anc_profile.step1.educ_level.options.none.text = None +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Hep B testing is recommended for at risk women who are not already fully immunised against Hep B. +anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions +anc_profile.step7.alcohol_substance_use.options.none.text = None +anc_profile.step7.tobacco_user.options.yes.text = Yes +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups (200 ml) of filtered or commercially brewed coffee +anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) +anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment +anc_profile.step6.medications.options.none.text = None +anc_profile.step2.ultrasound_done.label = Ultrasound done? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step6.medications.options.iron.text = Iron +anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease +anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling +anc_profile.step4.health_conditions.options.diabetes.text = Diabetes +anc_profile.step1.occupation_other.hint = Specify +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step1.marital_status.v_required.err = Please specify your marital status +anc_profile.step8.partner_hiv_status.v_required.err = Please select one +anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step3.prev_preg_comps.options.none.text = None +anc_profile.step4.allergies.options.dont_know.text = Don't know +anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling +anc_profile.step4.allergies.hint = Any allergies? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date +anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment +anc_profile.step4.surgeries.hint = Any surgeries? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts +anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? +anc_profile.step7.tobacco_user.label = Uses tobacco products? +anc_profile.step1.occupation.label = Occupation +anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products +anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know +anc_profile.step6.medications.options.hematinic.text = Hematinic +anc_profile.step3.c_sections_label.text = No. of C-sections +anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions +anc_profile.step5.hepb_immun_status.options.incomplete.text = Incomplete +anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol +anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required +anc_profile.step4.allergies.options.albendazole.text = Albendazole +anc_profile.step5.tt_immunisation_toaster.text = TT immunisation recommended +anc_profile.step1.educ_level.label = Highest level of school +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling +anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes +anc_profile.step4.allergies.options.penicillin.text = Penicillin +anc_profile.step1.occupation.options.unemployed.text = Unemployed +anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required +anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) +anc_profile.step5.hepb_immun_status.label = Hep B immunisation status +anc_profile.step1.marital_status.options.widowed.text = Widowed +anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? +anc_profile.step4.health_conditions_other.hint = Specify +anc_profile.step6.medications.options.antivirals.text = Antivirals +anc_profile.step6.medications.options.antacids.text = Antacids +anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling +anc_profile.step3.title = Obstetric History +anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! +anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling +anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) +anc_profile.step4.health_conditions.label = Any chronic or past health conditions? +anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries +anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know +anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required +anc_profile.step4.health_conditions.options.dont_know.text = Don't know +anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? +anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease +anc_profile.step6.medications.options.vitamina.text = Vitamin A +anc_profile.step6.medications.options.dont_know.text = Don't know +anc_profile.step7.condom_use.options.yes.text = Yes +anc_profile.step4.health_conditions.options.cancer.text = Cancer +anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Seasonal flu dose missing +anc_profile.step4.allergies_other.hint = Specify +anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step7.caffeine_intake.hint = Daily caffeine intake +anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks +anc_profile.step4.allergies.options.other.text = Other (specify) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries +anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks +anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step4.allergies.options.none.text = None +anc_profile.step3.stillbirths.v_required.err = Still births is required +anc_profile.step7.tobacco_user.options.no.text = No +anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems +anc_profile.step1.marital_status.options.married.text = Married or living together +anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date +anc_profile.step7.shs_exposure.options.yes.text = Yes +anc_profile.step5.hep_b_testing_recommended_toaster.text = Hep B testing recommended +anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. +anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) +anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date +anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Informal employment (sex worker) +anc_profile.step4.allergies.options.mebendazole.text = Mebendazole +anc_profile.step7.condom_use.label = Uses condoms during sex? +anc_profile.step1.occupation.v_required.err = Please select at least one occupation +anc_profile.step6.medications.options.analgesic.text = Analgesic +anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits +anc_profile.step5.fully_hep_b_immunised_toaster.text = Woman is fully immunised against Hep B! +anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) +anc_profile.step8.partner_hiv_status.options.positive.text = Positive +anc_profile.step4.allergies.options.ginger.text = Ginger +anc_profile.step2.title = Current Pregnancy +anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age +anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses of TTCV in the past +anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia +anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! +anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) +anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate +anc_profile.step4.health_conditions.options.none.text = None +anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step6.medications.options.asthma.text = Asthma +anc_profile.step6.medications.options.doxylamine.text = Doxylamine +anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use +anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. +anc_profile.step3.last_live_birth_preterm.options.no.text = No +anc_profile.step3.stillbirths_label.v_required.err = Still births is required +anc_profile.step4.health_conditions.options.hypertension.text = Hypertension +anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus. +anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole +anc_profile.step6.medications.options.thyroid.text = Thyroid medication +anc_profile.step1.title = Demographic Info +anc_profile.step2.lmp_ultrasound_gest_age_selection.label = +anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? +anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). +anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended diff --git a/reference-app/src/test/resources/anc_quick_check_en.properties b/reference-app/src/main/resources/anc_quick_check_en.properties similarity index 100% rename from reference-app/src/test/resources/anc_quick_check_en.properties rename to reference-app/src/main/resources/anc_quick_check_en.properties diff --git a/reference-app/src/test/resources/anc_register_en.properties b/reference-app/src/main/resources/anc_register_en.properties similarity index 100% rename from reference-app/src/test/resources/anc_register_en.properties rename to reference-app/src/main/resources/anc_register_en.properties diff --git a/reference-app/src/main/resources/anc_site_characteristics_en.properties b/reference-app/src/main/resources/anc_site_characteristics_en.properties new file mode 100644 index 000000000..97ce4f108 --- /dev/null +++ b/reference-app/src/main/resources/anc_site_characteristics_en.properties @@ -0,0 +1,19 @@ +anc_site_characteristics.step1.title = Site Characteristics +anc_site_characteristics.step1.site_ultrasound.options.0.text = No +anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Are all of the following in place at your facility: +anc_site_characteristics.step1.site_ultrasound.label = 3. Is an ultrasound machine available and functional at your facility and a trained health worker available to use it? +anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_bp_tool.options.0.text = No +anc_site_characteristics.step1.site_ultrasound.options.1.text = Yes +anc_site_characteristics.step1.site_bp_tool.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_anc_hiv.options.1.text = Yes +anc_site_characteristics.step1.site_bp_tool.options.1.text = Yes +anc_site_characteristics.step1.site_ipv_assess.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_ipv_assess.label = a. A protocol or standard operating procedure for Intimate Partner Violence (IPV)

b. A health worker trained on how to ask about IPV and how to provide the minimum response or beyond

c. A private setting

d. A way to ensure confidentiality

e. Time to allow for appropriate disclosure

f. A system for referral in place. +anc_site_characteristics.step1.site_anc_hiv.options.0.text = No +anc_site_characteristics.step1.site_anc_hiv.label = 2. Is the HIV prevalence consistently greater than 1% in pregnant women attending antenatal clinics at your facility? +anc_site_characteristics.step1.site_ipv_assess.options.0.text = No +anc_site_characteristics.step1.site_ipv_assess.options.1.text = Yes +anc_site_characteristics.step1.site_anc_hiv.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_ultrasound.v_required.err = Please select where stock was issued +anc_site_characteristics.step1.site_bp_tool.label = 4. Does your facility use an automated blood pressure (BP) measurement tool? diff --git a/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties b/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties new file mode 100644 index 000000000..94cc1b09d --- /dev/null +++ b/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties @@ -0,0 +1,188 @@ +anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contractions +anc_symptoms_follow_up.step4.other_symptoms_other.hint = Specify +anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Oedema +anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step2.toaster0.text = Caffeine reduction counseling +anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step2.title = Previous Behaviour +anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Low back pain +anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anti-convulsive +anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = None +anc_symptoms_follow_up.step4.toaster18.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step3.toaster5.text = Pharmacological treatments for nausea and vomiting counseling +anc_symptoms_follow_up.step3.toaster11.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussive +anc_symptoms_follow_up.step1.medications.options.dont_know.text = Don't know +anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = None +anc_symptoms_follow_up.step1.calcium_effects.options.no.text = No +anc_symptoms_follow_up.step3.toaster13.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Hemorrhoidal medication +anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Yes +anc_symptoms_follow_up.step2.toaster1.text = Tobacco cessation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Leg cramps +anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Headache +anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = None +anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabetic +anc_symptoms_follow_up.step4.toaster19.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Other antibiotics +anc_symptoms_follow_up.step4.title = Physiological Symptoms +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Oedema +anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Other (specify) +anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_symptoms_follow_up.step1.medications.options.calcium.text = Calcium +anc_symptoms_follow_up.step1.medications_other.hint = Specify +anc_symptoms_follow_up.step3.toaster7.toaster_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Fever +anc_symptoms_follow_up.step2.behaviour_persist.label = Which of the following behaviours persist? +anc_symptoms_follow_up.step4.toaster16.text = Non-pharmacological treatment for the relief of leg cramps counseling +anc_symptoms_follow_up.step4.toaster21.text = Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = No +anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Substance use +anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Fever +anc_symptoms_follow_up.step4.phys_symptoms.label = Any physiological symptoms? +anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Current tobacco use or recently quit +anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Please enter valid content +anc_symptoms_follow_up.step1.medications.options.iron.text = Iron +anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamin A +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = No fetal movement +anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Yes +anc_symptoms_follow_up.step4.toaster15.text = Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazole +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Pelvic pain +anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamin +anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = High caffeine intake +anc_symptoms_follow_up.step2.toaster3.text = Condom counseling +anc_symptoms_follow_up.step3.toaster11.text = Urine test required +anc_symptoms_follow_up.step1.vita_comply.label = Is she taking her Vitamin A supplements? +anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Please specify any other symptoms related low back and pelvic pain or select none +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Leg pain +anc_symptoms_follow_up.step1.medications.v_required.err = Please specify the medication(s) that the woman is still taking +anc_symptoms_follow_up.step1.medications.options.antacids.text = Antacids +anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnesium +anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Leg cramps +anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Yes +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Normal fetal movement +anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirals +anc_symptoms_follow_up.step4.toaster22.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.ifa_comply.label = Is she taking her IFA tablets? +anc_symptoms_follow_up.step1.penicillin_comply.label = Is she taking her penicillin treatment for syphilis? +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = None +anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Nausea and vomiting +anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Which of the following physiological symptoms persist? +anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = Previous persisting behaviour is required +anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Heartburn +anc_symptoms_follow_up.step1.medications.label = What medications (including supplements and vitamins) is she still taking? +anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = None +anc_symptoms_follow_up.step3.toaster6.text = Antacid preparations to relieve heartburn counseling +anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Pelvic pain +anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = Has the woman felt the baby move? +anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = No +anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_symptoms_follow_up.step4.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Heartburn +anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Gets tired easily +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Breathing difficulty +anc_symptoms_follow_up.step1.ifa_comply.options.no.text = No +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Vaginal discharge +anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Please specify any other symptoms related to low back pain or select none +anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hypertensive +anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirin +anc_symptoms_follow_up.step1.calcium_comply.label = Is she taking her calcium supplements? +anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Anti-malarials +anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) +anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramide +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Nausea and vomiting +anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Cough lasting more than 3 weeks +anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Headache +anc_symptoms_follow_up.step3.title = Previous Symptoms +anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Folic Acid +anc_symptoms_follow_up.step3.toaster9.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.toaster10.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Visual disturbance +anc_symptoms_follow_up.step4.other_symptoms.options.none.text = None +anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Breathless during routine activities +anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_symptoms_follow_up.step3.other_symptoms_persist.label = Which of the following other symptoms persist? +anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Please specify any other symptoms or select none +anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipation +anc_symptoms_follow_up.step1.ifa_effects.options.no.text = No +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Low back pain +anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_symptoms_follow_up.step1.medications.options.none.text = None +anc_symptoms_follow_up.step2.toaster4.text = Alcohol / substance use counseling +anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposure to second-hand smoke in the home +anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) +anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Cough lasting more than 3 weeks +anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirals (ARVs) +anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hematinic +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Leg pain +anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Reduced or poor fetal movement +anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgesic +anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = No condom use during sex +anc_symptoms_follow_up.step1.title = Medication Follow-up +anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = Field has the woman felt the baby move is required +anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = None +anc_symptoms_follow_up.step1.medications.options.other.text = Other (specify) +anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Yes +anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxylamine +anc_symptoms_follow_up.step3.toaster7.text = Magnesium and calcium to relieve leg cramps counseling +anc_symptoms_follow_up.step1.calcium_effects.label = Any calcium supplement side effects? +anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Visual disturbance +anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = None +anc_symptoms_follow_up.step4.toaster20.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipation +anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Anthelmintic +anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Syphilis Compliance +anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Alcohol use +anc_symptoms_follow_up.step4.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Breathing difficulty +anc_symptoms_follow_up.step4.other_symptoms.label = Any other symptoms? +anc_symptoms_follow_up.step1.medications.options.asthma.text = Asthma +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Vaginal bleeding +anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Please specify any other physiological symptoms or select none +anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contractions +anc_symptoms_follow_up.step1.vita_comply.options.no.text = No +anc_symptoms_follow_up.step1.calcium_comply.options.no.text = No +anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varicose veins +anc_symptoms_follow_up.step4.toaster14.text = Non-pharma measures to relieve nausea and vomiting counseling +anc_symptoms_follow_up.step1.ifa_effects.label = Any IFA side effects? +anc_symptoms_follow_up.step4.toaster17.text = Dietary modifications to relieve constipation counseling +anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Caffeine intake folder +anc_symptoms_follow_up.step1.medications_other.v_regex.err = Please enter valid content +anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. +anc_symptoms_follow_up.step3.toaster8.text = Wheat bran or other fiber supplements to relieve constipation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Breathless during routine activities +anc_symptoms_follow_up.step4.toaster20.text = Urine test required +anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = None +anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Yes +anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Yes +anc_symptoms_follow_up.step3.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step1.aspirin_comply.label = Is she taking her aspirin tablets? +anc_symptoms_follow_up.step1.medications.options.thyroid.text = Thyroid medication +anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = Previous persisting physiological symptoms is required +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Leg redness +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Vaginal bleeding +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Vaginal discharge +anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Yes +anc_symptoms_follow_up.step2.toaster2.text = Second-hand smoke counseling +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Leg redness +anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varicose veins +anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = A maximum of up to 3 weekly doses may be required. +anc_symptoms_follow_up.step3.toaster12.text = Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Gets tired easily diff --git a/reference-app/src/main/resources/anc_test_en.properties b/reference-app/src/main/resources/anc_test_en.properties new file mode 100644 index 000000000..ebeed0e39 --- /dev/null +++ b/reference-app/src/main/resources/anc_test_en.properties @@ -0,0 +1,57 @@ +anc_test.step1.accordion_hepatitis_b.accordion_info_title = Hepatitis B test +anc_test.step1.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_hiv.accordion_info_title = HIV test +anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step1.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_hepatitis_b.accordion_info_title = Hepatitis B test +anc_test.step2.accordion_blood_glucose.text = Blood Glucose test +anc_test.step1.accordion_blood_type.text = Blood Type test +anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step1.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.title = Other +anc_test.step2.accordion_hiv.accordion_info_title = HIV test +anc_test.step2.accordion_blood_type.text = Blood Type test +anc_test.step1.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. +anc_test.step2.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. +anc_test.step2.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. +anc_test.step2.accordion_partner_hiv.text = Partner HIV test +anc_test.step1.accordion_syphilis.text = Syphilis test +anc_test.step1.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.accordion_ultrasound.text = Ultrasound test +anc_test.step1.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.title = Due +anc_test.step2.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step2.accordion_urine.text = Urine test +anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_other_tests.accordion_info_title = Other test +anc_test.step2.accordion_ultrasound.text = Ultrasound test +anc_test.step2.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step1.accordion_hepatitis_b.text = Hepatitis B test +anc_test.step2.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. +anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step1.accordion_urine.text = Urine test +anc_test.step1.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. +anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step1.accordion_hiv.text = HIV test +anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_hiv.text = HIV test +anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_other_tests.text = Other Tests +anc_test.step2.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step1.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step2.accordion_hepatitis_b.text = Hepatitis B test +anc_test.step1.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step2.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step1.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_syphilis.text = Syphilis test diff --git a/reference-app/src/test/resources/robolectric.properties b/reference-app/src/main/resources/robolectric.properties similarity index 100% rename from reference-app/src/test/resources/robolectric.properties rename to reference-app/src/main/resources/robolectric.properties From 30df9890ba57409b41d6a26c3a55172792099dc9 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Mon, 6 Apr 2020 11:31:17 +0300 Subject: [PATCH 011/302] make number of contacts schedule displayed on summary configurable add contact no to globals when quick check is opened from register --- gradle.properties | 2 +- .../activity/ContactSummarySendActivity.java | 18 ++++++++++++++++-- .../anc/library/util/ConstantsUtils.java | 1 + .../smartregister/anc/library/util/Utils.java | 6 +++++- reference-app/src/main/assets/app.properties | 3 ++- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 9facc607a..c7ad97f6c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.1.9999-SNAPSHOT +VERSION_NAME=2.0.2-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java index b61a22685..f40c95fe6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java @@ -11,6 +11,7 @@ import android.widget.TextView; import android.widget.Toast; +import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.adapter.ContactSummaryAdapter; @@ -106,11 +107,24 @@ public void displayPatientName(String fullName) { @Override public void displayUpcomingContactDates(List models) { - if (models.size() <= 0) { + if (models == null || models.isEmpty()) { contactDatesRecyclerView.setVisibility(View.GONE); contactScheduleHeadingTextView.setVisibility(View.GONE); + return; } - contactSummaryAdapter.setContactDates(models.size() > 5 ? models.subList(0, 4) : models); + String maxContactToDisplay = Utils.getProperties(getApplicationContext()).getProperty(ConstantsUtils.Properties.MAX_CONTACT_SCHEDULE_DISPLAYED, ""); + if (StringUtils.isNotBlank(maxContactToDisplay)) { + try { + int count = Integer.parseInt(maxContactToDisplay); + contactSummaryAdapter.setContactDates(models.size() > count ? models.subList(0, (count - 1)) : models); + } catch (NumberFormatException e) { + contactSummaryAdapter.setContactDates(models); + Timber.e(e); + } + } else { + contactSummaryAdapter.setContactDates(models); + } + } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index c7b00b4c7..26e2286af 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -70,6 +70,7 @@ public abstract class ConstantsUtils { public interface Properties { String CAN_SAVE_SITE_INITIAL_SETTING = "CAN_SAVE_INITIAL_SITE_SETTING"; + String MAX_CONTACT_SCHEDULE_DISPLAYED = "MAX_CONTACT_SCHEDULE_DISPLAYED"; } public interface TemplateUtils { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 7e98bf8d5..bd91eb018 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -201,7 +201,6 @@ public static void proceedToContact(String baseEntityId, HashMap try { Intent intent = new Intent(context.getApplicationContext(), ContactJsonFormActivity.class); - Contact quickCheck = new Contact(); quickCheck.setName(context.getResources().getString(R.string.quick_check)); quickCheck.setFormName(ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK); @@ -212,6 +211,7 @@ public static void proceedToContact(String baseEntityId, HashMap quickCheck.setWizard(false); quickCheck.setHideSaveLabel(true); + //partial contact exists? PartialContact partialContactRequest = new PartialContact(); partialContactRequest.setBaseEntityId(baseEntityId); @@ -224,6 +224,10 @@ public static void proceedToContact(String baseEntityId, HashMap ContactModel baseContactModel = new ContactModel(); JSONObject form = baseContactModel.getFormAsJson(quickCheck.getFormName(), baseEntityId, locationId); + JSONObject globals = new JSONObject(); + globals.put(ConstantsUtils.CONTACT_NO, personObjectClient.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT)); + form.put(ConstantsUtils.GLOBAL, globals); + String processedForm = ANCFormUtils.getFormJsonCore(partialContactRequest, form).toString(); if (hasPendingRequiredFields(new JSONObject(processedForm))) { diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index 90b69b65a..906e7afbc 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -2,4 +2,5 @@ DRISHTI_BASE_URL= PORT=-1 SHOULD_VERIFY_CERTIFICATE=false SYNC_DOWNLOAD_BATCH_SIZE=100 -CAN_SAVE_INITIAL_SITE_SETTING=false \ No newline at end of file +CAN_SAVE_INITIAL_SITE_SETTING=false +MAX_CONTACT_SCHEDULE_DISPLAYED=5 \ No newline at end of file From 2d5723372352ef19d22050da69bb69b8a933190c Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 8 Apr 2020 10:57:43 +0300 Subject: [PATCH 012/302] :zap: add the translate sub forms --- opensrp-anc/build.gradle | 4 +- .../sub_form/abdominal_exam_sub_form.json | 20 +-- .../sub_form/breast_exam_sub_form.json | 24 ++-- .../sub_form/cardiac_exam_sub_form.json | 26 ++-- .../sub_form/cervical_exam_sub_form.json | 8 +- .../sub_form/fetal_heartbeat_sub_form.json | 8 +- .../sub_form/oedema_present_sub_form.json | 14 +- .../sub_form/pelvic_exam_sub_form.json | 38 +++--- .../sub_form/respiratory_exam_sub_form.json | 24 ++-- .../tests_blood_glucose_sub_form.json | 64 ++++----- .../tests_blood_haemoglobin_sub_form.json | 98 +++++++------- .../sub_form/tests_blood_type_sub_form.json | 38 +++--- .../sub_form/tests_hepatitis_b_sub_form.json | 70 +++++----- .../sub_form/tests_hepatitis_c_sub_form.json | 56 ++++---- .../sub_form/tests_hiv_sub_form.json | 44 +++--- .../sub_form/tests_other_tests_sub_form.json | 12 +- .../sub_form/tests_partner_hiv_sub_form.json | 28 ++-- .../sub_form/tests_syphilis_sub_form.json | 64 ++++----- .../sub_form/tests_tb_screening_sub_form.json | 52 ++++---- .../sub_form/tests_ultrasound_sub_form.json | 78 +++++------ .../sub_form/tests_urine_sub_form.json | 126 +++++++++--------- .../abdominal_exam_sub_form.properties | 8 ++ .../resources/breast_exam_sub_form.properties | 10 ++ .../cardiac_exam_sub_form.properties | 11 ++ .../cervical_exam_sub_form.properties | 2 + .../fetal_heartbeat_sub_form.properties | 2 + .../oedema_present_sub_form.properties | 5 + .../resources/pelvic_exam_sub_form.properties | 17 +++ .../respiratory_exam_sub_form.properties | 10 ++ .../tests_blood_glucose_sub_form.properties | 30 +++++ ...ests_blood_haemoglobin_sub_form.properties | 47 +++++++ .../tests_blood_type_sub_form.properties | 17 +++ .../tests_hepatitis_b_sub_form.properties | 33 +++++ .../tests_hepatitis_c_sub_form.properties | 26 ++++ .../resources/tests_hiv_sub_form.properties | 19 +++ .../tests_other_tests_sub_form.properties | 4 + .../tests_partner_hiv_sub_form.properties | 12 ++ .../tests_syphilis_sub_form.properties | 30 +++++ .../tests_tb_screening_sub_form.properties | 24 ++++ .../tests_ultrasound_sub_form.properties | 37 +++++ .../resources/tests_urine_sub_form.properties | 61 +++++++++ reference-app/build.gradle | 4 +- .../abdominal_exam_sub_form.properties | 8 ++ .../resources/breast_exam_sub_form.properties | 10 ++ .../cardiac_exam_sub_form.properties | 11 ++ .../cervical_exam_sub_form.properties | 2 + .../fetal_heartbeat_sub_form.properties | 2 + .../oedema_present_sub_form.properties | 5 + .../resources/pelvic_exam_sub_form.properties | 17 +++ .../respiratory_exam_sub_form.properties | 10 ++ .../tests_blood_glucose_sub_form.properties | 30 +++++ ...ests_blood_haemoglobin_sub_form.properties | 47 +++++++ .../tests_blood_type_sub_form.properties | 17 +++ .../tests_hepatitis_b_sub_form.properties | 33 +++++ .../tests_hepatitis_c_sub_form.properties | 26 ++++ .../resources/tests_hiv_sub_form.properties | 19 +++ .../tests_other_tests_sub_form.properties | 4 + .../tests_partner_hiv_sub_form.properties | 12 ++ .../tests_syphilis_sub_form.properties | 30 +++++ .../tests_tb_screening_sub_form.properties | 24 ++++ .../tests_ultrasound_sub_form.properties | 37 +++++ .../resources/tests_urine_sub_form.properties | 61 +++++++++ 62 files changed, 1280 insertions(+), 430 deletions(-) create mode 100644 opensrp-anc/src/main/resources/abdominal_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/breast_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/cardiac_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/cervical_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/fetal_heartbeat_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/oedema_present_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/respiratory_exam_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_glucose_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_type_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_hiv_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_other_tests_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_partner_hiv_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_syphilis_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_tb_screening_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_ultrasound_sub_form.properties create mode 100644 opensrp-anc/src/main/resources/tests_urine_sub_form.properties create mode 100644 reference-app/src/main/resources/abdominal_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/breast_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/cardiac_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/cervical_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/fetal_heartbeat_sub_form.properties create mode 100644 reference-app/src/main/resources/oedema_present_sub_form.properties create mode 100644 reference-app/src/main/resources/pelvic_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/respiratory_exam_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_blood_glucose_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_blood_type_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_hiv_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_other_tests_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_partner_hiv_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_syphilis_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_tb_screening_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_ultrasound_sub_form.properties create mode 100644 reference-app/src/main/resources/tests_urine_sub_form.properties diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 6e1e524de..767a90ec9 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3100-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -151,7 +151,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.9.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.10.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/abdominal_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/abdominal_exam_sub_form.json index 40c5d7f74..124ce0d58 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/abdominal_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/abdominal_exam_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1125AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Abdominal exam: abnormal", + "label": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "mass_tumour", - "text": "Mass/tumour", + "text": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5103AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -20,7 +20,7 @@ }, { "key": "superficial_palpation_pain", - "text": "Pain on superficial palpation", + "text": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165283AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -28,7 +28,7 @@ }, { "key": "deep_palpation_pain", - "text": "Pain on deep palpation", + "text": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165284AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -36,7 +36,7 @@ }, { "key": "painful_decompression", - "text": "Painful decompression", + "text": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "127866AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -44,7 +44,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -58,10 +58,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err}}" }, "relevance": { "step3:abdominal_exam_abnormal": { @@ -75,5 +75,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "abdominal_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/breast_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/breast_exam_sub_form.json index 6c4486f98..be05f4a80 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/breast_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/breast_exam_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Breast exam: abnormal", + "label": "{{breast_exam_sub_form.step1.breast_exam_abnormal.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "nodule", - "text": "Nodule", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "146931AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -20,7 +20,7 @@ }, { "key": "discharge", - "text": "Discharge", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "142248AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -28,7 +28,7 @@ }, { "key": "flushing", - "text": "Flushing", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "140039AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -36,7 +36,7 @@ }, { "key": "local_pain", - "text": "Local pain", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "131021AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -44,7 +44,7 @@ }, { "key": "bleeding", - "text": "Bleeding", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "147236AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -52,7 +52,7 @@ }, { "key": "increased_temperature", - "text": "Increased temperature", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165282AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -60,7 +60,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -74,10 +74,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{breast_exam_sub_form.step1.breast_exam_abnormal_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err}}" }, "relevance": { "step3:breast_exam_abnormal": { @@ -91,5 +91,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "breast_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/cardiac_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/cardiac_exam_sub_form.json index 2565cc3a0..b708dd4c5 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/cardiac_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/cardiac_exam_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1124AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Cardiac exam: abnormal", + "label": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "heart_murmur", - "text": "Heart murmur", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "139063AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -20,7 +20,7 @@ }, { "key": "weak_pulse", - "text": "Weak pulse", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "124823AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -28,7 +28,7 @@ }, { "key": "tachycardia", - "text": "Tachycardia", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "125063AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -36,7 +36,7 @@ }, { "key": "bradycardia", - "text": "Bradycardia", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "147020AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -44,7 +44,7 @@ }, { "key": "arrhythmia", - "text": "Arrhythmia", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "120148AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -52,7 +52,7 @@ }, { "key": "cyanosis", - "text": "Cyanosis", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text}}", "value": false, "openmrs_entity_parent": "165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_id": "143050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -60,7 +60,7 @@ }, { "key": "cold_sweats", - "text": "Cold sweats", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -68,7 +68,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -82,10 +82,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err}}" }, "relevance": { "step3:cardiac_exam_abnormal": { @@ -99,5 +99,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "cardiac_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/cervical_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/cervical_exam_sub_form.json index c3070f7fa..8f4eafa61 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/cervical_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/cervical_exam_sub_form.json @@ -7,7 +7,7 @@ "key": "dilation_cm_label", "type": "label", "label_text_style": "bold", - "text": "How many centimetres (cm) dilated? ", + "text": "{{cervical_exam_sub_form.step1.dilation_cm_label.text}}", "text_color": "#000000", "v_required": { "value": false @@ -35,8 +35,10 @@ }, "v_required": { "value": false, - "err": "Field cervical dilation is required" + "err": "{{cervical_exam_sub_form.step1.dilation_cm.v_required.err}}" } } - ] + ], + "count": 1, + "properties_file_name": "cervical_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/fetal_heartbeat_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/fetal_heartbeat_sub_form.json index e543e90ac..ccee0eff8 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/fetal_heartbeat_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/fetal_heartbeat_sub_form.json @@ -4,7 +4,7 @@ "key": "fetal_heart_rate_label", "type": "label", "label_text_style": "bold", - "text": "Fetal heart rate (bpm)", + "text": "{{fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text}}", "text_color": "#000000", "v_required": { "value": false @@ -20,7 +20,7 @@ "edit_type": "number", "v_required": { "value": "false", - "err": "Please enter the fetal heart rate" + "err": "{{fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err}}" }, "v_min": { "value": "80", @@ -35,5 +35,7 @@ "err": "Enter a valid sfh" } } - ] + ], + "count": 1, + "properties_file_name": "fetal_heartbeat_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/oedema_present_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/oedema_present_sub_form.json index 2068cfca7..6b1a9f605 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/oedema_present_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/oedema_present_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165292AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Oedema type", + "label": "{{oedema_present_sub_form.step1.oedema_type.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "ankle_oedema", - "text": "Pitting ankle oedema", + "text": "{{oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "155113AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -20,7 +20,7 @@ }, { "key": "hands_feet_oedema", - "text": "Oedema of the hands and feet", + "text": "{{oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165375AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -28,7 +28,7 @@ }, { "key": "lower_back_oedema", - "text": "Pitting lower back oedema", + "text": "{{oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165291AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -36,7 +36,7 @@ }, { "key": "leg_swelling", - "text": "Leg swelling", + "text": "{{oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "141478AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -44,5 +44,7 @@ } ] } - ] + ], + "count": 1, + "properties_file_name": "oedema_present_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json index eb197f26f..b9530e5dd 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165372AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Pelvic exam: abnormal", + "label": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "abnormal_vaginal_discharge", - "text": "Abnormal vaginal discharge", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -20,7 +20,7 @@ }, { "key": "amniotic_fluid_evidence", - "text": "Evidence of amniotic fluid", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "148968AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -28,7 +28,7 @@ }, { "key": "smelling_vaginal_discharge", - "text": "Foul-smelling vaginal discharge", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165162AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -36,7 +36,7 @@ }, { "key": "erythematous_papules", - "text": "Clusters of erythematous papules", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165286AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -44,7 +44,7 @@ }, { "key": "vesicles", - "text": "Vesicles", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "133798AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -52,7 +52,7 @@ }, { "key": "genital_ulcer", - "text": "Genital ulcer", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "153872AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -60,7 +60,7 @@ }, { "key": "genital_pain", - "text": "Genital pain", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "123385AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -68,7 +68,7 @@ }, { "key": "femoral_lymphadenopathy", - "text": "Tender bilateral inguinal and femoral lymphadenopathy", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165287AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -76,7 +76,7 @@ }, { "key": "cervical_friability", - "text": "Cervical friability", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165288AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -84,7 +84,7 @@ }, { "key": "mucopurulent_ervicitis", - "text": "Mucopurulent cervicitis", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165371AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -92,7 +92,7 @@ }, { "key": "unilateral_lymphadenopathy", - "text": "Tender unilateral lymphadenopathy", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165289AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -100,7 +100,7 @@ }, { "key": "vaginal_discharge_curd_like", - "text": "Curd-like vaginal discharge", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -108,7 +108,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -122,7 +122,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Evaluate labor. Urgent referral if GA is less than 37 weeks.", + "text": "{{pelvic_exam_sub_form.step1.evaluate_labour_toaster.text}}", "text_color": "#E20000", "toaster_type": "problem", "relevance": { @@ -139,10 +139,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err}}" }, "relevance": { "step3:pelvic_exam_abnormal": { @@ -156,5 +156,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "pelvic_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/respiratory_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/respiratory_exam_sub_form.json index a09d0a6ea..5030b79ae 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/respiratory_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/respiratory_exam_sub_form.json @@ -6,13 +6,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Respiratory exam: abnormal", + "label": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label}}", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "dyspnoea", - "text": "Dyspnoea", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -20,7 +20,7 @@ }, { "key": "cough", - "text": "Cough", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -28,7 +28,7 @@ }, { "key": "rapid_breathing", - "text": "Rapid breathing", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -36,7 +36,7 @@ }, { "key": "slow_breathing", - "text": "Slow breathing", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -44,7 +44,7 @@ }, { "key": "wheezing", - "text": "Wheezing", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -52,7 +52,7 @@ }, { "key": "rales", - "text": "Rales", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text}}", "value": false, "openmrs_entity_parent": "165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -60,7 +60,7 @@ }, { "key": "other", - "text": "Other (specify)", + "text": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text}}", "value": false, "openmrs_entity_parent": "1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", @@ -74,10 +74,10 @@ "openmrs_entity": "", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint}}", "v_regex": { "value": "[A-Za-z\\s\\.\\-]*", - "err": "Please enter valid content" + "err": "{{respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err}}" }, "relevance": { "step3:respiratory_exam_abnormal": { @@ -91,5 +91,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "respiratory_exam_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_glucose_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_glucose_sub_form.json index e58a67e9f..b78f17ef3 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_glucose_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_glucose_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "887AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Blood glucose test", + "label": "{{tests_blood_glucose_sub_form.step1.glucose_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -77,7 +77,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Blood glucose test date", + "hint": "{{tests_blood_glucose_sub_form.step1.glucose_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -96,7 +96,7 @@ }, "v_required": { "value": true, - "err": "Select the date of the glucose test.." + "err": "{{tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err}}" } }, { @@ -105,26 +105,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165394AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Blood glucose test type", + "label": "{{tests_blood_glucose_sub_form.step1.glucose_test_type.label}}", "label_text_style": "bold", "options": [ { "key": "fasting_plasma", - "text": "Fasting plasma glucose", + "text": "{{tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160053AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "ogtt_75", - "text": "75g OGTT", + "text": "{{tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163594AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "random_plasma", - "text": "Random plasma glucose", + "text": "{{tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "887AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -147,7 +147,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160053AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Fasting plasma glucose results (mg/dl)", + "hint": "{{tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint}}", "edit_type": "number", "v_min": { "value": "30", @@ -159,11 +159,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter the result for the fasting plasma glucose test" + "err": "{{tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err}}" }, "relevance": { "rules-engine": { @@ -179,7 +179,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163594AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "75g OGTT - fasting glucose results (mg/dl)", + "hint": "{{tests_blood_glucose_sub_form.step1.ogtt_fasting.hint}}", "edit_type": "number", "v_min": { "value": "30", @@ -191,11 +191,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter the result for the initial 75g OGTT - fasting glucose." + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err}}" }, "relevance": { "rules-engine": { @@ -211,7 +211,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163704AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "75g OGTT - 1 hr results (mg/dl)", + "hint": "{{tests_blood_glucose_sub_form.step1.ogtt_1.hint}}", "edit_type": "number", "v_min": { "value": "30", @@ -223,11 +223,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter the result for the 75g OGTT - fasting glucose (1 hr)." + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err}}" }, "relevance": { "rules-engine": { @@ -243,7 +243,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163705AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "75g OGTT - 2 hrs results (mg/dl)", + "hint": "{{tests_blood_glucose_sub_form.step1.ogtt_2.hint}}", "edit_type": "number", "v_min": { "value": "30", @@ -255,11 +255,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter the result for the 75g OGTT - fasting glucose (2 hr)." + "err": "{{tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err}}" }, "relevance": { "rules-engine": { @@ -275,7 +275,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "887AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Random plasma glucose results (mg/dl)", + "hint": "{{tests_blood_glucose_sub_form.step1.random_plasma.hint}}", "edit_type": "number", "v_min": { "value": "30", @@ -287,11 +287,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter the result for the random plasma glucose test." + "err": "{{tests_blood_glucose_sub_form.step1.random_plasma.v_required.err}}" }, "relevance": { "rules-engine": { @@ -339,9 +339,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Gestational Diabetes Mellitus (GDM) diagnosis!", - "toaster_info_text": "The woman has Gestational Diabetes Mellitus (GDM) if her fasting plasma glucose is 92–125 mg/dL. \n\nOR\n\n- 75g OGTT - fasting glucose 92–125 mg/dL\n- 75g OGTT - 1 hr 180–199 mg/dL\n- 75g OGTT - 2 hrs 153–199 mg/dL", - "toaster_info_title": "Gestational Diabetes Mellitus (GDM) diagnosis!", + "text": "{{tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -357,9 +357,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Diabetes Mellitus (DM) in pregnancy diagnosis!", - "toaster_info_text": "The woman has Diabetes Mellitus (DM) in pregnancy if her fasting plasma glucose is 126 mg/dL or higher.\n\nOR\n\n- 75g OGTT - fasting glucose 126 mg/dL or higher\n- 75g OGTT - 1 hr 200 mg/dL or higher\n- 75g OGTT - 2 hrs 200 mg/dL or higher\n- Random plasma glucose 200 mg/dL or higher", - "toaster_info_title": "Diabetes Mellitus (DM) in pregnancy diagnosis!", + "text": "{{tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -375,8 +375,8 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Dietary intervention recommended and referral to high level care.", - "toaster_info_text": "Woman with hyperglycemia - Recommend dietary intervention and refer to higher level care.", + "text": "{{tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -386,5 +386,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_blood_glucose_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json index 10473b795..dc59784d9 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "21AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Blood haemoglobin test", + "label": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -61,26 +61,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "no_supplies", - "text": "No supplies", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired", - "text": "Expired", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text}}", "openmrs_entity_parent": "21AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -88,7 +88,7 @@ ], "v_required": { "value": true, - "err": "HB test not done reason is required" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err}}" }, "relevance": { "rules-engine": { @@ -104,11 +104,11 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint}}", "edit_type": "name", "v_required": { "value": false, - "err": "Specify any other reason why the blood haemoglobin test" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err}}" }, "relevance": { "rules-engine": { @@ -140,7 +140,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Blood haemoglobin test date", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -159,7 +159,7 @@ }, "v_required": { "value": true, - "err": "Blood haemoglobin test date is required" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err}}" } }, { @@ -168,28 +168,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165397AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Blood haemoglobin test type", - "label_info_text": "Complete blood count test is the preferred method for testing for anaemia in pregnancy. If complete blood count test is not available, haemoglobinometer is recommended over haemoglobin colour scale.", - "label_info_title": "Blood haemoglobin test type", + "label": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.label}}", + "label_info_text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text}}", + "label_info_title": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "complete_blood_count", - "text": "Complete blood count test (recommended)", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "hb_test_haemoglobinometer", - "text": "Hb test (haemoglobinometer)", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "hb_test_colour_scale", - "text": "Hb test (haemoglobin colour scale)", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -197,7 +197,7 @@ ], "v_required": { "value": true, - "err": "Hb test type is required" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err}}" }, "relevance": { "rules-engine": { @@ -213,7 +213,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "21AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Complete blood count test result (g/dl) (recommended)", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.cbc.hint}}", "edit_type": "number", "v_min": { "value": "0", @@ -225,11 +225,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Complete blood count test result (g/dl)" + "err": "{{tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err}}" }, "relevance": { "rules-engine": { @@ -245,7 +245,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Hb test result - haemoglobinometer (g/dl)", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint}}", "edit_type": "number", "v_min": { "value": "0", @@ -257,11 +257,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter Hb test result - haemoglobinometer (g/dl)" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err}}" }, "relevance": { "rules-engine": { @@ -277,7 +277,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Hb test result - haemoglobin colour scale (g/dl)", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.hb_colour.hint}}", "edit_type": "number", "v_min": { "value": "0", @@ -289,11 +289,11 @@ }, "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err}}" }, "v_required": { "value": true, - "err": "Enter Hb test result - haemoglobin colour scale (g/dl)" + "err": "{{tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err}}" }, "relevance": { "rules-engine": { @@ -338,9 +338,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Anaemia diagnosis!", - "toaster_info_text": "Anaemia - Hb level of < 11 in first or third trimester or Hb level < 10.5 in second trimester.\n\nOR\n\nNo Hb test results recorded, but woman has pallor.", - "toaster_info_title": "Anaemia diagnosis!", + "text": "{{tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -356,15 +356,15 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1015AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Hematocrit (Ht)", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.ht.hint}}", "edit_type": "number", "v_numeric": { "value": false, - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err}}" }, "v_required": { "value": false, - "err": "Enter the Hematocrit value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.ht.v_required.err}}" }, "relevance": { "rules-engine": { @@ -380,9 +380,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hematocrit levels too low!", - "toaster_info_text": "Hemotacrit levels less than 10.5.", - "toaster_info_title": "Hematocrit levels too low!", + "text": "{{tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -398,15 +398,15 @@ "openmrs_entity": "concept", "openmrs_entity_id": "678AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "White blood cell (WBC) count", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.wbc.hint}}", "edit_type": "number", "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err}}" }, "v_required": { "value": false, - "err": "Enter the White blood cell (WBC) count" + "err": "{{tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err}}" }, "relevance": { "rules-engine": { @@ -422,9 +422,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "White blood cell count too high!", - "toaster_info_text": "White blood cell count above 16,000.", - "toaster_info_title": "White blood cell count too high!", + "text": "{{tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -440,15 +440,15 @@ "openmrs_entity": "concept", "openmrs_entity_id": "729AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Platelet count", + "hint": "{{tests_blood_haemoglobin_sub_form.step1.platelets.hint}}", "edit_type": "number", "v_numeric": { "value": "true", - "err": "Enter a numeric value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err}}" }, "v_required": { "value": false, - "err": "Enter the Platelet count value" + "err": "{{tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err}}" }, "relevance": { "rules-engine": { @@ -464,9 +464,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Platelet count too low! ", - "toaster_info_text": "Platelet count under 100,000.", - "toaster_info_title": "Platelet count too low!", + "text": "{{tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text}}", + "toaster_info_text": "{{tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -476,5 +476,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_blood_haemoglobin_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json index a47e22388..5ec09e1b2 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "300AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Blood type test", + "label": "{{tests_blood_type_sub_form.step1.blood_type_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -45,7 +45,7 @@ ], "v_required": { "value": true, - "err": "Blood type status is required" + "err": "{{tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err}}" } }, { @@ -78,7 +78,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Blood type test date", + "hint": "{{tests_blood_type_sub_form.step1.blood_type_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -97,7 +97,7 @@ }, "v_required": { "value": true, - "err": "Date that the blood test was done." + "err": "{{tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err}}" } }, { @@ -106,33 +106,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163126AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Blood type", + "label": "{{tests_blood_type_sub_form.step1.blood_type.label}}", "label_text_style": "bold", "options": [ { "key": "a", - "text": "A", + "text": "{{tests_blood_type_sub_form.step1.blood_type.options.a.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "b", - "text": "B", + "text": "{{tests_blood_type_sub_form.step1.blood_type.options.b.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "ab", - "text": "AB", + "text": "{{tests_blood_type_sub_form.step1.blood_type.options.ab.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "o", - "text": "O", + "text": "{{tests_blood_type_sub_form.step1.blood_type.options.o.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -140,7 +140,7 @@ ], "v_required": { "value": true, - "err": "Please specify blood type" + "err": "{{tests_blood_type_sub_form.step1.blood_type.v_required.err}}" }, "relevance": { "rules-engine": { @@ -156,19 +156,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Rh factor", + "label": "{{tests_blood_type_sub_form.step1.rh_factor.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -176,7 +176,7 @@ ], "v_required": { "value": true, - "err": "Rh factor is required" + "err": "{{tests_blood_type_sub_form.step1.rh_factor.v_required.err}}" }, "relevance": { "rules-engine": { @@ -192,9 +192,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Rh factor negative counseling", - "toaster_info_text": "- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown.\n\n- Proceed with local protocol to investigate sensitization and the need for referral.\n\n- If Rh negative and non-sensitized, woman should receive anti- D prophylaxis postnatally if the baby is Rh positive.", - "toaster_info_title": "Rh factor negative counseling", + "text": "{{tests_blood_type_sub_form.step1.rh_factor_toaster.text}}", + "toaster_info_text": "{{tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -204,5 +204,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_blood_type_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json index 2b99d0107..727bfe67a 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "161475AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Hepatitis B test", + "label": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -45,7 +45,7 @@ ], "v_required": { "value": true, - "err": "Hepatitis B test is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err}}" } }, { @@ -62,26 +62,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired_stock", - "text": "Expired stock", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text}}", "openmrs_entity_parent": "161475AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -89,7 +89,7 @@ ], "v_required": { "value": true, - "err": "Hepatitis B test not done reason is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err}}" }, "relevance": { "rules-engine": { @@ -105,7 +105,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -137,7 +137,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Hep B test date", + "hint": "{{tests_hepatitis_b_sub_form.step1.hepb_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -156,7 +156,7 @@ }, "v_required": { "value": true, - "err": "Hep B test date is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err}}" } }, { @@ -165,26 +165,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165436AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep B test type", + "label": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.label}}", "label_text_style": "bold", "options": [ { "key": "hbsag_lab_based", - "text": "HBsAg laboratory-based immunoassay (recommended)", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "hbsag_rdt", - "text": "HBsAg rapid diagnostic test (RDT)", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165301AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "hbsag_dbs", - "text": "Dried Blood Spot (DBS) HBsAg test", + "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161472AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -199,7 +199,7 @@ }, "v_required": { "value": true, - "err": "Hep B test type is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err}}" } }, { @@ -208,19 +208,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "HBsAg laboratory-based immunoassay (recommended)", + "label": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -228,7 +228,7 @@ ], "v_required": { "value": true, - "err": "BsAg laboratory-based immunoassay is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err}}" }, "relevance": { "rules-engine": { @@ -244,19 +244,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165301AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "HBsAg rapid diagnostic test (RDT)", + "label": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -264,7 +264,7 @@ ], "v_required": { "value": true, - "err": "HBsAg rapid diagnostic test is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err}}" }, "relevance": { "rules-engine": { @@ -280,19 +280,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "161472AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Dried Blood Spot (DBS) HBsAg test", + "label": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -300,7 +300,7 @@ ], "v_required": { "value": true, - "err": " (DBS) HBsAg test is required" + "err": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err}}" }, "relevance": { "rules-engine": { @@ -332,9 +332,9 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hep B positive diagnosis!", - "toaster_info_text": "Counselling and referral required.", - "toaster_info_title": "Hep B positive diagnosis!", + "text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text}}", + "toaster_info_text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -350,9 +350,9 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hep B vaccination required.", - "toaster_info_text": "Hep B vaccination required anytime after 12 weeks gestation.", - "toaster_info_title": "Hep B vaccination required.", + "text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text}}", + "toaster_info_text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -362,5 +362,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_hepatitis_b_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json index 99ea43386..c3526facc 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "161474AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Hepatitis C test", + "label": "{{tests_hepatitis_c_sub_form.step1.hepc_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -61,26 +61,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired_stock", - "text": "Expired stock", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text}}", "openmrs_entity_parent": "161474AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -103,7 +103,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -135,7 +135,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Hep C test date", + "hint": "{{tests_hepatitis_c_sub_form.step1.hepc_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -154,7 +154,7 @@ }, "v_required": { "value": true, - "err": "Select the date of the Hepatitis C test." + "err": "{{tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err}}" } }, { @@ -163,28 +163,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165437AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Hep C test type", - "label_info_text": "Anti-HCV laboratory-based immunoassay is the preferred method for testing for Hep C infection in pregnancy. If immunoassay is not available, Anti-HCV rapid diagnostic test (RDT) is recommended over Dried Blood Spot (DBS) Anti-HCV testing.", - "label_info_title": "Hep C test type", + "label": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.label}}", + "label_info_text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text}}", + "label_info_title": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "anti_hcv_lab_based", - "text": "Anti-HCV laboratory-based immunoassay (recommended)", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1325AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "anti_hcv_rdt", - "text": "Anti-HCV rapid diagnostic test (RDT)", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165302AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "anti_hcv_dbs", - "text": "Dried Blood Spot (DBS) anti-HCV test", + "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161471AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -207,19 +207,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1325AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Anti-HCV laboratory-based immunoassay (recommended)", + "label": "{{tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -242,19 +242,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165302AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Anti-HCV rapid diagnostic test (RDT)", + "label": "{{tests_hepatitis_c_sub_form.step1.hcv_rdt.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -277,19 +277,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "161471AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Dried Blood Spot (DBS) anti-HCV test", + "label": "{{tests_hepatitis_c_sub_form.step1.hcv_dbs.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -328,9 +328,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Hep C positive diagnosis!", - "toaster_info_text": "Counselling and referral required.", - "toaster_info_title": "Hep C positive diagnosis!", + "text": "{{tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text}}", + "toaster_info_text": "{{tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -340,5 +340,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_hepatitis_c_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json index a004de90f..bdc0bc6db 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json @@ -5,9 +5,9 @@ "openmrs_entity_parent": "1356AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "HIV test", + "label": "{{tests_hiv_sub_form.step1.hiv_test_status.label}}", "label_text_style": "bold", - "label_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+.", + "label_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn\u0027t required if the woman is already confirmed HIV+.", "text_color": "#000000", "type": "extended_radio_button", "options": [ @@ -46,7 +46,7 @@ ], "v_required": { "value": true, - "err": "HIV test status is required" + "err": "{{tests_hiv_sub_form.step1.hiv_test_status.v_required.err}}" } }, { @@ -63,26 +63,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165300AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_hiv_sub_form.step1.hiv_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired_stock", - "text": "Expired stock", + "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text}}", "openmrs_entity_parent": "165300AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -90,7 +90,7 @@ ], "v_required": { "value": true, - "err": "HIV not done reason is required!" + "err": "{{tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err}}" }, "relevance": { "rules-engine": { @@ -106,7 +106,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_hiv_sub_form.step1.hiv_test_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -138,7 +138,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164400AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "HIV test date", + "hint": "{{tests_hiv_sub_form.step1.hiv_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -150,7 +150,7 @@ }, "v_required": { "value": true, - "err": "HIV test date is required." + "err": "{{tests_hiv_sub_form.step1.hiv_test_date.v_required.err}}" }, "calculation": { "rules-engine": { @@ -166,26 +166,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Record result", + "label": "{{tests_hiv_sub_form.step1.hiv_test_result.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "inconclusive", - "text": "Inconclusive", + "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -193,7 +193,7 @@ ], "v_required": { "value": true, - "err": "Please record the HIV test result" + "err": "{{tests_hiv_sub_form.step1.hiv_test_result.v_required.err}}" }, "relevance": { "rules-engine": { @@ -225,7 +225,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "HIV test inconclusive, refer for further testing.", + "text": "{{tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -241,9 +241,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "HIV positive counseling", - "toaster_info_text": "- Refer for further testing and confirmation\n- Refer for HIV services\n- Advise on opportunistic infections and need to seek medical help\n- Proceed with systematic screening for active TB", - "toaster_info_title": "HIV positive counseling", + "text": "{{tests_hiv_sub_form.step1.hiv_positive_toaster.text}}", + "toaster_info_text": "{{tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -253,5 +253,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_hiv_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_other_tests_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_other_tests_sub_form.json index 4953d25a7..7a38b3d23 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_other_tests_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_other_tests_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "165398AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Other test", + "label": "{{tests_other_tests_sub_form.step1.other_test.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -45,7 +45,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165398AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Which test?", + "hint": "{{tests_other_tests_sub_form.step1.other_test_name.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -77,7 +77,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Test date", + "hint": "{{tests_other_tests_sub_form.step1.other_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -100,7 +100,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165399AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Test result?", + "hint": "{{tests_other_tests_sub_form.step1.other_test_result.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -110,5 +110,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_other_tests_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_partner_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_partner_hiv_sub_form.json index c81d4f61b..37dd5fd1b 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_partner_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_partner_hiv_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "161557AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Partner HIV test", + "label": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -77,7 +77,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "164400AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Partner HIV test date", + "hint": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -96,7 +96,7 @@ }, "v_required": { "value": true, - "err": "Partner HIV test date required" + "err": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err}}" } }, { @@ -105,26 +105,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Record result", + "label": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "inconclusive", - "text": "Inconclusive", + "text": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -132,7 +132,7 @@ ], "v_required": { "value": true, - "err": "Test result is required" + "err": "{{tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err}}" }, "relevance": { "rules-engine": { @@ -162,7 +162,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Partner HIV test inconclusive, refer partner for further testing.", + "text": "{{tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text}}", "toaster_type": "warning", "relevance": { "step2:hiv_test_partner_result": { @@ -191,9 +191,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "HIV risk counseling", - "toaster_info_text": "Provide comprehensive HIV prevention options: \n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits", - "toaster_info_title": "HIV risk counseling", + "text": "{{tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text}}", + "toaster_info_text": "{{tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -203,5 +203,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_partner_hiv_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json index 79b93a3fc..1771c9bb4 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "161476AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Syphilis test", + "label": "{{tests_syphilis_sub_form.step1.syph_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -61,9 +61,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "This area has a high prevalence of syphilis (5% or greater).", - "toaster_info_text": "Use an on-site rapid syphilis test (RST), and, if positive, provide the first dose of treatment. Then refer the woman for a rapid plasma reagin (RPR) test. If the RPR test is positive, provide treatment according to the clinical phase of syphilis.", - "toaster_info_title": "This area has a high prevalence of syphilis (5% or greater).", + "text": "{{tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text}}", + "toaster_info_text": "{{tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -79,9 +79,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "This area has a low prevalence of syphilis (below 5%)", - "toaster_info_text": "On-site rapid syphilis test (RST) should be used to test pregnant women for syphilis.", - "toaster_info_title": "This area has a low prevalence of syphilis (below 5%)", + "text": "{{tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text}}", + "toaster_info_text": "{{tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -97,26 +97,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_syphilis_sub_form.step1.syph_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired_stock", - "text": "Expired stock", + "text": "{{tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text}}", "openmrs_entity_parent": "161476AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -139,7 +139,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_syphilis_sub_form.step1.syph_test_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -171,7 +171,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Syphilis test date", + "hint": "{{tests_syphilis_sub_form.step1.syphilis_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -190,7 +190,7 @@ }, "v_required": { "value": true, - "err": "Select the date of the syphilis test." + "err": "{{tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err}}" } }, { @@ -199,26 +199,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165422AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Syphilis test type", + "label": "{{tests_syphilis_sub_form.step1.syph_test_type.label}}", "label_text_style": "bold", "options": [ { "key": "rapid_syphilis", - "text": "Rapid syphilis test", + "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165303AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "rapid_plasma", - "text": "Rapid plasma reagin test", + "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1619AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "off_site_lab", - "text": "Off-site lab test", + "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165389AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -241,19 +241,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165303AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Rapid syphilis test (RST)", + "label": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -276,19 +276,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1619AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Rapid plasma reagin (RPR) test", + "label": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -311,19 +311,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165389AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Off-site lab test for syphilis", + "label": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -362,9 +362,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Syphilis test positive", - "toaster_info_text": "Provide counselling and treatment according to protocol.", - "toaster_info_title": "Syphilis test positive", + "text": "{{tests_syphilis_sub_form.step1.syphilis_danger_toaster.text}}", + "toaster_info_text": "{{tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -374,5 +374,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_syphilis_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_tb_screening_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_tb_screening_sub_form.json index 1925d4966..5bf13f8bd 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_tb_screening_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_tb_screening_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "164800AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "TB screening", + "label": "{{tests_tb_screening_sub_form.step1.tb_screening_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -45,7 +45,7 @@ ], "v_required": { "value": true, - "err": "TB screening status is required" + "err": "{{tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err}}" } }, { @@ -62,61 +62,61 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "sputum_smear", - "text": "Sputum smear not available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165401AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "sputum_culture", - "text": "Sputum culture not available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165402AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "genexpert_machine", - "text": "GeneXpert machine not available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165403AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "xray_machine", - "text": "X-ray machine not available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165404AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no_sputum_supplies", - "text": "No sputum supplies available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "machine_not_functioning", - "text": "Machine not functioning", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "technician_not_available", - "text": "Technician not available", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165400AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text}}", "openmrs_entity_parent": "164800AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -131,7 +131,7 @@ }, "v_required": { "value": true, - "err": "Reason why tb screen was not done is required" + "err": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err}}" } }, { @@ -140,7 +140,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -172,7 +172,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "TB screening date", + "hint": "{{tests_tb_screening_sub_form.step1.tb_screening_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -191,7 +191,7 @@ }, "v_required": { "value": true, - "err": "Please record the date TB screening was done" + "err": "{{tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err}}" } }, { @@ -200,33 +200,33 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Record result", + "label": "{{tests_tb_screening_sub_form.step1.tb_screening_result.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "inconclusive", - "text": "Inconclusive", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "incomplete", - "text": "Incomplete (only symptoms)", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -241,7 +241,7 @@ }, "v_required": { "value": true, - "err": "Tb screen result is required" + "err": "{{tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err}}" } }, { @@ -250,9 +250,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "TB screening positive. ", - "toaster_info_text": "Treat according to local protocol and/or refer for treatment.", - "toaster_info_title": "TB screening positive. ", + "text": "{{tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text}}", + "toaster_info_text": "{{tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title}}", "toaster_type": "problem", "relevance": { "rules-engine": { @@ -262,5 +262,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_tb_screening_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_ultrasound_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_ultrasound_sub_form.json index 9d18fb247..376c8c90c 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_ultrasound_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_ultrasound_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "159617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Ultrasound test", + "label": "{{tests_ultrasound_sub_form.step1.ultrasound.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -61,26 +61,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Reason", + "label": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "delayed", - "text": "Delayed to next contact", + "text": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165295AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_available", - "text": "Not available", + "text": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text}}", "openmrs_entity_parent": "159617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -88,7 +88,7 @@ ], "v_required": { "value": true, - "err": "Please specify ultrasound not done" + "err": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err}}" }, "relevance": { "rules-engine": { @@ -104,7 +104,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint}}", "edit_type": "edit_text", "relevance": { "rules-engine": { @@ -115,7 +115,7 @@ }, "v_required": { "value": false, - "err": "Specify any other reason." + "err": "{{tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err}}" } }, { @@ -140,7 +140,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Ultrasound date", + "hint": "{{tests_ultrasound_sub_form.step1.ultrasound_date.hint}}", "expanded": "false", "max_date": "today", "min_date": "today-9m", @@ -153,7 +153,7 @@ }, "v_required": { "value": true, - "err": "Date that the ultrasound was done." + "err": "{{tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err}}" }, "calculation": { "rules-engine": { @@ -169,7 +169,7 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "If you need to update the woman's gestational age, please return to Profile, Current Pregnancy page.", + "text": "{{tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text}}", "toaster_type": "info", "relevance": { "rules-engine": { @@ -185,9 +185,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Early ultrasound done!", - "toaster_info_text": "An early U/S is key to estimate gestational age, improve detection of fetal anomalies and multiple fetuses, reduce induction of labour for post-term pregnancy, and improve a woman’s pregnancy experience.", - "toaster_info_title": "Early ultrasound done!", + "text": "{{tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text}}", + "toaster_info_text": "{{tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title}}", "toaster_type": "positive", "relevance": { "rules-engine": { @@ -223,7 +223,7 @@ "key": "no_of_fetuses_label", "type": "label", "label_text_style": "bold", - "text": "No. of fetuses", + "text": "{{tests_ultrasound_sub_form.step1.no_of_fetuses_label.text}}", "text_color": "#000000", "v_required": { "value": true @@ -242,7 +242,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165387AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "numbers_selector", - "label": "No. of fetuses", + "label": "{{tests_ultrasound_sub_form.step1.no_of_fetuses.label}}", "number_of_selectors": "5", "start_number": "1", "max_value": "15", @@ -300,9 +300,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Pre-eclampsia risk counseling", - "toaster_info_text": "The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. ", - "toaster_info_title": "Pre-eclampsia risk counseling", + "text": "{{tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text}}", + "toaster_info_text": "{{tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -326,34 +326,34 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Fetal presentation", + "label": "{{tests_ultrasound_sub_form.step1.fetal_presentation.label}}", "label_text_style": "bold", - "label_info_text": "If multiple fetuses, indicate the fetal position of the first fetus to be delivered.", + "label_info_text": "{{tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text}}", "options": [ { "key": "cephalic", - "text": "Cephalic", + "text": "{{tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "pelvic", - "text": "Pelvic", + "text": "{{tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "transverse", - "text": "Transverse", + "text": "{{tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other", + "text": "{{tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -380,26 +380,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165388AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Amniotic fluid", + "label": "{{tests_ultrasound_sub_form.step1.amniotic_fluid.label}}", "label_text_style": "bold", "options": [ { "key": "normal", - "text": "Normal", + "text": "{{tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "reduced", - "text": "Reduced", + "text": "{{tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "162648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "increased", - "text": "Increased", + "text": "{{tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "164471AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -419,54 +419,54 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165296AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Placenta location", + "label": "{{tests_ultrasound_sub_form.step1.placenta_location.label}}", "label_text_style": "bold", "options": [ { "key": "praevia", - "text": "Praevia", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "114127AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "low", - "text": "Low", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.low.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165297AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "anterior", - "text": "Anterior", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "540AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "posterior", - "text": "Posterior", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "541AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "right_side", - "text": "Right side", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5141AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "left_side", - "text": "Left side", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5139AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "fundal", - "text": "Fundal", + "text": "{{tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165298AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -480,5 +480,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_ultrasound_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json index 6a7596267..da7c716df 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json @@ -5,7 +5,7 @@ "openmrs_entity_parent": "161156AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Urine test", + "label": "{{tests_urine_sub_form.step1.urine_test_status.label}}", "label_text_style": "bold", "text_color": "#000000", "type": "extended_radio_button", @@ -45,7 +45,7 @@ ], "v_required": { "value": true, - "err": "Urine test status is required" + "err": "{{tests_urine_sub_form.step1.urine_test_status.v_required.err}}" } }, { @@ -54,26 +54,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165182AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Reason", + "label": "{{tests_urine_sub_form.step1.urine_test_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "stock_out", - "text": "Stock out", + "text": "{{tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "expired_stock", - "text": "Expired stock", + "text": "{{tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "Other (specify)", + "text": "{{tests_urine_sub_form.step1.urine_test_notdone.options.other.text}}", "openmrs_entity_parent": "161156AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -88,7 +88,7 @@ }, "v_required": { "value": true, - "err": "Reason for urine test not done is required" + "err": "{{tests_urine_sub_form.step1.urine_test_notdone.v_required.err}}" } }, { @@ -105,7 +105,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165435AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Specify", + "hint": "{{tests_urine_sub_form.step1.urine_test_notdone_other.hint}}", "edit_type": "name", "relevance": { "rules-engine": { @@ -137,7 +137,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "163724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Urine test date", + "hint": "{{tests_urine_sub_form.step1.urine_test_date.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -156,7 +156,7 @@ }, "v_required": { "value": true, - "err": "Select the date of the urine test.." + "err": "{{tests_urine_sub_form.step1.urine_test_date.v_required.err}}" } }, { @@ -165,28 +165,28 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165438AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "check_box", - "label": "Urine test type", + "label": "{{tests_urine_sub_form.step1.urine_test_type.label}}", "label_info_text": "Midstream urine culture is the preferred method for testing for asymptomatic bacteriuria (ASB) in pregnancy. If culture is not available, midstream urine Gram-staining is recommended over dipstick.", "label_info_title": "Urine test", "label_text_style": "bold", "options": [ { "key": "midstream_urine_culture", - "text": "Midstream urine culture (recommended)", + "text": "{{tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165392AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "midstream_urine_gram", - "text": "Midstream urine Gram-staining", + "text": "{{tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165304AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "urine_dipstick", - "text": "Urine dipstick", + "text": "{{tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -201,7 +201,7 @@ }, "v_required": { "value": true, - "err": "Urine test type is required" + "err": "{{tests_urine_sub_form.step1.urine_test_type.v_required.err}}" } }, { @@ -210,26 +210,26 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165392AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Midstream urine culture (recommended)", + "label": "{{tests_urine_sub_form.step1.urine_culture.label}}", "label_text_style": "bold", "options": [ { "key": "positive_any", - "text": "Positive - any agent", + "text": "{{tests_urine_sub_form.step1.urine_culture.options.positive_any.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165390AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "positive_gbs", - "text": "Positive - Group B Streptococcus (GBS)", + "text": "{{tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165391AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_urine_sub_form.step1.urine_culture.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165393AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -237,7 +237,7 @@ ], "v_required": { "value": true, - "err": "Urine culture is required" + "err": "{{tests_urine_sub_form.step1.urine_culture.v_required.err}}" }, "relevance": { "rules-engine": { @@ -253,19 +253,19 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165304AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Midstream urine Gram-staining ", + "label": "{{tests_urine_sub_form.step1.urine_gram_stain.label}}", "label_text_style": "bold", "options": [ { "key": "positive", - "text": "Positive", + "text": "{{tests_urine_sub_form.step1.urine_gram_stain.options.positive.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "negative", - "text": "Negative", + "text": "{{tests_urine_sub_form.step1.urine_gram_stain.options.negative.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -273,7 +273,7 @@ ], "v_required": { "value": true, - "err": "Midstream urine Gram-staining is required" + "err": "{{tests_urine_sub_form.step1.urine_gram_stain.v_required.err}}" }, "relevance": { "rules-engine": { @@ -289,40 +289,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "161440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Urine dipstick result - nitrites", + "label": "{{tests_urine_sub_form.step1.urine_nitrites.label}}", "label_text_style": "bold", "options": [ { "key": "none", - "text": "None", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+", - "text": "+", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.+.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "++", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "+++", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.+++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "++++", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.++++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -330,7 +330,7 @@ ], "v_required": { "value": true, - "err": "Urine dipstick results is required" + "err": "{{tests_urine_sub_form.step1.urine_nitrites.v_required.err}}" }, "relevance": { "rules-engine": { @@ -346,40 +346,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "161441AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Urine dipstick result - leukocytes", + "label": "{{tests_urine_sub_form.step1.urine_leukocytes.label}}", "label_text_style": "bold", "options": [ { "key": "none", - "text": "None", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+", - "text": "+", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.+.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "++", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "+++", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.+++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "++++", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.++++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -387,7 +387,7 @@ ], "v_required": { "value": true, - "err": "Urine dipstick results - leukocytes is required" + "err": "{{tests_urine_sub_form.step1.urine_leukocytes.v_required.err}}" }, "relevance": { "rules-engine": { @@ -403,40 +403,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Urine dipstick result - protein", + "label": "{{tests_urine_sub_form.step1.urine_protein.label}}", "label_text_style": "bold", "options": [ { "key": "none", - "text": "None", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+", - "text": "+", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.+.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "++", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "+++", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.+++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "++++", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.++++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -444,7 +444,7 @@ ], "v_required": { "value": true, - "err": "Field urine protein is required" + "err": "{{tests_urine_sub_form.step1.urine_protein.v_required.err}}" }, "relevance": { "rules-engine": { @@ -460,40 +460,40 @@ "openmrs_entity": "concept", "openmrs_entity_id": "159734AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "Urine dipstick result - glucose", + "label": "{{tests_urine_sub_form.step1.urine_glucose.label}}", "label_text_style": "bold", "options": [ { "key": "none", - "text": "None", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.none.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+", - "text": "+", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.+.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "++", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "+++", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.+++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "++++", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.++++.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -501,7 +501,7 @@ ], "v_required": { "value": true, - "err": "Field urine glucose is required" + "err": "{{tests_urine_sub_form.step1.urine_glucose.v_required.err}}" }, "relevance": { "rules-engine": { @@ -531,9 +531,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Gestational diabetes mellitus (GDM) risk counseling", - "toaster_info_text": "Please provide appropriate counseling for GDM risk mitigation, including:\n\n - Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy", - "toaster_info_title": "Gestational diabetes mellitus (GDM) risk counseling", + "text": "{{tests_urine_sub_form.step1.gdm_risk_toaster.text}}", + "toaster_info_text": "{{tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -565,9 +565,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB)", - "toaster_info_text": "A woman is considered to have ASB if she has one of the following test results:\n\n- Positive culture (> 100,000 bacteria/mL)\n- Gram-staining positive\n- Urine dipstick test positive (nitrites or leukocytes)\n\nSeven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight.", - "toaster_info_title": "Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB)", + "text": "{{tests_urine_sub_form.step1.asb_positive_toaster.text}}", + "toaster_info_text": "{{tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text}}", + "toaster_info_title": "{{tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -583,9 +583,9 @@ "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", - "text": "Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling", - "toaster_info_text": "Pregnant women with Group B Streptococcus (GBS) colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection.", - "toaster_info_title": "Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling", + "text": "{{tests_urine_sub_form.step1.gbs_agent_note.text}}", + "toaster_info_text": "{{tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text}}", + "toaster_info_title": "{{tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title}}", "toaster_type": "warning", "relevance": { "rules-engine": { @@ -595,5 +595,7 @@ } } } - ] + ], + "count": 1, + "properties_file_name": "tests_urine_sub_form" } \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/abdominal_exam_sub_form.properties b/opensrp-anc/src/main/resources/abdominal_exam_sub_form.properties new file mode 100644 index 000000000..fe9c4a492 --- /dev/null +++ b/opensrp-anc/src/main/resources/abdominal_exam_sub_form.properties @@ -0,0 +1,8 @@ +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text = Painful decompression +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint = Specify +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err = Please enter valid content +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text = Other (specify) +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text = Pain on deep palpation +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text = Pain on superficial palpation +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text = Mass/tumour +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label = Abdominal exam: abnormal diff --git a/opensrp-anc/src/main/resources/breast_exam_sub_form.properties b/opensrp-anc/src/main/resources/breast_exam_sub_form.properties new file mode 100644 index 000000000..7ba13f782 --- /dev/null +++ b/opensrp-anc/src/main/resources/breast_exam_sub_form.properties @@ -0,0 +1,10 @@ +breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text = Increased temperature +breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err = Please enter valid content +breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text = Bleeding +breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text = Other (specify) +breast_exam_sub_form.step1.breast_exam_abnormal.label = Breast exam: abnormal +breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text = Discharge +breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text = Local pain +breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text = Flushing +breast_exam_sub_form.step1.breast_exam_abnormal_other.hint = Specify +breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text = Nodule diff --git a/opensrp-anc/src/main/resources/cardiac_exam_sub_form.properties b/opensrp-anc/src/main/resources/cardiac_exam_sub_form.properties new file mode 100644 index 000000000..935c6f917 --- /dev/null +++ b/opensrp-anc/src/main/resources/cardiac_exam_sub_form.properties @@ -0,0 +1,11 @@ +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text = Cyanosis +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label = Cardiac exam: abnormal +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text = Other (specify) +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text = Cold sweats +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err = Please enter valid content +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text = Heart murmur +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text = Tachycardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text = Weak pulse +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text = Bradycardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text = Arrhythmia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint = Specify diff --git a/opensrp-anc/src/main/resources/cervical_exam_sub_form.properties b/opensrp-anc/src/main/resources/cervical_exam_sub_form.properties new file mode 100644 index 000000000..923d1358b --- /dev/null +++ b/opensrp-anc/src/main/resources/cervical_exam_sub_form.properties @@ -0,0 +1,2 @@ +cervical_exam_sub_form.step1.dilation_cm.v_required.err = Field cervical dilation is required +cervical_exam_sub_form.step1.dilation_cm_label.text = How many centimetres (cm) dilated? diff --git a/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form.properties b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form.properties new file mode 100644 index 000000000..c45f1d554 --- /dev/null +++ b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form.properties @@ -0,0 +1,2 @@ +fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err = Please enter the fetal heart rate +fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text = Fetal heart rate (bpm) diff --git a/opensrp-anc/src/main/resources/oedema_present_sub_form.properties b/opensrp-anc/src/main/resources/oedema_present_sub_form.properties new file mode 100644 index 000000000..5a59c01d2 --- /dev/null +++ b/opensrp-anc/src/main/resources/oedema_present_sub_form.properties @@ -0,0 +1,5 @@ +oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text = Leg swelling +oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text = Oedema of the hands and feet +oedema_present_sub_form.step1.oedema_type.label = Oedema type +oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text = Pitting ankle oedema +oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text = Pitting lower back oedema diff --git a/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties b/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties new file mode 100644 index 000000000..373fc4b61 --- /dev/null +++ b/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties @@ -0,0 +1,17 @@ +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text = Mucopurulent cervicitis +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text = Clusters of erythematous papules +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text = Genital ulcer +pelvic_exam_sub_form.step1.evaluate_labour_toaster.text = Evaluate labor. Urgent referral if GA is less than 37 weeks. +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label = Pelvic exam: abnormal +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text = Other (specify) +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text = Curd-like vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesicles +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Foul-smelling vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Specify +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Tender bilateral inguinal and femoral lymphadenopathy +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Please enter valid content +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidence of amniotic fluid +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Genital pain +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Cervical friability +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Tender unilateral lymphadenopathy diff --git a/opensrp-anc/src/main/resources/respiratory_exam_sub_form.properties b/opensrp-anc/src/main/resources/respiratory_exam_sub_form.properties new file mode 100644 index 000000000..a314cbb48 --- /dev/null +++ b/opensrp-anc/src/main/resources/respiratory_exam_sub_form.properties @@ -0,0 +1,10 @@ +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text = Dyspnoea +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label = Respiratory exam: abnormal +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err = Please enter valid content +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text = Rales +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text = Cough +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text = Rapid breathing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint = Specify +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text = Wheezing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text = Slow breathing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text = Other (specify) diff --git a/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form.properties b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form.properties new file mode 100644 index 000000000..749f352ab --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form.properties @@ -0,0 +1,30 @@ +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.random_plasma.v_required.err = Enter the result for the random plasma glucose test. +tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text = 75g OGTT +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text = The woman has Diabetes Mellitus (DM) in pregnancy if her fasting plasma glucose is 126 mg/dL or higher.\n\nOR\n\n- 75g OGTT - fasting glucose 126 mg/dL or higher\n- 75g OGTT - 1 hr 200 mg/dL or higher\n- 75g OGTT - 2 hrs 200 mg/dL or higher\n- Random plasma glucose 200 mg/dL or higher +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title = Diabetes Mellitus (DM) in pregnancy diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_date.hint = Blood glucose test date +tests_blood_glucose_sub_form.step1.ogtt_1.hint = 75g OGTT - 1 hr results (mg/dl) +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text = Dietary intervention recommended and referral to high level care. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text = Gestational Diabetes Mellitus (GDM) diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_type.label = Blood glucose test type +tests_blood_glucose_sub_form.step1.ogtt_2.hint = 75g OGTT - 2 hrs results (mg/dl) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err = Enter the result for the fasting plasma glucose test +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err = Select the date of the glucose test.. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text = The woman has Gestational Diabetes Mellitus (GDM) if her fasting plasma glucose is 92–125 mg/dL. \n\nOR\n\n- 75g OGTT - fasting glucose 92–125 mg/dL\n- 75g OGTT - 1 hr 180–199 mg/dL\n- 75g OGTT - 2 hrs 153–199 mg/dL +tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err = Enter the result for the 75g OGTT - fasting glucose (2 hr). +tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err = Enter the result for the initial 75g OGTT - fasting glucose. +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text = Diabetes Mellitus (DM) in pregnancy diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_status.label = Blood glucose test +tests_blood_glucose_sub_form.step1.random_plasma.hint = Random plasma glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint = Fasting plasma glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err = Enter the result for the 75g OGTT - fasting glucose (1 hr). +tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text = Fasting plasma glucose +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title = Gestational Diabetes Mellitus (GDM) diagnosis! +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text = Woman with hyperglycemia - Recommend dietary intervention and refer to higher level care. +tests_blood_glucose_sub_form.step1.ogtt_fasting.hint = 75g OGTT - fasting glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text = Random plasma glucose diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties new file mode 100644 index 000000000..9947430ce --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties @@ -0,0 +1,47 @@ +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text = Complete blood count test (recommended) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text = Anaemia - Hb level of < 11 in first or third trimester or Hb level < 10.5 in second trimester.\n\nOR\n\nNo Hb test results recorded, but woman has pallor. +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text = Anaemia diagnosis! +tests_blood_haemoglobin_sub_form.step1.ht.hint = Hematocrit (Ht) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Specify any other reason why the blood haemoglobin test +tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Complete blood count test result (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Hb test (haemoglobin colour scale) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Anaemia diagnosis! +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Platelet count under 100,000. +tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Hb test result - haemoglobin colour scale (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Other (specify) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = White blood cell count too high! +tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title = Blood haemoglobin test type +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Expired +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Hematocrit levels too low! +tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Enter the White blood cell (WBC) count +tests_blood_haemoglobin_sub_form.step1.platelets.hint = Platelet count +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = White blood cell count above 16,000. +tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = Hb test type is required +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Hemotacrit levels less than 10.5. +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = HB test not done reason is required +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Reason +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Complete blood count test is the preferred method for testing for anaemia in pregnancy. If complete blood count test is not available, haemoglobinometer is recommended over haemoglobin colour scale. +tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint = Hb test result - haemoglobinometer (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint = Blood haemoglobin test date +tests_blood_haemoglobin_sub_form.step1.hb_test_status.label = Blood haemoglobin test +tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err = Enter the Platelet count value +tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label = Blood haemoglobin test type +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title = Platelet count too low! +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text = No supplies +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.ht.v_required.err = Enter the Hematocrit value +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint = Specify +tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err = Blood haemoglobin test date is required +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text = Platelet count too low! +tests_blood_haemoglobin_sub_form.step1.wbc.hint = White blood cell (WBC) count +tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err = Enter Hb test result - haemoglobinometer (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err = Enter Hb test result - haemoglobin colour scale (g/dl) +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Hematocrit levels too low! +tests_blood_haemoglobin_sub_form.step1.cbc.hint = Complete blood count test result (g/dl) (recommended) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = White blood cell count too high! +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Hb test (haemoglobinometer) diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form.properties new file mode 100644 index 000000000..a2b99b86d --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_type_sub_form.properties @@ -0,0 +1,17 @@ +tests_blood_type_sub_form.step1.blood_type.options.b.text = B +tests_blood_type_sub_form.step1.blood_type_test_date.hint = Blood type test date +tests_blood_type_sub_form.step1.blood_type.options.o.text = O +tests_blood_type_sub_form.step1.blood_type.v_required.err = Please specify blood type +tests_blood_type_sub_form.step1.blood_type.label = Blood type +tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown.\n\n- Proceed with local protocol to investigate sensitization and the need for referral.\n\n- If Rh negative and non-sensitized, woman should receive anti- D prophylaxis postnatally if the baby is Rh positive. +tests_blood_type_sub_form.step1.rh_factor.label = Rh factor +tests_blood_type_sub_form.step1.blood_type.options.a.text = A +tests_blood_type_sub_form.step1.rh_factor_toaster.text = Rh factor negative counseling +tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Negative +tests_blood_type_sub_form.step1.rh_factor.v_required.err = Rh factor is required +tests_blood_type_sub_form.step1.blood_type_test_status.label = Blood type test +tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Date that the blood test was done. +tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positive +tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Blood type status is required +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Rh factor negative counseling diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties new file mode 100644 index 000000000..6d3b753da --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -0,0 +1,33 @@ +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Stock out +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Hep B positive diagnosis! +tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Hepatitis B test is required +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Hep B vaccination required anytime after 12 weeks gestation. +tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Hep B test type is required +tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = HBsAg rapid diagnostic test is required +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = HBsAg laboratory-based immunoassay (recommended) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = HBsAg rapid diagnostic test (RDT) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = (DBS) HBsAg test is required +tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Hep B test date +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Dried Blood Spot (DBS) HBsAg test +tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Hep B test type +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Hep B positive diagnosis! +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Expired stock +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Hep B vaccination required. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Other (specify) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Dried Blood Spot (DBS) HBsAg test +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Hepatitis B test not done reason is required +tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = Hep B test date is required +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = BsAg laboratory-based immunoassay is required +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = HBsAg laboratory-based immunoassay (recommended) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Hep B vaccination required. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Specify +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = HBsAg rapid diagnostic test (RDT) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Counselling and referral required. diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form.properties new file mode 100644 index 000000000..505d21ff5 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form.properties @@ -0,0 +1,26 @@ +tests_hepatitis_c_sub_form.step1.hcv_dbs.label = Dried Blood Spot (DBS) anti-HCV test +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text = Hep C positive diagnosis! +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text = Expired stock +tests_hepatitis_c_sub_form.step1.hepc_test_date.hint = Hep C test date +tests_hepatitis_c_sub_form.step1.hepc_test_type.label = Hep C test type +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text = Anti-HCV laboratory-based immunoassay is the preferred method for testing for Hep C infection in pregnancy. If immunoassay is not available, Anti-HCV rapid diagnostic test (RDT) is recommended over Dried Blood Spot (DBS) Anti-HCV testing. +tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint = Specify +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label = Anti-HCV laboratory-based immunoassay (recommended) +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title = Hep C positive diagnosis! +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text = Anti-HCV laboratory-based immunoassay (recommended) +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title = Hep C test type +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text = Stock out +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text = Dried Blood Spot (DBS) anti-HCV test +tests_hepatitis_c_sub_form.step1.hcv_rdt.label = Anti-HCV rapid diagnostic test (RDT) +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text = Anti-HCV rapid diagnostic test (RDT) +tests_hepatitis_c_sub_form.step1.hepc_test_status.label = Hepatitis C test +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text = Other (specify) +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label = Reason +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text = Counselling and referral required. +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err = Select the date of the Hepatitis C test. diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties new file mode 100644 index 000000000..7642de9a4 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties @@ -0,0 +1,19 @@ +tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Please record the HIV test result +tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positive +tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Negative +tests_hiv_sub_form.step1.hiv_positive_toaster.text = HIV positive counseling +tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Other (specify) +tests_hiv_sub_form.step1.hiv_test_status.v_required.err = HIV test status is required +tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = HIV test inconclusive, refer for further testing. +tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = HIV not done reason is required! +tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Expired stock +tests_hiv_sub_form.step1.hiv_test_result.label = Record result +tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Specify +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Refer for further testing and confirmation\n- Refer for HIV services\n- Advise on opportunistic infections and need to seek medical help\n- Proceed with systematic screening for active TB +tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Inconclusive +tests_hiv_sub_form.step1.hiv_test_status.label = HIV test +tests_hiv_sub_form.step1.hiv_test_date.hint = HIV test date +tests_hiv_sub_form.step1.hiv_test_date.v_required.err = HIV test date is required. +tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Stock out +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = HIV positive counseling +tests_hiv_sub_form.step1.hiv_test_notdone.label = Reason diff --git a/opensrp-anc/src/main/resources/tests_other_tests_sub_form.properties b/opensrp-anc/src/main/resources/tests_other_tests_sub_form.properties new file mode 100644 index 000000000..313f47bfb --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_other_tests_sub_form.properties @@ -0,0 +1,4 @@ +tests_other_tests_sub_form.step1.other_test.label = Other test +tests_other_tests_sub_form.step1.other_test_date.hint = Test date +tests_other_tests_sub_form.step1.other_test_result.hint = Test result? +tests_other_tests_sub_form.step1.other_test_name.hint = Which test? diff --git a/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form.properties b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form.properties new file mode 100644 index 000000000..edf77bf7f --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form.properties @@ -0,0 +1,12 @@ +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text = Inconclusive +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err = Test result is required +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint = Partner HIV test date +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err = Partner HIV test date required +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title = HIV risk counseling +tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label = Partner HIV test +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text = Positive +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text = Provide comprehensive HIV prevention options: \n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text = HIV risk counseling +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text = Negative +tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text = Partner HIV test inconclusive, refer partner for further testing. +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label = Record result diff --git a/opensrp-anc/src/main/resources/tests_syphilis_sub_form.properties b/opensrp-anc/src/main/resources/tests_syphilis_sub_form.properties new file mode 100644 index 000000000..eb9e8f554 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_syphilis_sub_form.properties @@ -0,0 +1,30 @@ +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text = This area has a high prevalence of syphilis (5% or greater). +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title = Syphilis test positive +tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text = Stock out +tests_syphilis_sub_form.step1.syph_test_type.label = Syphilis test type +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text = Use an on-site rapid syphilis test (RST), and, if positive, provide the first dose of treatment. Then refer the woman for a rapid plasma reagin (RPR) test. If the RPR test is positive, provide treatment according to the clinical phase of syphilis. +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title = This area has a low prevalence of syphilis (below 5%) +tests_syphilis_sub_form.step1.lab_syphilis_test.label = Off-site lab test for syphilis +tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text = Other (specify) +tests_syphilis_sub_form.step1.syph_test_notdone_other.hint = Specify +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title = This area has a high prevalence of syphilis (5% or greater). +tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rpr_syphilis_test.label = Rapid plasma reagin (RPR) test +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text = This area has a low prevalence of syphilis (below 5%) +tests_syphilis_sub_form.step1.syphilis_test_date.hint = Syphilis test date +tests_syphilis_sub_form.step1.syph_test_notdone.label = Reason +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rapid_syphilis_test.label = Rapid syphilis test (RST) +tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text = Expired stock +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text = Off-site lab test +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text = Rapid plasma reagin test +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text = On-site rapid syphilis test (RST) should be used to test pregnant women for syphilis. +tests_syphilis_sub_form.step1.syphilis_danger_toaster.text = Syphilis test positive +tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err = Select the date of the syphilis test. +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text = Rapid syphilis test +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text = Provide counselling and treatment according to protocol. +tests_syphilis_sub_form.step1.syph_test_status.label = Syphilis test diff --git a/opensrp-anc/src/main/resources/tests_tb_screening_sub_form.properties b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form.properties new file mode 100644 index 000000000..aacb43c40 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form.properties @@ -0,0 +1,24 @@ +tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err = Tb screen result is required +tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text = Negative +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text = No sputum supplies available +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text = Machine not functioning +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text = Technician not available +tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint = Specify +tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err = TB screening status is required +tests_tb_screening_sub_form.step1.tb_screening_notdone.label = Reason +tests_tb_screening_sub_form.step1.tb_screening_status.label = TB screening +tests_tb_screening_sub_form.step1.tb_screening_result.label = Record result +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text = TB screening positive. +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text = Sputum culture not available +tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err = Please record the date TB screening was done +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text = Treat according to local protocol and/or refer for treatment. +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title = TB screening positive. +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text = GeneXpert machine not available +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text = Other (specify) +tests_tb_screening_sub_form.step1.tb_screening_date.hint = TB screening date +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text = Sputum smear not available +tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text = Inconclusive +tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text = Incomplete (only symptoms) +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text = X-ray machine not available +tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err = Reason why tb screen was not done is required +tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text = Positive diff --git a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form.properties b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form.properties new file mode 100644 index 000000000..779b09abf --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form.properties @@ -0,0 +1,37 @@ +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Specify +tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Date that the ultrasound was done. +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Specify any other reason. +tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fundal +tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Right side +tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Left side +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Not available +tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Low +tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pelvic +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Other (specify) +tests_ultrasound_sub_form.step1.ultrasound_date.hint = Ultrasound date +tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverse +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling +tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = If you need to update the woman's gestational age, please return to Profile, Current Pregnancy page. +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Early ultrasound done! +tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduced +tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior +tests_ultrasound_sub_form.step1.ultrasound.label = Ultrasound test +tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cephalic +tests_ultrasound_sub_form.step1.placenta_location.label = Placenta location +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Other +tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior +tests_ultrasound_sub_form.step1.no_of_fetuses.label = No. of fetuses +tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = No. of fetuses +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Delayed to next contact +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling +tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Increased +tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal +tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Please specify ultrasound not done +tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Praevia +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = An early U/S is key to estimate gestational age, improve detection of fetal anomalies and multiple fetuses, reduce induction of labour for post-term pregnancy, and improve a woman’s pregnancy experience. +tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Reason +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Early ultrasound done! +tests_ultrasound_sub_form.step1.fetal_presentation.label = Fetal presentation +tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. +tests_ultrasound_sub_form.step1.amniotic_fluid.label = Amniotic fluid diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form.properties new file mode 100644 index 000000000..a1678a209 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_urine_sub_form.properties @@ -0,0 +1,61 @@ +tests_urine_sub_form.step1.urine_test_notdone_other.hint = Specify +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Midstream urine culture (recommended) +tests_urine_sub_form.step1.urine_test_type.label = Urine test type +tests_urine_sub_form.step1.urine_glucose.v_required.err = Field urine glucose is required +tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ +tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Urine dipstick results - leukocytes is required +tests_urine_sub_form.step1.urine_nitrites.options.+.text = + +tests_urine_sub_form.step1.urine_test_type.v_required.err = Urine test type is required +tests_urine_sub_form.step1.urine_culture.label = Midstream urine culture (recommended) +tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positive +tests_urine_sub_form.step1.urine_glucose.label = Urine dipstick result - glucose +tests_urine_sub_form.step1.urine_protein.label = Urine dipstick result - protein +tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Urine dipstick +tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ +tests_urine_sub_form.step1.urine_culture.options.negative.text = Negative +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = A woman is considered to have ASB if she has one of the following test results:\n\n- Positive culture (> 100,000 bacteria/mL)\n- Gram-staining positive\n- Urine dipstick test positive (nitrites or leukocytes)\n\nSeven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight. +tests_urine_sub_form.step1.urine_gram_stain.label = Midstream urine Gram-staining +tests_urine_sub_form.step1.urine_culture.v_required.err = Urine culture is required +tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text = Positive - Group B Streptococcus (GBS) +tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text = Expired stock +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling +tests_urine_sub_form.step1.urine_test_date.v_required.err = Select the date of the urine test.. +tests_urine_sub_form.step1.urine_nitrites.label = Urine dipstick result - nitrites +tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Other (specify) +tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.options.none.text = None +tests_urine_sub_form.step1.gbs_agent_note.text = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ +tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negative +tests_urine_sub_form.step1.urine_protein.v_required.err = Field urine protein is required +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Midstream urine Gram-staining +tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + +tests_urine_sub_form.step1.urine_test_status.v_required.err = Urine test status is required +tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Stock out +tests_urine_sub_form.step1.urine_test_status.label = Urine test +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +tests_urine_sub_form.step1.gdm_risk_toaster.text = Gestational diabetes mellitus (GDM) risk counseling +tests_urine_sub_form.step1.urine_protein.options.+.text = + +tests_urine_sub_form.step1.urine_protein.options.none.text = None +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +tests_urine_sub_form.step1.urine_test_notdone.label = Reason +tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.label = Urine dipstick result - leukocytes +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n - Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy +tests_urine_sub_form.step1.urine_nitrites.options.none.text = None +tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Pregnant women with Group B Streptococcus (GBS) colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. +tests_urine_sub_form.step1.urine_glucose.options.none.text = None +tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_nitrites.v_required.err = Urine dipstick results is required +tests_urine_sub_form.step1.urine_test_date.hint = Urine test date +tests_urine_sub_form.step1.asb_positive_toaster.text = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positive - any agent +tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Midstream urine Gram-staining is required +tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ +tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Reason for urine test not done is required +tests_urine_sub_form.step1.urine_glucose.options.+.text = + diff --git a/reference-app/build.gradle b/reference-app/build.gradle index aa95c0413..fb96adf65 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3100-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -232,7 +232,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.9.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.10.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/resources/abdominal_exam_sub_form.properties b/reference-app/src/main/resources/abdominal_exam_sub_form.properties new file mode 100644 index 000000000..fe9c4a492 --- /dev/null +++ b/reference-app/src/main/resources/abdominal_exam_sub_form.properties @@ -0,0 +1,8 @@ +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text = Painful decompression +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint = Specify +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err = Please enter valid content +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text = Other (specify) +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text = Pain on deep palpation +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text = Pain on superficial palpation +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text = Mass/tumour +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label = Abdominal exam: abnormal diff --git a/reference-app/src/main/resources/breast_exam_sub_form.properties b/reference-app/src/main/resources/breast_exam_sub_form.properties new file mode 100644 index 000000000..7ba13f782 --- /dev/null +++ b/reference-app/src/main/resources/breast_exam_sub_form.properties @@ -0,0 +1,10 @@ +breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text = Increased temperature +breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err = Please enter valid content +breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text = Bleeding +breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text = Other (specify) +breast_exam_sub_form.step1.breast_exam_abnormal.label = Breast exam: abnormal +breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text = Discharge +breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text = Local pain +breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text = Flushing +breast_exam_sub_form.step1.breast_exam_abnormal_other.hint = Specify +breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text = Nodule diff --git a/reference-app/src/main/resources/cardiac_exam_sub_form.properties b/reference-app/src/main/resources/cardiac_exam_sub_form.properties new file mode 100644 index 000000000..935c6f917 --- /dev/null +++ b/reference-app/src/main/resources/cardiac_exam_sub_form.properties @@ -0,0 +1,11 @@ +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text = Cyanosis +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label = Cardiac exam: abnormal +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text = Other (specify) +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text = Cold sweats +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err = Please enter valid content +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text = Heart murmur +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text = Tachycardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text = Weak pulse +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text = Bradycardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text = Arrhythmia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint = Specify diff --git a/reference-app/src/main/resources/cervical_exam_sub_form.properties b/reference-app/src/main/resources/cervical_exam_sub_form.properties new file mode 100644 index 000000000..923d1358b --- /dev/null +++ b/reference-app/src/main/resources/cervical_exam_sub_form.properties @@ -0,0 +1,2 @@ +cervical_exam_sub_form.step1.dilation_cm.v_required.err = Field cervical dilation is required +cervical_exam_sub_form.step1.dilation_cm_label.text = How many centimetres (cm) dilated? diff --git a/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties b/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties new file mode 100644 index 000000000..c45f1d554 --- /dev/null +++ b/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties @@ -0,0 +1,2 @@ +fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err = Please enter the fetal heart rate +fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text = Fetal heart rate (bpm) diff --git a/reference-app/src/main/resources/oedema_present_sub_form.properties b/reference-app/src/main/resources/oedema_present_sub_form.properties new file mode 100644 index 000000000..5a59c01d2 --- /dev/null +++ b/reference-app/src/main/resources/oedema_present_sub_form.properties @@ -0,0 +1,5 @@ +oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text = Leg swelling +oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text = Oedema of the hands and feet +oedema_present_sub_form.step1.oedema_type.label = Oedema type +oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text = Pitting ankle oedema +oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text = Pitting lower back oedema diff --git a/reference-app/src/main/resources/pelvic_exam_sub_form.properties b/reference-app/src/main/resources/pelvic_exam_sub_form.properties new file mode 100644 index 000000000..373fc4b61 --- /dev/null +++ b/reference-app/src/main/resources/pelvic_exam_sub_form.properties @@ -0,0 +1,17 @@ +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text = Mucopurulent cervicitis +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text = Clusters of erythematous papules +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text = Genital ulcer +pelvic_exam_sub_form.step1.evaluate_labour_toaster.text = Evaluate labor. Urgent referral if GA is less than 37 weeks. +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label = Pelvic exam: abnormal +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text = Other (specify) +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text = Curd-like vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesicles +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Foul-smelling vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Specify +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Tender bilateral inguinal and femoral lymphadenopathy +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Please enter valid content +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidence of amniotic fluid +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Genital pain +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Cervical friability +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Tender unilateral lymphadenopathy diff --git a/reference-app/src/main/resources/respiratory_exam_sub_form.properties b/reference-app/src/main/resources/respiratory_exam_sub_form.properties new file mode 100644 index 000000000..a314cbb48 --- /dev/null +++ b/reference-app/src/main/resources/respiratory_exam_sub_form.properties @@ -0,0 +1,10 @@ +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text = Dyspnoea +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label = Respiratory exam: abnormal +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err = Please enter valid content +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text = Rales +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text = Cough +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text = Rapid breathing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint = Specify +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text = Wheezing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text = Slow breathing +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text = Other (specify) diff --git a/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties b/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties new file mode 100644 index 000000000..749f352ab --- /dev/null +++ b/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties @@ -0,0 +1,30 @@ +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.random_plasma.v_required.err = Enter the result for the random plasma glucose test. +tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text = 75g OGTT +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text = The woman has Diabetes Mellitus (DM) in pregnancy if her fasting plasma glucose is 126 mg/dL or higher.\n\nOR\n\n- 75g OGTT - fasting glucose 126 mg/dL or higher\n- 75g OGTT - 1 hr 200 mg/dL or higher\n- 75g OGTT - 2 hrs 200 mg/dL or higher\n- Random plasma glucose 200 mg/dL or higher +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title = Diabetes Mellitus (DM) in pregnancy diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_date.hint = Blood glucose test date +tests_blood_glucose_sub_form.step1.ogtt_1.hint = 75g OGTT - 1 hr results (mg/dl) +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text = Dietary intervention recommended and referral to high level care. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text = Gestational Diabetes Mellitus (GDM) diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_type.label = Blood glucose test type +tests_blood_glucose_sub_form.step1.ogtt_2.hint = 75g OGTT - 2 hrs results (mg/dl) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err = Enter the result for the fasting plasma glucose test +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err = Select the date of the glucose test.. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text = The woman has Gestational Diabetes Mellitus (GDM) if her fasting plasma glucose is 92–125 mg/dL. \n\nOR\n\n- 75g OGTT - fasting glucose 92–125 mg/dL\n- 75g OGTT - 1 hr 180–199 mg/dL\n- 75g OGTT - 2 hrs 153–199 mg/dL +tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err = Enter the result for the 75g OGTT - fasting glucose (2 hr). +tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err = Enter the result for the initial 75g OGTT - fasting glucose. +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text = Diabetes Mellitus (DM) in pregnancy diagnosis! +tests_blood_glucose_sub_form.step1.glucose_test_status.label = Blood glucose test +tests_blood_glucose_sub_form.step1.random_plasma.hint = Random plasma glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint = Fasting plasma glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err = Enter a numeric value +tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err = Enter the result for the 75g OGTT - fasting glucose (1 hr). +tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text = Fasting plasma glucose +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title = Gestational Diabetes Mellitus (GDM) diagnosis! +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text = Woman with hyperglycemia - Recommend dietary intervention and refer to higher level care. +tests_blood_glucose_sub_form.step1.ogtt_fasting.hint = 75g OGTT - fasting glucose results (mg/dl) +tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text = Random plasma glucose diff --git a/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties b/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties new file mode 100644 index 000000000..9947430ce --- /dev/null +++ b/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties @@ -0,0 +1,47 @@ +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text = Complete blood count test (recommended) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text = Anaemia - Hb level of < 11 in first or third trimester or Hb level < 10.5 in second trimester.\n\nOR\n\nNo Hb test results recorded, but woman has pallor. +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text = Anaemia diagnosis! +tests_blood_haemoglobin_sub_form.step1.ht.hint = Hematocrit (Ht) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Specify any other reason why the blood haemoglobin test +tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Complete blood count test result (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Hb test (haemoglobin colour scale) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Anaemia diagnosis! +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Platelet count under 100,000. +tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Hb test result - haemoglobin colour scale (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Other (specify) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = White blood cell count too high! +tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title = Blood haemoglobin test type +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Expired +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Hematocrit levels too low! +tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Enter the White blood cell (WBC) count +tests_blood_haemoglobin_sub_form.step1.platelets.hint = Platelet count +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = White blood cell count above 16,000. +tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = Hb test type is required +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Hemotacrit levels less than 10.5. +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = HB test not done reason is required +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Reason +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Complete blood count test is the preferred method for testing for anaemia in pregnancy. If complete blood count test is not available, haemoglobinometer is recommended over haemoglobin colour scale. +tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint = Hb test result - haemoglobinometer (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint = Blood haemoglobin test date +tests_blood_haemoglobin_sub_form.step1.hb_test_status.label = Blood haemoglobin test +tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err = Enter the Platelet count value +tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label = Blood haemoglobin test type +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title = Platelet count too low! +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text = No supplies +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.ht.v_required.err = Enter the Hematocrit value +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint = Specify +tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err = Blood haemoglobin test date is required +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text = Platelet count too low! +tests_blood_haemoglobin_sub_form.step1.wbc.hint = White blood cell (WBC) count +tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err = Enter a numeric value +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err = Enter Hb test result - haemoglobinometer (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err = Enter Hb test result - haemoglobin colour scale (g/dl) +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Hematocrit levels too low! +tests_blood_haemoglobin_sub_form.step1.cbc.hint = Complete blood count test result (g/dl) (recommended) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = White blood cell count too high! +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Hb test (haemoglobinometer) diff --git a/reference-app/src/main/resources/tests_blood_type_sub_form.properties b/reference-app/src/main/resources/tests_blood_type_sub_form.properties new file mode 100644 index 000000000..a2b99b86d --- /dev/null +++ b/reference-app/src/main/resources/tests_blood_type_sub_form.properties @@ -0,0 +1,17 @@ +tests_blood_type_sub_form.step1.blood_type.options.b.text = B +tests_blood_type_sub_form.step1.blood_type_test_date.hint = Blood type test date +tests_blood_type_sub_form.step1.blood_type.options.o.text = O +tests_blood_type_sub_form.step1.blood_type.v_required.err = Please specify blood type +tests_blood_type_sub_form.step1.blood_type.label = Blood type +tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown.\n\n- Proceed with local protocol to investigate sensitization and the need for referral.\n\n- If Rh negative and non-sensitized, woman should receive anti- D prophylaxis postnatally if the baby is Rh positive. +tests_blood_type_sub_form.step1.rh_factor.label = Rh factor +tests_blood_type_sub_form.step1.blood_type.options.a.text = A +tests_blood_type_sub_form.step1.rh_factor_toaster.text = Rh factor negative counseling +tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Negative +tests_blood_type_sub_form.step1.rh_factor.v_required.err = Rh factor is required +tests_blood_type_sub_form.step1.blood_type_test_status.label = Blood type test +tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Date that the blood test was done. +tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positive +tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Blood type status is required +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Rh factor negative counseling diff --git a/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties b/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties new file mode 100644 index 000000000..6d3b753da --- /dev/null +++ b/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -0,0 +1,33 @@ +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Stock out +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Hep B positive diagnosis! +tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Hepatitis B test is required +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Hep B vaccination required anytime after 12 weeks gestation. +tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Hep B test type is required +tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = HBsAg rapid diagnostic test is required +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = HBsAg laboratory-based immunoassay (recommended) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = HBsAg rapid diagnostic test (RDT) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = (DBS) HBsAg test is required +tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Hep B test date +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Dried Blood Spot (DBS) HBsAg test +tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Hep B test type +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Hep B positive diagnosis! +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Expired stock +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Hep B vaccination required. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Other (specify) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Dried Blood Spot (DBS) HBsAg test +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Hepatitis B test not done reason is required +tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = Hep B test date is required +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = BsAg laboratory-based immunoassay is required +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = HBsAg laboratory-based immunoassay (recommended) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Hep B vaccination required. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive +tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Specify +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = HBsAg rapid diagnostic test (RDT) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negative +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Counselling and referral required. diff --git a/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties b/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties new file mode 100644 index 000000000..505d21ff5 --- /dev/null +++ b/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties @@ -0,0 +1,26 @@ +tests_hepatitis_c_sub_form.step1.hcv_dbs.label = Dried Blood Spot (DBS) anti-HCV test +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text = Hep C positive diagnosis! +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text = Expired stock +tests_hepatitis_c_sub_form.step1.hepc_test_date.hint = Hep C test date +tests_hepatitis_c_sub_form.step1.hepc_test_type.label = Hep C test type +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text = Anti-HCV laboratory-based immunoassay is the preferred method for testing for Hep C infection in pregnancy. If immunoassay is not available, Anti-HCV rapid diagnostic test (RDT) is recommended over Dried Blood Spot (DBS) Anti-HCV testing. +tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint = Specify +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label = Anti-HCV laboratory-based immunoassay (recommended) +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title = Hep C positive diagnosis! +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text = Anti-HCV laboratory-based immunoassay (recommended) +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title = Hep C test type +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text = Stock out +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text = Dried Blood Spot (DBS) anti-HCV test +tests_hepatitis_c_sub_form.step1.hcv_rdt.label = Anti-HCV rapid diagnostic test (RDT) +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text = Anti-HCV rapid diagnostic test (RDT) +tests_hepatitis_c_sub_form.step1.hepc_test_status.label = Hepatitis C test +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text = Other (specify) +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text = Positive +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label = Reason +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text = Counselling and referral required. +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text = Negative +tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err = Select the date of the Hepatitis C test. diff --git a/reference-app/src/main/resources/tests_hiv_sub_form.properties b/reference-app/src/main/resources/tests_hiv_sub_form.properties new file mode 100644 index 000000000..7642de9a4 --- /dev/null +++ b/reference-app/src/main/resources/tests_hiv_sub_form.properties @@ -0,0 +1,19 @@ +tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Please record the HIV test result +tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positive +tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Negative +tests_hiv_sub_form.step1.hiv_positive_toaster.text = HIV positive counseling +tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Other (specify) +tests_hiv_sub_form.step1.hiv_test_status.v_required.err = HIV test status is required +tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = HIV test inconclusive, refer for further testing. +tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = HIV not done reason is required! +tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Expired stock +tests_hiv_sub_form.step1.hiv_test_result.label = Record result +tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Specify +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Refer for further testing and confirmation\n- Refer for HIV services\n- Advise on opportunistic infections and need to seek medical help\n- Proceed with systematic screening for active TB +tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Inconclusive +tests_hiv_sub_form.step1.hiv_test_status.label = HIV test +tests_hiv_sub_form.step1.hiv_test_date.hint = HIV test date +tests_hiv_sub_form.step1.hiv_test_date.v_required.err = HIV test date is required. +tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Stock out +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = HIV positive counseling +tests_hiv_sub_form.step1.hiv_test_notdone.label = Reason diff --git a/reference-app/src/main/resources/tests_other_tests_sub_form.properties b/reference-app/src/main/resources/tests_other_tests_sub_form.properties new file mode 100644 index 000000000..313f47bfb --- /dev/null +++ b/reference-app/src/main/resources/tests_other_tests_sub_form.properties @@ -0,0 +1,4 @@ +tests_other_tests_sub_form.step1.other_test.label = Other test +tests_other_tests_sub_form.step1.other_test_date.hint = Test date +tests_other_tests_sub_form.step1.other_test_result.hint = Test result? +tests_other_tests_sub_form.step1.other_test_name.hint = Which test? diff --git a/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties b/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties new file mode 100644 index 000000000..edf77bf7f --- /dev/null +++ b/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties @@ -0,0 +1,12 @@ +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text = Inconclusive +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err = Test result is required +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint = Partner HIV test date +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err = Partner HIV test date required +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title = HIV risk counseling +tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label = Partner HIV test +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text = Positive +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text = Provide comprehensive HIV prevention options: \n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text = HIV risk counseling +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text = Negative +tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text = Partner HIV test inconclusive, refer partner for further testing. +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label = Record result diff --git a/reference-app/src/main/resources/tests_syphilis_sub_form.properties b/reference-app/src/main/resources/tests_syphilis_sub_form.properties new file mode 100644 index 000000000..eb9e8f554 --- /dev/null +++ b/reference-app/src/main/resources/tests_syphilis_sub_form.properties @@ -0,0 +1,30 @@ +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text = This area has a high prevalence of syphilis (5% or greater). +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title = Syphilis test positive +tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text = Stock out +tests_syphilis_sub_form.step1.syph_test_type.label = Syphilis test type +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text = Use an on-site rapid syphilis test (RST), and, if positive, provide the first dose of treatment. Then refer the woman for a rapid plasma reagin (RPR) test. If the RPR test is positive, provide treatment according to the clinical phase of syphilis. +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title = This area has a low prevalence of syphilis (below 5%) +tests_syphilis_sub_form.step1.lab_syphilis_test.label = Off-site lab test for syphilis +tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text = Other (specify) +tests_syphilis_sub_form.step1.syph_test_notdone_other.hint = Specify +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title = This area has a high prevalence of syphilis (5% or greater). +tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rpr_syphilis_test.label = Rapid plasma reagin (RPR) test +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text = This area has a low prevalence of syphilis (below 5%) +tests_syphilis_sub_form.step1.syphilis_test_date.hint = Syphilis test date +tests_syphilis_sub_form.step1.syph_test_notdone.label = Reason +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text = Positive +tests_syphilis_sub_form.step1.rapid_syphilis_test.label = Rapid syphilis test (RST) +tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text = Expired stock +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text = Negative +tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text = Off-site lab test +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text = Rapid plasma reagin test +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text = On-site rapid syphilis test (RST) should be used to test pregnant women for syphilis. +tests_syphilis_sub_form.step1.syphilis_danger_toaster.text = Syphilis test positive +tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err = Select the date of the syphilis test. +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text = Rapid syphilis test +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text = Provide counselling and treatment according to protocol. +tests_syphilis_sub_form.step1.syph_test_status.label = Syphilis test diff --git a/reference-app/src/main/resources/tests_tb_screening_sub_form.properties b/reference-app/src/main/resources/tests_tb_screening_sub_form.properties new file mode 100644 index 000000000..aacb43c40 --- /dev/null +++ b/reference-app/src/main/resources/tests_tb_screening_sub_form.properties @@ -0,0 +1,24 @@ +tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err = Tb screen result is required +tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text = Negative +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text = No sputum supplies available +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text = Machine not functioning +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text = Technician not available +tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint = Specify +tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err = TB screening status is required +tests_tb_screening_sub_form.step1.tb_screening_notdone.label = Reason +tests_tb_screening_sub_form.step1.tb_screening_status.label = TB screening +tests_tb_screening_sub_form.step1.tb_screening_result.label = Record result +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text = TB screening positive. +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text = Sputum culture not available +tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err = Please record the date TB screening was done +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text = Treat according to local protocol and/or refer for treatment. +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title = TB screening positive. +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text = GeneXpert machine not available +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text = Other (specify) +tests_tb_screening_sub_form.step1.tb_screening_date.hint = TB screening date +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text = Sputum smear not available +tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text = Inconclusive +tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text = Incomplete (only symptoms) +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text = X-ray machine not available +tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err = Reason why tb screen was not done is required +tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text = Positive diff --git a/reference-app/src/main/resources/tests_ultrasound_sub_form.properties b/reference-app/src/main/resources/tests_ultrasound_sub_form.properties new file mode 100644 index 000000000..779b09abf --- /dev/null +++ b/reference-app/src/main/resources/tests_ultrasound_sub_form.properties @@ -0,0 +1,37 @@ +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Specify +tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Date that the ultrasound was done. +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Specify any other reason. +tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fundal +tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Right side +tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Left side +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Not available +tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Low +tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pelvic +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Other (specify) +tests_ultrasound_sub_form.step1.ultrasound_date.hint = Ultrasound date +tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverse +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling +tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = If you need to update the woman's gestational age, please return to Profile, Current Pregnancy page. +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Early ultrasound done! +tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduced +tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior +tests_ultrasound_sub_form.step1.ultrasound.label = Ultrasound test +tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cephalic +tests_ultrasound_sub_form.step1.placenta_location.label = Placenta location +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Other +tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior +tests_ultrasound_sub_form.step1.no_of_fetuses.label = No. of fetuses +tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = No. of fetuses +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Delayed to next contact +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling +tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Increased +tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal +tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Please specify ultrasound not done +tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Praevia +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = An early U/S is key to estimate gestational age, improve detection of fetal anomalies and multiple fetuses, reduce induction of labour for post-term pregnancy, and improve a woman’s pregnancy experience. +tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Reason +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Early ultrasound done! +tests_ultrasound_sub_form.step1.fetal_presentation.label = Fetal presentation +tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. +tests_ultrasound_sub_form.step1.amniotic_fluid.label = Amniotic fluid diff --git a/reference-app/src/main/resources/tests_urine_sub_form.properties b/reference-app/src/main/resources/tests_urine_sub_form.properties new file mode 100644 index 000000000..a1678a209 --- /dev/null +++ b/reference-app/src/main/resources/tests_urine_sub_form.properties @@ -0,0 +1,61 @@ +tests_urine_sub_form.step1.urine_test_notdone_other.hint = Specify +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Midstream urine culture (recommended) +tests_urine_sub_form.step1.urine_test_type.label = Urine test type +tests_urine_sub_form.step1.urine_glucose.v_required.err = Field urine glucose is required +tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ +tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Urine dipstick results - leukocytes is required +tests_urine_sub_form.step1.urine_nitrites.options.+.text = + +tests_urine_sub_form.step1.urine_test_type.v_required.err = Urine test type is required +tests_urine_sub_form.step1.urine_culture.label = Midstream urine culture (recommended) +tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positive +tests_urine_sub_form.step1.urine_glucose.label = Urine dipstick result - glucose +tests_urine_sub_form.step1.urine_protein.label = Urine dipstick result - protein +tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Urine dipstick +tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ +tests_urine_sub_form.step1.urine_culture.options.negative.text = Negative +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = A woman is considered to have ASB if she has one of the following test results:\n\n- Positive culture (> 100,000 bacteria/mL)\n- Gram-staining positive\n- Urine dipstick test positive (nitrites or leukocytes)\n\nSeven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight. +tests_urine_sub_form.step1.urine_gram_stain.label = Midstream urine Gram-staining +tests_urine_sub_form.step1.urine_culture.v_required.err = Urine culture is required +tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text = Positive - Group B Streptococcus (GBS) +tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text = Expired stock +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling +tests_urine_sub_form.step1.urine_test_date.v_required.err = Select the date of the urine test.. +tests_urine_sub_form.step1.urine_nitrites.label = Urine dipstick result - nitrites +tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Other (specify) +tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.options.none.text = None +tests_urine_sub_form.step1.gbs_agent_note.text = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ +tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negative +tests_urine_sub_form.step1.urine_protein.v_required.err = Field urine protein is required +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Midstream urine Gram-staining +tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + +tests_urine_sub_form.step1.urine_test_status.v_required.err = Urine test status is required +tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Stock out +tests_urine_sub_form.step1.urine_test_status.label = Urine test +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +tests_urine_sub_form.step1.gdm_risk_toaster.text = Gestational diabetes mellitus (GDM) risk counseling +tests_urine_sub_form.step1.urine_protein.options.+.text = + +tests_urine_sub_form.step1.urine_protein.options.none.text = None +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +tests_urine_sub_form.step1.urine_test_notdone.label = Reason +tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.label = Urine dipstick result - leukocytes +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n - Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy +tests_urine_sub_form.step1.urine_nitrites.options.none.text = None +tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Pregnant women with Group B Streptococcus (GBS) colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. +tests_urine_sub_form.step1.urine_glucose.options.none.text = None +tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_nitrites.v_required.err = Urine dipstick results is required +tests_urine_sub_form.step1.urine_test_date.hint = Urine test date +tests_urine_sub_form.step1.asb_positive_toaster.text = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positive - any agent +tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Midstream urine Gram-staining is required +tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ +tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Reason for urine test not done is required +tests_urine_sub_form.step1.urine_glucose.options.+.text = + From 0386b8f5ba5070d02c74f02204bbb73456b88f08 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 8 Apr 2020 11:36:26 +0300 Subject: [PATCH 013/302] :zap: remove unused motheds & code lines --- opensrp-anc/build.gradle | 2 +- .../smartregister/anc/library/util/Utils.java | 21 ------------------- reference-app/build.gradle | 2 +- 3 files changed, 2 insertions(+), 23 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 767a90ec9..ca0f2d52a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.3100-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index cc338c867..cdc13120b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -95,27 +95,6 @@ public class Utils extends org.smartregister.util.Utils { public static void saveLanguage(String language) { Utils.getAllSharedPreferences().saveLanguagePreference(language); - Locale.setDefault(new Locale(language)); - //NativeFormLangUtils.setLocale(new Locale(language)); - } - - public static void setLocale(Locale locale) { - Resources resources = AncLibrary.getInstance().getApplicationContext().getResources(); - Configuration configuration = resources.getConfiguration(); - DisplayMetrics displayMetrics = resources.getDisplayMetrics(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { - configuration.setLocale(locale); - Locale.setDefault(locale); - AncLibrary.getInstance().getApplicationContext().createConfigurationContext(configuration); - } else { - Locale.setDefault(locale); - configuration.locale = locale; - resources.updateConfiguration(configuration, displayMetrics); - } - } - - public static String getLanguage() { - return Utils.getAllSharedPreferences().fetchLanguagePreference(); } public static void postEvent(BaseEvent event) { diff --git a/reference-app/build.gradle b/reference-app/build.gradle index fb96adf65..d58d9df6f 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.3100-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From a500ed12a099c9256b53c2d62a433d50c4399d87 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Wed, 8 Apr 2020 14:18:43 +0300 Subject: [PATCH 014/302] fix null GA fix required field counts --- gradle.properties | 2 +- .../activity/ContactJsonFormActivity.java | 10 +++++++++- .../library/activity/MainContactActivity.java | 17 ++++++++++++++++- .../task/LoadContactSummaryDataTask.java | 11 ++++++++++- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index c7ad97f6c..9039da1b4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.2-SNAPSHOT +VERSION_NAME=2.0.2.5-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 0a779f74f..772bf3b7b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -23,8 +23,8 @@ import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; import org.smartregister.anc.library.helper.AncRulesEngineFactory; import org.smartregister.anc.library.task.BackPressedPersistPartialTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import java.util.HashMap; import java.util.List; @@ -142,6 +142,14 @@ protected void checkBoxWriteValue(String stepName, String parentKey, String chil @Override public void onBackPressed() { + if (getmJSONObject().optString(JsonFormConstants.ENCOUNTER_TYPE).equals(ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE)) { + ContactWizardJsonFormFragment contactWizardJsonFormFragment = (ContactWizardJsonFormFragment) getVisibleFragment(); + contactWizardJsonFormFragment.getPresenter().validateAndWriteValues(); + Intent intent = new Intent(); + intent.putExtra("formInvalidFields", + getmJSONObject().optString(JsonFormConstants.ENCOUNTER_TYPE) + ":" + contactWizardJsonFormFragment.getPresenter().getInvalidFields().size()); + setResult(RESULT_OK, intent); + } new BackPressedPersistPartialTask(getContact(), this, getIntent(), currentJsonState()).execute(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 8ee32872e..5fd46a950 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.activity; import android.annotation.SuppressLint; +import android.content.Intent; import android.text.TextUtils; import android.view.View; import android.widget.TextView; @@ -20,9 +21,9 @@ import org.smartregister.anc.library.model.PartialContact; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.presenter.ContactPresenter; +import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; import org.smartregister.anc.library.util.Utils; @@ -58,6 +59,7 @@ public class MainContactActivity extends BaseContactActivity implements ContactC private String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT, ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS}; + private String formInvalidFields = null; @Override protected void onResume() { @@ -90,6 +92,12 @@ private void initializeMainContactContainers() { process(contactForms); requiredFieldsMap.put(ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS_ENCOUNTER_TYPE, 0); + if (StringUtils.isNotBlank(formInvalidFields) && contactNo > 1) { + String[] pair = formInvalidFields.split(":"); + if (ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(pair[0])) + requiredFieldsMap.put(pair[0], Integer.parseInt(pair[1])); + } + List contacts = new ArrayList<>(); Contact quickCheck = new Contact(); @@ -761,4 +769,11 @@ protected void onPause() { formGlobalValues.clear(); invisibleRequiredFields.clear(); } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK && data != null) { + formInvalidFields = data.getStringExtra("formInvalidFields"); + } + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java index 11c6e5ac1..bdb7e3191 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java @@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.ContactSummaryFinishActivity; @@ -16,6 +17,8 @@ import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; +import java.util.HashMap; + import timber.log.Timber; public class LoadContactSummaryDataTask extends AsyncTask { @@ -55,7 +58,13 @@ protected void onPreExecute() { @Override protected void onPostExecute(Void result) { - String edd = facts.get(DBConstantsUtils.KeyUtils.EDD); + HashMap clientDetails; + try { + clientDetails = (HashMap) intent.getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); + } catch (NullPointerException e) { + clientDetails = new HashMap<>(); + } + String edd = StringUtils.isNotBlank(facts.get(DBConstantsUtils.KeyUtils.EDD)) ? facts.get(DBConstantsUtils.KeyUtils.EDD) : Utils.reverseHyphenSeperatedValues(clientDetails.get(ConstantsUtils.EDD), "-"); String contactNo = String.valueOf(intent.getExtras().getInt(ConstantsUtils.IntentKeyUtils.CONTACT_NO)); if (edd != null && ((ContactSummaryFinishActivity) context).saveFinishMenuItem != null) { From 820c81d03e01a8c12a8eec75f3e04c21f9377812 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 9 Apr 2020 00:14:05 +0300 Subject: [PATCH 015/302] :zap: test out the forms translations --- opensrp-anc/build.gradle | 2 +- ...s => anc_counselling_treatment.properties} | 0 ...roperties => anc_physical_exam.properties} | 0 ...e_en.properties => anc_profile.properties} | 0 ....properties => anc_quick_check.properties} | 0 ..._en.properties => anc_register.properties} | 0 ...es => anc_site_characteristics.properties} | 0 ...ties => anc_symptoms_follow_up.properties} | 0 ...est._en.properties => anc_test.properties} | 0 reference-app/build.gradle | 2 +- .../abdominal_exam_sub_form.properties | 8 - .../anc_counselling_treatment_en.properties | 648 ------------------ .../resources/anc_physical_exam_en.properties | 169 ----- .../main/resources/anc_profile_en.properties | 317 --------- .../resources/anc_quick_check_en.properties | 65 -- .../main/resources/anc_register_en.properties | 31 - .../anc_site_characteristics_en.properties | 19 - .../anc_symptoms_follow_up_en.properties | 188 ----- .../src/main/resources/anc_test_en.properties | 57 -- .../resources/breast_exam_sub_form.properties | 10 - .../cardiac_exam_sub_form.properties | 11 - .../cervical_exam_sub_form.properties | 2 - .../fetal_heartbeat_sub_form.properties | 2 - .../oedema_present_sub_form.properties | 5 - .../resources/pelvic_exam_sub_form.properties | 17 - .../respiratory_exam_sub_form.properties | 10 - .../src/main/resources/robolectric.properties | 1 - .../tests_blood_glucose_sub_form.properties | 30 - ...ests_blood_haemoglobin_sub_form.properties | 47 -- .../tests_blood_type_sub_form.properties | 17 - .../tests_hepatitis_b_sub_form.properties | 33 - .../tests_hepatitis_c_sub_form.properties | 26 - .../resources/tests_hiv_sub_form.properties | 19 - .../tests_other_tests_sub_form.properties | 4 - .../tests_partner_hiv_sub_form.properties | 12 - .../tests_syphilis_sub_form.properties | 30 - .../tests_tb_screening_sub_form.properties | 24 - .../tests_ultrasound_sub_form.properties | 37 - .../resources/tests_urine_sub_form.properties | 61 -- 39 files changed, 2 insertions(+), 1902 deletions(-) rename opensrp-anc/src/main/resources/{anc_counselling_treatment_en.properties => anc_counselling_treatment.properties} (100%) rename opensrp-anc/src/main/resources/{anc_physical_exam_en.properties => anc_physical_exam.properties} (100%) rename opensrp-anc/src/main/resources/{anc_profile_en.properties => anc_profile.properties} (100%) rename opensrp-anc/src/main/resources/{anc_quick_check_en.properties => anc_quick_check.properties} (100%) rename opensrp-anc/src/main/resources/{anc_register_en.properties => anc_register.properties} (100%) rename opensrp-anc/src/main/resources/{anc_site_characteristics_en.properties => anc_site_characteristics.properties} (100%) rename opensrp-anc/src/main/resources/{anc_symptoms_follow_up_en.properties => anc_symptoms_follow_up.properties} (100%) rename opensrp-anc/src/main/resources/{anc_test._en.properties => anc_test.properties} (100%) delete mode 100644 reference-app/src/main/resources/abdominal_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/anc_counselling_treatment_en.properties delete mode 100644 reference-app/src/main/resources/anc_physical_exam_en.properties delete mode 100644 reference-app/src/main/resources/anc_profile_en.properties delete mode 100644 reference-app/src/main/resources/anc_quick_check_en.properties delete mode 100644 reference-app/src/main/resources/anc_register_en.properties delete mode 100644 reference-app/src/main/resources/anc_site_characteristics_en.properties delete mode 100644 reference-app/src/main/resources/anc_symptoms_follow_up_en.properties delete mode 100644 reference-app/src/main/resources/anc_test_en.properties delete mode 100644 reference-app/src/main/resources/breast_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/cardiac_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/cervical_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/fetal_heartbeat_sub_form.properties delete mode 100644 reference-app/src/main/resources/oedema_present_sub_form.properties delete mode 100644 reference-app/src/main/resources/pelvic_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/respiratory_exam_sub_form.properties delete mode 100644 reference-app/src/main/resources/robolectric.properties delete mode 100644 reference-app/src/main/resources/tests_blood_glucose_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_blood_type_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_hiv_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_other_tests_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_partner_hiv_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_syphilis_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_tb_screening_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_ultrasound_sub_form.properties delete mode 100644 reference-app/src/main/resources/tests_urine_sub_form.properties diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index ca0f2d52a..949afa43c 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3201-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_counselling_treatment_en.properties rename to opensrp-anc/src/main/resources/anc_counselling_treatment.properties diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_en.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_physical_exam_en.properties rename to opensrp-anc/src/main/resources/anc_physical_exam.properties diff --git a/opensrp-anc/src/main/resources/anc_profile_en.properties b/opensrp-anc/src/main/resources/anc_profile.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_profile_en.properties rename to opensrp-anc/src/main/resources/anc_profile.properties diff --git a/opensrp-anc/src/main/resources/anc_quick_check_en.properties b/opensrp-anc/src/main/resources/anc_quick_check.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_quick_check_en.properties rename to opensrp-anc/src/main/resources/anc_quick_check.properties diff --git a/opensrp-anc/src/main/resources/anc_register_en.properties b/opensrp-anc/src/main/resources/anc_register.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_register_en.properties rename to opensrp-anc/src/main/resources/anc_register.properties diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_en.properties b/opensrp-anc/src/main/resources/anc_site_characteristics.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_site_characteristics_en.properties rename to opensrp-anc/src/main/resources/anc_site_characteristics.properties diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_symptoms_follow_up_en.properties rename to opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties diff --git a/opensrp-anc/src/main/resources/anc_test._en.properties b/opensrp-anc/src/main/resources/anc_test.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_test._en.properties rename to opensrp-anc/src/main/resources/anc_test.properties diff --git a/reference-app/build.gradle b/reference-app/build.gradle index d58d9df6f..8282d6afa 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.3007-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.3201-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/resources/abdominal_exam_sub_form.properties b/reference-app/src/main/resources/abdominal_exam_sub_form.properties deleted file mode 100644 index fe9c4a492..000000000 --- a/reference-app/src/main/resources/abdominal_exam_sub_form.properties +++ /dev/null @@ -1,8 +0,0 @@ -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text = Painful decompression -abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint = Specify -abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err = Please enter valid content -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text = Other (specify) -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text = Pain on deep palpation -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text = Pain on superficial palpation -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text = Mass/tumour -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label = Abdominal exam: abnormal diff --git a/reference-app/src/main/resources/anc_counselling_treatment_en.properties b/reference-app/src/main/resources/anc_counselling_treatment_en.properties deleted file mode 100644 index 74b85147b..000000000 --- a/reference-app/src/main/resources/anc_counselling_treatment_en.properties +++ /dev/null @@ -1,648 +0,0 @@ -anc_counselling_treatment.step9.ifa_weekly.v_required.err = Please select and option -anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Please select and option -anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Done -anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Reason -anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Reason -anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -anc_counselling_treatment.step11.tt3_date.label_info_title = TT dose #3 -anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Other -anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Not done -anc_counselling_treatment.step11.tt3_date_done.v_required.err = Date for TT dose #3 is required -anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Please select and option -anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Reason -anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Not done -anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Specify -anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Not done -anc_counselling_treatment.step9.calcium.text = 0 -anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Do not give IPTp-SP, because woman is taking co-trimoxazole. -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Severe pre-eclampsia diagnosis -anc_counselling_treatment.step11.tt1_date.label = TT dose #1 -anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Done -anc_counselling_treatment.step3.heartburn_counsel.label = Diet and lifestyle changes to prevent and relieve heartburn counseling -anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Done -anc_counselling_treatment.step6.gdm_risk_counsel.label = Gestational diabetes mellitus (GDM) risk counseling -anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text = Not done -anc_counselling_treatment.step2.shs_counsel.label_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_counselling_treatment.step2.caffeine_counsel.options.done.text = Done -anc_counselling_treatment.step2.condom_counsel.label = Condom counseling -anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Reason -anc_counselling_treatment.step3.nausea_counsel.label = Non-pharma measures to relieve nausea and vomiting counseling -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_counselling_treatment.step10.deworm_notdone_other.hint = Specify -anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Please select and option -anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Reason -anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step5.hepc_positive_counsel.label = Hepatitis C positive counseling -anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital! -anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Please select and option -anc_counselling_treatment.step3.nausea_counsel_notdone.label = Reason -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Reason -anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Not done -anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Allergies -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Please select and option -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = Woman is ill -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Not done -anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Please select and option -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test -anc_counselling_treatment.step10.deworm_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Facility (elective C-section) -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Done -anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Done -anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Please select and option -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Please select and option -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = No stock -anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Gestational diabetes mellitus (GDM) risk counseling -anc_counselling_treatment.step10.deworm.options.done.text = Done -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Reason -anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Seeking care for danger signs counseling -anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = Woman did not accept -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risk of IPV includes any of the following:\n\n- Traumatic injury, particularly if repeated and with vague or implausible explanations;\n\n- An intrusive partner or husband present at consultations;\n\n- Multiple unintended pregnancies and/or terminations;\n\n- Delay in seeking ANC;\n\n- Adverse birth outcomes;\n\n- Repeated STIs;\n\n- Unexplained or repeated genitourinary symptoms;\n\n- Symptoms of depression and anxiety;\n\n- Alcohol or other substance use; or\n\n- Self-harm or suicidal feelings. -anc_counselling_treatment.step2.condom_counsel.label_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Reason -anc_counselling_treatment.step3.constipation_counsel.v_required.err = Please select and option -anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Done -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Pharmacological treatments for nausea and vomiting counseling -anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Caffeine reduction counseling -anc_counselling_treatment.step11.hepb2_date.v_required.err = Hep B dose #2 is required -anc_counselling_treatment.step11.tt3_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose -anc_counselling_treatment.step11.flu_date.options.not_done.text = Not done -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Reason -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. -anc_counselling_treatment.step10.iptp_sp3.label_info_title = IPTp-SP dose 3 -anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain -anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Partner HIV test recommended -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Please select and option -anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Not done -anc_counselling_treatment.step7.anc_contact_counsel.label = ANC contact schedule counseling -anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Please select and option -anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Done -anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) -anc_counselling_treatment.step11.hepb1_date.v_required.err = Hep B dose #1 is required -anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Done -anc_counselling_treatment.step10.iptp_sp1.label_info_title = IPTp-SP dose 1 -anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia -anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select and option -anc_counselling_treatment.step1.referred_hosp.options.no.text = No -anc_counselling_treatment.step1.title = Hospital Referral -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Please select and option -anc_counselling_treatment.step4.body_mass_toaster.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}. -anc_counselling_treatment.step5.hypertension_counsel.label = Hypertension counseling -anc_counselling_treatment.step10.deworm_notdone.hint = Reason -anc_counselling_treatment.step1.referred_hosp.label = Referred to hospital? -anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Reason -anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Diabetes counseling -anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Not done -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Syphilis counselling and further testing -anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Please select and option -anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Woman refused -anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = HIV positive counseling -anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital! -anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Vaginal ring -anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Counseling on going immediately to the hospital if severe danger signs -anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Not necessary -anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Not done -anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please select and option -anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done -anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm -anc_counselling_treatment.step11.tt1_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\n1-4 doses of TTCV in the past:\n\n- 1 dose scheme: Woman should receive one dose of TTCV during each subsequent pregnancy to a total of five doses (five doses protects throughout the childbearing years).\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose -anc_counselling_treatment.step11.hepb3_date.label = Hep B dose #3 -anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Done -anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] -anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Reason -anc_counselling_treatment.step3.nausea_counsel.options.done.text = Done -anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injectable -anc_counselling_treatment.step9.ifa_high_prev.label = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention -anc_counselling_treatment.step11.tt2_date.label_info_title = TT dose #2 -anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Done -anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Reason -anc_counselling_treatment.step11.tt1_date.v_required.err = TT dose #1 is required -anc_counselling_treatment.step11.hepb1_date.label = Hep B dose #1 -anc_counselling_treatment.step11.tt2_date.options.not_done.text = Not done -anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Abnormal pulse rate: {pulse_rate_repeat}bpm -anc_counselling_treatment.step7.delivery_place.options.facility.text = Facility -anc_counselling_treatment.step10.iptp_sp1.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. -anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.deworm_notdone.label = Reason -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step5.ifa_anaemia.label_info_text = If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] -anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Non-pharmacological treatment for the relief of leg cramps counseling -anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Done today -anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Wheat bran or other fiber supplements to relieve constipation counseling -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step10.malaria_counsel.options.done.text = Done -anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Reason -anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt2_date.v_required.err = TT dose #2 is required -anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = No vaccine available -anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Done -anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = Woman is ill -anc_counselling_treatment.step9.ifa_low_prev.label = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention -anc_counselling_treatment.step1.abn_breast_exam_toaster.text = Abnormal breast exam: {breast_exam_abnormal} -anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text = Pregnant women with GBS colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. -anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label = Syphilis counselling and treatment -anc_counselling_treatment.step10.iptp_sp_notdone.hint = Reason -anc_counselling_treatment.step9.ifa_low_prev.label_info_title = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid -anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Specify -anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Healthy eating and keeping physically active counseling -anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Reason -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Pre-eclampsia diagnosis -anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Please select and option -anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Treat according to local protocol and/or refer for treatment. -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital! -anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Done -anc_counselling_treatment.step2.shs_counsel_notdone.label = Reason -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Please select and option -anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Not done -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Rh factor negative counseling -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Reason -anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Done today -anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Please select and option -anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with blurred vision\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing -anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = ANC contact schedule counseling -anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital -anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Specify -anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Please select and option -anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Advise retesting and immunisation if ongoing risk or known exposure -anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Reason -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step9.vita_supp.options.done.text = Done -anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Diet and lifestyle changes to prevent and relieve heartburn counseling -anc_counselling_treatment.step5.hiv_positive_counsel.label = HIV positive counseling -anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Please select and option -anc_counselling_treatment.step1.low_oximetry_toaster.text = Low oximetry: {oximetry}% -anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Non-pharmacological options for varicose veins and oedema counseling -anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Not done -anc_counselling_treatment.step5.hepb_positive_counsel.label = Hepatitis B positive counseling -anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step10.malaria_counsel.label_info_title = Malaria prevention counseling -anc_counselling_treatment.step7.family_planning_type.options.none.text = None -anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Done -anc_counselling_treatment.step9.ifa_weekly.label_info_title = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid -anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Not done -anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation -anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step10.malaria_counsel.label_info_text = Sleeping under an insecticide-treated bednet and the importance of seeking care and getting treatment as soon as she has any symptoms. -anc_counselling_treatment.step6.hiv_prep_notdone.label = Reason -anc_counselling_treatment.step2.caffeine_counsel.label = Caffeine reduction counseling -anc_counselling_treatment.step4.increase_energy_counsel.label_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. \n\n[Protein and Energy Sources Folder] -anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Reason -anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Done -anc_counselling_treatment.step11.tt1_date.options.done_today.text = Done today -anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Specify -anc_counselling_treatment.step1.resp_distress_toaster.text = Respiratory distress: {respiratory_exam_abnormal} -anc_counselling_treatment.step12.prep_toaster.text = Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Zinc supplement\n\n- Multiple micronutrient supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement -anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Enter reason hospital referral was not done -anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_results.label = IPV enquiry results -anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Not done -anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Done -anc_counselling_treatment.step4.increase_energy_counsel.label = Increase daily energy and protein intake counseling -anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Hepatitis C positive counseling -anc_counselling_treatment.step11.tt1_date_done.v_required.err = Date for TT dose #1 is required -anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Abnormal cardiac exam: {cardiac_exam_abnormal} -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Reason -anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder] -anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Done -anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Please select and option -anc_counselling_treatment.step9.calcium_supp.v_required.err = Please select and option -anc_counselling_treatment.step2.condom_counsel_notdone.hint = Reason -anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Please select and option -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Not done -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Wheat bran or other fiber supplements to relieve constipation counseling -anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) -anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Done -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Reason -anc_counselling_treatment.step3.nausea_counsel.label_info_title = Non-pharma measures to relieve nausea and vomiting counseling -anc_counselling_treatment.step11.flu_date.label_info_title = Flu dose -anc_counselling_treatment.step11.woman_immunised_toaster.text = Woman is fully immunised against tetanus! -anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Not done -anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Reason Hep B was not given is required -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. -anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Please select and option -anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Not done -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb3_date_done.v_required.err = Date for Hep B dose #3 is required -anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = No drugs available -anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.calcium_supp.options.done.text = Done -anc_counselling_treatment.step9.vita_supp.options.not_done.text = Not done -anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text = Abnormal abdominal exam: {abdominal_exam_abnormal} -anc_counselling_treatment.step5.tb_positive_counseling.label_info_title = TB screening positive counseling -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title = Severe pre-eclampsia diagnosis -anc_counselling_treatment.step7.encourage_facility_toaster.text = Encourage delivery at a facility! -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. -anc_counselling_treatment.step1.fever_toaster.text = Fever: {body_temp_repeat}ºC -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_refer_toaster.text = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. -anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = No vaccine available -anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Please select and option -anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. -anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Please select and option -anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested. -anc_counselling_treatment.step11.tt3_date.label = TT dose #3 -anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Done -anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Please select and option -anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia. -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Pharmacological treatments for nausea and vomiting counseling -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = No stock -anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Reason -anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Done -anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = No action necessary -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Done -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan -anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Not done -anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Please select and option -anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Specify -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb2_date.label = Hep B dose #2 -anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Please select and option -anc_counselling_treatment.step9.calcium_supp.label = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) -anc_counselling_treatment.step5.asb_positive_counsel.label = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) -anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Woman refused -anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Woman refused -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms -anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Referred -anc_counselling_treatment.step3.constipation_counsel.label = Dietary modifications to relieve constipation counseling -anc_counselling_treatment.step10.iptp_sp2.label_info_title = IPTp-SP dose 2 -anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Please select and option -anc_counselling_treatment.step2.condom_counsel.options.done.text = Done -anc_counselling_treatment.step10.malaria_counsel_notdone.label = Reason -anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Allergies -anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Done today -anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Done -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Magnesium and calcium to relieve leg cramps counseling -anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Please select and option -anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Specify -anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Specify -anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Done -anc_counselling_treatment.step6.hiv_prep.label = PrEP for HIV prevention counseling -anc_counselling_treatment.step7.emergency_hosp_counsel.label = Counseling on going immediately to the hospital if severe danger signs -anc_counselling_treatment.step7.anc_contact_counsel.label_info_text = It is recommended that a woman sees a healthcare provider 8 times during pregnancy (this can change if the woman has any complications). This schedule shows when the woman should come in to be able to access all the important care and information. -anc_counselling_treatment.step5.title = Diagnoses -anc_counselling_treatment.step9.calcium_supp_notdone.hint = Reason -anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Specify -anc_counselling_treatment.step7.gbs_agent_counsel.label = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -anc_counselling_treatment.step8.ipv_enquiry.label = Clinical enquiry for intimate partner violence (IPV) -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Reason -anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital! -anc_counselling_treatment.step11.tt3_date.v_required.err = TT dose #3 is required -anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Sterilization (partner) -anc_counselling_treatment.step11.hepb2_date_done.hint = Date Hep B dose #2 was given. -anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Not done -anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Specify -anc_counselling_treatment.step10.deworm.v_required.err = Please select and option -anc_counselling_treatment.step5.diabetes_counsel.label = Diabetes counseling -anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Not done -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk -anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation -anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Done -anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Please select and option -anc_counselling_treatment.step2.shs_counsel.label_info_title = Second-hand smoke counseling -anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.vita_supp.v_required.err = Please select and option -anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers -anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Please select and option -anc_counselling_treatment.step7.family_planning_type.options.iud.text = IUD -anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Not done -anc_counselling_treatment.step2.shs_counsel.label = Second-hand smoke counseling -anc_counselling_treatment.step10.iptp_sp3.label = IPTp-SP dose 3 -anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = Done -anc_counselling_treatment.step10.iptp_sp2.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. -anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Specify -anc_counselling_treatment.step11.hepb3_date_done.hint = Date Hep B dose #3 was given. -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Reason -anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Hep B negative counseling and vaccination -anc_counselling_treatment.step3.varicose_vein_toaster.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema -anc_counselling_treatment.step7.birth_prep_counsel.label = Birth preparedness and complications readiness counseling -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = No fetal heartbeat observed -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint = Reason -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.flu_date.v_required.err = Flu dose is required -anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Reason -anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Abnormal pelvic exam: {pelvic_exam_abnormal} -anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Please select and option -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Please select and option -anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Birth preparedness and complications readiness counseling -anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Not done -anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Reason -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step3.constipation_counsel.options.done.text = Done -anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Not done -anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_weekly.label = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention -anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Not done -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt3_date_done.hint = Date TT dose #3 was given. -anc_counselling_treatment.step3.nausea_counsel.v_required.err = Please select and option -anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB -anc_counselling_treatment.step11.flu_date.label_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. -anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = Woman is immunised against flu! -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = No fetal heartbeat observed -anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Reason Flu dose was not done is required -anc_counselling_treatment.step10.deworm_notdone.v_required.err = Please select and option -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Pre-eclampsia diagnosis -anc_counselling_treatment.step5.tb_positive_counseling.label = TB screening positive counseling -anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.tt2_date.label = TT dose #2 -anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb_negative_note.label = Hep B negative counseling and vaccination -anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implant -anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = HIV risk counseling -anc_counselling_treatment.step2.shs_counsel.options.done.text = Done -anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Not done -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. -anc_counselling_treatment.step9.ifa_weekly_notdone.label = Reason -anc_counselling_treatment.step11.tt1_date.options.not_done.text = Not done -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label = Reason -anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Please select an option -anc_counselling_treatment.step9.vita_supp.label_info_text = Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder] -anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs -anc_counselling_treatment.step10.iptp_sp_toaster.text = Do not give IPTp-SP, because woman is taking co-trimoxazole. -anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Counseling:\n\n- Advice to reduce workload and to rest- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available -anc_counselling_treatment.step1.referred_hosp_notdone.label = Reason -anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Done -anc_counselling_treatment.step2.condom_counsel_notdone.label = Reason -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text = Not done -anc_counselling_treatment.step3.leg_cramp_counsel.label = Non-pharmacological treatment for the relief of leg cramps counseling -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. -anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Due to the population's high anaemia prevalence, a daily dose of 60 mg of elemental iron is preferred over a lower dose. A daily dose of 400 mcg (0.4 mg) folic acid is also recommended.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.ifa_weekly.options.done.text = Done -anc_counselling_treatment.step11.flu_date.label = Flu dose -anc_counselling_treatment.step11.hepb2_date_done.v_required.err = Date for Hep B dose #2 is required -anc_counselling_treatment.step9.vita_supp.label = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU -anc_counselling_treatment.step11.hepb1_date_done.hint = Date Hep B dose #1 was given. -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Reason -anc_counselling_treatment.step6.hiv_prep.label_info_text = Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework] -anc_counselling_treatment.step10.deworm.label_info_text = In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes. -anc_counselling_treatment.step11.tt2_date.options.done_today.text = Done today -anc_counselling_treatment.step11.tt3_date.options.not_done.text = Not done -anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = Woman is fully immunised against Hep B! -anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Treated -anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Reason -anc_counselling_treatment.step6.hiv_prep.options.done.text = Done -anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Not done -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Reason -anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step11.tt3_date.options.done_today.text = Done today -anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. -anc_counselling_treatment.step3.constipation_counsel.label_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). -anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy -anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! -anc_counselling_treatment.step1.referred_hosp.v_required.err = Please select and option -anc_counselling_treatment.step1.severe_hypertension_toaster.text = Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg -anc_counselling_treatment.step4.average_weight_toaster.text = Counseling on healthy eating and keeping physically active done! -anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Not done -anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Oral contraceptive -anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Tubal ligation -anc_counselling_treatment.step11.tt_dose_notdone.label = Reason -anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Not done -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Allergy -anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.iptp_sp_notdone.label = Reason -anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Please select and option -anc_counselling_treatment.step7.delivery_place.options.home.text = Home -anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Reason -anc_counselling_treatment.step4.eat_exercise_counsel.label = Healthy eating and keeping physically active counseling -anc_counselling_treatment.step10.iptp_sp3.options.done.text = Done -anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! -anc_counselling_treatment.step9.vita_supp_notdone.label = Reason -anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.iptp_sp3.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. -anc_counselling_treatment.step11.hepb1_date_done.v_required.err = Date for Hep B dose #1 is required -anc_counselling_treatment.step11.flu_date_done.hint = Date flu dose was given -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Done -anc_counselling_treatment.step9.ifa_low_prev.options.done.text = Done -anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! -anc_counselling_treatment.step7.breastfeed_counsel.label_info_title = Breastfeeding counseling -anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Not done -anc_counselling_treatment.step2.shs_counsel_notdone.hint = Reason -anc_counselling_treatment.step8.title = Intimate Partner Violence (IPV) -anc_counselling_treatment.step10.iptp_sp1.v_required.err = Please select and option -anc_counselling_treatment.step2.shs_counsel.v_required.err = Please select and option -anc_counselling_treatment.step3.varicose_oedema_counsel.label = Non-pharmacological options for varicose veins and oedema counseling -anc_counselling_treatment.step7.delivery_place.options.other.text = Other -anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_high_prev.label_info_title = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text = Side effects -anc_counselling_treatment.step7.danger_signs_counsel.label = Seeking care for danger signs counseling -anc_counselling_treatment.step4.increase_energy_counsel.label_info_title = Increase daily energy and protein intake counseling -anc_counselling_treatment.step10.iptp_sp1.label = IPTp-SP dose 1 -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text = Side effects -anc_counselling_treatment.step7.family_planning_type.label = FP method accepted -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step11.tt3_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step6.pe_risk_aspirin.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) for pre-eclampsia risk -anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title = Alcohol / substance use counseling -anc_counselling_treatment.step3.constipation_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.malaria_counsel.label = Malaria prevention counseling -anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step10.deworm.options.not_done.text = Not done -anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Not done -anc_counselling_treatment.step11.title = Immunizations -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Reason -anc_counselling_treatment.step7.breastfeed_counsel.label = Breastfeeding counseling -anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Expired -anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Please select and option -anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation -anc_counselling_treatment.step3.nausea_counsel.label_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Done -anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Done -anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.iptp_sp2.v_required.err = Please select and option -anc_counselling_treatment.step7.rh_negative_counsel.label = Rh factor negative counseling -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Syphilis counselling and further testing -anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Stock out -anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Not done -anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. -anc_counselling_treatment.step5.ifa_anaemia.label = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia -anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Allergy -anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = No vaccine available -anc_counselling_treatment.step10.iptp_sp2.options.done.text = Done -anc_counselling_treatment.step11.flu_dose_notdone.label = Reason -anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step2.title = Behaviour Counseling -anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.tt2_date_done.v_required.err = Date for TT dose #2 is required -anc_counselling_treatment.step2.tobacco_counsel.label = Tobacco cessation counseling -anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] -anc_counselling_treatment.step6.hiv_risk_counsel.label = HIV risk counseling -anc_counselling_treatment.step11.hepb3_date.v_required.err = Hep B dose #3 is required -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step2.condom_counsel.label_info_title = Condom counseling -anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Done -anc_counselling_treatment.step10.deworm.label = Prescribe single dose albendazole 400 mg or mebendazole 500 mg -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital. -anc_counselling_treatment.step9.vita_supp.label_info_title = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU -anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Please select and option -anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Allergies -anc_counselling_treatment.step11.flu_date.options.done_today.text = Done today -anc_counselling_treatment.step11.tt1_date_done.hint = Date TT dose #1 was given. -anc_counselling_treatment.step3.title = Physiological Symptoms Counseling -anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Hypertension counseling -anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.title = Nutrition Supplementation -anc_counselling_treatment.step2.alcohol_substance_counsel.label = Alcohol / substance use counseling -anc_counselling_treatment.step7.birth_plan_toaster.text = Woman should plan to give birth at a facility due to risk factors -anc_counselling_treatment.step10.malaria_counsel_notdone.hint = Reason -anc_counselling_treatment.step7.anc_contact_counsel.options.done.text = Done -anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Specify -anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step3.constipation_counsel_notdone.label = Reason -anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Please select and option -anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Fever: {body_temp_repeat}ºC -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Antacid preparations to relieve heartburn counseling -anc_counselling_treatment.step11.hepb_dose_notdone.label = Reason -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Side effects prevent woman from taking it -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Reason -anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Please select an option -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Antacid preparations to relieve heartburn counseling -anc_counselling_treatment.step4.title = Diet Counseling -anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Stock out -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = Woman is ill -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Reason -anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Please select and option -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Reason -anc_counselling_treatment.step9.calcium_supp_notdone.label = Reason -anc_counselling_treatment.step11.tt2_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose -anc_counselling_treatment.step12.title = Not Recommended -anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Done -anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Not done -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Reason -anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Hepatitis B positive counseling -anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Reason TT dose was not given is required -anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Done -anc_counselling_treatment.step7.title = Counseling -anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder] -anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Not done -anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_weekly.label_info_text = If daily iron is not acceptable due to side effects, provide intermittent iron and folic acid supplementation instead (120 mg of elemental iron and 2.8 mg of folic acid once weekly).\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] -anc_counselling_treatment.step2.tobacco_counsel.options.done.text = Done -anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text = Done -anc_counselling_treatment.step10.iptp_sp1.options.done.text = Done -anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text = Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia} -anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step6.hiv_prep_notdone_other.hint = Specify -anc_counselling_treatment.step5.ifa_anaemia.options.done.text = Done -anc_counselling_treatment.step10.iptp_sp2.label = IPTp-SP dose 2 -anc_counselling_treatment.step5.asb_positive_counsel.label_info_text = A seven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight neonates. -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint = Reason -anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text = Woman refused -anc_counselling_treatment.step9.vita_supp_notdone.hint = Reason -anc_counselling_treatment.step6.title = Risks -anc_counselling_treatment.step6.hiv_prep.label_info_title = PrEP for HIV prevention counseling -anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Done -anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Reason -anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint = Specify -anc_counselling_treatment.step3.constipation_counsel.label_info_title = Dietary modifications to relieve constipation counseling -anc_counselling_treatment.step1.danger_signs_toaster.text = Danger sign(s): {danger_signs} -anc_counselling_treatment.step6.prep_toaster.text = Partner HIV test recommended -anc_counselling_treatment.step1.referred_hosp_notdone.hint = Reason -anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt2_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step3.nausea_counsel.options.not_done.text = Not done -anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text = Not done -anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text = Risk factors necessitating a facility birth:\n- Age 17 or under\n- Primigravida\n- Parity 6 or higher\n- Prior C-section\n- Previous pregnancy complications: Heavy bleeding, Forceps or vacuum delivery, Convulsions, or 3rd or 4th degree tear\n- Vaginal bleeding\n- Multiple fetuses\n- Abnormal fetal presentation\n- HIV+\n- Wants IUD or tubal ligation following delivery -anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step10.title = Deworming & Malaria Prophylaxis -anc_counselling_treatment.step3.nausea_counsel_notdone.hint = Reason -anc_counselling_treatment.step11.flu_date.options.done_earlier.text = Done earlier -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint = Reason -anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step10.iptp_sp_notdone_other.hint = Specify -anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Balanced energy and protein dietary supplementation counseling -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step4.balanced_energy_counsel.label = Balanced energy and protein dietary supplementation counseling -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\n[Vitamin C folder]\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. -anc_counselling_treatment.step1.referred_hosp.options.yes.text = Yes -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Syphilis counselling and treatment -anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Reason -anc_counselling_treatment.step7.delivery_place.label = Planned birth place -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title = Magnesium and calcium to relieve leg cramps counseling -anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text = Done -anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label = Reason -anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = Procedure:\n\n- Check for fever, infection, respiratory distress, and arrhythmia\n\n- Refer for further investigation -anc_counselling_treatment.step7.family_planning_counsel.label = Postpartum family planning counseling -anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Tobacco cessation counseling -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Specify -anc_counselling_treatment.step11.tt2_date_done.hint = Date TT dose #2 was given. diff --git a/reference-app/src/main/resources/anc_physical_exam_en.properties b/reference-app/src/main/resources/anc_physical_exam_en.properties deleted file mode 100644 index 24e430154..000000000 --- a/reference-app/src/main/resources/anc_physical_exam_en.properties +++ /dev/null @@ -1,169 +0,0 @@ -anc_physical_exam.step3.respiratory_exam.label = Respiratory exam -anc_physical_exam.step3.body_temp_repeat.v_required.err = Please enter second body temperature -anc_physical_exam.step3.cardiac_exam.options.1.text = Not done -anc_physical_exam.step3.cervical_exam.label = Cervical exam done? -anc_physical_exam.step4.toaster29.text = Abnormal fetal heart rate. Refer to hospital. -anc_physical_exam.step1.height_label.text = Height (cm) -anc_physical_exam.step3.pelvic_exam.options.2.text = Normal -anc_physical_exam.step3.oedema_severity.v_required.err = Please enter the result for the dipstick test. -anc_physical_exam.step1.toaster6.toaster_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. -anc_physical_exam.step3.pelvic_exam.options.1.text = Not done -anc_physical_exam.step1.pregest_weight_label.v_required.err = Please enter pre-gestational weight -anc_physical_exam.step3.cardiac_exam.options.2.text = Normal -anc_physical_exam.step3.pulse_rate_label.text = Pulse rate (bpm) -anc_physical_exam.step4.fetal_presentation.label = Fetal presentation -anc_physical_exam.step3.toaster25.text = Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral. -anc_physical_exam.step2.toaster11.toaster_info_text = Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management. -anc_physical_exam.step3.pallor.options.yes.text = Yes -anc_physical_exam.step2.urine_protein.options.++++.text = ++++ -anc_physical_exam.step3.cardiac_exam.label = Cardiac exam -anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required -anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) -anc_physical_exam.step3.toaster24.text = Abnormal abdominal exam. Consider high level evaluation or referral. -anc_physical_exam.step3.body_temp_repeat.v_numeric.err = -anc_physical_exam.step1.height.v_required.err = Please enter the height -anc_physical_exam.step3.toaster21.toaster_info_text = Procedure:\n- Give oxygen\n- Refer urgently to hospital! -anc_physical_exam.step3.body_temp.v_required.err = Please enter body temperature -anc_physical_exam.step3.pelvic_exam.options.3.text = Abnormal -anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverse -anc_physical_exam.step2.bp_diastolic.v_required.err = Field diastolic is required -anc_physical_exam.step2.toaster13.toaster_info_text = Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital! -anc_physical_exam.step3.breast_exam.options.1.text = Not done -anc_physical_exam.step4.toaster27.text = No fetal heartbeat observed. Refer to hospital. -anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg. -anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) -anc_physical_exam.step2.urine_protein.options.+.text = + -anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH -anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available -anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Blurred vision -anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vomiting -anc_physical_exam.step1.toaster4.toaster_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy. -anc_physical_exam.step3.respiratory_exam.options.2.text = Normal -anc_physical_exam.step3.breast_exam.options.3.text = Abnormal -anc_physical_exam.step2.cant_record_bp_reason.v_required.err = Reason why SBP and DPB is cannot be done is required -anc_physical_exam.step3.abdominal_exam.options.2.text = Normal -anc_physical_exam.step4.no_of_fetuses_label.text = No. of fetuses -anc_physical_exam.step1.pregest_weight.v_numeric.err = -anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to record BP -anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required -anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other -anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = No. of fetuses unknown -anc_physical_exam.step3.oedema_severity.options.+++.text = +++ -anc_physical_exam.step4.fetal_heartbeat.label = Fetal heartbeat present? -anc_physical_exam.step1.toaster2.text = Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg -anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes rest. -anc_physical_exam.step3.cervical_exam.options.1.text = Done -anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Please enter result for the second fetal heart rate -anc_physical_exam.step3.toaster22.text = Abnormal cardiac exam. Refer urgently to the hospital! -anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = -anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) -anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation -anc_physical_exam.step3.oedema.options.yes.text = Yes -anc_physical_exam.step1.title = Height & Weight -anc_physical_exam.step2.urine_protein.options.++.text = ++ -anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Yes -anc_physical_exam.step4.toaster30.text = Pre-eclampsia risk counseling -anc_physical_exam.step3.pelvic_exam.label = Pelvic exam (visual) -anc_physical_exam.step4.fetal_presentation.options.other.text = Other -anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text = None -anc_physical_exam.step1.toaster6.toaster_info_title = Balanced energy and protein dietary supplementation counseling -anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text = Epigastric pain -anc_physical_exam.step4.sfh_label.text = Symphysis-fundal height (SFH) in centimetres (cm) -anc_physical_exam.step1.toaster5.toaster_info_title = Increase daily energy and protein intake counseling -anc_physical_exam.step2.toaster10.toaster_info_text = Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management. -anc_physical_exam.step2.toaster10.text = Severe hypertension! Refer urgently to hospital! -anc_physical_exam.step1.toaster4.toaster_info_title = Nutritional and Exercise Folder -anc_physical_exam.step3.pallor.options.no.text = No -anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text = BP cuff (sphygmomanometer) not available -anc_physical_exam.step4.fetal_heart_rate_label.v_required.err = Please specify if fetal heartbeat is present. -anc_physical_exam.step3.toaster18.text = Abnormal pulse rate. Refer for further investigation. -anc_physical_exam.step3.toaster15.text = Temperature of 38ºC or above! Measure temperature again. -anc_physical_exam.step4.fetal_heartbeat.options.no.text = No -anc_physical_exam.step4.fetal_presentation.options.unknown.text = Unknown -anc_physical_exam.step4.fetal_heartbeat.v_required.err = Please specify if fetal heartbeat is present. -anc_physical_exam.step1.current_weight.v_required.err = Please enter the current weight -anc_physical_exam.step2.bp_systolic_label.text = Systolic blood pressure (SBP) (mmHg) -anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = -anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = BP cuff (sphygmomanometer) is broken -anc_physical_exam.step3.abdominal_exam.label = Abdominal exam -anc_physical_exam.step4.fetal_presentation.v_required.err = Fetal representation field is required -anc_physical_exam.step2.bp_systolic_repeat_label.text = SBP after 10-15 minutes rest -anc_physical_exam.step3.oedema.label = Oedema present? -anc_physical_exam.step3.toaster20.text = Woman has respiratory distress. Refer urgently to the hospital! -anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseling. -anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ -anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. -anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling -anc_physical_exam.step2.bp_systolic.v_numeric.err = -anc_physical_exam.step2.urine_protein.options.none.text = None -anc_physical_exam.step2.cant_record_bp_reason.label = Reason -anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! -anc_physical_exam.step3.pallor.label = Pallor present? -anc_physical_exam.step4.fetal_movement.v_required.err = Please this field is required. -anc_physical_exam.step4.title = Fetal Assessment -anc_physical_exam.step4.fetal_movement.label = Fetal movement felt? -anc_physical_exam.step2.toaster8.text = Do urine dipstick test for protein. -anc_physical_exam.step4.fetal_heart_rate.v_required.err = Please specify if fetal heartbeat is present. -anc_physical_exam.step1.toaster6.text = Balanced energy and protein dietary supplementation counseling -anc_physical_exam.step2.toaster14.toaster_info_title = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. -anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = -anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre-eclampsia? -anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! -anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! -anc_physical_exam.step1.pregest_weight.v_required.err = Pre-gestational weight is required -anc_physical_exam.step2.urine_protein.options.+++.text = +++ -anc_physical_exam.step3.respiratory_exam.options.3.text = Abnormal -anc_physical_exam.step3.oedema_severity.options.++.text = ++ -anc_physical_exam.step1.pregest_weight_label.text = Pre-gestational weight (kg) -anc_physical_exam.step3.breast_exam.label = Breast exam -anc_physical_exam.step3.toaster19.text = Anaemia diagnosis! Haemoglobin (Hb) test recommended. -anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text = Dizziness -anc_physical_exam.step1.current_weight_label.text = Current weight (kg) -anc_physical_exam.step4.fetal_presentation.options.cephalic.text = Cephalic -anc_physical_exam.step3.body_temp_label.text = Temperature (ºC) -anc_physical_exam.step3.abdominal_exam.options.1.text = Not done -anc_physical_exam.step2.bp_diastolic_repeat_label.text = DBP after 10-15 minutes rest -anc_physical_exam.step3.oedema_severity.label = Oedema severity -anc_physical_exam.step1.toaster4.text = Healthy eating and keeping physically active counseling -anc_physical_exam.step4.fetal_presentation.options.pelvic.text = Pelvic -anc_physical_exam.step3.toaster16.toaster_info_text = Procedure:\n- Insert an IV line\n- Give fluids slowly\n- Refer urgently to hospital! -anc_physical_exam.step2.toaster11.text = Symptom(s) of severe pre-eclampsia! Refer urgently to hospital! -anc_physical_exam.step2.toaster14.text = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. -anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Please specify any other symptoms or select none -anc_physical_exam.step3.body_temp.v_numeric.err = -anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Pre-gestational weight unknown -anc_physical_exam.step2.title = Blood Pressure -anc_physical_exam.step2.urine_protein.v_required.err = Please enter the result for the dipstick test. -anc_physical_exam.step4.toaster30.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_physical_exam.step2.toaster14.toaster_info_text = Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan -anc_physical_exam.step3.cervical_exam.options.2.text = Not done -anc_physical_exam.step1.height.v_numeric.err = -anc_physical_exam.step3.oximetry_label.text = Oximetry (%) -anc_physical_exam.step2.bp_diastolic_label.text = Diastolic blood pressure (DBP) (mmHg) -anc_physical_exam.step2.urine_protein.label = Urine dipstick result - protein -anc_physical_exam.step3.respiratory_exam.options.1.text = Not done -anc_physical_exam.step4.fetal_heart_rate_label.text = Fetal heart rate (bpm) -anc_physical_exam.step1.toaster5.toaster_info_text = Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. -anc_physical_exam.step4.fetal_movement.options.no.text = No -anc_physical_exam.step3.abdominal_exam.options.3.text = Abnormal -anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk counseling -anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache -anc_physical_exam.step3.oedema_severity.options.+.text = + -anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. -anc_physical_exam.step3.pulse_rate.v_numeric.err = -anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate -anc_physical_exam.step2.bp_diastolic.v_numeric.err = -anc_physical_exam.step1.current_weight.v_numeric.err = -anc_physical_exam.step3.title = Maternal Exam -anc_physical_exam.step3.toaster19.toaster_info_text = Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor. -anc_physical_exam.step4.fetal_movement.options.yes.text = Yes -anc_physical_exam.step1.toaster3.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n- Reasserting dietary interventions\n- Reasserting physical activity during pregnancy -anc_physical_exam.step4.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. -anc_physical_exam.step3.pulse_rate_repeat.v_required.err = Please enter repeated pulse rate -anc_physical_exam.step3.cardiac_exam.options.3.text = Abnormal -anc_physical_exam.step3.toaster23.text = Abnormal breast exam. Refer for further investigation. -anc_physical_exam.step3.toaster26.text = Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks). -anc_physical_exam.step3.breast_exam.options.2.text = Normal -anc_physical_exam.step2.bp_systolic.v_required.err = Field systolic is required -anc_physical_exam.step3.oedema.options.no.text = No -anc_physical_exam.step4.toaster27.toaster_info_text = Procedure:\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n- Refer to hospital. diff --git a/reference-app/src/main/resources/anc_profile_en.properties b/reference-app/src/main/resources/anc_profile_en.properties deleted file mode 100644 index 668afae02..000000000 --- a/reference-app/src/main/resources/anc_profile_en.properties +++ /dev/null @@ -1,317 +0,0 @@ -anc_profile.step1.occupation.options.other.text = Other (specify) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 48 pieces (squares) of chocolate -anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_done.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy -anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Hep B testing recommended -anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) -anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required -anc_profile.step3.prev_preg_comps_other.hint = Specify -anc_profile.step6.medications.options.antibiotics.text = Other antibiotics -anc_profile.step6.medications.options.aspirin.text = Aspirin -anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide -anc_profile.step2.sfh_gest_age_selection.label = -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine / Crack -anc_profile.step5.hepb_immun_status.v_required.err = Please select Hep B immunisation status -anc_profile.step8.partner_hiv_status.label = Partner HIV status -anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended -anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) -anc_profile.step1.occupation.options.formal_employment.text = Formal employment -anc_profile.step3.substances_used.options.marijuana.text = Marijuana -anc_profile.step2.lmp_gest_age_selection.label = -anc_profile.step2.lmp_known.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step7.other_substance_use.hint = Specify -anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems -anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia -anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age -anc_profile.step1.educ_level.options.secondary.text = Secondary -anc_profile.step5.title = Immunisation Status -anc_profile.step3.gravida.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? -anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) -anc_profile.step4.allergies.label = Any allergies? -anc_profile.step6.medications.options.folic_acid.text = Folic Acid -anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive -anc_profile.step2.ultrasound_gest_age_selection.label = -anc_profile.step7.condom_counseling_toaster.text = Condom counseling -anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused -anc_profile.step6.medications_other.hint = Specify -anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required -anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) -anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems -anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) -anc_profile.step8.partner_hiv_status.options.negative.text = Negative -anc_profile.step7.caffeine_intake.options.none.text = None of the above -anc_profile.step4.title = Medical History -anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions -anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days -anc_profile.step3.substances_used.label = Specify illicit substance use -anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling -anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage -anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling -anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused -anc_profile.step3.c_sections.v_required.err = C-sections is required -anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures -anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = 3rd or 4th degree tear -anc_profile.step4.allergies.options.folic_acid.text = Folic acid -anc_profile.step6.medications.options.other.text = Other (specify) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs -anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials -anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso -anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days -anc_profile.step2.ultrasound_done.options.yes.text = Yes -anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling -anc_profile.step1.occupation.hint = Occupation -anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) -anc_profile.step7.caffeine_intake.label = Daily caffeine intake -anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) -anc_profile.step5.flu_immun_status.label = Flu immunisation status -anc_profile.step2.sfh_ultrasound_gest_age_selection.label = -anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? -anc_profile.step1.occupation_other.v_required.err = Please specify your occupation -anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) -anc_profile.step1.educ_level.options.higher.text = Higher -anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use -anc_profile.step6.medications.label = Current medications -anc_profile.step6.medications.options.magnesium.text = Magnesium -anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic -anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) -anc_profile.step1.educ_level.v_required.err = Please specify your education level -anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses -anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling -anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products -anc_profile.step3.substances_used.options.other.text = Other (specify) -anc_profile.step6.medications.options.calcium.text = Calcium -anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. -anc_profile.step6.title = Medications -anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication -anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling -anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step4.surgeries.options.dont_know.text = Don't know -anc_profile.step6.medications.v_required.err = Please select at least one medication -anc_profile.step1.occupation.options.student.text = Student -anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs -anc_profile.step5.flu_immun_status.options.unknown.text = Unknown -anc_profile.step7.alcohol_substance_enquiry.options.no.text = No -anc_profile.step4.surgeries.label = Any surgeries? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Seasonal flu dose given -anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive -anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know -anc_profile.step5.tt_immun_status.options.unknown.text = Unknown -anc_profile.step5.flu_immun_status.v_required.err = Please select Hep B immunisation status -anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes -anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended -anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_profile.step1.marital_status.options.divorced.text = Divorced / separated -anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses of TTCV in past 5 years -anc_profile.step8.title = Partner's HIV Status -anc_profile.step4.allergies.options.iron.text = Iron -anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) -anc_profile.step6.medications.options.multivitamin.text = Multivitamin -anc_profile.step7.shs_exposure.options.no.text = No -anc_profile.step1.educ_level.options.dont_know.text = Don't know -anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling -anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling -anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy -anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required -anc_profile.step4.allergies.v_required.err = Please select at least one allergy -anc_profile.step4.surgeries.options.none.text = None -anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV not received -anc_profile.step5.hepb_immun_status.options.unknown.text = Unknown -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps or vacuum delivery -anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended -anc_profile.step5.hepb_immun_status.options.not_received.text = Not received -anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use -anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step3.substances_used_other.hint = Specify -anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products -anc_profile.step6.medications.options.antitussive.text = Antitussive -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) -anc_profile.step5.tt_immun_status.label = TT immunisation status -anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TT immunisation recommended -anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana -anc_profile.step4.allergies.options.calcium.text = Calcium -anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks -anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee -anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status -anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) -anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use -anc_profile.step2.lmp_known.options.yes.text = Yes -anc_profile.step2.lmp_known.label_info_title = LMP known? -anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) -anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text = Chamomile -anc_profile.step2.lmp_known.label = LMP known? -anc_profile.step3.live_births.v_required.err = Live births is required -anc_profile.step7.condom_use.options.no.text = No -anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth -anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures -anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation -anc_profile.step1.marital_status.label = Marital status -anc_profile.step7.title = Woman's Behaviour -anc_profile.step4.surgeries_other.hint = Other surgeries -anc_profile.step3.substances_used.options.cocaine.text = Cocaine / Crack -anc_profile.step1.educ_level.options.primary.text = Primary -anc_profile.step4.health_conditions.options.other.text = Other (specify) -anc_profile.step6.medications_other.v_required.err = Please specify the Other medications -anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling -anc_profile.step1.educ_level.options.none.text = None -anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Hep B testing is recommended for at risk women who are not already fully immunised against Hep B. -anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions -anc_profile.step7.alcohol_substance_use.options.none.text = None -anc_profile.step7.tobacco_user.options.yes.text = Yes -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups (200 ml) of filtered or commercially brewed coffee -anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) -anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment -anc_profile.step6.medications.options.none.text = None -anc_profile.step2.ultrasound_done.label = Ultrasound done? -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step6.medications.options.iron.text = Iron -anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease -anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling -anc_profile.step4.health_conditions.options.diabetes.text = Diabetes -anc_profile.step1.occupation_other.hint = Specify -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step1.marital_status.v_required.err = Please specify your marital status -anc_profile.step8.partner_hiv_status.v_required.err = Please select one -anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step3.prev_preg_comps.options.none.text = None -anc_profile.step4.allergies.options.dont_know.text = Don't know -anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling -anc_profile.step4.allergies.hint = Any allergies? -anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes -anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date -anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment -anc_profile.step4.surgeries.hint = Any surgeries? -anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts -anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? -anc_profile.step7.tobacco_user.label = Uses tobacco products? -anc_profile.step1.occupation.label = Occupation -anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products -anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know -anc_profile.step6.medications.options.hematinic.text = Hematinic -anc_profile.step3.c_sections_label.text = No. of C-sections -anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions -anc_profile.step5.hepb_immun_status.options.incomplete.text = Incomplete -anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol -anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required -anc_profile.step4.allergies.options.albendazole.text = Albendazole -anc_profile.step5.tt_immunisation_toaster.text = TT immunisation recommended -anc_profile.step1.educ_level.label = Highest level of school -anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling -anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes -anc_profile.step4.allergies.options.penicillin.text = Penicillin -anc_profile.step1.occupation.options.unemployed.text = Unemployed -anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required -anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) -anc_profile.step5.hepb_immun_status.label = Hep B immunisation status -anc_profile.step1.marital_status.options.widowed.text = Widowed -anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? -anc_profile.step4.health_conditions_other.hint = Specify -anc_profile.step6.medications.options.antivirals.text = Antivirals -anc_profile.step6.medications.options.antacids.text = Antacids -anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling -anc_profile.step3.title = Obstetric History -anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! -anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling -anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused -anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) -anc_profile.step4.health_conditions.label = Any chronic or past health conditions? -anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries -anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know -anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required -anc_profile.step4.health_conditions.options.dont_know.text = Don't know -anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? -anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease -anc_profile.step6.medications.options.vitamina.text = Vitamin A -anc_profile.step6.medications.options.dont_know.text = Don't know -anc_profile.step7.condom_use.options.yes.text = Yes -anc_profile.step4.health_conditions.options.cancer.text = Cancer -anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Seasonal flu dose missing -anc_profile.step4.allergies_other.hint = Specify -anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step7.caffeine_intake.hint = Daily caffeine intake -anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks -anc_profile.step4.allergies.options.other.text = Other (specify) -anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries -anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks -anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step4.allergies.options.none.text = None -anc_profile.step3.stillbirths.v_required.err = Still births is required -anc_profile.step7.tobacco_user.options.no.text = No -anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems -anc_profile.step1.marital_status.options.married.text = Married or living together -anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date -anc_profile.step7.shs_exposure.options.yes.text = Yes -anc_profile.step5.hep_b_testing_recommended_toaster.text = Hep B testing recommended -anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. -anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) -anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date -anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Informal employment (sex worker) -anc_profile.step4.allergies.options.mebendazole.text = Mebendazole -anc_profile.step7.condom_use.label = Uses condoms during sex? -anc_profile.step1.occupation.v_required.err = Please select at least one occupation -anc_profile.step6.medications.options.analgesic.text = Analgesic -anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits -anc_profile.step5.fully_hep_b_immunised_toaster.text = Woman is fully immunised against Hep B! -anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) -anc_profile.step8.partner_hiv_status.options.positive.text = Positive -anc_profile.step4.allergies.options.ginger.text = Ginger -anc_profile.step2.title = Current Pregnancy -anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses of TTCV in the past -anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia -anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! -anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) -anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate -anc_profile.step4.health_conditions.options.none.text = None -anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step6.medications.options.asthma.text = Asthma -anc_profile.step6.medications.options.doxylamine.text = Doxylamine -anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use -anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. -anc_profile.step3.last_live_birth_preterm.options.no.text = No -anc_profile.step3.stillbirths_label.v_required.err = Still births is required -anc_profile.step4.health_conditions.options.hypertension.text = Hypertension -anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus. -anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole -anc_profile.step6.medications.options.thyroid.text = Thyroid medication -anc_profile.step1.title = Demographic Info -anc_profile.step2.lmp_ultrasound_gest_age_selection.label = -anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? -anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? -anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). -anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended diff --git a/reference-app/src/main/resources/anc_quick_check_en.properties b/reference-app/src/main/resources/anc_quick_check_en.properties deleted file mode 100644 index 38c0bad6e..000000000 --- a/reference-app/src/main/resources/anc_quick_check_en.properties +++ /dev/null @@ -1,65 +0,0 @@ -anc_quick_check.step1.specific_complaint.options.dizziness.text = Dizziness -anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Domestic violence -anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Other bleeding -anc_quick_check.step1.specific_complaint.options.depression.text = Depression -anc_quick_check.step1.specific_complaint.options.heartburn.text = Heartburn -anc_quick_check.step1.specific_complaint.options.other_specify.text = Other (specify) -anc_quick_check.step1.specific_complaint.options.oedema.text = Oedema -anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions -anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Leg cramps -anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Other psychological symptoms -anc_quick_check.step1.specific_complaint.options.fever.text = Fever -anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Scheduled contact -anc_quick_check.step1.danger_signs.options.severe_headache.text = Severe headache -anc_quick_check.step1.danger_signs.options.danger_fever.text = Fever -anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Looks very ill -anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Visual disturbance -anc_quick_check.step1.specific_complaint.options.leg_redness.text = Leg redness -anc_quick_check.step1.specific_complaint_other.hint = Specify -anc_quick_check.step1.specific_complaint.options.tiredness.text = Tiredness -anc_quick_check.step1.danger_signs.options.severe_pain.text = Severe pain -anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation -anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Central cyanosis -anc_quick_check.step1.specific_complaint_other.v_regex.err = Please enter valid content -anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Other skin disorder -anc_quick_check.step1.danger_signs.options.danger_none.text = None -anc_quick_check.step1.specific_complaint.label = Specific complaint(s) -anc_quick_check.step1.specific_complaint.options.leg_pain.text = Leg pain -anc_quick_check.step1.title = Quick Check -anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Reduced or poor fetal movement -anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Bleeding vaginally -anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Full abdominal pain -anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge -anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Other types of violence -anc_quick_check.step1.specific_complaint.options.other_pain.text = Other pain -anc_quick_check.step1.specific_complaint.options.anxiety.text = Anxiety -anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Extreme pelvic pain - can't walk (symphysis pubis dysfunction) -anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Pelvic pain -anc_quick_check.step1.specific_complaint.options.bleeding.text = Vaginal bleeding -anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Changes in blood pressure -anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Shortness of breath -anc_quick_check.step1.specific_complaint.v_required.err = Specific complain is required -anc_quick_check.step1.contact_reason.v_required.err = Reason for coming to facility is required -anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss -anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Severe abdominal pain -anc_quick_check.step1.contact_reason.label = Reason for coming to facility -anc_quick_check.step1.danger_signs.label = Danger signs -anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Low back pain -anc_quick_check.step1.specific_complaint.options.trauma.text = Trauma -anc_quick_check.step1.danger_signs.options.unconscious.text = Unconscious -anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaundice -anc_quick_check.step1.danger_signs.options.labour.text = Labour -anc_quick_check.step1.specific_complaint.options.headache.text = Headache -anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Visual disturbance -anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Imminent delivery -anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus -anc_quick_check.step1.specific_complaint.options.cough.text = Cough -anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain during urination (dysuria) -anc_quick_check.step1.contact_reason.options.first_contact.text = First contact -anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Flu symptoms -anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea / vomiting / diarrhea -anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = No fetal movement -anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsing -anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Severe vomiting -anc_quick_check.step1.contact_reason.options.specific_complaint.text = Specific complaint -anc_quick_check.step1.danger_signs.v_required.err = Danger signs is required diff --git a/reference-app/src/main/resources/anc_register_en.properties b/reference-app/src/main/resources/anc_register_en.properties deleted file mode 100644 index 072478062..000000000 --- a/reference-app/src/main/resources/anc_register_en.properties +++ /dev/null @@ -1,31 +0,0 @@ -anc_register.step1.dob_unknown.options.dob_unknown.text = DOB unknown? -anc_register.step1.reminders.options.no.text = No -anc_register.step1.reminders.label = Woman wants to receive reminders during pregnancy -anc_register.step1.dob_entered.v_required.err = Please enter the date of birth -anc_register.step1.home_address.hint = Home address -anc_register.step1.alt_name.v_regex.err = Please enter a valid VHT name -anc_register.step1.anc_id.hint = ANC ID -anc_register.step1.alt_phone_number.v_numeric.err = Phone number must be numeric -anc_register.step1.age_entered.v_numeric.err = Age must be a number -anc_register.step1.phone_number.hint = Mobile phone number -anc_register.step1.last_name.v_required.err = Please enter the last name -anc_register.step1.last_name.v_regex.err = Please enter a valid name -anc_register.step1.first_name.v_required.err = Please enter the first name -anc_register.step1.dob_entered.hint = Date of birth (DOB) -anc_register.step1.age_entered.hint = Age -anc_register.step1.reminders.label_info_text = Does she want to receive reminders for care and messages regarding her health throughout her pregnancy? -anc_register.step1.title = ANC Registration -anc_register.step1.anc_id.v_numeric.err = Please enter a valid ANC ID -anc_register.step1.alt_name.hint = Alternate contact name -anc_register.step1.home_address.v_required.err = Please enter the woman's home address -anc_register.step1.first_name.hint = First name -anc_register.step1.alt_phone_number.hint = Alternate contact phone number -anc_register.step1.reminders.v_required.err = Please select whether the woman has agreed to receiving reminder notifications -anc_register.step1.first_name.v_regex.err = Please enter a valid name -anc_register.step1.reminders.options.yes.text = Yes -anc_register.step1.phone_number.v_numeric.err = Phone number must be numeric -anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID -anc_register.step1.last_name.hint = Last name -anc_register.step1.age_entered.v_required.err = Please enter the woman's age -anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number -anc_register.step1.dob_entered.duration.label = Age diff --git a/reference-app/src/main/resources/anc_site_characteristics_en.properties b/reference-app/src/main/resources/anc_site_characteristics_en.properties deleted file mode 100644 index 97ce4f108..000000000 --- a/reference-app/src/main/resources/anc_site_characteristics_en.properties +++ /dev/null @@ -1,19 +0,0 @@ -anc_site_characteristics.step1.title = Site Characteristics -anc_site_characteristics.step1.site_ultrasound.options.0.text = No -anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Are all of the following in place at your facility: -anc_site_characteristics.step1.site_ultrasound.label = 3. Is an ultrasound machine available and functional at your facility and a trained health worker available to use it? -anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Please select where stock was issued -anc_site_characteristics.step1.site_bp_tool.options.0.text = No -anc_site_characteristics.step1.site_ultrasound.options.1.text = Yes -anc_site_characteristics.step1.site_bp_tool.v_required.err = Please select where stock was issued -anc_site_characteristics.step1.site_anc_hiv.options.1.text = Yes -anc_site_characteristics.step1.site_bp_tool.options.1.text = Yes -anc_site_characteristics.step1.site_ipv_assess.v_required.err = Please select where stock was issued -anc_site_characteristics.step1.site_ipv_assess.label = a. A protocol or standard operating procedure for Intimate Partner Violence (IPV)

b. A health worker trained on how to ask about IPV and how to provide the minimum response or beyond

c. A private setting

d. A way to ensure confidentiality

e. Time to allow for appropriate disclosure

f. A system for referral in place. -anc_site_characteristics.step1.site_anc_hiv.options.0.text = No -anc_site_characteristics.step1.site_anc_hiv.label = 2. Is the HIV prevalence consistently greater than 1% in pregnant women attending antenatal clinics at your facility? -anc_site_characteristics.step1.site_ipv_assess.options.0.text = No -anc_site_characteristics.step1.site_ipv_assess.options.1.text = Yes -anc_site_characteristics.step1.site_anc_hiv.v_required.err = Please select where stock was issued -anc_site_characteristics.step1.site_ultrasound.v_required.err = Please select where stock was issued -anc_site_characteristics.step1.site_bp_tool.label = 4. Does your facility use an automated blood pressure (BP) measurement tool? diff --git a/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties b/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties deleted file mode 100644 index 94cc1b09d..000000000 --- a/reference-app/src/main/resources/anc_symptoms_follow_up_en.properties +++ /dev/null @@ -1,188 +0,0 @@ -anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contractions -anc_symptoms_follow_up.step4.other_symptoms_other.hint = Specify -anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Oedema -anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none -anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step2.toaster0.text = Caffeine reduction counseling -anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none -anc_symptoms_follow_up.step2.title = Previous Behaviour -anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Low back pain -anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anti-convulsive -anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = None -anc_symptoms_follow_up.step4.toaster18.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_symptoms_follow_up.step3.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? -anc_symptoms_follow_up.step3.toaster5.text = Pharmacological treatments for nausea and vomiting counseling -anc_symptoms_follow_up.step3.toaster11.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. -anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussive -anc_symptoms_follow_up.step1.medications.options.dont_know.text = Don't know -anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. -anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = None -anc_symptoms_follow_up.step1.calcium_effects.options.no.text = No -anc_symptoms_follow_up.step3.toaster13.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema -anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Hemorrhoidal medication -anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Yes -anc_symptoms_follow_up.step2.toaster1.text = Tobacco cessation counseling -anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Leg cramps -anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Headache -anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = None -anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabetic -anc_symptoms_follow_up.step4.toaster19.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain -anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Other antibiotics -anc_symptoms_follow_up.step4.title = Physiological Symptoms -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Oedema -anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Other (specify) -anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_symptoms_follow_up.step1.medications.options.calcium.text = Calcium -anc_symptoms_follow_up.step1.medications_other.hint = Specify -anc_symptoms_follow_up.step3.toaster7.toaster_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. -anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Fever -anc_symptoms_follow_up.step2.behaviour_persist.label = Which of the following behaviours persist? -anc_symptoms_follow_up.step4.toaster16.text = Non-pharmacological treatment for the relief of leg cramps counseling -anc_symptoms_follow_up.step4.toaster21.text = Non-pharmacological options for varicose veins and oedema counseling -anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = No -anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Substance use -anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Fever -anc_symptoms_follow_up.step4.phys_symptoms.label = Any physiological symptoms? -anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Current tobacco use or recently quit -anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Please enter valid content -anc_symptoms_follow_up.step1.medications.options.iron.text = Iron -anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamin A -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = No fetal movement -anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Yes -anc_symptoms_follow_up.step4.toaster15.text = Diet and lifestyle changes to prevent and relieve heartburn counseling -anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazole -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Pelvic pain -anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamin -anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = High caffeine intake -anc_symptoms_follow_up.step2.toaster3.text = Condom counseling -anc_symptoms_follow_up.step3.toaster11.text = Urine test required -anc_symptoms_follow_up.step1.vita_comply.label = Is she taking her Vitamin A supplements? -anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Please specify any other symptoms related low back and pelvic pain or select none -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Leg pain -anc_symptoms_follow_up.step1.medications.v_required.err = Please specify the medication(s) that the woman is still taking -anc_symptoms_follow_up.step1.medications.options.antacids.text = Antacids -anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnesium -anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Leg cramps -anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Yes -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Normal fetal movement -anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirals -anc_symptoms_follow_up.step4.toaster22.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema -anc_symptoms_follow_up.step1.ifa_comply.label = Is she taking her IFA tablets? -anc_symptoms_follow_up.step1.penicillin_comply.label = Is she taking her penicillin treatment for syphilis? -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = None -anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Nausea and vomiting -anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. -anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Which of the following physiological symptoms persist? -anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = Previous persisting behaviour is required -anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Heartburn -anc_symptoms_follow_up.step1.medications.label = What medications (including supplements and vitamins) is she still taking? -anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = None -anc_symptoms_follow_up.step3.toaster6.text = Antacid preparations to relieve heartburn counseling -anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Pelvic pain -anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = Has the woman felt the baby move? -anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = No -anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_symptoms_follow_up.step4.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? -anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Heartburn -anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) -anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Gets tired easily -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Breathing difficulty -anc_symptoms_follow_up.step1.ifa_comply.options.no.text = No -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Vaginal discharge -anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Please specify any other symptoms related to low back pain or select none -anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hypertensive -anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirin -anc_symptoms_follow_up.step1.calcium_comply.label = Is she taking her calcium supplements? -anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. -anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Anti-malarials -anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) -anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramide -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Nausea and vomiting -anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Cough lasting more than 3 weeks -anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Headache -anc_symptoms_follow_up.step3.title = Previous Symptoms -anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. -anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Folic Acid -anc_symptoms_follow_up.step3.toaster9.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_symptoms_follow_up.step3.toaster10.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain -anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Visual disturbance -anc_symptoms_follow_up.step4.other_symptoms.options.none.text = None -anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Breathless during routine activities -anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. -anc_symptoms_follow_up.step3.other_symptoms_persist.label = Which of the following other symptoms persist? -anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Please specify any other symptoms or select none -anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipation -anc_symptoms_follow_up.step1.ifa_effects.options.no.text = No -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Low back pain -anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). -anc_symptoms_follow_up.step1.medications.options.none.text = None -anc_symptoms_follow_up.step2.toaster4.text = Alcohol / substance use counseling -anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposure to second-hand smoke in the home -anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) -anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Cough lasting more than 3 weeks -anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirals (ARVs) -anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hematinic -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Leg pain -anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Reduced or poor fetal movement -anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgesic -anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = No condom use during sex -anc_symptoms_follow_up.step1.title = Medication Follow-up -anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = Field has the woman felt the baby move is required -anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = None -anc_symptoms_follow_up.step1.medications.options.other.text = Other (specify) -anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Yes -anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxylamine -anc_symptoms_follow_up.step3.toaster7.text = Magnesium and calcium to relieve leg cramps counseling -anc_symptoms_follow_up.step1.calcium_effects.label = Any calcium supplement side effects? -anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Visual disturbance -anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = None -anc_symptoms_follow_up.step4.toaster20.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipation -anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Anthelmintic -anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Syphilis Compliance -anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Alcohol use -anc_symptoms_follow_up.step4.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? -anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Breathing difficulty -anc_symptoms_follow_up.step4.other_symptoms.label = Any other symptoms? -anc_symptoms_follow_up.step1.medications.options.asthma.text = Asthma -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Vaginal bleeding -anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Please specify any other physiological symptoms or select none -anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contractions -anc_symptoms_follow_up.step1.vita_comply.options.no.text = No -anc_symptoms_follow_up.step1.calcium_comply.options.no.text = No -anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varicose veins -anc_symptoms_follow_up.step4.toaster14.text = Non-pharma measures to relieve nausea and vomiting counseling -anc_symptoms_follow_up.step1.ifa_effects.label = Any IFA side effects? -anc_symptoms_follow_up.step4.toaster17.text = Dietary modifications to relieve constipation counseling -anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Caffeine intake folder -anc_symptoms_follow_up.step1.medications_other.v_regex.err = Please enter valid content -anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. -anc_symptoms_follow_up.step3.toaster8.text = Wheat bran or other fiber supplements to relieve constipation counseling -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Breathless during routine activities -anc_symptoms_follow_up.step4.toaster20.text = Urine test required -anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = None -anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Yes -anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Yes -anc_symptoms_follow_up.step3.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? -anc_symptoms_follow_up.step1.aspirin_comply.label = Is she taking her aspirin tablets? -anc_symptoms_follow_up.step1.medications.options.thyroid.text = Thyroid medication -anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = Previous persisting physiological symptoms is required -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Leg redness -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Vaginal bleeding -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Vaginal discharge -anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Yes -anc_symptoms_follow_up.step2.toaster2.text = Second-hand smoke counseling -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Leg redness -anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varicose veins -anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) -anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = A maximum of up to 3 weekly doses may be required. -anc_symptoms_follow_up.step3.toaster12.text = Non-pharmacological options for varicose veins and oedema counseling -anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Gets tired easily diff --git a/reference-app/src/main/resources/anc_test_en.properties b/reference-app/src/main/resources/anc_test_en.properties deleted file mode 100644 index ebeed0e39..000000000 --- a/reference-app/src/main/resources/anc_test_en.properties +++ /dev/null @@ -1,57 +0,0 @@ -anc_test.step1.accordion_hepatitis_b.accordion_info_title = Hepatitis B test -anc_test.step1.accordion_urine.accordion_info_title = Urine test -anc_test.step1.accordion_hiv.accordion_info_title = HIV test -anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test -anc_test.step2.accordion_hepatitis_c.accordion_info_title = Hepatitis C test -anc_test.step1.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_test.step2.accordion_hepatitis_b.accordion_info_title = Hepatitis B test -anc_test.step2.accordion_blood_glucose.text = Blood Glucose test -anc_test.step1.accordion_blood_type.text = Blood Type test -anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test -anc_test.step1.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. -anc_test.step2.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. -anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. -anc_test.step2.title = Other -anc_test.step2.accordion_hiv.accordion_info_title = HIV test -anc_test.step2.accordion_blood_type.text = Blood Type test -anc_test.step1.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. -anc_test.step2.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. -anc_test.step2.accordion_tb_screening.text = TB Screening -anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test -anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. -anc_test.step2.accordion_partner_hiv.text = Partner HIV test -anc_test.step1.accordion_syphilis.text = Syphilis test -anc_test.step1.accordion_blood_haemoglobin.text = Blood Haemoglobin test -anc_test.step2.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. -anc_test.step1.accordion_ultrasound.text = Ultrasound test -anc_test.step1.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. -anc_test.step1.title = Due -anc_test.step2.accordion_hepatitis_c.text = Hepatitis C test -anc_test.step2.accordion_urine.text = Urine test -anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. -anc_test.step2.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_test.step2.accordion_other_tests.accordion_info_title = Other test -anc_test.step2.accordion_ultrasound.text = Ultrasound test -anc_test.step2.accordion_tb_screening.accordion_info_title = TB screening -anc_test.step2.accordion_urine.accordion_info_title = Urine test -anc_test.step1.accordion_tb_screening.text = TB Screening -anc_test.step1.accordion_hepatitis_c.text = Hepatitis C test -anc_test.step1.accordion_hepatitis_b.text = Hepatitis B test -anc_test.step2.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. -anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test -anc_test.step1.accordion_urine.text = Urine test -anc_test.step1.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. -anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. -anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. -anc_test.step1.accordion_hiv.text = HIV test -anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening -anc_test.step2.accordion_hiv.text = HIV test -anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. -anc_test.step2.accordion_other_tests.text = Other Tests -anc_test.step2.accordion_ultrasound.accordion_info_title = Ultrasound test -anc_test.step1.accordion_ultrasound.accordion_info_title = Ultrasound test -anc_test.step2.accordion_hepatitis_b.text = Hepatitis B test -anc_test.step1.accordion_syphilis.accordion_info_title = Syphilis test -anc_test.step2.accordion_blood_haemoglobin.text = Blood Haemoglobin test -anc_test.step1.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. -anc_test.step2.accordion_syphilis.text = Syphilis test diff --git a/reference-app/src/main/resources/breast_exam_sub_form.properties b/reference-app/src/main/resources/breast_exam_sub_form.properties deleted file mode 100644 index 7ba13f782..000000000 --- a/reference-app/src/main/resources/breast_exam_sub_form.properties +++ /dev/null @@ -1,10 +0,0 @@ -breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text = Increased temperature -breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err = Please enter valid content -breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text = Bleeding -breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text = Other (specify) -breast_exam_sub_form.step1.breast_exam_abnormal.label = Breast exam: abnormal -breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text = Discharge -breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text = Local pain -breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text = Flushing -breast_exam_sub_form.step1.breast_exam_abnormal_other.hint = Specify -breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text = Nodule diff --git a/reference-app/src/main/resources/cardiac_exam_sub_form.properties b/reference-app/src/main/resources/cardiac_exam_sub_form.properties deleted file mode 100644 index 935c6f917..000000000 --- a/reference-app/src/main/resources/cardiac_exam_sub_form.properties +++ /dev/null @@ -1,11 +0,0 @@ -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text = Cyanosis -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label = Cardiac exam: abnormal -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text = Other (specify) -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text = Cold sweats -cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err = Please enter valid content -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text = Heart murmur -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text = Tachycardia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text = Weak pulse -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text = Bradycardia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text = Arrhythmia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint = Specify diff --git a/reference-app/src/main/resources/cervical_exam_sub_form.properties b/reference-app/src/main/resources/cervical_exam_sub_form.properties deleted file mode 100644 index 923d1358b..000000000 --- a/reference-app/src/main/resources/cervical_exam_sub_form.properties +++ /dev/null @@ -1,2 +0,0 @@ -cervical_exam_sub_form.step1.dilation_cm.v_required.err = Field cervical dilation is required -cervical_exam_sub_form.step1.dilation_cm_label.text = How many centimetres (cm) dilated? diff --git a/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties b/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties deleted file mode 100644 index c45f1d554..000000000 --- a/reference-app/src/main/resources/fetal_heartbeat_sub_form.properties +++ /dev/null @@ -1,2 +0,0 @@ -fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err = Please enter the fetal heart rate -fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text = Fetal heart rate (bpm) diff --git a/reference-app/src/main/resources/oedema_present_sub_form.properties b/reference-app/src/main/resources/oedema_present_sub_form.properties deleted file mode 100644 index 5a59c01d2..000000000 --- a/reference-app/src/main/resources/oedema_present_sub_form.properties +++ /dev/null @@ -1,5 +0,0 @@ -oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text = Leg swelling -oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text = Oedema of the hands and feet -oedema_present_sub_form.step1.oedema_type.label = Oedema type -oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text = Pitting ankle oedema -oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text = Pitting lower back oedema diff --git a/reference-app/src/main/resources/pelvic_exam_sub_form.properties b/reference-app/src/main/resources/pelvic_exam_sub_form.properties deleted file mode 100644 index 373fc4b61..000000000 --- a/reference-app/src/main/resources/pelvic_exam_sub_form.properties +++ /dev/null @@ -1,17 +0,0 @@ -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text = Mucopurulent cervicitis -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text = Clusters of erythematous papules -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text = Genital ulcer -pelvic_exam_sub_form.step1.evaluate_labour_toaster.text = Evaluate labor. Urgent referral if GA is less than 37 weeks. -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label = Pelvic exam: abnormal -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text = Other (specify) -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text = Curd-like vaginal discharge -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesicles -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Foul-smelling vaginal discharge -pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Specify -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Tender bilateral inguinal and femoral lymphadenopathy -pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Please enter valid content -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidence of amniotic fluid -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Genital pain -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Cervical friability -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Tender unilateral lymphadenopathy diff --git a/reference-app/src/main/resources/respiratory_exam_sub_form.properties b/reference-app/src/main/resources/respiratory_exam_sub_form.properties deleted file mode 100644 index a314cbb48..000000000 --- a/reference-app/src/main/resources/respiratory_exam_sub_form.properties +++ /dev/null @@ -1,10 +0,0 @@ -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text = Dyspnoea -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label = Respiratory exam: abnormal -respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err = Please enter valid content -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text = Rales -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text = Cough -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text = Rapid breathing -respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint = Specify -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text = Wheezing -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text = Slow breathing -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text = Other (specify) diff --git a/reference-app/src/main/resources/robolectric.properties b/reference-app/src/main/resources/robolectric.properties deleted file mode 100644 index 89a6c8b4c..000000000 --- a/reference-app/src/main/resources/robolectric.properties +++ /dev/null @@ -1 +0,0 @@ -sdk=28 \ No newline at end of file diff --git a/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties b/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties deleted file mode 100644 index 749f352ab..000000000 --- a/reference-app/src/main/resources/tests_blood_glucose_sub_form.properties +++ /dev/null @@ -1,30 +0,0 @@ -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err = Enter a numeric value -tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err = Enter a numeric value -tests_blood_glucose_sub_form.step1.random_plasma.v_required.err = Enter the result for the random plasma glucose test. -tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text = 75g OGTT -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text = The woman has Diabetes Mellitus (DM) in pregnancy if her fasting plasma glucose is 126 mg/dL or higher.\n\nOR\n\n- 75g OGTT - fasting glucose 126 mg/dL or higher\n- 75g OGTT - 1 hr 200 mg/dL or higher\n- 75g OGTT - 2 hrs 200 mg/dL or higher\n- Random plasma glucose 200 mg/dL or higher -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title = Diabetes Mellitus (DM) in pregnancy diagnosis! -tests_blood_glucose_sub_form.step1.glucose_test_date.hint = Blood glucose test date -tests_blood_glucose_sub_form.step1.ogtt_1.hint = 75g OGTT - 1 hr results (mg/dl) -tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text = Dietary intervention recommended and referral to high level care. -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text = Gestational Diabetes Mellitus (GDM) diagnosis! -tests_blood_glucose_sub_form.step1.glucose_test_type.label = Blood glucose test type -tests_blood_glucose_sub_form.step1.ogtt_2.hint = 75g OGTT - 2 hrs results (mg/dl) -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err = Enter the result for the fasting plasma glucose test -tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err = Enter a numeric value -tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err = Select the date of the glucose test.. -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text = The woman has Gestational Diabetes Mellitus (GDM) if her fasting plasma glucose is 92–125 mg/dL. \n\nOR\n\n- 75g OGTT - fasting glucose 92–125 mg/dL\n- 75g OGTT - 1 hr 180–199 mg/dL\n- 75g OGTT - 2 hrs 153–199 mg/dL -tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err = Enter the result for the 75g OGTT - fasting glucose (2 hr). -tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err = Enter a numeric value -tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err = Enter the result for the initial 75g OGTT - fasting glucose. -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text = Diabetes Mellitus (DM) in pregnancy diagnosis! -tests_blood_glucose_sub_form.step1.glucose_test_status.label = Blood glucose test -tests_blood_glucose_sub_form.step1.random_plasma.hint = Random plasma glucose results (mg/dl) -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint = Fasting plasma glucose results (mg/dl) -tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err = Enter a numeric value -tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err = Enter the result for the 75g OGTT - fasting glucose (1 hr). -tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text = Fasting plasma glucose -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title = Gestational Diabetes Mellitus (GDM) diagnosis! -tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text = Woman with hyperglycemia - Recommend dietary intervention and refer to higher level care. -tests_blood_glucose_sub_form.step1.ogtt_fasting.hint = 75g OGTT - fasting glucose results (mg/dl) -tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text = Random plasma glucose diff --git a/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties b/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties deleted file mode 100644 index 9947430ce..000000000 --- a/reference-app/src/main/resources/tests_blood_haemoglobin_sub_form.properties +++ /dev/null @@ -1,47 +0,0 @@ -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text = Complete blood count test (recommended) -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text = Anaemia - Hb level of < 11 in first or third trimester or Hb level < 10.5 in second trimester.\n\nOR\n\nNo Hb test results recorded, but woman has pallor. -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text = Anaemia diagnosis! -tests_blood_haemoglobin_sub_form.step1.ht.hint = Hematocrit (Ht) -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Specify any other reason why the blood haemoglobin test -tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Complete blood count test result (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Hb test (haemoglobin colour scale) -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Anaemia diagnosis! -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Platelet count under 100,000. -tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Hb test result - haemoglobin colour scale (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Other (specify) -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = White blood cell count too high! -tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title = Blood haemoglobin test type -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Expired -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Hematocrit levels too low! -tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Enter the White blood cell (WBC) count -tests_blood_haemoglobin_sub_form.step1.platelets.hint = Platelet count -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = White blood cell count above 16,000. -tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = Hb test type is required -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Hemotacrit levels less than 10.5. -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = HB test not done reason is required -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Reason -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Complete blood count test is the preferred method for testing for anaemia in pregnancy. If complete blood count test is not available, haemoglobinometer is recommended over haemoglobin colour scale. -tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint = Hb test result - haemoglobinometer (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint = Blood haemoglobin test date -tests_blood_haemoglobin_sub_form.step1.hb_test_status.label = Blood haemoglobin test -tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err = Enter the Platelet count value -tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label = Blood haemoglobin test type -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title = Platelet count too low! -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text = No supplies -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.ht.v_required.err = Enter the Hematocrit value -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint = Specify -tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err = Blood haemoglobin test date is required -tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text = Platelet count too low! -tests_blood_haemoglobin_sub_form.step1.wbc.hint = White blood cell (WBC) count -tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err = Enter a numeric value -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err = Enter Hb test result - haemoglobinometer (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err = Enter Hb test result - haemoglobin colour scale (g/dl) -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Hematocrit levels too low! -tests_blood_haemoglobin_sub_form.step1.cbc.hint = Complete blood count test result (g/dl) (recommended) -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = White blood cell count too high! -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Hb test (haemoglobinometer) diff --git a/reference-app/src/main/resources/tests_blood_type_sub_form.properties b/reference-app/src/main/resources/tests_blood_type_sub_form.properties deleted file mode 100644 index a2b99b86d..000000000 --- a/reference-app/src/main/resources/tests_blood_type_sub_form.properties +++ /dev/null @@ -1,17 +0,0 @@ -tests_blood_type_sub_form.step1.blood_type.options.b.text = B -tests_blood_type_sub_form.step1.blood_type_test_date.hint = Blood type test date -tests_blood_type_sub_form.step1.blood_type.options.o.text = O -tests_blood_type_sub_form.step1.blood_type.v_required.err = Please specify blood type -tests_blood_type_sub_form.step1.blood_type.label = Blood type -tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown.\n\n- Proceed with local protocol to investigate sensitization and the need for referral.\n\n- If Rh negative and non-sensitized, woman should receive anti- D prophylaxis postnatally if the baby is Rh positive. -tests_blood_type_sub_form.step1.rh_factor.label = Rh factor -tests_blood_type_sub_form.step1.blood_type.options.a.text = A -tests_blood_type_sub_form.step1.rh_factor_toaster.text = Rh factor negative counseling -tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Negative -tests_blood_type_sub_form.step1.rh_factor.v_required.err = Rh factor is required -tests_blood_type_sub_form.step1.blood_type_test_status.label = Blood type test -tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Date that the blood test was done. -tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positive -tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Blood type status is required -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Rh factor negative counseling diff --git a/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties b/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties deleted file mode 100644 index 6d3b753da..000000000 --- a/reference-app/src/main/resources/tests_hepatitis_b_sub_form.properties +++ /dev/null @@ -1,33 +0,0 @@ -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Stock out -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Hep B positive diagnosis! -tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Hepatitis B test is required -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Hep B vaccination required anytime after 12 weeks gestation. -tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Hep B test type is required -tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = HBsAg rapid diagnostic test is required -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = HBsAg laboratory-based immunoassay (recommended) -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positive -tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = HBsAg rapid diagnostic test (RDT) -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negative -tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = (DBS) HBsAg test is required -tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Hep B test date -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Dried Blood Spot (DBS) HBsAg test -tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Hep B test type -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Hep B positive diagnosis! -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Expired stock -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Hep B vaccination required. -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Other (specify) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Dried Blood Spot (DBS) HBsAg test -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Hepatitis B test not done reason is required -tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = Hep B test date is required -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = BsAg laboratory-based immunoassay is required -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = HBsAg laboratory-based immunoassay (recommended) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive -tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Hep B vaccination required. -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive -tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Specify -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = HBsAg rapid diagnostic test (RDT) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negative -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Counselling and referral required. diff --git a/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties b/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties deleted file mode 100644 index 505d21ff5..000000000 --- a/reference-app/src/main/resources/tests_hepatitis_c_sub_form.properties +++ /dev/null @@ -1,26 +0,0 @@ -tests_hepatitis_c_sub_form.step1.hcv_dbs.label = Dried Blood Spot (DBS) anti-HCV test -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text = Hep C positive diagnosis! -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text = Expired stock -tests_hepatitis_c_sub_form.step1.hepc_test_date.hint = Hep C test date -tests_hepatitis_c_sub_form.step1.hepc_test_type.label = Hep C test type -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text = Positive -tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text = Anti-HCV laboratory-based immunoassay is the preferred method for testing for Hep C infection in pregnancy. If immunoassay is not available, Anti-HCV rapid diagnostic test (RDT) is recommended over Dried Blood Spot (DBS) Anti-HCV testing. -tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint = Specify -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label = Anti-HCV laboratory-based immunoassay (recommended) -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title = Hep C positive diagnosis! -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text = Anti-HCV laboratory-based immunoassay (recommended) -tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title = Hep C test type -tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text = Negative -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text = Stock out -tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text = Positive -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text = Dried Blood Spot (DBS) anti-HCV test -tests_hepatitis_c_sub_form.step1.hcv_rdt.label = Anti-HCV rapid diagnostic test (RDT) -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text = Anti-HCV rapid diagnostic test (RDT) -tests_hepatitis_c_sub_form.step1.hepc_test_status.label = Hepatitis C test -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text = Other (specify) -tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text = Positive -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label = Reason -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text = Counselling and referral required. -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text = Negative -tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text = Negative -tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err = Select the date of the Hepatitis C test. diff --git a/reference-app/src/main/resources/tests_hiv_sub_form.properties b/reference-app/src/main/resources/tests_hiv_sub_form.properties deleted file mode 100644 index 7642de9a4..000000000 --- a/reference-app/src/main/resources/tests_hiv_sub_form.properties +++ /dev/null @@ -1,19 +0,0 @@ -tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Please record the HIV test result -tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positive -tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Negative -tests_hiv_sub_form.step1.hiv_positive_toaster.text = HIV positive counseling -tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Other (specify) -tests_hiv_sub_form.step1.hiv_test_status.v_required.err = HIV test status is required -tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = HIV test inconclusive, refer for further testing. -tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = HIV not done reason is required! -tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Expired stock -tests_hiv_sub_form.step1.hiv_test_result.label = Record result -tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Specify -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Refer for further testing and confirmation\n- Refer for HIV services\n- Advise on opportunistic infections and need to seek medical help\n- Proceed with systematic screening for active TB -tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Inconclusive -tests_hiv_sub_form.step1.hiv_test_status.label = HIV test -tests_hiv_sub_form.step1.hiv_test_date.hint = HIV test date -tests_hiv_sub_form.step1.hiv_test_date.v_required.err = HIV test date is required. -tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Stock out -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = HIV positive counseling -tests_hiv_sub_form.step1.hiv_test_notdone.label = Reason diff --git a/reference-app/src/main/resources/tests_other_tests_sub_form.properties b/reference-app/src/main/resources/tests_other_tests_sub_form.properties deleted file mode 100644 index 313f47bfb..000000000 --- a/reference-app/src/main/resources/tests_other_tests_sub_form.properties +++ /dev/null @@ -1,4 +0,0 @@ -tests_other_tests_sub_form.step1.other_test.label = Other test -tests_other_tests_sub_form.step1.other_test_date.hint = Test date -tests_other_tests_sub_form.step1.other_test_result.hint = Test result? -tests_other_tests_sub_form.step1.other_test_name.hint = Which test? diff --git a/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties b/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties deleted file mode 100644 index edf77bf7f..000000000 --- a/reference-app/src/main/resources/tests_partner_hiv_sub_form.properties +++ /dev/null @@ -1,12 +0,0 @@ -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text = Inconclusive -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err = Test result is required -tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint = Partner HIV test date -tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err = Partner HIV test date required -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title = HIV risk counseling -tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label = Partner HIV test -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text = Positive -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text = Provide comprehensive HIV prevention options: \n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text = HIV risk counseling -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text = Negative -tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text = Partner HIV test inconclusive, refer partner for further testing. -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label = Record result diff --git a/reference-app/src/main/resources/tests_syphilis_sub_form.properties b/reference-app/src/main/resources/tests_syphilis_sub_form.properties deleted file mode 100644 index eb9e8f554..000000000 --- a/reference-app/src/main/resources/tests_syphilis_sub_form.properties +++ /dev/null @@ -1,30 +0,0 @@ -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text = This area has a high prevalence of syphilis (5% or greater). -tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title = Syphilis test positive -tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text = Stock out -tests_syphilis_sub_form.step1.syph_test_type.label = Syphilis test type -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text = Use an on-site rapid syphilis test (RST), and, if positive, provide the first dose of treatment. Then refer the woman for a rapid plasma reagin (RPR) test. If the RPR test is positive, provide treatment according to the clinical phase of syphilis. -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title = This area has a low prevalence of syphilis (below 5%) -tests_syphilis_sub_form.step1.lab_syphilis_test.label = Off-site lab test for syphilis -tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text = Negative -tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text = Other (specify) -tests_syphilis_sub_form.step1.syph_test_notdone_other.hint = Specify -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title = This area has a high prevalence of syphilis (5% or greater). -tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text = Positive -tests_syphilis_sub_form.step1.rpr_syphilis_test.label = Rapid plasma reagin (RPR) test -tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text = Positive -tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text = Negative -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text = This area has a low prevalence of syphilis (below 5%) -tests_syphilis_sub_form.step1.syphilis_test_date.hint = Syphilis test date -tests_syphilis_sub_form.step1.syph_test_notdone.label = Reason -tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text = Positive -tests_syphilis_sub_form.step1.rapid_syphilis_test.label = Rapid syphilis test (RST) -tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text = Expired stock -tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text = Negative -tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text = Off-site lab test -tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text = Rapid plasma reagin test -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text = On-site rapid syphilis test (RST) should be used to test pregnant women for syphilis. -tests_syphilis_sub_form.step1.syphilis_danger_toaster.text = Syphilis test positive -tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err = Select the date of the syphilis test. -tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text = Rapid syphilis test -tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text = Provide counselling and treatment according to protocol. -tests_syphilis_sub_form.step1.syph_test_status.label = Syphilis test diff --git a/reference-app/src/main/resources/tests_tb_screening_sub_form.properties b/reference-app/src/main/resources/tests_tb_screening_sub_form.properties deleted file mode 100644 index aacb43c40..000000000 --- a/reference-app/src/main/resources/tests_tb_screening_sub_form.properties +++ /dev/null @@ -1,24 +0,0 @@ -tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err = Tb screen result is required -tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text = Negative -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text = No sputum supplies available -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text = Machine not functioning -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text = Technician not available -tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint = Specify -tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err = TB screening status is required -tests_tb_screening_sub_form.step1.tb_screening_notdone.label = Reason -tests_tb_screening_sub_form.step1.tb_screening_status.label = TB screening -tests_tb_screening_sub_form.step1.tb_screening_result.label = Record result -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text = TB screening positive. -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text = Sputum culture not available -tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err = Please record the date TB screening was done -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text = Treat according to local protocol and/or refer for treatment. -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title = TB screening positive. -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text = GeneXpert machine not available -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text = Other (specify) -tests_tb_screening_sub_form.step1.tb_screening_date.hint = TB screening date -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text = Sputum smear not available -tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text = Inconclusive -tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text = Incomplete (only symptoms) -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text = X-ray machine not available -tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err = Reason why tb screen was not done is required -tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text = Positive diff --git a/reference-app/src/main/resources/tests_ultrasound_sub_form.properties b/reference-app/src/main/resources/tests_ultrasound_sub_form.properties deleted file mode 100644 index 779b09abf..000000000 --- a/reference-app/src/main/resources/tests_ultrasound_sub_form.properties +++ /dev/null @@ -1,37 +0,0 @@ -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Specify -tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Date that the ultrasound was done. -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Specify any other reason. -tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fundal -tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Right side -tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Left side -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Not available -tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Low -tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pelvic -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Other (specify) -tests_ultrasound_sub_form.step1.ultrasound_date.hint = Ultrasound date -tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverse -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling -tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = If you need to update the woman's gestational age, please return to Profile, Current Pregnancy page. -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Early ultrasound done! -tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduced -tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior -tests_ultrasound_sub_form.step1.ultrasound.label = Ultrasound test -tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cephalic -tests_ultrasound_sub_form.step1.placenta_location.label = Placenta location -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Other -tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior -tests_ultrasound_sub_form.step1.no_of_fetuses.label = No. of fetuses -tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = No. of fetuses -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Delayed to next contact -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling -tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Increased -tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal -tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Please specify ultrasound not done -tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Praevia -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = An early U/S is key to estimate gestational age, improve detection of fetal anomalies and multiple fetuses, reduce induction of labour for post-term pregnancy, and improve a woman’s pregnancy experience. -tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Reason -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Early ultrasound done! -tests_ultrasound_sub_form.step1.fetal_presentation.label = Fetal presentation -tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = If multiple fetuses, indicate the fetal position of the first fetus to be delivered. -tests_ultrasound_sub_form.step1.amniotic_fluid.label = Amniotic fluid diff --git a/reference-app/src/main/resources/tests_urine_sub_form.properties b/reference-app/src/main/resources/tests_urine_sub_form.properties deleted file mode 100644 index a1678a209..000000000 --- a/reference-app/src/main/resources/tests_urine_sub_form.properties +++ /dev/null @@ -1,61 +0,0 @@ -tests_urine_sub_form.step1.urine_test_notdone_other.hint = Specify -tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Midstream urine culture (recommended) -tests_urine_sub_form.step1.urine_test_type.label = Urine test type -tests_urine_sub_form.step1.urine_glucose.v_required.err = Field urine glucose is required -tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ -tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Urine dipstick results - leukocytes is required -tests_urine_sub_form.step1.urine_nitrites.options.+.text = + -tests_urine_sub_form.step1.urine_test_type.v_required.err = Urine test type is required -tests_urine_sub_form.step1.urine_culture.label = Midstream urine culture (recommended) -tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positive -tests_urine_sub_form.step1.urine_glucose.label = Urine dipstick result - glucose -tests_urine_sub_form.step1.urine_protein.label = Urine dipstick result - protein -tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Urine dipstick -tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ -tests_urine_sub_form.step1.urine_culture.options.negative.text = Negative -tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = A woman is considered to have ASB if she has one of the following test results:\n\n- Positive culture (> 100,000 bacteria/mL)\n- Gram-staining positive\n- Urine dipstick test positive (nitrites or leukocytes)\n\nSeven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight. -tests_urine_sub_form.step1.urine_gram_stain.label = Midstream urine Gram-staining -tests_urine_sub_form.step1.urine_culture.v_required.err = Urine culture is required -tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text = Positive - Group B Streptococcus (GBS) -tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text = Expired stock -tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling -tests_urine_sub_form.step1.urine_test_date.v_required.err = Select the date of the urine test.. -tests_urine_sub_form.step1.urine_nitrites.label = Urine dipstick result - nitrites -tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Other (specify) -tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ -tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_protein.options.++.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.options.none.text = None -tests_urine_sub_form.step1.gbs_agent_note.text = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ -tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negative -tests_urine_sub_form.step1.urine_protein.v_required.err = Field urine protein is required -tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Midstream urine Gram-staining -tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + -tests_urine_sub_form.step1.urine_test_status.v_required.err = Urine test status is required -tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Stock out -tests_urine_sub_form.step1.urine_test_status.label = Urine test -tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -tests_urine_sub_form.step1.gdm_risk_toaster.text = Gestational diabetes mellitus (GDM) risk counseling -tests_urine_sub_form.step1.urine_protein.options.+.text = + -tests_urine_sub_form.step1.urine_protein.options.none.text = None -tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) -tests_urine_sub_form.step1.urine_test_notdone.label = Reason -tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.label = Urine dipstick result - leukocytes -tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n - Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy -tests_urine_sub_form.step1.urine_nitrites.options.none.text = None -tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ -tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Pregnant women with Group B Streptococcus (GBS) colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. -tests_urine_sub_form.step1.urine_glucose.options.none.text = None -tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_nitrites.v_required.err = Urine dipstick results is required -tests_urine_sub_form.step1.urine_test_date.hint = Urine test date -tests_urine_sub_form.step1.asb_positive_toaster.text = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) -tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positive - any agent -tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Midstream urine Gram-staining is required -tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ -tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Reason for urine test not done is required -tests_urine_sub_form.step1.urine_glucose.options.+.text = + From d419fbc02d6ef9fb7b442034acecddd3d59d16ce Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 9 Apr 2020 00:45:15 +0300 Subject: [PATCH 016/302] :zap: Update the anc close page spinners & enable MLS on the form --- .../src/main/assets/json.form/anc_close.json | 344 ++++++++++++++---- .../rule/anc_close_calculations_rules.yml | 4 +- .../assets/rule/anc_close_relevance_rules.yml | 22 +- .../anc/library/util/ANCJsonFormUtils.java | 4 +- .../src/main/resources/anc_close.properties | 73 ++++ 5 files changed, 355 insertions(+), 92 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_close.properties diff --git a/opensrp-anc/src/main/assets/json.form/anc_close.json b/opensrp-anc/src/main/assets/json.form/anc_close.json index a38cb1c8b..e8bec3162 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_close.json +++ b/opensrp-anc/src/main/assets/json.form/anc_close.json @@ -47,7 +47,7 @@ "encounter_location": "" }, "step1": { - "title": "Close ANC Record", + "title": "{{anc_close.step1.title}}", "fields": [ { "key": "anc_close_reason", @@ -56,18 +56,68 @@ "openmrs_entity_id": "165245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Reason?", - "values": [ - "Live birth", - "Stillbirth", - "Miscarriage", - "Abortion", - "Woman died", - "Moved away", - "False pregnancy", - "Lost to follow-up", - "Wrong entry", - "Other" + "hint": "{{anc_close.step1.anc_close_reason.hint}}", + "options": [ + { + "key": "live_birth", + "text": "{{anc_close.step1.anc_close_reason.options.live_birth.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "stillbirth", + "text": "{{anc_close.step1.anc_close_reason.options.stillbirth.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "miscarriage", + "text": "{{anc_close.step1.anc_close_reason.options.miscarriage.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "abortion", + "text": "{{anc_close.step1.anc_close_reason.options.abortion.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "woman_died", + "text": "{{anc_close.step1.anc_close_reason.options.woman_died.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "moved_away", + "text": "{{anc_close.step1.anc_close_reason.options.moved_away.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "false_pregnancy", + "text": "{{anc_close.step1.anc_close_reason.options.false_pregnancy.text}}", + "openmrs_entityMoved away": "", + "openmrs_entity_id": "" + }, + { + "key": "lost_to_follow_up", + "text": "{{anc_close.step1.anc_close_reason.options.lost_to_follow_up.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "wrong_entry", + "text": "{{anc_close.step1.anc_close_reason.options.wrong_entry.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "other", + "text": "{{anc_close.step1.anc_close_reason.options.other.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } ], "openmrs_choice_ids": { "Live birth": "151849AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -83,7 +133,7 @@ }, "v_required": { "value": "true", - "err": "Please select one option" + "err": "{{anc_close.step1.anc_close_reason.v_required.err}}" } }, { @@ -92,12 +142,12 @@ "openmrs_entity": "concept", "openmrs_entity_id": "5599AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Delivery date", + "hint": "{{anc_close.step1.delivery_date.hint}}", "expanded": false, "max_date": "today", "v_required": { "value": "true", - "err": "Please enter the date of delivery" + "err": "{{anc_close.step1.delivery_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -114,11 +164,26 @@ "openmrs_entity_id": "1572AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Place of delivery?", - "values": [ - "Health facility", - "Home", - "Other" + "hint": "{{anc_close.step1.delivery_place.hint}}", + "options": [ + { + "key": "health_facility", + "text": "{{anc_close.step1.delivery_place.options.health_facility.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "home", + "text": "{{anc_close.step1.delivery_place.options.home.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "other", + "text": "{{anc_close.step1.delivery_place.options.other.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } ], "openmrs_choice_ids": { "Health facility": "1588AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -127,7 +192,7 @@ }, "v_required": { "value": "true", - "err": "Place of delivery is required" + "err": "{{anc_close.step1.delivery_place.v_required.err}}" }, "relevance": { "rules-engine": { @@ -146,7 +211,7 @@ "hidden": true, "v_numeric": { "value": "true", - "err": "Number must be a number" + "err": "{{anc_close.step1.preterm.v_numeric.err}}" }, "calculation": { "rules-engine": { @@ -163,11 +228,26 @@ "openmrs_entity_id": "5630AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Delivery mode", - "values": [ - "Normal", - "Forceps or Vacuum", - "C-section" + "hint": "{{anc_close.step1.delivery_mode.hint}}", + "options": [ + { + "key": "normal", + "text": "{{anc_close.step1.delivery_mode.options.normal.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "forceps_or_vacuum", + "text": "{{anc_close.step1.delivery_mode.options.forceps_or_vacuum.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "c_section", + "text": "{{anc_close.step1.delivery_mode.options.c_section.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } ], "openmrs_choice_ids": { "Normal": "1170AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -191,10 +271,10 @@ "openmrs_entity": "concept", "openmrs_entity_id": "5916AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "Birth weight (kg)", + "hint": "{{anc_close.step1.birthweight.hint}}", "v_required": { "value": false, - "err": "Please enter the child's weight at birth" + "err": "{{anc_close.step1.birthweight.v_required.err}}" }, "v_min": { "value": "0.1", @@ -206,7 +286,7 @@ }, "v_numeric": { "value": "true", - "err": "Please enter a valid weight between 1 and 10" + "err": "{{anc_close.step1.birthweight.v_numeric.err}}" }, "relevance": { "rules-engine": { @@ -223,7 +303,21 @@ "openmrs_entity_id": "5526AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Exclusively breastfeeding?", + "hint": "{{anc_close.step1.exclusive_bf.hint}}", + "options": [ + { + "key": "yes", + "text": "{{anc_close.step1.exclusive_bf.options.yes.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_close.step1.exclusive_bf.options.no.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } + ], "values": [ "Yes", "No" @@ -250,17 +344,62 @@ "openmrs_entity_id": "374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Postpartum FP method?", - "values": [ - "None", - "Exclusive breastfeeding", - "OCP", - "Condom", - "Female sterilization", - "Male sterilization", - "IUD", - "Abstinence", - "Other" + "hint": "{{anc_close.step1.ppfp_method.hint}}", + "options": [ + { + "key": "normal", + "text": "{{anc_close.step1.ppfp_method.options.normal.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "forceps_or_vacuum", + "text": "{{anc_close.step1.ppfp_method.options.forceps_or_vacuum.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "ocp", + "text": "{{anc_close.step1.ppfp_method.options.ocp.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "condom", + "text": "{{anc_close.step1.ppfp_method.options.condom.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "female_sterilization", + "text": "{{anc_close.step1.ppfp_method.options.female_sterilization.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "male_sterilization", + "text": "{{anc_close.step1.ppfp_method.options.male_sterilization.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "iud", + "text": "{{anc_close.step1.ppfp_method.options.iud.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "abstinence", + "text": "{{anc_close.step1.ppfp_method.options.abstinence.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "other", + "text": "{{anc_close.step1.ppfp_method.options.other.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } ], "openmrs_choice_ids": { "None": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -291,8 +430,8 @@ "openmrs_entity_id": "1576AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "check_box", - "label": "Any delivery complications?", - "hint": "Any delivery complications?", + "label": "{{anc_close.step1.delivery_complications.label}}", + "hint": "{{anc_close.step1.delivery_complications.hint}}", "label_text_style": "bold", "exclusive": [ "None" @@ -300,73 +439,73 @@ "options": [ { "key": "None", - "text": "None", + "text": "{{anc_close.step1.delivery_complications.options.None.text}}", "value": false, "openmrs_choice_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Postpartum haemorrhage", - "text": "Postpartum haemorrhage", + "text": "{{anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text}}", "value": false, "openmrs_choice_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Antepartum haemorrhage", - "text": "Antepartum haemorrhage", + "text": "{{anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text}}", "value": false, "openmrs_choice_id": "228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Placenta praevia", - "text": "Placenta praevia", + "text": "{{anc_close.step1.delivery_complications.options.Placenta_praevia.text}}", "value": false, "openmrs_choice_id": "114127AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Placental abruption", - "text": "Placental abruption", + "text": "{{anc_close.step1.delivery_complications.options.Placental_abruption.text}}", "value": false, "openmrs_choice_id": "130108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Cord prolapse", - "text": "Cord prolapse", + "text": "{{anc_close.step1.delivery_complications.options.Cord_prolapse.text}}", "value": false, "openmrs_choice_id": "128420AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Obstructed labour", - "text": "Obstructed labour", + "text": "{{anc_close.step1.delivery_complications.options.Obstructed_labour.text}}", "value": false, "openmrs_choice_id": "141596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Abnormal presentation", - "text": "Abnormal presentation", + "text": "{{anc_close.step1.delivery_complications.options.Abnormal_presentation.text}}", "value": false, "openmrs_choice_id": "150862AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Pre-eclampsia", - "text": "Pre-eclampsia", + "text": "{{anc_close.step1.delivery_complications.options.Pre_eclampsia.text}}", "value": false, "openmrs_choice_id": "160034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Eclampsia", - "text": "Eclampsia", + "text": "{{anc_close.step1.delivery_complications.options.Eclampsia.text}}", "value": false, "openmrs_choice_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Perineal tear (2nd, 3rd or 4th degree)", - "text": "Perineal tear (2nd, 3rd or 4th degree)", + "text": "{{anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text}}", "value": false, "openmrs_choice_id": "165247AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Other", - "text": "Other", + "text": "{{anc_close.step1.delivery_complications.options.Other.text}}", "value": false, "openmrs_choice_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } @@ -388,12 +527,12 @@ "openmrs_entity": "concept", "openmrs_entity_id": "165248AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date of miscarriage/abortion", + "hint": "{{anc_close.step1.miscarriage_abortion_date.hint}}", "expanded": false, "max_date": "today", "v_required": { "value": "true", - "err": "Please enter the date of miscarriage/abortion" + "err": "{{anc_close.step1.miscarriage_abortion_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -411,7 +550,7 @@ "type": "hidden", "v_numeric": { "value": "true", - "err": "Number must be a number" + "err": "{{anc_close.step1.miscarriage_abortion_ga.v_numeric.err}}" }, "v_required": { "value": false @@ -430,15 +569,15 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1543AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "Date of death", + "hint": "{{anc_close.step1.death_date.hint}}", "expanded": false, "duration": { - "label": "Yrs" + "label": "{{anc_close.step1.death_date.duration.label}}" }, "max_date": "today", "v_required": { "value": "true", - "err": "Please enter the date of death" + "err": "{{anc_close.step1.death_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -455,22 +594,72 @@ "openmrs_entity_id": "1599AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_data_type": "select one", "type": "spinner", - "hint": "Cause of death?", - "values": [ - "Unknown", - "Abortion-related complications", - "Obstructed labour", - "Pre-eclampsia", - "Eclampsia", - "Postpartum haemorrhage", - "Antepartum haemorrhage ", - "Placental abruption", - "Infection", - "Other" + "hint": "{{anc_close.step1.death_cause.hint}}", + "options": [ + { + "key": "normal", + "text": "{{anc_close.step1.death_cause.options.normal.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "abortion_related_complications", + "text": "{{anc_close.step1.death_cause.options.abortion_related_complications.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "obstructed_labour", + "text": "{{anc_close.step1.death_cause.options.obstructed_labour.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "pre_eclampsia", + "text": "{{anc_close.step1.death_cause.options.pre_eclampsia.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "eclampsia", + "text": "{{anc_close.step1.death_cause.options.eclampsia.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "postpartum_haemorrhage", + "text": "{{anc_close.step1.death_cause.options.postpartum_haemorrhage.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "antepartum_haemorrhage", + "text": "{{anc_close.step1.death_cause.options.antepartum_haemorrhage.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "placental_abruption", + "text": "{{anc_close.step1.death_cause.options.placental_abruption.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "infection", + "text": "{{anc_close.step1.death_cause.options.infection.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "other", + "text": "{{anc_close.step1.death_cause.options.other.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } ], "v_required": { "value": "true", - "err": "Please enter the date of death" + "err": "{{anc_close.step1.death_cause.v_required.err}}" }, "relevance": { "rules-engine": { @@ -493,5 +682,6 @@ } } ] - } + }, + "properties_file_name": "anc_close" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/anc_close_calculations_rules.yml b/opensrp-anc/src/main/assets/rule/anc_close_calculations_rules.yml index acab83f1b..5e378a7ad 100644 --- a/opensrp-anc/src/main/assets/rule/anc_close_calculations_rules.yml +++ b/opensrp-anc/src/main/assets/rule/anc_close_calculations_rules.yml @@ -1,13 +1,13 @@ name: step1_preterm description: Preterm priority: 2 -condition: "(global_gest_age_openmrs >= 37 && (step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'))" +condition: "(global_gest_age_openmrs >= 37 && (step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'))" actions: - 'calculation = 1' --- name: step1_miscarriage_abortion_ga description: miscarriage_abortion_ga priority: 2 -condition: "step1_anc_close_reason == 'Miscarriage' || step1_anc_close_reason == 'Abortion'" +condition: "step1_anc_close_reason == 'miscarriage' || step1_anc_close_reason == 'abortion'" actions: - 'calculation = global_gest_age' \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/anc_close_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/anc_close_relevance_rules.yml index 846bc66b7..420260817 100644 --- a/opensrp-anc/src/main/assets/rule/anc_close_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/anc_close_relevance_rules.yml @@ -2,76 +2,76 @@ name: step1_delivery_date description: delivery_date priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_delivery_place description: delivery_place priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_preterm description: preterm priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_delivery_mode description: delivery_mode priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_birthweight description: birthweight priority: 1 -condition: "step1_anc_close_reason == 'Live birth'" +condition: "step1_anc_close_reason == 'live_birth'" actions: - "isRelevant = true" --- name: step1_exclusive_bf description: exclusive_bf priority: 1 -condition: "step1_anc_close_reason == 'Live birth'" +condition: "step1_anc_close_reason == 'live_birth'" actions: - "isRelevant = true" --- name: step1_ppfp_method description: ppfp_method priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_delivery_complications description: delivery_complications priority: 1 -condition: "step1_anc_close_reason == 'Live birth' || step1_anc_close_reason == 'Stillbirth'" +condition: "step1_anc_close_reason == 'live_birth' || step1_anc_close_reason == 'stillbirth'" actions: - "isRelevant = true" --- name: step1_miscarriage_abortion_date description: miscarriage_abortion_date priority: 1 -condition: "step1_anc_close_reason == 'Miscarriage' || step1_anc_close_reason == 'Abortion'" +condition: "step1_anc_close_reason == 'miscarriage' || step1_anc_close_reason == 'abortion'" actions: - "isRelevant = true" --- name: step1_death_date description: death_date priority: 1 -condition: "step1_anc_close_reason == 'Woman died'" +condition: "step1_anc_close_reason == 'woman_died'" actions: - "isRelevant = true" --- name: step1_death_cause description: death_cause priority: 1 -condition: "step1_anc_close_reason == 'Woman died'" +condition: "step1_anc_close_reason == 'woman_died'" actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index ab7d2ec5f..b5c025441 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -620,9 +620,9 @@ public static void launchANCCloseForm(Activity activity) { Intent intent = new Intent(activity, JsonFormActivity.class); JSONObject form = FormUtils.getInstance(activity).getFormJson(ConstantsUtils.JsonFormUtils.ANC_CLOSE); if (form != null) { - form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, - activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); + form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); } } catch (Exception e) { diff --git a/opensrp-anc/src/main/resources/anc_close.properties b/opensrp-anc/src/main/resources/anc_close.properties new file mode 100644 index 000000000..ca3ef702a --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_close.properties @@ -0,0 +1,73 @@ +anc_close.step1.miscarriage_abortion_ga.v_numeric.err = Number must be a number +anc_close.step1.ppfp_method.hint = Postpartum FP method? +anc_close.step1.delivery_complications.options.Cord_prolapse.text = Cord prolapse +anc_close.step1.anc_close_reason.v_required.err = Please select one option +anc_close.step1.delivery_mode.options.normal.text = Normal +anc_close.step1.death_cause.options.pre_eclampsia.text = Pre-eclampsia +anc_close.step1.delivery_mode.hint = Delivery mode +anc_close.step1.death_cause.v_required.err = Please enter the date of death +anc_close.step1.death_date.duration.label = Yrs +anc_close.step1.death_cause.options.normal.text = Unknown +anc_close.step1.death_cause.options.abortion_related_complications.text = Abortion-related complications +anc_close.step1.death_cause.options.placental_abruption.text = Placental abruption +anc_close.step1.birthweight.v_numeric.err = Please enter a valid weight between 1 and 10 +anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text = Antepartum haemorrhage +anc_close.step1.delivery_complications.options.Abnormal_presentation.text = Abnormal presentation +anc_close.step1.miscarriage_abortion_date.v_required.err = Please enter the date of miscarriage/abortion +anc_close.step1.death_cause.options.antepartum_haemorrhage.text = Antepartum haemorrhage +anc_close.step1.delivery_mode.options.c_section.text = C-section +anc_close.step1.anc_close_reason.options.other.text = Other +anc_close.step1.miscarriage_abortion_date.hint = Date of miscarriage/abortion +anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Postpartum haemorrhage +anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Lost to follow-up +anc_close.step1.ppfp_method.options.condom.text = Condom +anc_close.step1.ppfp_method.options.ocp.text = OCP +anc_close.step1.death_cause.options.eclampsia.text = Eclampsia +anc_close.step1.anc_close_reason.options.abortion.text = Abortion +anc_close.step1.ppfp_method.options.normal.text = None +anc_close.step1.delivery_complications.hint = Any delivery complications? +anc_close.step1.anc_close_reason.options.moved_away.text = Moved away +anc_close.step1.ppfp_method.options.male_sterilization.text = Male sterilization +anc_close.step1.delivery_place.options.home.text = home +anc_close.step1.delivery_date.hint = Delivery date +anc_close.step1.delivery_place.options.other.text = Other +anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Exclusive breastfeeding +anc_close.step1.anc_close_reason.hint = Reason? +anc_close.step1.delivery_place.options.health_facility.text = Health facility +anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Forceps or Vacuum +anc_close.step1.death_cause.options.infection.text = Infection +anc_close.step1.delivery_complications.options.Other.text = Other +anc_close.step1.birthweight.hint = Birth weight (kg) +anc_close.step1.title = Close ANC Record +anc_close.step1.death_date.hint = Date of death +anc_close.step1.anc_close_reason.options.wrong_entry.text = Wrong entry +anc_close.step1.death_cause.options.other.text = Other +anc_close.step1.delivery_complications.options.None.text = None +anc_close.step1.exclusive_bf.options.no.text = No +anc_close.step1.delivery_complications.options.Obstructed_labour.text = Obstructed labour +anc_close.step1.ppfp_method.options.female_sterilization.text = Female sterilization +anc_close.step1.death_cause.hint = Cause of death? +anc_close.step1.exclusive_bf.hint = Exclusively breastfeeding? +anc_close.step1.anc_close_reason.options.stillbirth.text = Stillbirth +anc_close.step1.delivery_complications.label = Any delivery complications? +anc_close.step1.death_date.v_required.err = Please enter the date of death +anc_close.step1.anc_close_reason.options.false_pregnancy.text = False pregnancy +anc_close.step1.delivery_date.v_required.err = Please enter the date of delivery +anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Postpartum haemorrhage +anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pre-eclampsia +anc_close.step1.delivery_place.v_required.err = Place of delivery is required +anc_close.step1.delivery_complications.options.Eclampsia.text = Eclampsia +anc_close.step1.ppfp_method.options.iud.text = IUD +anc_close.step1.anc_close_reason.options.woman_died.text = Woman died +anc_close.step1.delivery_place.hint = Place of delivery? +anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta praevia +anc_close.step1.anc_close_reason.options.live_birth.text = Live birth +anc_close.step1.anc_close_reason.options.miscarriage.text = Miscarriage +anc_close.step1.delivery_complications.options.Placental_abruption.text = Placental abruption +anc_close.step1.ppfp_method.options.other.text = Other +anc_close.step1.preterm.v_numeric.err = Number must be a number +anc_close.step1.birthweight.v_required.err = Please enter the child's weight at birth +anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Perineal tear (2nd, 3rd or 4th degree) +anc_close.step1.death_cause.options.obstructed_labour.text = Obstructed labour +anc_close.step1.ppfp_method.options.abstinence.text = Abstinence +anc_close.step1.exclusive_bf.options.yes.text = Yes From 6fba36123981ea78bc6eea5b617311f354bb1482 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 9 Apr 2020 10:38:00 +0300 Subject: [PATCH 017/302] :ok_hand: fix code review requests --- .../activity/ContactJsonFormActivity.java | 1 - .../constants/AncAppPropertyConstants.java | 2 +- .../anc/library/fragment/MeFragment.java | 36 ++++++++++++------- .../library/repository/PatientRepository.java | 4 +-- .../smartregister/anc/library/util/Utils.java | 10 +++--- 5 files changed, 32 insertions(+), 21 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index d54c77246..07e3a5138 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -13,7 +13,6 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; -import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.json.JSONArray; import org.json.JSONException; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java index 9b38a4626..7a66922dc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/AncAppPropertyConstants.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.constants; public class AncAppPropertyConstants { - public final static class keyUtils { + public final static class KeyUtils { //language switching public static final String LANGUAGE_SWITCHING_ENABLED = "language.switching.enabled"; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 1e4c9610c..74f1cc05d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -16,8 +16,8 @@ import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.PopulationCharacteristicsActivity; import org.smartregister.anc.library.activity.SiteCharacteristicsActivity; -import org.smartregister.anc.library.constants.AncAppPropertyConstants; import org.smartregister.anc.library.presenter.MePresenter; +import org.smartregister.anc.library.util.Utils; import org.smartregister.util.LangUtils; import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.contract.MeContract; @@ -47,7 +47,7 @@ protected void setUpViews(View view) { mePopCharacteristicsSection = view.findViewById(R.id.me_pop_characteristics_section); siteCharacteristicsSection = view.findViewById(R.id.site_characteristics_section); - if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.keyUtils.LANGUAGE_SWITCHING_ENABLED)) { + if (Utils.enableLanguageSwitching()) { languageSwitcherSection = view.findViewById(R.id.language_switcher_section); languageSwitcherSection.setVisibility(View.VISIBLE); @@ -63,7 +63,7 @@ protected void setClickListeners() { super.setClickListeners(); mePopCharacteristicsSection.setOnClickListener(meFragmentActionHandler); siteCharacteristicsSection.setOnClickListener(meFragmentActionHandler); - if (AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.keyUtils.LANGUAGE_SWITCHING_ENABLED)) { + if (Utils.enableLanguageSwitching()) { languageSwitcherSection.setOnClickListener(meFragmentActionHandler); } } @@ -78,9 +78,13 @@ protected void onViewClicked(View view) { if (viewId == R.id.logout_section) { DrishtiApplication.getInstance().logoutCurrentUser(); } else if (viewId == R.id.site_characteristics_section) { - getContext().startActivity(new Intent(getContext(), SiteCharacteristicsActivity.class)); + if (getContext() != null) { + getContext().startActivity(new Intent(getContext(), SiteCharacteristicsActivity.class)); + } } else if (viewId == R.id.me_pop_characteristics_section) { - getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); + if (getContext() != null) { + getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); + } } else if (viewId == R.id.language_switcher_section) { languageSwitcherDialog(locales, languages); } @@ -91,13 +95,13 @@ private void languageSwitcherDialog(List> locales, String[] AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(getActivity().getResources().getString(R.string.choose_language)); builder.setItems(languages, (dialog, which) -> { - Pair lang = locales.get(which); - languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), lang.getLeft())); - LangUtils.saveLanguage(getActivity().getApplication(), lang.getValue().getLanguage()); - Intent intent = getActivity().getIntent(); - getActivity().finish(); - getActivity().startActivity(intent); - AncLibrary.getInstance().notifyAppContextChange(); + if (getActivity() != null) { + Pair lang = locales.get(which); + languageSwitcherText.setText(String.format(MeFragment.this.getActivity().getResources().getString(R.string.default_language_string), lang.getLeft())); + LangUtils.saveLanguage(getActivity().getApplication(), lang.getValue().getLanguage()); + reloadClass(); + AncLibrary.getInstance().notifyAppContextChange(); + } }); AlertDialog dialog = builder.create(); @@ -105,6 +109,14 @@ private void languageSwitcherDialog(List> locales, String[] } } + private void reloadClass() { + if (getActivity() != null) { + Intent intent = getActivity().getIntent(); + getActivity().finish(); + getActivity().startActivity(intent); + } + } + private void registerLanguageSwitcher() { if (getActivity() != null) { locales = Arrays.asList(Pair.of("English", Locale.ENGLISH), Pair.of("French", Locale.FRENCH)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index 754e517d4..0db770008 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -113,9 +113,9 @@ public static void updateWomanAlertStatus(String baseEntityId, String alertStatu updateLastInteractedWith(baseEntityId); } - public static void updatePatient(String baseEntityId, ContentValues contentValues, String detailsTable) { + public static void updatePatient(String baseEntityId, ContentValues contentValues, String table) { getMasterRepository().getWritableDatabase() - .update(detailsTable, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", + .update(table, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", new String[]{baseEntityId}); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index cdc13120b..74d380224 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -4,16 +4,13 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; -import android.os.Build; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import android.text.format.DateUtils; -import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.View; import android.widget.Button; @@ -21,7 +18,6 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; -import com.vijay.jsonwizard.utils.NativeFormLangUtils; import net.sqlcipher.database.SQLiteDatabase; @@ -45,6 +41,7 @@ import org.smartregister.anc.library.activity.ContactSummaryFinishActivity; import org.smartregister.anc.library.activity.MainContactActivity; import org.smartregister.anc.library.activity.ProfileActivity; +import org.smartregister.anc.library.constants.AncAppPropertyConstants; import org.smartregister.anc.library.domain.ButtonAlertStatus; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.event.BaseEvent; @@ -67,7 +64,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; -import java.util.Locale; import java.util.Map; import timber.log.Timber; @@ -696,4 +692,8 @@ private void createAndPersistPartialContact(String baseEntityId, int contactNo, public ContactTasksRepository getContactTasksRepositoryHelper() { return AncLibrary.getInstance().getContactTasksRepository(); } + + public static Boolean enableLanguageSwitching() { + return AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KeyUtils.LANGUAGE_SWITCHING_ENABLED); + } } From 45d63343b60d1ce1d08007775bfbe045c4ce42f8 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Thu, 9 Apr 2020 16:32:11 +0300 Subject: [PATCH 018/302] updated code to tests native forms performance improvement --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../anc/library/activity/ContactJsonFormActivity.java | 2 +- reference-app/build.gradle | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 9039da1b4..7dccf8295 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.2.5-LOCAL-SNAPSHOT +VERSION_NAME=2.0.2.6-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index aa3d3825e..77a97c59b 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.28-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 772bf3b7b..4d4be62df 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -130,7 +130,7 @@ protected void checkBoxWriteValue(String stepName, String parentKey, String chil quickCheckDangerSignsSelectionHandler(fields); } - invokeRefreshLogic(value, popup, parentKey, childKey); + invokeRefreshLogic(value, popup, parentKey, childKey, stepName); return; } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index cadd0a7aa..2cf16ecc4 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -130,7 +130,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://opensrp-jembi-eregister.smartregister.org/opensrp/"' //TODO should be changed to anc staging url buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.28-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 3063c0ef8465eb5a4ef21ae17d1fee46f4b98b1c Mon Sep 17 00:00:00 2001 From: bennsimon Date: Sun, 12 Apr 2020 08:55:18 +0300 Subject: [PATCH 019/302] code cleanup --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../activity/ContactJsonFormActivity.java | 10 +++++++++ .../ContactWizardJsonFormFragment.java | 11 +++++----- reference-app/build.gradle | 22 +++++++++---------- 5 files changed, 29 insertions(+), 18 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7dccf8295..8796c64ba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.2.6-LOCAL-SNAPSHOT +VERSION_NAME=2.0.2.7-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 77a97c59b..ae706d50a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.31.0.5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 4d4be62df..f7f92fe77 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -240,6 +240,16 @@ protected void callSuperWriteValue(String stepName, String key, String value, St } + + @Override + public void performActionOnReceived(String essentials) { + try { + invokeRefreshLogic(null, false, null, null, essentials.split(":")[0]); + } catch (Exception e) { + Timber.e(e); + } + } + public void showProgressDialog(String titleIdentifier) { if (progressDialog == null) { progressDialog = new ProgressDialog(this); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index a09aa48f3..a7e39e154 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -144,11 +144,12 @@ protected void setupCustomUI() { @Override public void onResume() { super.onResume(); - if (!getJsonApi().isPreviousPressed()) { - skipStepsOnNextPressed(); - } else { - skipStepOnPreviousPressed(); - } +// no need repetition +// if (!getJsonApi().isPreviousPressed()) { +// skipStepsOnNextPressed(); +// } else { +// skipStepOnPreviousPressed(); +// } setJsonFormFragment(this); } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 2cf16ecc4..83a7e5ef3 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,17 +221,17 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { - transitive = true - exclude group: 'com.android.support', module: 'recyclerview-v7' - exclude group: 'com.android.support', module: 'appcompat-v7' - exclude group: 'com.android.support', module: 'cardview-v7' - exclude group: 'com.android.support', module: 'support-media-compat' - exclude group: 'com.android.support', module: 'support-v4' - exclude group: 'com.android.support', module: 'design' - exclude group: 'org.yaml', module: 'snakeyaml' - exclude group: 'io.ona.rdt-capture', module: 'lib' - } +// implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { +// transitive = true +// exclude group: 'com.android.support', module: 'recyclerview-v7' +// exclude group: 'com.android.support', module: 'appcompat-v7' +// exclude group: 'com.android.support', module: 'cardview-v7' +// exclude group: 'com.android.support', module: 'support-media-compat' +// exclude group: 'com.android.support', module: 'support-v4' +// exclude group: 'com.android.support', module: 'design' +// exclude group: 'org.yaml', module: 'snakeyaml' +// exclude group: 'io.ona.rdt-capture', module: 'lib' +// } implementation('org.smartregister:opensrp-client-core:1.9.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' From 2537fe1649e2d649cdb63c0f614f42b557798f5a Mon Sep 17 00:00:00 2001 From: bennsimon Date: Sun, 12 Apr 2020 15:20:26 +0300 Subject: [PATCH 020/302] fix gibberish text and crash in ct --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../fragment/ProfileContactsFragment.java | 24 ++++++++++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 8796c64ba..788931ce5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.2.7-LOCAL-SNAPSHOT +VERSION_NAME=2.0.2.9-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index ae706d50a..5480bcf6c 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.31.0.5-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.31.0.8-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index 17c4308d3..a6b44b4dc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -14,6 +14,7 @@ import android.widget.ScrollView; import android.widget.TextView; +import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; @@ -27,12 +28,13 @@ import org.smartregister.anc.library.domain.YamlConfig; import org.smartregister.anc.library.domain.YamlConfigItem; import org.smartregister.anc.library.domain.YamlConfigWrapper; +import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.presenter.ProfileFragmentPresenter; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.view.fragment.BaseProfileFragment; @@ -119,6 +121,7 @@ protected void onResumption() { } setUpAlertStatusButton(); contactNo = String.valueOf(Utils.getTodayContact(clientDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT))); + populatePreviousContactMissingEssentials(clientDetails); initializeLastContactDetails(clientDetails); if (lastContactDetails.isEmpty() && lastContactTests.isEmpty()) { @@ -130,6 +133,25 @@ protected void onResumption() { } } + private void populatePreviousContactMissingEssentials(HashMap clientDetails) { + try { + if (clientDetails != null && clientDetails.containsKey("edd") && StringUtils.isNotBlank(clientDetails.get("edd"))) { + Facts entries = AncLibrary.getInstance().getPreviousContactRepository().getPreviousContactFacts(baseEntityId, contactNo, false); + if (entries != null && entries.get(ConstantsUtils.GEST_AGE_OPENMRS) != null) + return; + int gestAgeOpenmrs = Utils.getGestationAgeFromEDDate(clientDetails.get("edd")); + PreviousContact previousContact = new PreviousContact(); + previousContact.setBaseEntityId(baseEntityId); + previousContact.setContactNo(contactNo); + previousContact.setKey(ConstantsUtils.GEST_AGE_OPENMRS); + previousContact.setValue(String.valueOf(gestAgeOpenmrs)); + AncLibrary.getInstance().getPreviousContactRepository().savePreviousContact(previousContact); + } + } catch (Exception e) { + Timber.e(e); + } + } + private void setUpAlertStatusButton() { Utils.processButtonAlertStatus(getActivity(), dueButton, buttonAlertStatus); } From 6deade06ebbbffaee7405ee3a37de2699b9711f7 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 22 Apr 2020 17:28:25 +0300 Subject: [PATCH 021/302] :zap: Adding the yaml translations --- opensrp-anc/build.gradle | 4 +- .../main/assets/config/attention-flags.yml | 119 +++---- .../config/profile_contact_tab_contacts.yml | 5 +- .../src/main/assets/json.form/anc_close.json | 290 +++++++++--------- .../smartregister/anc/library/AncLibrary.java | 6 +- .../anc/library/activity/ProfileActivity.java | 29 +- .../anc/library/domain/YamlConfig.java | 17 + .../anc/library/fragment/MeFragment.java | 56 ++-- .../fragment/ProfileContactsFragment.java | 2 +- .../fragment/ProfileOverviewFragment.java | 2 +- .../fragment/ProfileTasksFragment.java | 2 +- .../anc/library/task/AttentionFlagsTask.java | 11 +- .../anc/library/util/ANCJsonFormUtils.java | 2 + .../smartregister/anc/library/util/Utils.java | 2 +- .../src/main/res/values-fr/strings.xml | 97 +++--- .../main/resources/anc_close_fr.properties | 73 +++++ .../resources/anc_quick_check_fr.properties | 65 ++++ .../main/resources/anc_register_fr.properties | 31 ++ .../src/main/resources/anc_test_fr.properties | 57 ++++ .../main/resources/attention_flags.properties | 59 ++++ .../profile_contact_tab_contacts.properties | 2 + .../tests_blood_type_sub_form_fr.properties | 17 + .../tests_hepatitis_b_sub_form_fr.properties | 33 ++ .../tests_hiv_sub_form_fr.properties | 19 ++ reference-app/build.gradle | 8 +- 25 files changed, 695 insertions(+), 313 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_close_fr.properties create mode 100644 opensrp-anc/src/main/resources/anc_quick_check_fr.properties create mode 100644 opensrp-anc/src/main/resources/anc_register_fr.properties create mode 100644 opensrp-anc/src/main/resources/anc_test_fr.properties create mode 100644 opensrp-anc/src/main/resources/attention_flags.properties create mode 100644 opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties create mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties create mode 100644 opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 949afa43c..44d0fb7bc 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -56,7 +56,7 @@ android { minSdkVersion androidMinSdkVersion targetSdkVersion androidTargetSdkVersion versionCode 1 - versionName "1.2.11" + versionName "1.3.0" multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.3201-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.0-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/config/attention-flags.yml b/opensrp-anc/src/main/assets/config/attention-flags.yml index 162d8490f..5b1b5394b 100644 --- a/opensrp-anc/src/main/assets/config/attention-flags.yml +++ b/opensrp-anc/src/main/assets/config/attention-flags.yml @@ -1,183 +1,184 @@ --- +properties_file_name: "attention_flags" group: yellow_attention_flag fields: - - template: "Age: {age}" + - template: "{{attention_flags.yellow.age}}: {age}" relevance: "age <= 17 || age >= 35" - - template: "Gravida: {gravida}" + - template: "{{attention_flags.yellow.gravida}}: {gravida}" relevance: "gravida >= 5" - - template: "Parity: {parity}" + - template: "{{attention_flags.yellow.parity}}: {parity}" relevance: "parity >= 5" - - template: "Past pregnancy problems: {prev_preg_comps_value}" + - template: "{{attention_flags.yellow.past_pregnancy_problems}}: {prev_preg_comps_value}" relevance: "!prev_preg_comps.isEmpty() && !prev_preg_comps.contains('none')" - - template: "Past alcohol / substances used: {substances_used_value}" + - template: "{{attention_flags.yellow.past_alcohol_substances_used}}: {substances_used_value}" relevance: "!substances_used.isEmpty() && !substances_used.contains('none')" - - template: "Pre-eclampsia risk" + - template: "{{attention_flags.yellow.pre_eclampsia_risk}}" relevance: "preeclampsia_risk == 1" - - template: "Diabetes risk" + - template: "{{attention_flags.yellow.diabetes_risk}}" relevance: "gdm_risk == 1" - - template: "Surgeries: {surgeries_value}" + - template: "{{attention_flags.yellow.surgeries}}: {surgeries_value}" relevance: "!surgeries.isEmpty() && !surgeries.contains('none')" - - template: "Chronic health conditions: {health_conditions_value}" + - template: "{{attention_flags.yellow.chronic_health_conditions}}: {health_conditions_value}" relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none')" - - template: "High daily consumption of caffeine" + - template: "{{attention_flags.yellow.high_daily_consumption_of_caffeine}}" relevance: "!caffeine_intake.isEmpty() && !caffeine_intake.contains('none')" - - template: "Second-hand exposure to tobacco smoke" + - template: "{{attention_flags.yellow.second_hand_exposure_to_tobacco_smoke}}" relevance: "shs_exposure == 'yes'" - - template: "Persistent physiological symptoms: {phys_symptoms_persist_value}" + - template: "{{attention_flags.yellow.persistent_physiological_symptoms}}: {phys_symptoms_persist_value}" relevance: "!phys_symptoms_persist.isEmpty() && !phys_symptoms_persist.contains('none')" - - template: "Reduced or no fetal movement perceived by woman" + - template: "{{attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman}}" relevance: "mat_percept_fetal_move != '' && mat_percept_fetal_move != 'normal_fetal_move'" - - template: "Weight category: {weight_cat_value}" + - template: "{{attention_flags.yellow.weight_category}}: {weight_cat_value}" relevance: "weight_cat != '' && (weight_cat == 'underweight' || weight_cat == 'overweight' || weight_cat == 'obese')" - - template: "Abnormal breast exam: {breast_exam_abnormal_value}" + - template: "{{attention_flags.yellow.abnormal_breast_exam}}: {breast_exam_abnormal_value}" relevance: "!breast_exam_abnormal.contains('none') && !breast_exam_abnormal.isEmpty()" - - template: "Abnormal abdominal exam: {abdominal_exam_abnormal_value}" + - template: "{{attention_flags.yellow.abnormal_abdominal_exam}}: {abdominal_exam_abnormal_value}" relevance: "!abdominal_exam_abnormal.contains('none') && !abdominal_exam_abnormal.isEmpty()" - - template: "Abnormal pelvic exam: {pelvic_exam_abnormal_value}" + - template: "{{attention_flags.yellow.abnormal_pelvic_exam}}: {pelvic_exam_abnormal_value}" relevance: "!pelvic_exam_abnormal.contains('none') && !pelvic_exam_abnormal.isEmpty()" - - template: "Oedema present" + - template: "{{attention_flags.yellow.oedema_present}}" relevance: "oedema == 'yes'" - - template: "Rh factor negative" + - template: "{{attention_flags.yellow.rh_factor_negative}}" relevance: "rh_factor == 'negative'" --- group: red_attention_flag fields: - - template: "Danger sign(s): {danger_signs_value}" + - template: "{{attention_flags.red.danger_sign}}: {danger_signs_value}" relevance: "!danger_signs.isEmpty() && !danger_signs.contains('danger_none')" - - template: "Occupation: Informal employment (sex worker)" + - template: "{{attention_flags.red.occupation_informal_employment_sex_worker}}" relevance: "occupation.contains('informal_employment_sex_worker')" - - template: "No. of pregnancies lost/ended: {miscarriages_abortions}" + - template: "{{attention_flags.red.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" relevance: "miscarriages_abortions >= 2" - - template: "No. of stillbirths: {stillbirths}" + - template: "{{attention_flags.red.no_of_stillbirths}}: {stillbirths}" relevance: "{stillbirths} >= 1" - - template: "No. of C-sections: {c_sections}" + - template: "{{attention_flags.red.no_of_C_sections}}: {c_sections}" relevance: "{c_sections} >= 1" - - template: "Allergies: {allergies_value}" + - template: "{{attention_flags.red.allergies}}: {allergies_value}" relevance: "!allergies.isEmpty() && !allergies.contains('none')" - - template: "Tobacco user or recently quit" + - template: "{{attention_flags.red.tobacco_user_or_recently_quit}}" relevance: "tobacco_user == 'yes' || tobacco_user == 'recently_quit'" - - template: "Woman and her partner(s) do not use condoms" + - template: "{{attention_flags.red.woman_and_her_partner_do_not_use_condoms}}" relevance: "condom_use == 'no'" - - template: "Alcohol / substances currently using: {alcohol_substance_use_value}" + - template: "{{attention_flags.red.alcohol_substances_currently_using}}: {alcohol_substance_use_value}" relevance: "!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none')" - - template: "Hypertension diagnosis" + - template: "{{attention_flags.red.hypertension_diagnosis}}" relevance: "hypertension == 1" - - template: "Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" + - template: "{{attention_flags.red.severe_hypertension}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" relevance: "severe_hypertension == 1" - - template: "Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia}" + - template: "{{attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia}" relevance: "hypertension == 1 && !symp_sev_preeclampsia.isEmpty() && !symp_sev_preeclampsia.contains('none')" - - template: "Pre-eclampsia diagnosis" + - template: "{{attention_flags.red.pre_eclampsia_diagnosis}}" relevance: "preeclampsia == 1" - - template: "Severe pre-eclampsia diagnosis" + - template: "{{attention_flags.red.severe_pre_eclampsia_diagnosis}}" relevance: "severe_preeclampsia == 1" - - template: "Fever: {body_temp_repeat}ºC" + - template: "{{attention_flags.red.fever}}: {body_temp_repeat}ºC" relevance: "body_temp_repeat >= 38" - - template: "Abnormal pulse rate: {pulse_rate_repeat}bpm" + - template: "{{attention_flags.red.abnormal_pulse_rate}}: {pulse_rate_repeat}bpm" relevance: "pulse_rate_repeat < 60 || pulse_rate_repeat > 100" - - template: "Anaemia diagnosis" + - template: "{{attention_flags.red.anaemia_diagnosis}}" relevance: "anaemic == 1" - - template: "Respiratory distress: {respiratory_exam_abnormal_value}" + - template: "{{attention_flags.red.respiratory_distress}}: {respiratory_exam_abnormal_value}" relevance: "!respiratory_exam_abnormal.contains('none') && !respiratory_exam_abnormal.isEmpty()" - - template: "Low oximetry: {oximetry}%" + - template: "{{attention_flags.red.low_oximetry}}: {oximetry}%" relevance: "oximetry < 92" - - template: "Abnormal cardiac exam: {cardiac_exam_abnormal_value}" + - template: "{{attention_flags.red.abnormal_cardiac_exam}}: {cardiac_exam_abnormal_value}" relevance: "!cardiac_exam_abnormal.contains('none') && !cardiac_exam_abnormal.isEmpty()" - - template: "Cervix dilated: {dilation_cm} cm" + - template: "{{attention_flags.red.cervix_dilated}}: {dilation_cm} cm" relevance: "dilation_cm > 2" - - template: "No fetal heartbeat observed" + - template: "{{attention_flags.red.no_fetal_heartbeat_observed}}" relevance: "fetal_heartbeat == 'no'" - - template: "Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm" + - template: "{{attention_flags.red.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat}bpm" relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" - - template: "No. of fetuses: {no_of_fetuses}" + - template: "{{attention_flags.red.no_of_fetuses}}: {no_of_fetuses}" relevance: "no_of_fetuses > 1" - - template: "Fetal presentation: {fetal_presentation} " + - template: "{{attention_flags.red.fetal_presentation}}: {fetal_presentation} " relevance: "gest_age >= 28 && fetal_presentation == 'transverse'" - - template: "Amniotic fluid: {amniotic_fluid}" + - template: "{{attention_flags.red.amniotic_fluid}}: {amniotic_fluid}" relevance: "amniotic_fluid == 'reduced' || amniotic_fluid == 'increased'" - - template: "Placenta location: {placenta_location_value}" + - template: "{{attention_flags.red.placenta_location}}: {placenta_location_value}" relevance: "placenta_location == 'praevia'" - - template: "HIV risk" + - template: "{{attention_flags.red.hiv_risk}}" relevance: "hiv_risk == 1" - - template: "HIV positive" + - template: "{{attention_flags.red.hiv_positive}}" relevance: "hiv_positive == 1" - - template: "Hepatitis B positive" + - template: "{{attention_flags.red.hepatitis_b_positive}}" relevance: "hepb_positive == 1" - - template: "Hepatitis C positive" + - template: "{{attention_flags.red.hepatitis_c_positive}}" relevance: "hepc_positive == 1" - - template: "Syphilis positive" + - template: "{{attention_flags.red.syphilis_positive}}" relevance: "syphilis_positive == 1" - - template: "Asymptomatic bacteriuria (ASB) diagnosis" + - template: "{{attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis}}" relevance: "asb_positive == 1" - - template: "Group B Streptococcus (GBS) diagnosis" + - template: "{{attention_flags.red.group_b_streptococcus_gbs_diagnosis}}" relevance: "urine_culture == 'positive - group b streptococcus (gbs)'" - - template: "Gestational Diabetes Mellitus (GDM) diagnosis" + - template: "{{attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis}}" relevance: "gdm == 1" - - template: "Diabetes Mellitus (DM) in pregnancy diagnosis" + - template: "{{attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis}}" relevance: "dm_in_preg == 1" - - template: "Hematocrit (Ht): {ht}" + - template: "{{attention_flags.red.hematocrit_ht}}: {ht}" relevance: "ht < 10.5" - - template: "White blood cell (WBC) count: {wbc}" + - template: "{{attention_flags.red.white_blood_cell_wbc_count}}: {wbc}" relevance: "wbc > 16000" - - template: "Platelet count: {platelets}" + - template: "{{attention_flags.red.platelet_count}}: {platelets}" relevance: "platelets < 100000" - - template: "TB screening positive" + - template: "{{attention_flags.red.tb_screening_positive}}" relevance: "tb_screening_result == 'positive'" diff --git a/opensrp-anc/src/main/assets/config/profile_contact_tab_contacts.yml b/opensrp-anc/src/main/assets/config/profile_contact_tab_contacts.yml index f8adf567b..6d5bf9196 100644 --- a/opensrp-anc/src/main/assets/config/profile_contact_tab_contacts.yml +++ b/opensrp-anc/src/main/assets/config/profile_contact_tab_contacts.yml @@ -1,7 +1,8 @@ --- +properties_file_name: "profile_contact_tab_contacts" fields: -- template: "Physiological symptoms: {phys_symptoms}" +- template: "{{profile_contact_tab_contacts.physiological_symptoms}}: {phys_symptoms}" relevance: "phys_symptoms != ''" -- template: "Average weight gain per week since last contact: {weight_gain} kg" +- template: "{{profile_contact_tab_contacts.average_weight_gain_per_week_since_last_contact}}: {weight_gain} kg" relevance: "weight_gain != ''" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_close.json b/opensrp-anc/src/main/assets/json.form/anc_close.json index e8bec3162..113be4f24 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_close.json +++ b/opensrp-anc/src/main/assets/json.form/anc_close.json @@ -61,76 +61,74 @@ { "key": "live_birth", "text": "{{anc_close.step1.anc_close_reason.options.live_birth.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "151849AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "stillbirth", "text": "{{anc_close.step1.anc_close_reason.options.stillbirth.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "125872AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "miscarriage", "text": "{{anc_close.step1.anc_close_reason.options.miscarriage.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "abortion", "text": "{{anc_close.step1.anc_close_reason.options.abortion.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_died", "text": "{{anc_close.step1.anc_close_reason.options.woman_died.text}}", + "openmrs_entity_parent": "", "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_id": "160034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "moved_away", "text": "{{anc_close.step1.anc_close_reason.options.moved_away.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "false_pregnancy", "text": "{{anc_close.step1.anc_close_reason.options.false_pregnancy.text}}", - "openmrs_entityMoved away": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "128299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "lost_to_follow_up", "text": "{{anc_close.step1.anc_close_reason.options.lost_to_follow_up.text}}", - "openmrs_entity": "", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", "openmrs_entity_id": "" }, { "key": "wrong_entry", "text": "{{anc_close.step1.anc_close_reason.options.wrong_entry.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", "text": "{{anc_close.step1.anc_close_reason.options.other.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "openmrs_choice_ids": { - "Live birth": "151849AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Stillbirth": "125872AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Miscarriage": "48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Abortion": "50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Woman Died": "160034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Lost to follow-up": "5240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Moved away": "160415AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "False Pregnancy": "128299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Wrong entry": "165246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Other": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, "v_required": { "value": "true", "err": "{{anc_close.step1.anc_close_reason.v_required.err}}" @@ -169,27 +167,25 @@ { "key": "health_facility", "text": "{{anc_close.step1.delivery_place.options.health_facility.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1588AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "home", "text": "{{anc_close.step1.delivery_place.options.home.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1536AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", "text": "{{anc_close.step1.delivery_place.options.other.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "openmrs_choice_ids": { - "Health facility": "1588AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Home": "1536AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Other": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, "v_required": { "value": "true", "err": "{{anc_close.step1.delivery_place.v_required.err}}" @@ -233,27 +229,25 @@ { "key": "normal", "text": "{{anc_close.step1.delivery_mode.options.normal.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1170AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "forceps_or_vacuum", "text": "{{anc_close.step1.delivery_mode.options.forceps_or_vacuum.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "118159AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "c_section", "text": "{{anc_close.step1.delivery_mode.options.c_section.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1171AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "openmrs_choice_ids": { - "Normal": "1170AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Forceps or Vacuum": "118159AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "C-section": "1171AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, "v_required": { "value": "false" }, @@ -308,24 +302,18 @@ { "key": "yes", "text": "{{anc_close.step1.exclusive_bf.options.yes.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "no", "text": "{{anc_close.step1.exclusive_bf.options.no.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "values": [ - "Yes", - "No" - ], - "openmrs_choice_ids": { - "Yes": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "No": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, "v_required": { "value": "false" }, @@ -349,69 +337,67 @@ { "key": "normal", "text": "{{anc_close.step1.ppfp_method.options.normal.text}}", - "openmrs_entity": "", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", "openmrs_entity_id": "" }, { "key": "forceps_or_vacuum", "text": "{{anc_close.step1.ppfp_method.options.forceps_or_vacuum.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "ocp", "text": "{{anc_close.step1.ppfp_method.options.ocp.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "condom", "text": "{{anc_close.step1.ppfp_method.options.condom.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "190AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "female_sterilization", "text": "{{anc_close.step1.ppfp_method.options.female_sterilization.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5276AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "male_sterilization", "text": "{{anc_close.step1.ppfp_method.options.male_sterilization.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "iud", "text": "{{anc_close.step1.ppfp_method.options.iud.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "136452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "abstinence", "text": "{{anc_close.step1.ppfp_method.options.abstinence.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "159524AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", "text": "{{anc_close.step1.ppfp_method.options.other.text}}", - "openmrs_entity": "", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", "openmrs_entity_id": "" } ], - "openmrs_choice_ids": { - "None": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Exclusive breastfeeding": "5526AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "OCP": "780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Condom": "190AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Female sterlization": "5276AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Male sterlization": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "IUD": "136452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Abstinence": "159524AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Forceps or Vacuum": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, "v_required": { "value": "false" }, @@ -440,74 +426,86 @@ { "key": "None", "text": "{{anc_close.step1.delivery_complications.options.None.text}}", - "value": false, - "openmrs_choice_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Postpartum haemorrhage", "text": "{{anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text}}", - "value": false, - "openmrs_choice_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Antepartum haemorrhage", "text": "{{anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text}}", - "value": false, - "openmrs_choice_id": "228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Placenta praevia", "text": "{{anc_close.step1.delivery_complications.options.Placenta_praevia.text}}", - "value": false, - "openmrs_choice_id": "114127AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "114127AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Placental abruption", "text": "{{anc_close.step1.delivery_complications.options.Placental_abruption.text}}", - "value": false, - "openmrs_choice_id": "130108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "130108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Cord prolapse", "text": "{{anc_close.step1.delivery_complications.options.Cord_prolapse.text}}", - "value": false, - "openmrs_choice_id": "128420AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "128420AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Obstructed labour", "text": "{{anc_close.step1.delivery_complications.options.Obstructed_labour.text}}", - "value": false, - "openmrs_choice_id": "141596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "141596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Abnormal presentation", "text": "{{anc_close.step1.delivery_complications.options.Abnormal_presentation.text}}", - "value": false, - "openmrs_choice_id": "150862AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "150862AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Pre-eclampsia", "text": "{{anc_close.step1.delivery_complications.options.Pre_eclampsia.text}}", - "value": false, - "openmrs_choice_id": "160034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Eclampsia", "text": "{{anc_close.step1.delivery_complications.options.Eclampsia.text}}", - "value": false, - "openmrs_choice_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Perineal tear (2nd, 3rd or 4th degree)", "text": "{{anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text}}", - "value": false, - "openmrs_choice_id": "165247AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165247AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "Other", "text": "{{anc_close.step1.delivery_complications.options.Other.text}}", - "value": false, - "openmrs_choice_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], "v_required": { @@ -599,62 +597,72 @@ { "key": "normal", "text": "{{anc_close.step1.death_cause.options.normal.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "abortion_related_complications", "text": "{{anc_close.step1.death_cause.options.abortion_related_complications.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "122299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "obstructed_labour", "text": "{{anc_close.step1.death_cause.options.obstructed_labour.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "141596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "pre_eclampsia", "text": "{{anc_close.step1.death_cause.options.pre_eclampsia.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "eclampsia", "text": "{{anc_close.step1.death_cause.options.eclampsia.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "118744AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "postpartum_haemorrhage", "text": "{{anc_close.step1.death_cause.options.postpartum_haemorrhage.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "antepartum_haemorrhage", "text": "{{anc_close.step1.death_cause.options.antepartum_haemorrhage.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "placental_abruption", "text": "{{anc_close.step1.death_cause.options.placental_abruption.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "130108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "infection", "text": "{{anc_close.step1.death_cause.options.infection.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "130AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", "text": "{{anc_close.step1.death_cause.options.other.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], "v_required": { @@ -667,18 +675,6 @@ "rules-file": "anc_close_relevance_rules.yml" } } - }, - "openmrs_choice_ids": { - "Unknown": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Abortion-related complications": "122299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Obstructed labour": "141596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Pre-eclampsia": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Eclampsia": "118744AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Postpartum haemorrhage": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Antepartum haemorrhage": "228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Placental abruption": "130108AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Infection": "130AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "Other": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } } ] diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 6e0baa253..de942ba93 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -287,10 +287,8 @@ public JSONObject getDefaultContactFormGlobals() { return defaultContactFormGlobals; } - public Iterable readYaml(String filename) throws IOException { - InputStreamReader inputStreamReader = new InputStreamReader( - getApplicationContext().getAssets().open((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename))); - return yaml.loadAll(inputStreamReader); + public Iterable readYaml(String filename) { + return yaml.loadAll(com.vijay.jsonwizard.utils.Utils.getTranslatedYamlFile((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename), getApplicationContext())); } public int getDatabaseVersion() { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index ed765ad8a..080a1283d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -235,25 +235,16 @@ private void attachAlertDialog(String contactButtonText) { arrayAdapter.add(getString(R.string.close_anc_record)); builderSingle.setAdapter(arrayAdapter, (dialog, which) -> { - String textClicked = arrayAdapter.getItem(which); - if (textClicked != null) { - switch (textClicked) { - case ConstantsUtils.CALL: - launchPhoneDialer(phoneNumber); - break; - case ConstantsUtils.START_CONTACT: - case ConstantsUtils.CONTINUE_CONTACT: - continueToContact(); - break; - case CLOSE_ANC_RECORD: - ANCJsonFormUtils.launchANCCloseForm(ProfileActivity.this); - break; - default: - if (textClicked.startsWith(ConstantsUtils.CONTINUE)) { - continueToContact(); - } - break; - } + switch (which) { + case 0: + launchPhoneDialer(phoneNumber); + break; + case 2: + ANCJsonFormUtils.launchANCCloseForm(ProfileActivity.this); + break; + default: + continueToContact(); + break; } dialog.dismiss(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/domain/YamlConfig.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/domain/YamlConfig.java index 072cbdc01..4d884191c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/domain/YamlConfig.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/domain/YamlConfig.java @@ -11,6 +11,7 @@ public class YamlConfig { private String sub_group; private List fields; private String test_results; + private String properties_file_name; public YamlConfig() { } @@ -22,6 +23,14 @@ public YamlConfig(String group, String sub_group, List fields, S this.test_results = test_results; } + public YamlConfig(String group, String sub_group, List fields, String test_results, String properties_file_name) { + this.group = group; + this.sub_group = sub_group; + this.fields = fields; + this.test_results = test_results; + this.properties_file_name = properties_file_name; + } + public String getSubGroup() { return sub_group; } @@ -54,6 +63,14 @@ public void setTestResults(String test_results) { this.test_results = test_results; } + public String getPropertiesFileName() { + return properties_file_name; + } + + public void setPropertiesFileName(String properties_file_name) { + this.properties_file_name = properties_file_name; + } + public static final class KeyUtils { public static final String GROUP = "group"; public static final String FIELDS = "fields"; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 74f1cc05d..cf0334565 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -11,7 +11,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; -import org.apache.commons.lang3.tuple.Pair; +import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.PopulationCharacteristicsActivity; @@ -22,16 +22,18 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.contract.MeContract; -import java.util.Arrays; -import java.util.List; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; + +import timber.log.Timber; public class MeFragment extends org.smartregister.view.fragment.MeFragment implements MeContract.View { private RelativeLayout mePopCharacteristicsSection; private RelativeLayout siteCharacteristicsSection; private RelativeLayout languageSwitcherSection; private TextView languageSwitcherText; - private List> locales; + private Map locales = new HashMap<>(); private String[] languages; @Nullable @@ -86,20 +88,21 @@ protected void onViewClicked(View view) { getContext().startActivity(new Intent(getContext(), PopulationCharacteristicsActivity.class)); } } else if (viewId == R.id.language_switcher_section) { - languageSwitcherDialog(locales, languages); + languageSwitcherDialog(); } } - private void languageSwitcherDialog(List> locales, String[] languages) { + private void languageSwitcherDialog() { if (getActivity() != null) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(getActivity().getResources().getString(R.string.choose_language)); - builder.setItems(languages, (dialog, which) -> { - if (getActivity() != null) { - Pair lang = locales.get(which); - languageSwitcherText.setText(String.format(MeFragment.this.getActivity().getResources().getString(R.string.default_language_string), lang.getLeft())); - LangUtils.saveLanguage(getActivity().getApplication(), lang.getValue().getLanguage()); - reloadClass(); + builder.setItems(languages, (dialog, position) -> { + if (MeFragment.this.getActivity() != null) { + String selectedLanguage = languages[position]; + languageSwitcherText.setText(String.format(MeFragment.this.getActivity().getResources().getString(R.string.default_language_string), selectedLanguage)); + + saveLanguage(selectedLanguage); + MeFragment.this.reloadClass(); AncLibrary.getInstance().notifyAppContextChange(); } }); @@ -109,6 +112,17 @@ private void languageSwitcherDialog(List> locales, String[] } } + private void saveLanguage(String selectedLanguage) { + if (MeFragment.this.getActivity() != null && StringUtils.isNotBlank(selectedLanguage)) { + Locale selectedLanguageLocale = locales.get(selectedLanguage); + if (selectedLanguageLocale != null) { + LangUtils.saveLanguage(MeFragment.this.getActivity().getApplication(), selectedLanguageLocale.getLanguage()); + } else { + Timber.i("Language could not be set"); + } + } + } + private void reloadClass() { if (getActivity() != null) { Intent intent = getActivity().getIntent(); @@ -119,19 +133,25 @@ private void reloadClass() { private void registerLanguageSwitcher() { if (getActivity() != null) { - locales = Arrays.asList(Pair.of("English", Locale.ENGLISH), Pair.of("French", Locale.FRENCH)); + addLanguages(); languages = new String[locales.size()]; Locale current = getActivity().getResources().getConfiguration().locale; int x = 0; - while (x < locales.size()) { - languages[x] = locales.get(x).getKey(); - if (current.getLanguage().equals(locales.get(x).getValue().getLanguage())) { - languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), locales.get(x).getKey())); - } + for (Map.Entry language : locales.entrySet()) { + languages[x] = language.getKey(); //Update the languages strings array with the languages to be displayed on the alert dialog x++; + + if (current.getLanguage().equals(language.getValue().getLanguage())) { + languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), language.getKey())); + } } } } + private void addLanguages() { + locales.put("English", Locale.ENGLISH); + locales.put("French", Locale.FRENCH); + } + } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index cd921c3ba..aabcf28e2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -103,7 +103,7 @@ protected void onCreation() { clientDetails = (HashMap) getActivity().getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); } - buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity().getApplicationContext(), true); + buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity(), true); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java index 42d4951e4..94b8e3950 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java @@ -63,7 +63,7 @@ protected void onCreation() { HashMap clientDetails = (HashMap) getActivity().getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); if (clientDetails != null) { - buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity().getApplicationContext(), true); + buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity(), true); contactNo = String.valueOf(Utils.getTodayContact(clientDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT))); } yamlConfigListGlobal = new ArrayList<>(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java index b1c82f62c..4713283d0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java @@ -85,7 +85,7 @@ protected void onCreation() { clientDetails = (HashMap) getActivity().getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); if (clientDetails != null) { contactNo = String.valueOf(Utils.getTodayContact(clientDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT))); - buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity().getApplicationContext(), true); + buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity(), true); } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index 17eb8f227..45fc27d54 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -47,12 +47,11 @@ protected Void doInBackground(Void... voids) { for (Object ruleObject : ruleObjects) { YamlConfig attentionFlagConfig = (YamlConfig) ruleObject; - for (YamlConfigItem yamlConfigItem : attentionFlagConfig.getFields()) { - if (AncLibrary.getInstance().getAncRulesEngineHelper() - .getRelevance(facts, yamlConfigItem.getRelevance())) { - attentionFlagList - .add(new AttentionFlag(Utils.fillTemplate(yamlConfigItem.getTemplate(), facts), - attentionFlagConfig.getGroup().equals(ConstantsUtils.AttentionFlagUtils.RED))); + if (attentionFlagConfig != null && attentionFlagConfig.getFields() != null) { + for (YamlConfigItem yamlConfigItem : attentionFlagConfig.getFields()) { + if (AncLibrary.getInstance().getAncRulesEngineHelper() + .getRelevance(facts, yamlConfigItem.getRelevance())) { attentionFlagList.add(new AttentionFlag(Utils.fillTemplate(yamlConfigItem.getTemplate(), facts), attentionFlagConfig.getGroup().equals(ConstantsUtils.AttentionFlagUtils.RED))); + } } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index b5c025441..d75fa4400 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -524,6 +524,7 @@ private static void formatEdd(Map womanClient, JSONObject jsonOb public static void startFormForEdit(Activity context, int jsonFormActivityRequestCode, String metaData) { Intent intent = new Intent(context, EditJsonFormActivity.class); intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, metaData); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); Timber.d("form is %s", metaData); context.startActivityForResult(intent, jsonFormActivityRequestCode); @@ -638,6 +639,7 @@ public static void launchSiteCharacteristicsForm(Activity activity) { form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); } } catch (Exception e) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 74d380224..d7ebd5d97 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -397,7 +397,7 @@ public static ButtonAlertStatus getButtonAlertStatus(Map details //Set text first String nextContactRaw = details.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT); - Integer nextContact = StringUtils.isNotBlank(nextContactRaw) ? Integer.valueOf(nextContactRaw) : 1; + Integer nextContact = StringUtils.isNotBlank(nextContactRaw) ? Integer.parseInt(nextContactRaw) : 1; nextContactDate = StringUtils.isNotBlank(nextContactDate) ? Utils.reverseHyphenSeperatedValues(nextContactDate, "/") : null; diff --git a/opensrp-anc/src/main/res/values-fr/strings.xml b/opensrp-anc/src/main/res/values-fr/strings.xml index 5ff368427..4be12ec4c 100644 --- a/opensrp-anc/src/main/res/values-fr/strings.xml +++ b/opensrp-anc/src/main/res/values-fr/strings.xml @@ -1,21 +1,9 @@ - - Deconnecté - Langue - - - CPN OMS - Enregistrement en cour... - Supression en cours - Veuillez attendre - Scanner Code QR - Chosir la Langue Aucun identifiant unique trouvé. Cliquez sur le bouton de synchronisation pour obtenir plus et si cette erreur persiste, contactez l\'administrateur système. Alphabétique (Nom) Nom et Prénom Annuler DOSE (D) - Identifiant Localisation \'%1$s\' Dose \'%1$s\' reçu \'%2$s\' @@ -30,7 +18,6 @@ Mise a jour en cours ... Supprimer du Registre / - Clients événements Synchro Synchronisation est terminé… @@ -62,9 +49,7 @@ Identifiant OpenSRP CPN OMS Une erreur s\'est produite lors du démarrage du formulaire - Rechercher Nom ou Identifiant Filtrer - Annuler Filtres Appliquer TERMINÉ A des tâches dues @@ -99,14 +84,12 @@ Numéro de téléphone Nom d\'une autre person contact Nom d\'une autre person contact - Rechercher Résultats de la recherche Recherche en cours… Veuillez attendre \'1%1$s\' correspond - Clients CPN Ressources de conseil Caractéristiques du site Résumé du contact @@ -115,19 +98,10 @@ Ouvrir le tiroir de navigation Module \n de soins prénatals Identifiant: %1$s - Âge: \'1%1$s\' - Age Grossesse: \'1%1$d\' semaines - \u2022 - - Aperçu - Contacts - Taches - Nouvel enregistrement sauvegardé ! Informations d\'enregistrement mises à jour ! Appeler - Démarrer contact Fermer l\'enregistrement CPN Copier dans le presse-papier Aucune femme correspondante trouvée sur cet appareil. @@ -138,18 +112,13 @@ Enregistrer la naissance Le bouton scanner de code QR Filtrer - Clients \'1%1$d\' Client \'1%1$d\' Enregistrer Bibliothèque Moi - Clients 0 clients (Trier: mis à jour) Raison de venir au centre de santé? - - Premier contact - Contact programmé Plainte spécifique Plainte spécifique(s) @@ -210,9 +179,6 @@ Spécifier - Passer au contact normal - Référez et fermez le contact - Veuillez sélectionner la raison de l\'arrivee au centre de santé Veuillez sélectionner au moins une plainte spécifique Veuillez sélectionner Aucun ou au moins un signe de danger @@ -225,7 +191,6 @@ Bienvenue!\n\n Pour commencer, veuillez définir les caractéristiques de votre site. Oui Non - CONTACT 22/05/2018 Emplacement Bibliothèque Emplacement My Page Caractéristiques de la population @@ -248,9 +213,6 @@ \'%1$d\'Champs obligatoires Voir l\'historique des CPN - - Quitter le contact avec\n \'%1$s\' - Quitter ce contact? Enregistrer les modifications\nContinuer avec ce contact \na ultérieurement enregistrer les modifications Ignorer les modifications @@ -273,35 +235,25 @@ Vous devez autoriser l\'application CPN de l\'OMS à gérer les appels téléphoniques pour activer les appels… Toutes les modifications faite seront perdues Nom de femme - Contact %1$s\n%2$s Accouchement\nDue Age Grossess: %1$dsemaines\nDPA: %2$s(depuis%3$s)\n\n%4$s devrait arriver immédiatement pour l\'Accouchement. - Contact %1$d - Contact %1$d enregistrer l\'affichage de l\'icône plus d\'infos l\'affichage de l\'icône Statut Enregistrer annuler VALIDE + TERMINE RAISON DE LA VISITE - CONTACT %1$d\nfait aujourd\'hui - CONTACT %1$dfait aujourd\'hui Continuer le contact %1$d Nom d\'utilisateur Mot de passe Finalisation du Contact %1$d Resume du Contact %1$d - Contact %1$d · due%2$s DERNIER CONTACT Chiffres Clés EXAMENS RÉCENT:%1$s - CONTACTS PRÉCÉDENTS Tous les résultats des EXAMENS - %1$s Semaines · Contact%2$s - Contact %1$s Annuler le résultat de %1$s? Un contact négatif signifie que la patiente a été référée pour que son calendrier de visite ne change pas et reste le même qu\'avant - CONTACTS PRÉCÉDENTS Tous les résultats des EXAMENS Date présumée d\'accouchement %1$s semaines @@ -310,4 +262,53 @@ Aucun examens disponible Référence de l\'hôpital Aucun calendrier de contact généré pour le moment + + Deconnecté + Langue + + + CPN OMS + Enregistrement en cour... + Supression en cours + Veuillez attendre + Scanner Code QR + Choisir la langue + ID + clients + Rechercher nom or ID + Annuler Filtres + Rechercher + + Clients CPN + Âge: %1$s + ÂG: %1$d semaines + APERÇU + CONTACTS + TÂCHES + + Commencer Contact + %1$d clients + Clients + Premier contact + Contact prévu + Passer au contact normal + Référer et fermer le contact + + CONTACT 22/05/2018 + Quitter le contact avec\n %1$s + Quitter le contact? + COMMENCEZ\nCONTACT %1$s\n%2$s + COMMENCEZ · CONTACT %1$s · %2$s + CONTACT %1$s\n EN COURS + CONTACT %1$s · EN COURS + Contact %1$d + Contact %1$da été enregistré + CONTACT %1$d\n FAIT AUJOURD\'HUI + CONTACT %1$d · FAIT AUJOURD\'HUI + CONTACT %1$d\n DÛ\n %2$s + CONTACT %1$d · DÛ · %2$s + CONTACTS PRÉCÉDENTS + %1$s Semaines · Contact %2$s + Contact %1$s + Contacts Précédents \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_close_fr.properties b/opensrp-anc/src/main/resources/anc_close_fr.properties new file mode 100644 index 000000000..9bb40be18 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_close_fr.properties @@ -0,0 +1,73 @@ +anc_close.step1.miscarriage_abortion_ga.v_numeric.err = Doit être un nombre +anc_close.step1.ppfp_method.hint = Méthode de planification familiale post-partum? +anc_close.step1.delivery_complications.options.Cord_prolapse.text = Prolapsus du cordon +anc_close.step1.anc_close_reason.v_required.err = Please select one option +anc_close.step1.delivery_mode.options.normal.text = Normale +anc_close.step1.death_cause.options.pre_eclampsia.text = Pre-eclampsia +anc_close.step1.delivery_mode.hint = Mode d'accouchement +anc_close.step1.death_cause.v_required.err = Please enter the date of death +anc_close.step1.death_date.duration.label = Yrs +anc_close.step1.death_cause.options.normal.text = Unknown +anc_close.step1.death_cause.options.abortion_related_complications.text = Abortion-related complications +anc_close.step1.death_cause.options.placental_abruption.text = Placental abruption +anc_close.step1.birthweight.v_numeric.err = Please enter a valid weight between 1 and 10 +anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text = Antepartum haemorrhage +anc_close.step1.delivery_complications.options.Abnormal_presentation.text = Abnormal presentation +anc_close.step1.miscarriage_abortion_date.v_required.err = Please enter the date of miscarriage/abortion +anc_close.step1.death_cause.options.antepartum_haemorrhage.text = Antepartum haemorrhage +anc_close.step1.delivery_mode.options.c_section.text = Césarienne +anc_close.step1.anc_close_reason.options.other.text = Autre +anc_close.step1.miscarriage_abortion_date.hint = Date of miscarriage/abortion +anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Postpartum haemorrhage +anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Perdu au suivi +anc_close.step1.ppfp_method.options.condom.text = Condom +anc_close.step1.ppfp_method.options.ocp.text = OCP +anc_close.step1.death_cause.options.eclampsia.text = Eclampsia +anc_close.step1.anc_close_reason.options.abortion.text = Avortement +anc_close.step1.ppfp_method.options.normal.text = None +anc_close.step1.delivery_complications.hint = Any delivery complications? +anc_close.step1.anc_close_reason.options.moved_away.text = Déménagé +anc_close.step1.ppfp_method.options.male_sterilization.text = Male sterilization +anc_close.step1.delivery_place.options.home.text = À la maison +anc_close.step1.delivery_date.hint = Date d'accouchement +anc_close.step1.delivery_place.options.other.text = Autre +anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Exclusive breastfeeding +anc_close.step1.anc_close_reason.hint = Raison +anc_close.step1.delivery_place.options.health_facility.text = Centre de santé +anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Forceps ou sous vide +anc_close.step1.death_cause.options.infection.text = Infection +anc_close.step1.delivery_complications.options.Other.text = Autre +anc_close.step1.birthweight.hint = Birth weight (kg) +anc_close.step1.title = Close ANC Record +anc_close.step1.death_date.hint = Date of death +anc_close.step1.anc_close_reason.options.wrong_entry.text = Mauvaise saisie +anc_close.step1.death_cause.options.other.text = Autre +anc_close.step1.delivery_complications.options.None.text = None +anc_close.step1.exclusive_bf.options.no.text = No +anc_close.step1.delivery_complications.options.Obstructed_labour.text = Obstructed labour +anc_close.step1.ppfp_method.options.female_sterilization.text = Female sterilization +anc_close.step1.death_cause.hint = Cause of death? +anc_close.step1.exclusive_bf.hint = Exclusively breastfeeding? +anc_close.step1.anc_close_reason.options.stillbirth.text = Mortinaissance +anc_close.step1.delivery_complications.label = Any delivery complications? +anc_close.step1.death_date.v_required.err = Please enter the date of death +anc_close.step1.anc_close_reason.options.false_pregnancy.text = Fausse grossesse +anc_close.step1.delivery_date.v_required.err = Please enter the date of delivery +anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Postpartum haemorrhage +anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pre-eclampsia +anc_close.step1.delivery_place.v_required.err = Place of delivery is required +anc_close.step1.delivery_complications.options.Eclampsia.text = Eclampsia +anc_close.step1.ppfp_method.options.iud.text = IUD +anc_close.step1.anc_close_reason.options.woman_died.text = La femme est morte +anc_close.step1.delivery_place.hint = Lieu d'accouchement +anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta praevia +anc_close.step1.anc_close_reason.options.live_birth.text = Naissance vivante +anc_close.step1.anc_close_reason.options.miscarriage.text = Fausse couche +anc_close.step1.delivery_complications.options.Placental_abruption.text = Placental abruption +anc_close.step1.ppfp_method.options.other.text = Autre +anc_close.step1.preterm.v_numeric.err = Number must be a number +anc_close.step1.birthweight.v_required.err = Please enter the child's weight at birth +anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Perineal tear (2nd, 3rd or 4th degree) +anc_close.step1.death_cause.options.obstructed_labour.text = Obstructed labour +anc_close.step1.ppfp_method.options.abstinence.text = Abstinence +anc_close.step1.exclusive_bf.options.yes.text = Yes diff --git a/opensrp-anc/src/main/resources/anc_quick_check_fr.properties b/opensrp-anc/src/main/resources/anc_quick_check_fr.properties new file mode 100644 index 000000000..ab36321b7 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_quick_check_fr.properties @@ -0,0 +1,65 @@ +anc_quick_check.step1.specific_complaint.options.dizziness.text = Vertiges +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Violence domestique +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Autres saignements +anc_quick_check.step1.specific_complaint.options.depression.text = Dépression +anc_quick_check.step1.specific_complaint.options.heartburn.text = Brûlures d'estomac +anc_quick_check.step1.specific_complaint.options.other_specify.text = Autre (spécifier) +anc_quick_check.step1.specific_complaint.options.oedema.text = Å’dème +anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions +anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Crampes dans les jambes +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Autres symptômes psychologiques +anc_quick_check.step1.specific_complaint.options.fever.text = Fièvre +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Contact prévu +anc_quick_check.step1.danger_signs.options.severe_headache.text = Mal de tête sévère +anc_quick_check.step1.danger_signs.options.danger_fever.text = Fièvre +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = A l'air très malade +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Perturbation visuelle +anc_quick_check.step1.specific_complaint.options.leg_redness.text = Rougeur des jambes +anc_quick_check.step1.specific_complaint_other.hint = Spécifier +anc_quick_check.step1.specific_complaint.options.tiredness.text = Fatigue +anc_quick_check.step1.danger_signs.options.severe_pain.text = Douleur sévère +anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Cyanose centrale +anc_quick_check.step1.specific_complaint_other.v_regex.err = Veuillez saisir un contenu valide +anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Autres troubles de la peau +anc_quick_check.step1.danger_signs.options.danger_none.text = Aucun +anc_quick_check.step1.specific_complaint.label = Plainte(s) spécifiques +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Douleur aux jambes +anc_quick_check.step1.title = Vérification Rapide +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Mouvement fÅ“tal réduit ou faible +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Saignement vaginal +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Douleur abdominale complète +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Écoulement vaginal anormal +anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Autres types de violence +anc_quick_check.step1.specific_complaint.options.other_pain.text = Autre douleur +anc_quick_check.step1.specific_complaint.options.anxiety.text = Anxiété +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Douleur pelvienne extrême - ne peut pas marcher (dysfonctionnement de la symphyse pubienne) +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Douleur pelvienne +anc_quick_check.step1.specific_complaint.options.bleeding.text = Saignement vaginal +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Changements dans la pression artérielle +anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Essoufflement +anc_quick_check.step1.specific_complaint.v_required.err = Une plainte spécifique est requise +anc_quick_check.step1.contact_reason.v_required.err = La raison de venir à l'établissement est requise +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Perte de liquide +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Douleur abdominale sévère +anc_quick_check.step1.contact_reason.label = Raison de visite à centre de santé +anc_quick_check.step1.danger_signs.label = Signes de danger +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Douleur dans le bas du dos +anc_quick_check.step1.specific_complaint.options.trauma.text = Traumatisme +anc_quick_check.step1.danger_signs.options.unconscious.text = Inconsciente +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaunisse +anc_quick_check.step1.danger_signs.options.labour.text = Accouchement +anc_quick_check.step1.specific_complaint.options.headache.text = Mal à la tête +anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Perturbation visuelle +anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Accouchement imminente +anc_quick_check.step1.specific_complaint.options.pruritus.text = Prurit +anc_quick_check.step1.specific_complaint.options.cough.text = Toux +anc_quick_check.step1.specific_complaint.options.dysuria.text = Douleur pendant la miction (dysurie) +anc_quick_check.step1.contact_reason.options.first_contact.text = Premier contact +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Symptômes de la grippe +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausées / vomissements / diarrhée +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Aucun mouvement fÅ“tal +anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsant +anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Vomissements sévères +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Plainte spécifique +anc_quick_check.step1.danger_signs.v_required.err = Signes de danger sont requises diff --git a/opensrp-anc/src/main/resources/anc_register_fr.properties b/opensrp-anc/src/main/resources/anc_register_fr.properties new file mode 100644 index 000000000..bea48a088 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_register_fr.properties @@ -0,0 +1,31 @@ +anc_register.step1.dob_unknown.options.dob_unknown.text = DDN inconnue? +anc_register.step1.reminders.options.no.text = Non +anc_register.step1.reminders.label = La femme souhaite recevoir des rappels pendant la grossesse +anc_register.step1.dob_entered.v_required.err = Veuillez entrer la date de naissance +anc_register.step1.home_address.hint = Adresse du domicile +anc_register.step1.alt_name.v_regex.err = Veuillez saisir un nom VHT valide +anc_register.step1.anc_id.hint = ID CPN +anc_register.step1.alt_phone_number.v_numeric.err = Le numéro de téléphone doit être numérique +anc_register.step1.age_entered.v_numeric.err = L'âge doit être un nombre +anc_register.step1.phone_number.hint = Numéro de téléphone portable +anc_register.step1.last_name.v_required.err = Veuillez saisir le nom de famille +anc_register.step1.last_name.v_regex.err = Veuillez saisir un nom valide +anc_register.step1.first_name.v_required.err = Veuillez saisir le prénom +anc_register.step1.dob_entered.hint = Date de naissance (DDN) +anc_register.step1.age_entered.hint = Âge +anc_register.step1.reminders.label_info_text = Veut-elle recevoir des rappels de soins et des messages concernant sa santé tout au long de sa grossesse? +anc_register.step1.title = Enregistrement CPN +anc_register.step1.anc_id.v_numeric.err = Veuillez saisir un ID CPN valide +anc_register.step1.alt_name.hint = Nom de contact alternatif +anc_register.step1.home_address.v_required.err = Veuillez saisir l'adresse du domicile de la femme +anc_register.step1.first_name.hint = Prénom +anc_register.step1.alt_phone_number.hint = Numéro de téléphone de contact alternatif +anc_register.step1.reminders.v_required.err = Veuillez indiquer si la femme a accepté de recevoir des notifications de rappel +anc_register.step1.first_name.v_regex.err = Veuillez entrer un nom valide +anc_register.step1.reminders.options.yes.text = Oui +anc_register.step1.phone_number.v_numeric.err = Le numéro de téléphone doit être numérique +anc_register.step1.anc_id.v_required.err = Veuillez entrer l'ID CPN de la femme +anc_register.step1.last_name.hint = Nom +anc_register.step1.age_entered.v_required.err = Veuillez entrer l'âge de la femme +anc_register.step1.phone_number.v_required.err = Veuillez préciser le numéro de téléphone de la femme +anc_register.step1.dob_entered.duration.label = Âge diff --git a/opensrp-anc/src/main/resources/anc_test_fr.properties b/opensrp-anc/src/main/resources/anc_test_fr.properties new file mode 100644 index 000000000..dc660ac59 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_test_fr.properties @@ -0,0 +1,57 @@ +anc_test.step1.accordion_hepatitis_b.accordion_info_title = Test d'hépatite B +anc_test.step1.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_hiv.accordion_info_title = Test de dépistage du VIH +anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step1.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_hepatitis_b.accordion_info_title = Test d'hépatite B +anc_test.step2.accordion_blood_glucose.text = Blood Glucose test +anc_test.step1.accordion_blood_type.text = Test de groupe sanguin +anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test +anc_test.step1.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. +anc_test.step2.title = Other +anc_test.step2.accordion_hiv.accordion_info_title = Test de dépistage du VIH +anc_test.step2.accordion_blood_type.text = Test de groupe sanguin +anc_test.step1.accordion_hepatitis_b.accordion_info_text = Dans les contextes où la proportion de séroprévalence de l'HBsAg dans la population générale est de 2% ou plus ou dans les contextes où un programme national de dépistage systématique de l'hépatite B est en place, ou si la femme est séropositive, s'injecte des drogues ou est une travailleuse du sexe , alors le test de l'hépatite B est recommandé si la femme n'est pas complètement vaccinée contre l'hépatite B. +anc_test.step2.accordion_hepatitis_b.accordion_info_text = Dans les contextes où la proportion de séroprévalence de l'HBsAg dans la population générale est de 2% ou plus ou dans les contextes où un programme national de dépistage systématique de l'hépatite B est en place, ou si la femme est séropositive, s'injecte des drogues ou est une travailleuse du sexe , alors le test de l'hépatite B est recommandé si la femme n'est pas complètement vaccinée contre l'hépatite B. +anc_test.step2.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test +anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. +anc_test.step2.accordion_partner_hiv.text = Partner HIV test +anc_test.step1.accordion_syphilis.text = Syphilis test +anc_test.step1.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step2.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.accordion_ultrasound.text = Ultrasound test +anc_test.step1.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. +anc_test.step1.title = Due +anc_test.step2.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step2.accordion_urine.text = Urine test +anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_test.step2.accordion_other_tests.accordion_info_title = Other test +anc_test.step2.accordion_ultrasound.text = Ultrasound test +anc_test.step2.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_urine.accordion_info_title = Urine test +anc_test.step1.accordion_tb_screening.text = TB Screening +anc_test.step1.accordion_hepatitis_c.text = Hepatitis C test +anc_test.step1.accordion_hepatitis_b.text = Test d'hépatite B +anc_test.step2.accordion_hiv.accordion_info_text = Un test de dépistage du VIH est requis pour toutes les femmes enceintes au premier contact pendant la grossesse et à nouveau au premier contact du 3e trimestre (28 semaines), si la prévalence du VIH dans la population de femmes enceintes est de 5% ou plus. Un test n'est pas requis si la femme est déjà confirmée séropositive. +anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step1.accordion_urine.text = Urine test +anc_test.step1.accordion_hiv.accordion_info_text = Un test de dépistage du VIH est requis pour toutes les femmes enceintes au premier contact pendant la grossesse et à nouveau au premier contact du 3e trimestre (28 semaines), si la prévalence du VIH dans la population de femmes enceintes est de 5% ou plus. Un test n'est pas requis si la femme est déjà confirmée séropositive. +anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step1.accordion_hiv.text = Test de dépistage du VIH +anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening +anc_test.step2.accordion_hiv.text = Test de dépistage du VIH +anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. +anc_test.step2.accordion_other_tests.text = Other Tests +anc_test.step2.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step1.accordion_ultrasound.accordion_info_title = Ultrasound test +anc_test.step2.accordion_hepatitis_b.text = Test d'hépatite B +anc_test.step1.accordion_syphilis.accordion_info_title = Syphilis test +anc_test.step2.accordion_blood_haemoglobin.text = Blood Haemoglobin test +anc_test.step1.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. +anc_test.step2.accordion_syphilis.text = Syphilis test diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties new file mode 100644 index 000000000..e50acf259 --- /dev/null +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -0,0 +1,59 @@ +attention_flags.yellow.age=Age +attention_flags.yellow.gravida=Gravida +attention_flags.yellow.parity=Parity +attention_flags.yellow.past_pregnancy_problems=Past pregnancy problems +attention_flags.yellow.past_alcohol_substances_used=Past alcohol / substances used +attention_flags.yellow.pre_eclampsia_risk=Pre-eclampsia risk +attention_flags.yellow.diabetes_risk=Diabetes risk +attention_flags.yellow.surgeries=Surgeries +attention_flags.yellow.chronic_health_conditions=Chronic health conditions +attention_flags.yellow.high_daily_consumption_of_caffeine=High daily consumption of caffeine +attention_flags.yellow.second_hand_exposure_to_tobacco_smoke=Second-hand exposure to tobacco smoke +attention_flags.yellow.persistent_physiological_symptoms=Persistent physiological symptoms +attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman=Reduced or no fetal movement perceived by woman +attention_flags.yellow.weight_category=Weight category +attention_flags.yellow.abnormal_breast_exam=Abnormal breast exam +attention_flags.yellow.abnormal_abdominal_exam=Abnormal abdominal exam +attention_flags.yellow.abnormal_pelvic_exam=Abnormal pelvic exam +attention_flags.yellow.oedema_present=Oedema present +attention_flags.yellow.rh_factor_negative=Rh factor negative +attention_flags.red.danger_sign=Danger sign(s) +attention_flags.red.occupation_informal_employment_sex_worker=Occupation: Informal employment (sex worker) +attention_flags.red.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended +attention_flags.red.no_of_stillbirths=No. of stillbirths +attention_flags.red.no_of_C_sections=No. of C-sections +attention_flags.red.allergies=Allergies +attention_flags.red.tobacco_user_or_recently_quit=Tobacco user or recently quit +attention_flags.red.woman_and_her_partner_do_not_use_condoms=Woman and her partner(s) do not use condoms +attention_flags.red.alcohol_substances_currently_using=Alcohol / substances currently using +attention_flags.red.hypertension_diagnosis=Hypertension diagnosis +attention_flags.red.severe_hypertension=Severe hypertension +attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia +attention_flags.red.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis +attention_flags.red.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis +attention_flags.red.fever=Fever +attention_flags.red.abnormal_pulse_rate=Abnormal pulse rate +attention_flags.red.anaemia_diagnosis=Anaemia diagnosis +attention_flags.red.respiratory_distress=Respiratory distress +attention_flags.red.low_oximetry=Low oximetry +attention_flags.red.abnormal_cardiac_exam=Abnormal cardiac exam +attention_flags.red.cervix_dilated=Cervix dilated +attention_flags.red.no_fetal_heartbeat_observed=No fetal heartbeat observed +attention_flags.red.abnormal_fetal_heart_rate=Abnormal fetal heart rate +attention_flags.red.no_of_fetuses=No. of fetuses +attention_flags.red.fetal_presentation=Fetal presentation +attention_flags.red.amniotic_fluid=Amniotic fluid +attention_flags.red.placenta_location=Placenta location +attention_flags.red.hiv_risk=HIV risk +attention_flags.red.hiv_positive=HIV positive +attention_flags.red.hepatitis_b_positive=Hepatitis B positive +attention_flags.red.hepatitis_c_positive=Hepatitis C positive +attention_flags.red.syphilis_positive=Syphilis positive +attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis=Asymptomatic bacteriuria (ASB) diagnosis +attention_flags.red.group_b_streptococcus_gbs_diagnosis=Group B Streptococcus (GBS) diagnosis +attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis=Gestational Diabetes Mellitus (GDM) diagnosis +attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis=Diabetes Mellitus (DM) in pregnancy diagnosis +attention_flags.red.hematocrit_ht=Hematocrit (Ht) +attention_flags.red.white_blood_cell_wbc_count=White blood cell (WBC) count +attention_flags.red.platelet_count=Platelet count +attention_flags.red.tb_screening_positive=TB screening positive diff --git a/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties b/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties new file mode 100644 index 000000000..f0046a368 --- /dev/null +++ b/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties @@ -0,0 +1,2 @@ +profile_contact_tab_contacts.physiological_symptoms=Physiological symptoms +profile_contact_tab_contacts.average_weight_gain_per_week_since_last_contact=Average weight gain per week since last contact \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties new file mode 100644 index 000000000..6735c6cea --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties @@ -0,0 +1,17 @@ +tests_blood_type_sub_form.step1.blood_type.options.b.text = B +tests_blood_type_sub_form.step1.blood_type_test_date.hint = Date du test de groupe sanguin +tests_blood_type_sub_form.step1.blood_type.options.o.text = O +tests_blood_type_sub_form.step1.blood_type.v_required.err = Veuillez préciser le groupe sanguin +tests_blood_type_sub_form.step1.blood_type.label = Groupe sanguin +tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - La femme est à risque d'allo-immunisation si le père du bébé est Rh positif ou inconnu.\n\n- Procéder au protocole local pour enquêter sur la sensibilisation et le besoin de référence.\n\n- Si Rh négatif et non sensibilisé, la femme devrait recevoir une prophylaxie anti-D après la naissance si le bébé est Rh positif. +tests_blood_type_sub_form.step1.rh_factor.label = Facteur rhésus +tests_blood_type_sub_form.step1.blood_type.options.a.text = A +tests_blood_type_sub_form.step1.rh_factor_toaster.text = Counselling sur le facteur rhésus négatif +tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Négatif +tests_blood_type_sub_form.step1.rh_factor.v_required.err = Le facteur rhésus est requis +tests_blood_type_sub_form.step1.blood_type_test_status.label = Test de groupe sanguin +tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Date du test sanguin +tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positif +tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Le statut du groupe sanguin est requis +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Counselling sur le facteur rhésus négatif diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties new file mode 100644 index 000000000..35499c86a --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties @@ -0,0 +1,33 @@ +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Rupture de stock +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Diagnostic positif de l'hépatite B! +tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Le test de l'hépatite B est requis +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = La vaccination contre l'hépatite B est requise à tout moment après 12 semaines de gestation. +tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Le type de test de l'hépatite B est requis +tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = Test de diagnostic rapide HBsAg est requis +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = Immunodosage en laboratoire HBsAg (recommandé) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positif +tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = Test de diagnostic rapide HBsAg (TDR) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Négatif +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Tache de sang séché (TSS) est requise +tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Date du test de l'hépatite B +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Test de taches de sang séché (TSS) pour HBsAg +tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Type de test de l'hépatite B +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Diagnostic positif de l'hépatite B! +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Stock expiré +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Vaccination contre l'hépatite B requise +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Autre (spécifier) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Test de taches de sang séché (TSS) pour HBsAg +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Test de l'hépatite B non effectué raison requise +tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = La date du test de l'hépatite B est requise +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = Immunodosage en laboratoire HBsAg est requis +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = Immunodosage en laboratoire HBsAg (recommandé) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positif +tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Test d'hépatite B +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Négatif +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Vaccination contre l'hépatite B requise +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Raison +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positif +tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Spécifier +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = Test de diagnostic rapide HBsAg (TDR) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Négatif +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Conseil et référence requis diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties new file mode 100644 index 000000000..ef6608de9 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties @@ -0,0 +1,19 @@ +tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Veuillez enregistrer le résultat du test VIH +tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positif +tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Négatif +tests_hiv_sub_form.step1.hiv_positive_toaster.text = Conseils pour le test résultat du VIH positif +tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Autre (spécifier) +tests_hiv_sub_form.step1.hiv_test_status.v_required.err = Le statut du test VIH est requis +tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = Test VIH non concluant, référez pour d'autres tests. +tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = Raison de ne pas faire de test VIH est requis +tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Stock expiré +tests_hiv_sub_form.step1.hiv_test_result.label = Enregistrer le résultat +tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Spécifier +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Référer pour d'autres tests et confirmation\n- Référer pour les services VIH\n- Donner des conseils sur les infections opportunistes et la nécessité de consulter un médecin\n- Procéder à un dépistage systématique de la tuberculose active +tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Non concluant +tests_hiv_sub_form.step1.hiv_test_status.label = Test du VIH +tests_hiv_sub_form.step1.hiv_test_date.hint = Date du test VIH +tests_hiv_sub_form.step1.hiv_test_date.v_required.err = Date du test VIH est requis +tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Rupture de stock +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = Conseil VIH positif +tests_hiv_sub_form.step1.hiv_test_notdone.label = Raison diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8282d6afa..055e73cdb 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -19,8 +19,8 @@ jacoco { } // This variables are used by the version code & name generators ext.versionMajor = 1 -ext.versionMinor = 2 -ext.versionPatch = 14 +ext.versionMinor = 3 +ext.versionPatch = 0 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion @@ -130,7 +130,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc-preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.7.3201-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.0-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 40ec87441d013461dddd0a3eb569ec93df7c599d Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 22 Apr 2020 17:29:37 +0300 Subject: [PATCH 022/302] :ok_hand: remove unused imports and rearrange code --- .../java/org/smartregister/anc/library/AncLibrary.java | 4 +--- .../anc/library/task/AttentionFlagsTask.java | 3 ++- .../java/org/smartregister/anc/library/util/Utils.java | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index de942ba93..79100e871 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -39,8 +39,6 @@ import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; -import java.io.IOException; -import java.io.InputStreamReader; import java.util.Locale; import id.zelory.compressor.Compressor; @@ -288,7 +286,7 @@ public JSONObject getDefaultContactFormGlobals() { } public Iterable readYaml(String filename) { - return yaml.loadAll(com.vijay.jsonwizard.utils.Utils.getTranslatedYamlFile((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename), getApplicationContext())); + return yaml.loadAll(com.vijay.jsonwizard.utils.Utils.getTranslatedYamlFile((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename), getApplicationContext())); } public int getDatabaseVersion() { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index 45fc27d54..79a92a220 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -50,7 +50,8 @@ protected Void doInBackground(Void... voids) { if (attentionFlagConfig != null && attentionFlagConfig.getFields() != null) { for (YamlConfigItem yamlConfigItem : attentionFlagConfig.getFields()) { if (AncLibrary.getInstance().getAncRulesEngineHelper() - .getRelevance(facts, yamlConfigItem.getRelevance())) { attentionFlagList.add(new AttentionFlag(Utils.fillTemplate(yamlConfigItem.getTemplate(), facts), attentionFlagConfig.getGroup().equals(ConstantsUtils.AttentionFlagUtils.RED))); + .getRelevance(facts, yamlConfigItem.getRelevance())) { + attentionFlagList.add(new AttentionFlag(Utils.fillTemplate(yamlConfigItem.getTemplate(), facts), attentionFlagConfig.getGroup().equals(ConstantsUtils.AttentionFlagUtils.RED))); } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index d7ebd5d97..da788df23 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -628,6 +628,10 @@ public static boolean isTableExists(@NonNull SQLiteDatabase sqliteDatabase, @Non return false; } + public static Boolean enableLanguageSwitching() { + return AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KeyUtils.LANGUAGE_SWITCHING_ENABLED); + } + /** * Loads yaml files that contain rules for the profile displays * @@ -692,8 +696,4 @@ private void createAndPersistPartialContact(String baseEntityId, int contactNo, public ContactTasksRepository getContactTasksRepositoryHelper() { return AncLibrary.getInstance().getContactTasksRepository(); } - - public static Boolean enableLanguageSwitching() { - return AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KeyUtils.LANGUAGE_SWITCHING_ENABLED); - } } From dc8f0deba1938292af344cdb6c77deb8ca97d4d3 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 23 Apr 2020 18:12:58 +0300 Subject: [PATCH 023/302] :zap: add the tests text properties --- .../config/profile_contact_tab_tests.yml | 153 +++++++++--------- .../profile_tab_previous_contact_tests.yml | 153 +++++++++--------- .../resources/profile_contact_test.properties | 75 +++++++++ 3 files changed, 229 insertions(+), 152 deletions(-) create mode 100644 opensrp-anc/src/main/resources/profile_contact_test.properties diff --git a/opensrp-anc/src/main/assets/config/profile_contact_tab_tests.yml b/opensrp-anc/src/main/assets/config/profile_contact_tab_tests.yml index 0080dd244..fa22a9eeb 100644 --- a/opensrp-anc/src/main/assets/config/profile_contact_tab_tests.yml +++ b/opensrp-anc/src/main/assets/config/profile_contact_tab_tests.yml @@ -1,268 +1,269 @@ --- +properties_file_name: "profile_contact_test" sub_group: ultrasound_tests_results fields: - - template: "Ultrasound test: {ultrasound}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_test}}: {ultrasound}" relevance: "ultrasound != ''" - - template: "Ultrasound not done reason: {ultrasound_notdone}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_not_done_reason}}: {ultrasound_notdone}" relevance: "ultrasound_notdone != ''" - - template: "Ultrasound not done other reason: {ultrasound_notdone_other}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_not_done_other_reason}}: {ultrasound_notdone_other}" relevance: "ultrasound_notdone_other != ''" - - template: "Ultrasound done date: {ultrasound_date}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_done_date}}: {ultrasound_date}" relevance: "ultrasound_date != ''" --- sub_group: blood_type_test_results fields: - - template: "Blood type test status: {blood_type_test_status}" + - template: "{{profile_contact_test.blood_type_test.blood_type_test_status}}: {blood_type_test_status}" relevance: "blood_type_test_status != ''" - - template: "Blood type test done date: {blood_type_test_date}" + - template: "{{profile_contact_test.blood_type_test.blood_type_test_done_date}}: {blood_type_test_date}" relevance: "blood_type_test_date != ''" - - template: "Blood Type: {blood_type}" + - template: "{{profile_contact_test.blood_type_test.blood_type}}: {blood_type}" relevance: "blood_type != ''" - - template: "RH factor: {rh_factor}" + - template: "{{profile_contact_test.blood_type_test.rh_factor}}: {rh_factor}" relevance: "rh_factor != ''" test_results: "['blood_type:Blood type tests results','other_tests:Test multiple tests','other_tests:Test multiple tests three']" --- sub_group: hiv_tests_results fields: - - template: "Hiv test status: {hiv_test_status}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_status}}: {hiv_test_status}" relevance: "hiv_test_status != ''" - - template: "Hiv test done date: {hiv_test_date}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_done_date}}: {hiv_test_date}" relevance: "hiv_test_date != ''" - - template: "Hiv test not done reason: {hiv_test_notdone}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_not_done_reason}}: {hiv_test_notdone}" relevance: "hiv_test_notdone != ''" - - template: "Hiv test not done other reason: {hiv_test_notdone_other}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_not_done_other_reason}}: {hiv_test_notdone_other}" relevance: "hiv_test_notdone_other != ''" - - template: "Hiv test result: {hiv_test_result}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_result}}: {hiv_test_result}" relevance: "hiv_test_result != ''" test_results: "['hiv_test_result:hiv_test_date:Hiv tests results']" --- sub_group: hepatitis_b_test_results fields: - - template: "Hepatitis B test status: {hepb_test_status}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_status}}: {hepb_test_status}" relevance: "hepb_test_status != ''" - - template: "Hepatitis B test done date: {hepb_test_date}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_done_date}}: {hepb_test_date}" relevance: "hepb_test_date != ''" - - template: "Hepatitis B test not done reason: {hepb_test_notdone}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_reason}}: {hepb_test_notdone}" relevance: "hepb_test_notdone != ''" - - template: "Hepatitis B test not done other reason: {hepb_test_notdone_other}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_other_reason}}: {hepb_test_notdone_other}" relevance: "hepb_test_notdone_other != ''" - - template: "Hepatitis B test type: {hepb_test_type}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_type}}: {hepb_test_type}" relevance: "hepb_test_type != ''" - - template: "HBsAg laboratory-based immunoassay result: {hbsag_lab_ima}" + - template: "{{profile_contact_test.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result}}: {hbsag_lab_ima}" relevance: "hbsag_lab_ima != ''" - - template: "HBsAg rapid diagnostic test (RDT) result: {hbsag_rdt}" + - template: "{{profile_contact_test.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result}}: {hbsag_rdt}" relevance: "hbsag_rdt != ''" - - template: "Dried Blood Spot (DBS) HBsAg test result: {hbsag_dbs}" + - template: "{{profile_contact_test.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result}}: {hbsag_dbs}" relevance: "hbsag_dbs != ''" --- sub_group: hepatitis_c_test_results fields: - - template: "Hepatitis C test status: {hepc_test_status}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_status}}: {hepc_test_status}" relevance: "hepc_test_status != ''" - - template: "Hepatitis C test done date: {hepc_test_date}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_done_date}}: {hepc_test_date}" relevance: "hepc_test_date != ''" - - template: "Hepatitis C test not done reason: {hepc_test_notdone}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_reason}}: {hepc_test_notdone}" relevance: "hepc_test_notdone != ''" - - template: "Hepatitis C test not done other reason: {hepc_test_notdone_other}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_other_reason}}: {hepc_test_notdone_other}" relevance: "hepc_test_notdone_other != ''" - - template: "Hepatitis C test type: {hepc_test_type}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_type}}: {hepc_test_type}" relevance: "hepc_test_type != ''" - - template: "Anti-HCV laboratory-based immunoassay result: {hcv_lab_ima}" + - template: "{{profile_contact_test.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result}}: {hcv_lab_ima}" relevance: "hcv_lab_ima != ''" - - template: "Anti-HCV rapid diagnostic test (RDT) result: {hcv_rdt}" + - template: "{{profile_contact_test.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result}}: {hcv_rdt}" relevance: "hcv_rdt != ''" - - template: "Dried Blood Spot (DBS) Anti-HCV test result: {hcv_dbs}" + - template: "{{profile_contact_test.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result}}: {hcv_dbs}" relevance: "hcv_dbs != ''" --- sub_group: syphilis_test_results fields: - - template: "Syphilis test status: {syph_test_status}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_status}}: {syph_test_status}" relevance: "syph_test_status != ''" - - template: "Syphilis test done date: {syphilis_test_date}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_done_date}}: {syphilis_test_date}" relevance: "syphilis_test_date != ''" - - template: "Syphilis test not done reason: {syph_test_notdone}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_not_done_reason}}: {syph_test_notdone}" relevance: "syph_test_notdone != ''" - - template: "Syphilis test not done other reason: {syph_test_notdone_other}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_not_done_other_reason}}: {syph_test_notdone_other}" relevance: "syph_test_notdone_other != ''" - - template: "Syphilis test type: {syph_test_type}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_type}}: {syph_test_type}" relevance: "syph_test_type != ''" - - template: "Rapid syphilis test (RST) result: {rapid_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_type}}: {rapid_syphilis_test}" relevance: "rapid_syphilis_test != ''" - - template: "Rapid plasma reagin (RPR) test result: {rpr_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.rapid_plasma_reagin_rpr_test_result}}: {rpr_syphilis_test}" relevance: "rpr_syphilis_test != ''" - - template: "Off-site lab test for syphilis result: {lab_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.Off_site_lab_test_for_syphilis_result}}: {lab_syphilis_test}" relevance: "lab_syphilis_test != ''" --- sub_group: urine_tests_results fields: - - template: "Urine test status: {urine_test_status}" + - template: "{{profile_contact_test.urine_tests.urine_test_status}}: {urine_test_status}" relevance: "urine_test_status != ''" - - template: "Urine test done date: {urine_test_date}" + - template: "{{profile_contact_test.urine_tests.urine_test_done_date}}: {urine_test_date}" relevance: "urine_test_date != ''" - - template: "Urine test type: {urine_test_type}" + - template: "{{profile_contact_test.urine_tests.urine_test_type}}: {urine_test_type}" relevance: "urine_test_type != ''" - - template: "Urine culture: {urine_culture}" + - template: "{{profile_contact_test.urine_tests.urine_culture}}: {urine_culture}" relevance: "urine_culture != ''" - - template: "Urine gram stain: {urine_gram_stain}" + - template: "{{profile_contact_test.urine_tests.urine_gram_stain}}: {urine_gram_stain}" relevance: "urine_gram_stain != ''" - - template: "Urine nitrites: {urine_nitrites}" + - template: "{{profile_contact_test.urine_tests.urine_nitrites}}: {urine_nitrites}" relevance: "urine_nitrites != ''" - - template: "Urine leukocytes: {urine_leukocytes}" + - template: "{{profile_contact_test.urine_tests.urine_leukocytes}}: {urine_leukocytes}" relevance: "urine_leukocytes != ''" - - template: "Urine glucose: {urine_glucose}" + - template: "{{profile_contact_test.urine_tests.urine_glucose}}: {urine_glucose}" relevance: "urine_glucose != ''" --- sub_group: blood_glucose_tests_results fields: - - template: "Blood glucose test status: {glucose_test_status}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_status}}: {glucose_test_status}" relevance: "glucose_test_status != ''" - - template: "Blood glucose test date: {glucose_test_date}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_date}}: {glucose_test_date}" relevance: "glucose_test_date != ''" - - template: "Blood glucose test type: {glucose_test_type}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_type}}: {glucose_test_type}" relevance: "glucose_test_type != ''" - - template: "Fasting plasma glucose results (mg/dl): {fasting_plasma_gluc}" + - template: "{{profile_contact_test.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl}}: {fasting_plasma_gluc}" relevance: "fasting_plasma_gluc != ''" - - template: "75g OGTT - fasting glucose results (mg/dl): {ogtt_fasting}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl}}: {ogtt_fasting}" relevance: "ogtt_fasting != ''" - - template: "75g OGTT - 1 hr results (mg/dl): {ogtt_1}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl}}: {ogtt_1}" relevance: "ogtt_1 != ''" - - template: "75g OGTT - 2 hrs results (mg/dl): {ogtt_2}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl}}: {ogtt_2}" relevance: "ogtt_2 != ''" - - template: "Random plasma glucose results (mg/dl): {random_plasma}" + - template: "{{profile_contact_test.blood_glucose_tests.random_plasma_glucose_results_mg_dl}}: {random_plasma}" relevance: "random_plasma != ''" --- sub_group: blood_haemoglobin_test_results fields: - - template: "Blood haemoglobin test status: {hb_test_status}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_status}}: {hb_test_status}" relevance: "hb_test_status != ''" - - template: "Blood haemoglobin test done date: {hb_test_date}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_done_date}}: {hb_test_date}" relevance: "hb_test_date != ''" - - template: "Blood haemoglobin test not done reason: {hb_test_notdone}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_reason}}: {hb_test_notdone}" relevance: "hb_test_notdone != ''" - - template: "Blood haemoglobin test not done other reason: {hb_test_notdone_other}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason}}: {hb_test_notdone_other}" relevance: "hb_test_notdone_other != ''" - - template: "Blood haemoglobin test type: {hb_test_type}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_type}}: {hb_test_type}" relevance: "hb_test_type != ''" - - template: "Complete blood count test result (g/dl): {cbc}" + - template: "{{profile_contact_test.blood_haemoglobin_test.complete_blood_count_test_result_g_dl}}: {cbc}" relevance: "cbc != ''" - - template: "RHb test result - haemoglobinometer (g/dl): {hb_gmeter}" + - template: "{{profile_contact_test.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl}}: {hb_gmeter}" relevance: "hb_gmeter != ''" - - template: "Hb test result - haemoglobin colour scale (g/dl): {hb_colour}" + - template: "{{profile_contact_test.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl}}: {hb_colour}" relevance: "hb_colour != ''" - - template: "Hematocrit (Ht): {ht}" + - template: "{{profile_contact_test.blood_haemoglobin_test.hematocrit_ht}}: {ht}" relevance: "ht != ''" - - template: "White blood cell (WBC) count: {wbc}" + - template: "{{profile_contact_test.blood_haemoglobin_test.white_blood_cell_wbc_count}}: {wbc}" relevance: "wbc != ''" - - template: "Platelet count: {platelets}" + - template: "{{profile_contact_test.blood_haemoglobin_test.platelet_count}}: {platelets}" relevance: "platelets != ''" --- sub_group: tb_screening_test_results fields: - - template: "TB screening test status: {tb_screening_status}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_status}}: {tb_screening_status}" relevance: "tb_screening_status != ''" - - template: "TB screening test done date: {tb_screening_date}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_done_date}}: {tb_screening_date}" relevance: "tb_screening_date != ''" - - template: "TB screening test not done reason: {tb_screening_notdone}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_not_done_reason}}: {tb_screening_notdone}" relevance: "tb_screening_notdone != ''" - - template: "TB screening test not done other reason: {tb_screening_notdone_other}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_not_done_other_reason}}: {tb_screening_notdone_other}" relevance: "tb_screening_notdone_other != ''" - - template: "TB screening result: {tb_screening_result}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_result}}: {tb_screening_result}" relevance: "tb_screening_result != ''" test_results: "['tb_screening_result: TB Screening tests results']" --- sub_group: partner_hiv_test_results fields: - - template: "Partner HIV test status: {hiv_test_partner_status}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_status}}: {hiv_test_partner_status}" relevance: "hiv_test_partner_status != ''" - - template: "Partner HIV test done date: {hiv_test_partner_date}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_done_date}}: {hiv_test_partner_date}" relevance: "hiv_test_partner_date != ''" - - template: "Partner HIV test result: {hiv_test_partner_result}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_result}}: {hiv_test_partner_result}" relevance: "hiv_test_partner_result != ''" test_results: "['hiv_test_partner_result:Partner HIV tests results']" --- sub_group: other_tests_results fields: - - template: "Other test test status: {other_test}" + - template: "{{profile_contact_test.other_tests.other_test_test_status}}: {other_test}" relevance: "other_test != ''" - - template: "Other test done date: {other_test_date}" + - template: "{{profile_contact_test.other_tests.other_test_done_date}}: {other_test_date}" relevance: "other_test_date != ''" - - template: "Other test name: {other_test_name}" + - template: "{{profile_contact_test.other_tests.other_test_name}}: {other_test_name}" relevance: "other_test_name != ''" - - template: "Other test result: {other_test_result}" + - template: "{{profile_contact_test.other_tests.other_test_result}}: {other_test_result}" relevance: "other_test_result != ''" test_results: "['other_test_result:Other tests results']" diff --git a/opensrp-anc/src/main/assets/config/profile_tab_previous_contact_tests.yml b/opensrp-anc/src/main/assets/config/profile_tab_previous_contact_tests.yml index 5b69617d3..b2949b533 100644 --- a/opensrp-anc/src/main/assets/config/profile_tab_previous_contact_tests.yml +++ b/opensrp-anc/src/main/assets/config/profile_tab_previous_contact_tests.yml @@ -1,268 +1,269 @@ --- +properties_file_name: "profile_contact_test" sub_group: ultrasound_tests_results fields: - - template: "Ultrasound test: {ultrasound}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_test}}: {ultrasound}" relevance: "ultrasound != '' && helper.compareDateAgainstContactDate(ultrasound_date, contact_date)" - - template: "Ultrasound not done reason: {ultrasound_notdone}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_not_done_reason}}: {ultrasound_notdone}" relevance: "ultrasound_notdone != '' && helper.compareDateAgainstContactDate(ultrasound_date, contact_date)" - - template: "Ultrasound not done other reason: {ultrasound_notdone_other}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_not_done_other_reason}}: {ultrasound_notdone_other}" relevance: "ultrasound_notdone_other != '' && helper.compareDateAgainstContactDate(ultrasound_date, contact_date)" - - template: "Ultrasound done date: {ultrasound_date}" + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_done_date}}: {ultrasound_date}" relevance: "ultrasound_date != '' && helper.compareDateAgainstContactDate(ultrasound_date, contact_date)" --- sub_group: blood_type_test_results fields: - - template: "Blood type test status: {blood_type_test_status}" + - template: "{{profile_contact_test.blood_type_test.blood_type_test_status}}: {blood_type_test_status}" relevance: "blood_type_test_status != '' && helper.compareDateAgainstContactDate(blood_type_test_date, contact_date) " - - template: "Blood type test done date: {blood_type_test_date}" + - template: "{{profile_contact_test.blood_type_test.blood_type_test_done_date}}: {blood_type_test_date}" relevance: "blood_type_test_date != '' && helper.compareDateAgainstContactDate(blood_type_test_date, contact_date)" - - template: "Blood Type: {blood_type}" + - template: "{{profile_contact_test.blood_type_test.blood_type}}: {blood_type}" relevance: "blood_type != '' && helper.compareDateAgainstContactDate(blood_type_test_date, contact_date)" - - template: "RH factor: {rh_factor}" + - template: "{{profile_contact_test.blood_type_test.rh_factor}}: {rh_factor}" relevance: "rh_factor != '' && helper.compareDateAgainstContactDate(blood_type_test_date, contact_date)" test_results: "['blood_type:Blood type tests results','other_tests:Test multiple tests','other_tests:Test multiple tests three']" --- sub_group: hiv_tests_results fields: - - template: "Hiv test status: {hiv_test_status}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_status}}: {hiv_test_status}" relevance: "hiv_test_status != '' && helper.compareDateAgainstContactDate(hiv_test_date, contact_date)" - - template: "Hiv test done date: {hiv_test_date}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_done_date}}: {hiv_test_date}" relevance: "hiv_test_date != '' && helper.compareDateAgainstContactDate(hiv_test_date, contact_date)" - - template: "Hiv test not done reason: {hiv_test_notdone}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_not_done_reason}}: {hiv_test_notdone}" relevance: "hiv_test_notdone != '' && helper.compareDateAgainstContactDate(hiv_test_date, contact_date)" - - template: "Hiv test not done other reason: {hiv_test_notdone_other}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_not_done_other_reason}}: {hiv_test_notdone_other}" relevance: "hiv_test_notdone_other != '' && helper.compareDateAgainstContactDate(hiv_test_date, contact_date)" - - template: "Hiv test result: {hiv_test_result}" + - template: "{{profile_contact_test.hiv_tests.hiv_test_result}}t: {hiv_test_result}" relevance: "hiv_test_result != '' && helper.compareDateAgainstContactDate(hiv_test_date, contact_date)" test_results: "['hiv_test_result:hiv_test_date:Hiv tests results']" --- sub_group: hepatitis_b_test_results fields: - - template: "Hepatitis B test status: {hepb_test_status}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_status}}: {hepb_test_status}" relevance: "hepb_test_status != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "Hepatitis B test done date: {hepb_test_date}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_done_date}}: {hepb_test_date}" relevance: "hepb_test_date != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "Hepatitis B test not done reason: {hepb_test_notdone}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_reason}}: {hepb_test_notdone}" relevance: "hepb_test_notdone != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "Hepatitis B test not done other reason: {hepb_test_notdone_other}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_other_reason}}: {hepb_test_notdone_other}" relevance: "hepb_test_notdone_other != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "Hepatitis B test type: {hepb_test_type}" + - template: "{{profile_contact_test.hepatitis_b_test.hepatitis_b_test_type}}: {hepb_test_type}" relevance: "hepb_test_type != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "HBsAg laboratory-based immunoassay result: {hbsag_lab_ima}" + - template: "{{profile_contact_test.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result}}: {hbsag_lab_ima}" relevance: "hbsag_lab_ima != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "HBsAg rapid diagnostic test (RDT) result: {hbsag_rdt}" + - template: "{{profile_contact_test.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result}}: {hbsag_rdt}" relevance: "hbsag_rdt != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" - - template: "Dried Blood Spot (DBS) HBsAg test result: {hbsag_dbs}" + - template: "{{profile_contact_test.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result}}: {hbsag_dbs}" relevance: "hbsag_dbs != '' && helper.compareDateAgainstContactDate(hepb_test_date, contact_date)" --- sub_group: hepatitis_c_test_results fields: - - template: "Hepatitis C test status: {hepc_test_status}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_status}}: {hepc_test_status}" relevance: "hepc_test_status != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Hepatitis C test done date: {hepc_test_date}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_done_date}}: {hepc_test_date}" relevance: "hepc_test_date != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Hepatitis C test not done reason: {hepc_test_notdone}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_reason}}: {hepc_test_notdone}" relevance: "hepc_test_notdone != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Hepatitis C test not done other reason: {hepc_test_notdone_other}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_other_reason}}: {hepc_test_notdone_other}" relevance: "hepc_test_notdone_other != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Hepatitis C test type: {hepc_test_type}" + - template: "{{profile_contact_test.hepatitis_c_test.hepatitis_c_test_type}}: {hepc_test_type}" relevance: "hepc_test_type != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Anti-HCV laboratory-based immunoassay result: {hcv_lab_ima}" + - template: "{{profile_contact_test.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result}}: {hcv_lab_ima}" relevance: "hcv_lab_ima != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Anti-HCV rapid diagnostic test (RDT) result: {hcv_rdt}" + - template: "{{profile_contact_test.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result}}: {hcv_rdt}" relevance: "hcv_rdt != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" - - template: "Dried Blood Spot (DBS) Anti-HCV test result: {hcv_dbs}" + - template: "{{profile_contact_test.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result}}: {hcv_dbs}" relevance: "hcv_dbs != '' && helper.compareDateAgainstContactDate(hepc_test_date, contact_date)" --- sub_group: syphilis_test_results fields: - - template: "Syphilis test status: {syph_test_status}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_status}}: {syph_test_status}" relevance: "syph_test_status != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Syphilis test done date: {syphilis_test_date}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_done_date}}: {syphilis_test_date}" relevance: "syphilis_test_date != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Syphilis test not done reason: {syph_test_notdone}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_not_done_reason}}: {syph_test_notdone}" relevance: "syph_test_notdone != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Syphilis test not done other reason: {syph_test_notdone_other}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_not_done_other_reason}}: {syph_test_notdone_other}" relevance: "syph_test_notdone_other != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Syphilis test type: {syph_test_type}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_type}}: {syph_test_type}" relevance: "syph_test_type != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Rapid syphilis test (RST) result: {rapid_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.syphilis_test_type}}: {rapid_syphilis_test}" relevance: "rapid_syphilis_test != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Rapid plasma reagin (RPR) test result: {rpr_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.rapid_plasma_reagin_rpr_test_result}}: {rpr_syphilis_test}" relevance: "rpr_syphilis_test != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" - - template: "Off-site lab test for syphilis result: {lab_syphilis_test}" + - template: "{{profile_contact_test.syphilis_test.Off_site_lab_test_for_syphilis_result}}: {lab_syphilis_test}" relevance: "lab_syphilis_test != '' && helper.compareDateAgainstContactDate(syphilis_test_date, contact_date)" --- sub_group: urine_tests_results fields: - - template: "Urine test status: {urine_test_status}" + - template: "{{profile_contact_test.urine_tests.urine_test_status}}: {urine_test_status}" relevance: "urine_test_status != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine test done date: {urine_test_date}" + - template: "{{profile_contact_test.urine_tests.urine_test_done_date}}: {urine_test_date}" relevance: "urine_test_date != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine test type: {urine_test_type}" + - template: "{{profile_contact_test.urine_tests.urine_test_type}}: {urine_test_type}" relevance: "urine_test_type != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine culture: {urine_culture}" + - template: "{{profile_contact_test.urine_tests.urine_culture}}: {urine_culture}" relevance: "urine_culture != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine gram stain: {urine_gram_stain}" + - template: "{{profile_contact_test.urine_tests.urine_gram_stain}}: {urine_gram_stain}" relevance: "urine_gram_stain != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine nitrites: {urine_nitrites}" + - template: "{{profile_contact_test.urine_tests.urine_nitrites}}: {urine_nitrites}" relevance: "urine_nitrites != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine leukocytes: {urine_leukocytes}" + - template: "{{profile_contact_test.urine_tests.urine_leukocytes}}: {urine_leukocytes}" relevance: "urine_leukocytes != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" - - template: "Urine glucose: {urine_glucose}" + - template: "{{profile_contact_test.urine_tests.urine_glucose}}: {urine_glucose}" relevance: "urine_glucose != '' && helper.compareDateAgainstContactDate(urine_test_date, contact_date)" --- sub_group: blood_glucose_tests_results fields: - - template: "Blood glucose test status: {glucose_test_status}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_status}}: {glucose_test_status}" relevance: "glucose_test_status != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "Blood glucose test date: {glucose_test_date}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_date}}: {glucose_test_date}" relevance: "glucose_test_date != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "Blood glucose test type: {glucose_test_type}" + - template: "{{profile_contact_test.blood_glucose_tests.blood_glucose_test_type}}: {glucose_test_type}" relevance: "glucose_test_type != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "Fasting plasma glucose results (mg/dl): {fasting_plasma_gluc}" + - template: "{{profile_contact_test.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl}}: {fasting_plasma_gluc}" relevance: "fasting_plasma_gluc != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "75g OGTT - fasting glucose results (mg/dl): {ogtt_fasting}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl}}: {ogtt_fasting}" relevance: "ogtt_fasting != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "75g OGTT - 1 hr results (mg/dl): {ogtt_1}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl}}: {ogtt_1}" relevance: "ogtt_1 != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "75g OGTT - 2 hrs results (mg/dl): {ogtt_2}" + - template: "{{profile_contact_test.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl}}: {ogtt_2}" relevance: "ogtt_2 != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" - - template: "Random plasma glucose results (mg/dl): {random_plasma}" + - template: "{{profile_contact_test.blood_glucose_tests.random_plasma_glucose_results_mg_dl}}: {random_plasma}" relevance: "random_plasma != '' && helper.compareDateAgainstContactDate(glucose_test_date, contact_date)" --- sub_group: blood_haemoglobin_test_results fields: - - template: "Blood haemoglobin test status: {hb_test_status}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_status}}: {hb_test_status}" relevance: "hb_test_status != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Blood haemoglobin test done date: {hb_test_date}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_done_date}}: {hb_test_date}" relevance: "hb_test_date != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Blood haemoglobin test not done reason: {hb_test_notdone}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_reason}}: {hb_test_notdone}" relevance: "hb_test_notdone != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Blood haemoglobin test not done other reason: {hb_test_notdone_other}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason}}: {hb_test_notdone_other}" relevance: "hb_test_notdone_other != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Blood haemoglobin test type: {hb_test_type}" + - template: "{{profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_type}}: {hb_test_type}" relevance: "hb_test_type != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Complete blood count test result (g/dl): {cbc}" + - template: "{{profile_contact_test.blood_haemoglobin_test.complete_blood_count_test_result_g_dl}}: {cbc}" relevance: "cbc != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "RHb test result - haemoglobinometer (g/dl): {hb_gmeter}" + - template: "{{profile_contact_test.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl}}: {hb_gmeter}" relevance: "hb_gmeter != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Hb test result - haemoglobin colour scale (g/dl): {hb_colour}" + - template: "{{profile_contact_test.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl}}: {hb_colour}" relevance: "hb_colour != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Hematocrit (Ht): {ht}" + - template: "{{profile_contact_test.blood_haemoglobin_test.hematocrit_ht}}: {ht}" relevance: "ht != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "White blood cell (WBC) count: {wbc}" + - template: "{{profile_contact_test.blood_haemoglobin_test.white_blood_cell_wbc_count}}: {wbc}" relevance: "wbc != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" - - template: "Platelet count: {platelets}" + - template: "{{profile_contact_test.blood_haemoglobin_test.platelet_count}}: {platelets}" relevance: "platelets != '' && helper.compareDateAgainstContactDate(hb_test_date, contact_date)" --- sub_group: tb_screening_test_results fields: - - template: "TB screening test status: {tb_screening_status}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_status}}: {tb_screening_status}" relevance: "tb_screening_status != '' && helper.compareDateAgainstContactDate(tb_screening_date, contact_date)" - - template: "TB screening test done date: {tb_screening_date}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_done_date}}: {tb_screening_date}" relevance: "tb_screening_date != '' && helper.compareDateAgainstContactDate(tb_screening_date, contact_date)" - - template: "TB screening test not done reason: {tb_screening_notdone}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_not_done_reason}}: {tb_screening_notdone}" relevance: "tb_screening_notdone != '' && helper.compareDateAgainstContactDate(tb_screening_date, contact_date)" - - template: "TB screening test not done other reason: {tb_screening_notdone_other}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_test_not_done_other_reason}}: {tb_screening_notdone_other}" relevance: "tb_screening_notdone_other != '' && helper.compareDateAgainstContactDate(tb_screening_date, contact_date)" - - template: "TB screening result: {tb_screening_result}" + - template: "{{profile_contact_test.tb_screening_test.tb_screening_result}}: {tb_screening_result}" relevance: "tb_screening_result != '' && helper.compareDateAgainstContactDate(tb_screening_date, contact_date)" test_results: "['tb_screening_result: TB Screening tests results']" --- sub_group: partner_hiv_test_results fields: - - template: "Partner HIV test status: {hiv_test_partner_status}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_status}}: {hiv_test_partner_status}" relevance: "hiv_test_partner_status != '' && helper.compareDateAgainstContactDate(hiv_test_partner_date, contact_date)" - - template: "Partner HIV test done date: {hiv_test_partner_date}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_done_date}}: {hiv_test_partner_date}" relevance: "hiv_test_partner_date != '' && helper.compareDateAgainstContactDate(hiv_test_partner_date, contact_date)" - - template: "Partner HIV test result: {hiv_test_partner_result}" + - template: "{{profile_contact_test.partner_hiv_test.partner_hiv_test_result}}: {hiv_test_partner_result}" relevance: "hiv_test_partner_result != '' && helper.compareDateAgainstContactDate(hiv_test_partner_date, contact_date)" test_results: "['hiv_test_partner_result:Partner HIV tests results']" --- sub_group: other_tests_results fields: - - template: "Other test test status: {other_test}" + - template: "{{profile_contact_test.other_tests.other_test_test_status}}: {other_test}" relevance: "other_test != '' && helper.compareDateAgainstContactDate(other_test_date, contact_date)" - - template: "Other test done date: {other_test_date}" + - template: "{{profile_contact_test.other_tests.other_test_done_date}}: {other_test_date}" relevance: "other_test_date != '' && helper.compareDateAgainstContactDate(other_test_date, contact_date)" - - template: "Other test name: {other_test_name}" + - template: "{{profile_contact_test.other_tests.other_test_name}}: {other_test_name}" relevance: "other_test_name != '' && helper.compareDateAgainstContactDate(other_test_date, contact_date)" - - template: "Other test result: {other_test_result}" + - template: "{{profile_contact_test.other_tests.other_test_result}}: {other_test_result}" relevance: "other_test_result != '' && helper.compareDateAgainstContactDate(other_test_date, contact_date)" test_results: "['other_test_result:Other tests results']" diff --git a/opensrp-anc/src/main/resources/profile_contact_test.properties b/opensrp-anc/src/main/resources/profile_contact_test.properties new file mode 100644 index 000000000..a453a8a70 --- /dev/null +++ b/opensrp-anc/src/main/resources/profile_contact_test.properties @@ -0,0 +1,75 @@ +profile_contact_test.ultrasound_tests.ultrasound_test=Ultrasound test. +profile_contact_test.ultrasound_tests.ultrasound_not_done_reason=Ultrasound not done reason +profile_contact_test.ultrasound_tests.ultrasound_not_done_other_reason=Ultrasound not done other reason +profile_contact_test.ultrasound_tests.ultrasound_done_date=Ultrasound done date +profile_contact_test.blood_type_test.blood_type_test_status=Blood type test status +profile_contact_test.blood_type_test.blood_type_test_done_date=Blood type test done date +profile_contact_test.blood_type_test.blood_type=Blood Type +profile_contact_test.blood_type_test.rh_factor=RH factor +profile_contact_test.hiv_tests.hiv_test_status=Hiv test status +profile_contact_test.hiv_tests.hiv_test_done_date=Hiv test done date +profile_contact_test.hiv_tests.hiv_test_not_done_reason=Hiv test not done reason +profile_contact_test.hiv_tests.hiv_test_not_done_other_reason=Hiv test not done other reason +profile_contact_test.hiv_tests.hiv_test_result=Hiv test result +profile_contact_test.hepatitis_b_test.hepatitis_b_test_status=Hepatitis B test status +profile_contact_test.hepatitis_b_test.hepatitis_b_test_done_date=Hepatitis B test done date +profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_reason=Hepatitis B test not done reason +profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_other_reason=Hepatitis B test not done other reason +profile_contact_test.hepatitis_b_test.hepatitis_b_test_type=Hepatitis B test not done other reason +profile_contact_test.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result=HBsAg laboratory-based immunoassay result +profile_contact_test.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result=HBsAg rapid diagnostic test (RDT) result +profile_contact_test.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result=Dried Blood Spot (DBS) HBsAg test result +profile_contact_test.hepatitis_c_test.hepatitis_c_test_status=Hepatitis C test status +profile_contact_test.hepatitis_c_test.hepatitis_c_test_done_date=Hepatitis C test done date +profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_reason=Hepatitis C test not done reason +profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_other_reason=Hepatitis C test not done other reason +profile_contact_test.hepatitis_c_test.hepatitis_c_test_type=Hepatitis C test type +profile_contact_test.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result=Anti-HCV laboratory-based immunoassay result +profile_contact_test.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result=Anti-HCV rapid diagnostic test (RDT) result +profile_contact_test.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result=Dried Blood Spot (DBS) Anti-HCV test result +profile_contact_test.syphilis_test.syphilis_test_status=Syphilis test status +profile_contact_test.syphilis_test.syphilis_test_done_date=Syphilis test done date +profile_contact_test.syphilis_test.syphilis_test_not_done_reason=Syphilis test not done reason +profile_contact_test.syphilis_test.syphilis_test_not_done_other_reason=Syphilis test not done other reason +profile_contact_test.syphilis_test.syphilis_test_type=Syphilis test type +profile_contact_test.syphilis_test.rapid_plasma_reagin_rpr_test_result=Rapid plasma reagin (RPR) test result +profile_contact_test.syphilis_test.Off_site_lab_test_for_syphilis_result=Off-site lab test for syphilis result +profile_contact_test.urine_tests.urine_test_status=Urine test status +profile_contact_test.urine_tests.urine_test_done_date=Urine test done date +profile_contact_test.urine_tests.urine_test_type=Urine test type +profile_contact_test.urine_tests.urine_culture=Urine culture +profile_contact_test.urine_tests.urine_gram_stain=Urine gram stain +profile_contact_test.urine_tests.urine_nitrites=Urine nitrites +profile_contact_test.urine_tests.urine_leukocytes=Urine leukocytes +profile_contact_test.urine_tests.urine_glucose=Urine glucose +profile_contact_test.blood_glucose_tests.blood_glucose_test_status=Blood glucose test status +profile_contact_test.blood_glucose_tests.blood_glucose_test_date=Blood glucose test date +profile_contact_test.blood_glucose_tests.blood_glucose_test_type=Blood glucose test type +profile_contact_test.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl=Fasting plasma glucose results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl=75g OGTT - fasting glucose results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl=75g OGTT - 1 hr results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl=75g OGTT - 2 hrs results (mg/dl) +profile_contact_test.blood_glucose_tests.random_plasma_glucose_results_mg_dl=Random plasma glucose results (mg/dl) +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_status=Blood haemoglobin test status +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_done_date=Blood haemoglobin test done date +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_reason=Blood haemoglobin test not done reason +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason=Blood haemoglobin test not done other reason +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_type=Blood haemoglobin test type +profile_contact_test.blood_haemoglobin_test.complete_blood_count_test_result_g_dl=Complete blood count test result (g/dl) +profile_contact_test.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl=RHb test result - haemoglobinometer (g/dl) +profile_contact_test.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl=Hb test result - haemoglobin colour scale (g/dl) +profile_contact_test.blood_haemoglobin_test.hematocrit_ht=Hematocrit (Ht) +profile_contact_test.blood_haemoglobin_test.white_blood_cell_wbc_count=White blood cell (WBC) count +profile_contact_test.blood_haemoglobin_test.platelet_count=Platelet count +profile_contact_test.tb_screening_test.tb_screening_test_status=TB screening test status +profile_contact_test.tb_screening_test.tb_screening_test_done_date=TB screening test done date +profile_contact_test.tb_screening_test.tb_screening_test_not_done_reason=TB screening test not done reason +profile_contact_test.tb_screening_test.tb_screening_test_not_done_other_reason=TB screening test not done other reason +profile_contact_test.tb_screening_test.tb_screening_result=TB screening result +profile_contact_test.partner_hiv_test.partner_hiv_test_status=Partner HIV test status +profile_contact_test.partner_hiv_test.partner_hiv_test_done_date=Partner HIV test done date +profile_contact_test.partner_hiv_test.partner_hiv_test_result=Partner HIV test result +profile_contact_test.other_tests.other_test_test_status=Other test test status +profile_contact_test.other_tests.other_test_done_date=Other test done date +profile_contact_test.other_tests.other_test_name=Other test name +profile_contact_test.other_tests.other_test_result=Other test result \ No newline at end of file From 1d5dbca42ac9b8ddfed123652e7b4f6afdc7f462 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 23 Apr 2020 19:08:15 +0300 Subject: [PATCH 024/302] :zap: Add the profile overview property files --- .../main/assets/config/profile-overview.yml | 135 +++++++++--------- .../resources/profile_overview.properties | 67 +++++++++ 2 files changed, 135 insertions(+), 67 deletions(-) create mode 100644 opensrp-anc/src/main/resources/profile_overview.properties diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index d3bae1811..560174a16 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -1,199 +1,200 @@ --- +properties_file_name: "profile_overview" group: overview_of_pregnancy sub_group: demographic_info fields: -- template: "Occupation: {occupation}" +- template: "{{profile_overview.overview_of_pregnancy.demographic_info.occupation}}: {occupation}" relevance: "occupation != ''" --- sub_group: current_pregnancy fields: -- template: "GA: {gest_age}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ga}}: {gest_age}" relevance: "gest_age != ''" isRedFont: "gest_age > 40" -- template: "EDD: {edd}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.edd}}: {edd}" relevance: "edd != ''" -- template: "Ultrasound date: {ultrasound_date}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date}}: {ultrasound_date}" relevance: "ultrasound_date != ''" -- template: "No. of fetuses: {no_of_fetuses}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses}}: {no_of_fetuses}" relevance: "no_of_fetuses != ''" isRedFont: "no_of_fetuses > 1" -- template: "Fetal presentation: {fetal_presentation}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation}}: {fetal_presentation}" relevance: "fetal_presentation != ''" -- template: "Amniotic fluid: {amniotic_fluid}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid}}: {amniotic_fluid}" relevance: "amniotic_fluid != ''" -- template: "Placenta location: {placenta_location}" +- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location}}: {placenta_location}" relevance: "placenta_location != ''" isRedFont: "placenta_location.contains('Previa')" --- sub_group: obstetric_history fields: -- template: "Gravida: {gravida}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.gravida}}: {gravida}" relevance: "gravida != ''" isRedFont: "gravida >= 5" -- template: "Parity: {parity}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.parity}}: {parity}" relevance: "parity != ''" isRedFont: "parity >= 5" -- template: "No. of pregnancies lost/ended: {miscarriages_abortions}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" relevance: "miscarriages_abortions != ''" isRedFont: "miscarriages_abortions > 1" -- template: "No. of stillbirths: {stillbirths}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths}}: {stillbirths}" relevance: "stillbirths != ''" isRedFont: "stillbirths > 0" -- template: "No. of C-sections: {c_sections}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections}}: {c_sections}" relevance: "c_sections != ''" isRedFont: "stillbirths > 0" -- template: "Past pregnancy problems: {prev_preg_comps}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems}}: {prev_preg_comps}" relevance: "!prev_preg_comps.isEmpty() && (!prev_preg_comps.contains('dont_know') || !prev_preg_comps.contains('none'))" isRedFont: "true" -- template: "Past alcohol used: {alcohol_substance_use}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used}}: {alcohol_substance_use}" relevance: "(!alcohol_substance_use.contains('none') && !alcohol_substance_use.isEmpty()) " isRedFont: "true" -- template: "Past substances used: {substances_used}" +- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used}}: {substances_used}" relevance: "(!substances_used.contains('none') && !substances_used.isEmpty())" isRedFont: "true" --- sub_group: medical_history fields: -- template: "Blood type: {blood_type}" +- template: "{{profile_overview.overview_of_pregnancy.medical_history.blood_type}}: {blood_type}" relevance: "blood_type != ''" -- template: "Allergies: {allergies}" +- template: "{{profile_overview.overview_of_pregnancy.medical_history.allergies}}: {allergies}" relevance: "allergies != ''" -- template: "Surgeries: {surgeries}" +- template: "{{profile_overview.overview_of_pregnancy.medical_history.surgeries}}: {surgeries}" relevance: "surgeries != ''" -- template: "Chronic health conditions: {health_conditions}" +- template: "{{profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions}}: {health_conditions}" relevance: "!health_conditions.isEmpty()" -- template: "Past HIV diagnosis date: {hiv_diagnosis_date}" +- template: "{{profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date}}: {hiv_diagnosis_date}" relevance: "hiv_diagnosis_date != ''" isRedFont: "true" --- sub_group: weight fields: -- template: "BMI: {bmi}" +- template: "{{profile_overview.overview_of_pregnancy.weight.bmi}}: {bmi}" relevance: "bmi != ''" isRedFont: "bmi < 18.5 || bmi >= 25" -- template: "Weight category: {weight_cat}" +- template: "{{profile_overview.overview_of_pregnancy.weight.weight_category}}: {weight_cat}" relevance: "weight_cat !=''" isRedFont: "weight_cat.contains('Underweight') || weight_cat.contains('Overweight') || weight_cat.contains('Obese')" -- template: "Expected weight gain during pregnancy: {exp_weight_gain} kg" +- template: "{{profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy}}: {exp_weight_gain} kg" relevance: "exp_weight_gain != ''" -- template: "Total weight gain in pregnancy so far: {tot_weight_gain} kg" +- template: "{{profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far}}: {tot_weight_gain} kg" relevance: "tot_weight_gain != ''" --- sub_group: medications fields: -- template: "Current medications: {medications}" +- template: "{{profile_overview.overview_of_pregnancy.medications.current_medications}}: {medications}" relevance: "medications != ''" -- template: "Medications prescribed: {medications_prescribed}" +- template: "{{profile_overview.overview_of_pregnancy.medications.medications_prescribed}}: {medications_prescribed}" relevance: "medications_prescribed !='' " -- template: "Calcium compliance: {calcium_comply}" +- template: "{{profile_overview.overview_of_pregnancy.medications.calcium_compliance}}: {calcium_comply}" relevance: "calcium_comply != ''" -- template: "Calcium side effects: {calcium_effects}" +- template: "{{profile_overview.overview_of_pregnancy.medications.calcium_side_effects}}: {calcium_effects}" relevance: "calcium_effects != ''" -- template: "IFA compliance: {ifa_comply}" +- template: "{{profile_overview.overview_of_pregnancy.medications.ifa_compliance}}: {ifa_comply}" relevance: "ifa_comply != ''" -- template: "IFA side effects: {ifa_effects}" +- template: "{{profile_overview.overview_of_pregnancy.medications.ifa_side_effects}}: {ifa_effects}" relevance: "ifa_effects != ''" -- template: "Aspirin compliance: {aspirin_comply}" +- template: "{{profile_overview.overview_of_pregnancy.medications.aspirin_compliance}}: {aspirin_comply}" relevance: "aspirin_comply != ''" -- template: "Vitamin A compliance: {vita_comply}" +- template: "{{profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance}}: {vita_comply}" relevance: "vita_comply != ''" -- template: "Penicillin compliance: {penicillin_comply}" +- template: "{{profile_overview.overview_of_pregnancy.medications.penicillin_compliance}}: {penicillin_comply}" relevance: "penicillin_comply != ''" --- group: hospital_referral_reasons fields: -- template: "Woman referred to hospital" +- template: "{{profile_overview.hospital_referral_reasons.woman_referred_to_hospital}}" relevance: "referred_hosp == 'Yes'" -- template: "Woman not referred to hospital: {referred_hosp_notdone}" +- template: "{{profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital}}: {referred_hosp_notdone}" relevance: "referred_hosp == 'No'" isRedFont: "true" -- template: "Danger sign(s): {danger_signs}" +- template: "{{profile_overview.hospital_referral_reasons.danger_signs}}: {danger_signs}" relevance: "!danger_signs.contains('danger_none') && !danger_signs.isEmpty()" -- template: "Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" +- template: "{{profile_overview.hospital_referral_reasons.severe_hypertension}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" relevance: "severe_hypertension == 1 && global_contact_no == 1" -- template: "Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia}" +- template: "{{profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia}" relevance: "hypertension == 1 && symp_sev_preeclampsia!=''" -- template: "Pre-eclampsia diagnosis" +- template: "{{profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis}}" relevance: "preeclampsia == 1 && global_contact_no == 1" -- template: "Severe pre-eclampsia diagnosis" +- template: "{{profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis}}" relevance: "severe_preeclampsia == 1 && global_contact_no == 1" -- template: "Fever: {body_temp_repeat}ºC" +- template: "{{profile_overview.hospital_referral_reasons.fever}}: {body_temp_repeat}ºC" relevance: "body_temp_repeat >= 38" isRedFont: "true" -- template: "Abnormal pulse rate: {pulse_rate_repeat} bpm" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_pulse_rate}}: {pulse_rate_repeat} bpm" relevance: "pulse_rate_repeat < 60 || pulse_rate_repeat > 100" -- template: "Respiratory distress: {respiratory_exam_abnormal}" +- template: "{{profile_overview.hospital_referral_reasons.respiratory_distress}}: {respiratory_exam_abnormal}" relevance: "respiratory_exam_abnormal != ''" -- template: "Low oximetry: {oximetry}%" +- template: "{{profile_overview.hospital_referral_reasons.low_oximetry}}: {oximetry}%" relevance: "oximetry < 92" isRedFont: "true" -- template: "Abnormal cardiac exam: {cardiac_exam_abnormal}" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_cardiac_exam}}: {cardiac_exam_abnormal}" relevance: "!cardiac_exam_abnormal.contains('none')" -- template: "Abnormal breast exam: {breast_exam_abnormal}" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_breast_exam}}: {breast_exam_abnormal}" relevance: "!breast_exam_abnormal.contains('none')" -- template: "Abnormal abdominal exam: {abdominal_exam_abnormal}" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_abdominal_exam}}: {abdominal_exam_abnormal}" relevance: "!abdominal_exam_abnormal.contains('none')" -- template: "Abnormal pelvic exam: {pelvic_exam_abnormal}" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_pelvic_exam}}: {pelvic_exam_abnormal}" relevance: "!pelvic_exam_abnormal.contains('none')" -- template: "No fetal heartbeat observed" +- template: "{{profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed}}" relevance: "fetal_heartbeat == 'No'" isRedFont: "true" -- template: "Abnormal fetal heart rate: {fetal_heart_rate_repeat} bpm" +- template: "{{profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" --- group: physiological_symptoms fields: -- template: "Physiological symptoms: {phys_symptoms}" +- template: "{{profile_overview.physiological_symptoms.physiological_symptoms}}: {phys_symptoms}" relevance: "phys_symptoms != ''" - template: "Persisting physiological symptoms: {phys_symptoms_persist}" relevance: "phys_symptoms_persist != ''" @@ -202,56 +203,56 @@ fields: --- group: birth_plan_counseling fields: -- template: "Planned birth place: {delivery_place}" +- template: "{{profile_overview.birth_plan_counseling.planned_birth_place}}: {delivery_place}" relevance: "delivery_place != ''" -- template: "FP method accepted: {family_planning_type}" +- template: "{{profile_overview.birth_plan_counseling.fp_method_accepted}}: {family_planning_type}" relevance: "family_planning_type != ''" --- group: malaria_prophylaxis fields: -- template: "IPTp-SP dose 1: {date}" +- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_1}}: {date}" relevance: "iptp_sp1 == 'Done'" -- template: "IPTp-SP dose 2: {date}" +- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_2}}: {date}" relevance: "iptp_sp2 == 'Done'" -- template: "IPTp-SP dose 3: {date}" +- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_3}}: {date}" relevance: "iptp_sp3 == 'Done'" --- group: immunisation_status fields: -- template: "TT immunisation status: {tt_immun_status}" +- template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" relevance: "tt_immun_status != ''" isRedFont: "tt_immun_status == 'TTCV not received' || tt_immun_status == 'Unknown'" -- template: "TT dose #1: {tt1_date}" +- template: "{{profile_overview.immunisation_status.tt_dose_1}}: {tt1_date}" relevance: "tt1_date == 'Done today' || tt1_date == 'Done earlier'" -- template: "TT dose #1: {tt2_date}" +- template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date}" relevance: "tt2_date == 'Done today' || tt2_date == 'Done earlier'" -- template: "TT dose #1: {tt3_date}" +- template: "{{profile_overview.immunisation_status.tt_dose_3}}: {tt3_date}" relevance: "tt3_date == 'Done today' || tt3_date == 'Done earlier'" -- template: "Hep B immunisation status: {hepb_immun_status}" +- template: "{{profile_overview.immunisation_status.hep_b_immunisation_status}}: {hepb_immun_status}" relevance: "hepb_immun_status != ''" isRedFont: "hepb_immun_status == 'TTCV not received' || hepb_immun_status == 'Unknown' || hepb_immun_status == 'Incomplete'" -- template: "Hep B dose #1: {hepb1_date}" +- template: "{{profile_overview.immunisation_status.hep_b_dose_1}}: {hepb1_date}" relevance: "hepb1_date == 'Done today' || hepb1_date == 'Done earlier'" -- template: "Hep B dose #2: {hepb2_date}" +- template: "{{profile_overview.immunisation_status.hep_b_dose_2}}: {hepb2_date}" relevance: "hepb2_date == 'Done today' || hepb2_date == 'Done earlier'" -- template: "Hep B dose #3: {hepb3_date}" +- template: "{{profile_overview.immunisation_status.hep_b_dose_3}}: {hepb3_date}" relevance: "hepb3_date == 'Done today' || hepb3_date == 'Done earlier'" -- template: "Flu immunisation status: {flu_immun_status}" +- template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" relevance: "flu_immun_status != ''" isRedFont: "flu_immun_status == 'Seasonal flu dose missing' || flu_immun_status == 'Unknown'" -- template: "Flu dose: {flu_date}" +- template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date}" relevance: "flu_date == 'Done today' || flu_date == 'Done earlier'" \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties new file mode 100644 index 000000000..0f87f45ed --- /dev/null +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -0,0 +1,67 @@ +profile_overview.overview_of_pregnancy.demographic_info.occupation=Occupation +profile_overview.overview_of_pregnancy.current_pregnancy.ga=GA +profile_overview.overview_of_pregnancy.current_pregnancy.edd=EDD +profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date=Ultrasound date +profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses=No. of fetuses +profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation=Fetal presentation +profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid=Amniotic fluid +profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location=Placenta location +profile_overview.overview_of_pregnancy.obstetric_history.gravida=Gravida +profile_overview.overview_of_pregnancy.obstetric_history.parity=Parity +profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended +profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths=No. of stillbirths +profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections=No. of C-sections +profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems=Past pregnancy problems +profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used=Past alcohol used +profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used=Past substances used +profile_overview.overview_of_pregnancy.medical_history.blood_type=Blood type +profile_overview.overview_of_pregnancy.medical_history.allergies=Allergies +profile_overview.overview_of_pregnancy.medical_history.surgeries=Surgeries +profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions=Chronic health conditions +profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date=Past HIV diagnosis date +profile_overview.overview_of_pregnancy.weight.bmi=BMI +profile_overview.overview_of_pregnancy.weight.weight_category=Weight category +profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy=Expected weight gain during the pregnancy +profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far=Total weight gain in pregnancy so far +profile_overview.overview_of_pregnancy.medications.current_medications=Current medications +profile_overview.overview_of_pregnancy.medications.medications_prescribed=Medications prescribed +profile_overview.overview_of_pregnancy.medications.calcium_compliance=Calcium compliance +profile_overview.overview_of_pregnancy.medications.calcium_side_effects=Calcium side effects +profile_overview.overview_of_pregnancy.medications.ifa_compliance=IFA compliance +profile_overview.overview_of_pregnancy.medications.ifa_side_effects=IFA side effects +profile_overview.overview_of_pregnancy.medications.aspirin_compliance=Aspirin compliance +profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance=Vitamin A compliance +profile_overview.overview_of_pregnancy.medications.penicillin_compliance=Penicillin compliance +profile_overview.hospital_referral_reasons.woman_referred_to_hospital=Woman referred to hospital +profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital=Woman not referred to hospital +profile_overview.hospital_referral_reasons.danger_signs=Danger sign(s) +profile_overview.hospital_referral_reasons.severe_hypertension=Severe hypertension +profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia +profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.fever=Fever +profile_overview.hospital_referral_reasons.abnormal_pulse_rate=Abnormal pulse rate +profile_overview.hospital_referral_reasons.respiratory_distress=Respiratory distress +profile_overview.hospital_referral_reasons.low_oximetry=Low oximetry +profile_overview.hospital_referral_reasons.abnormal_cardiac_exam=Abnormal cardiac exam +profile_overview.hospital_referral_reasons.abnormal_breast_exam=Abnormal breast exam +profile_overview.hospital_referral_reasons.abnormal_abdominal_exam=Abnormal abdominal exam +profile_overview.hospital_referral_reasons.abnormal_pelvic_exam=Abnormal pelvic exam +profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed=No fetal heartbeat observed +profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate=Abnormal fetal heart rate +profile_overview.physiological_symptoms.physiological_symptoms=Physiological symptoms +profile_overview.birth_plan_counseling.planned_birth_place=Planned birth place +profile_overview.birth_plan_counseling.fp_method_accepted=FP method accepted +profile_overview.malaria_prophylaxis.iptp_sp_dose_1=IPTp-SP dose 1 +profile_overview.malaria_prophylaxis.iptp_sp_dose_2=IPTp-SP dose 2 +profile_overview.malaria_prophylaxis.iptp_sp_dose_3=IPTp-SP dose 3 +profile_overview.immunisation_status.tt_immunisation_status=TT immunisation status +profile_overview.immunisation_status.tt_dose_1=TT dose #1 +profile_overview.immunisation_status.tt_dose_2=TT dose #2 +profile_overview.immunisation_status.tt_dose_3=TT dose #3 +profile_overview.immunisation_status.hep_b_immunisation_status=Hep B immunisation status +profile_overview.immunisation_status.hep_b_dose_1=Hep B dose #1 +profile_overview.immunisation_status.hep_b_dose_2=Hep B dose #2 +profile_overview.immunisation_status.hep_b_dose_3=Hep B dose #3 +profile_overview.immunisation_status.flu_immunisation_status=Flu immunisation status +profile_overview.immunisation_status.flu_dose=Flu dose \ No newline at end of file From 06fde6a1150b421ce132959c319b76fcaf8ba41e Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 23 Apr 2020 19:55:46 +0300 Subject: [PATCH 025/302] :heavy_check_mark: fix up broken tests --- .../anc/activity/LoginActivity.java | 1 + .../anc/presenter/LoginPresenterTest.java | 26 ++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java index 89d841ff6..db6e3d889 100644 --- a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java +++ b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java @@ -1,5 +1,6 @@ package org.smartregister.anc.activity; +import android.app.Activity; import android.content.Intent; import org.greenrobot.eventbus.Subscribe; diff --git a/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java b/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java index c04cc57d8..e0482fe57 100644 --- a/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java +++ b/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java @@ -1,6 +1,8 @@ package org.smartregister.anc.presenter; import android.app.Activity; +import android.content.pm.PackageManager; +import android.content.res.Resources; import android.view.ViewTreeObserver; import android.widget.CheckBox; import android.widget.ImageView; @@ -16,10 +18,13 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; +import org.powermock.reflect.Whitebox; import org.robolectric.RuntimeEnvironment; import org.smartregister.anc.BaseUnitTest; +import org.smartregister.anc.activity.LoginActivity; import org.smartregister.anc.library.R; import org.smartregister.login.model.BaseLoginModel; +import org.smartregister.util.SyncUtils; import org.smartregister.view.contract.BaseLoginContract; import java.lang.ref.WeakReference; @@ -43,6 +48,10 @@ public class LoginPresenterTest extends BaseUnitTest { @Mock private BaseLoginContract.Model model; + + @Mock + private Resources resources; + private BaseLoginContract.Presenter presenter; @Before @@ -68,7 +77,6 @@ public void testGetOpenSRPContextShouldReturnValidValue() { @Test public void testOnDestroyShouldCallInteractorOnDestroyWithCorrectParameter() { - LoginPresenter presenter = new LoginPresenter(view); presenter.setLoginInteractor(interactor);//set mocked interactor @@ -81,14 +89,16 @@ public void testOnDestroyShouldCallInteractorOnDestroyWithCorrectParameter() { @Test public void testAttemptLoginShouldValidateCredentialsCorrectly() { - LoginPresenter presenter = new LoginPresenter(view); presenter.setLoginModel(model);//set mocked model presenter.setLoginInteractor(interactor); //set mocked interactor + Mockito.doReturn(true).when(view).isAppVersionAllowed(); + Mockito.doReturn(false).when(model).isEmptyUsername(ArgumentMatchers.anyString()); Mockito.doReturn(true).when(model).isPasswordValid(ArgumentMatchers.anyString()); presenter.attemptLogin(DUMMY_USERNAME, DUMMY_PASSWORD); + Mockito.verify(view).resetPaswordError(); Mockito.verify(view).resetUsernameError(); Mockito.verify(model).isEmptyUsername(DUMMY_USERNAME); @@ -100,11 +110,12 @@ public void testAttemptLoginShouldValidateCredentialsCorrectly() { @Test public void testAttemptLoginShouldCallLoginMethodWithCorrectParametersWhenValidationPasses() { - LoginPresenter presenter = new LoginPresenter(view); presenter.setLoginModel(model);//set mocked model presenter.setLoginInteractor(interactor); //set mocked interactor + Mockito.doReturn(true).when(view).isAppVersionAllowed(); + Mockito.doReturn(false).when(model).isEmptyUsername(ArgumentMatchers.anyString()); Mockito.doReturn(true).when(model).isPasswordValid(ArgumentMatchers.anyString()); presenter.attemptLogin(DUMMY_USERNAME, DUMMY_PASSWORD); @@ -114,11 +125,13 @@ public void testAttemptLoginShouldCallLoginMethodWithCorrectParametersWhenValida } @Test - public void testAttemptLoginShouldNotCallLoginMethodWithCorrectParametersWhenValidationFails() { + public void testAttemptLoginShouldNotCallLoginMethodWithCorrectParametersWhenValidationFails() throws PackageManager.NameNotFoundException { LoginPresenter presenter = new LoginPresenter(view); presenter.setLoginModel(new BaseLoginModel());//create real model presenter.setLoginInteractor(interactor); //set mocked interactor + Mockito.doReturn(true).when(view).isAppVersionAllowed(); + presenter.attemptLogin(null, DUMMY_PASSWORD); String NULL_USERNAME = null; Mockito.verify(view).setUsernameError(R.string.error_field_required); @@ -131,15 +144,14 @@ public void testAttemptLoginShouldNotCallLoginMethodWithCorrectParametersWhenVal @Test public void testAttemptLoginShouldNotCallLoginMethodWhenValidationFails() { - LoginPresenter presenter = new LoginPresenter(view); presenter.setLoginModel(model);//set mocked model presenter.setLoginInteractor(interactor); //set mocked interactor - Mockito.doReturn(false).when(model).isPasswordValid(ArgumentMatchers.anyString()); - presenter.attemptLogin(DUMMY_USERNAME, DUMMY_PASSWORD); + Mockito.doReturn(true).when(view).isAppVersionAllowed(); + presenter.attemptLogin(DUMMY_USERNAME, DUMMY_PASSWORD); Mockito.verify(interactor, Mockito.times(0)).login(ArgumentMatchers.any(WeakReference.class), ArgumentMatchers.eq(DUMMY_USERNAME), ArgumentMatchers.eq(DUMMY_PASSWORD)); From eec06eb100a45645def33e1c610947a574de3b16 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 23 Apr 2020 19:56:34 +0300 Subject: [PATCH 026/302] :ok_hand: remove unused imports & variables --- .../smartregister/anc/presenter/LoginPresenterTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java b/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java index e0482fe57..6a2e321fb 100644 --- a/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java +++ b/reference-app/src/test/java/org/smartregister/anc/presenter/LoginPresenterTest.java @@ -2,7 +2,6 @@ import android.app.Activity; import android.content.pm.PackageManager; -import android.content.res.Resources; import android.view.ViewTreeObserver; import android.widget.CheckBox; import android.widget.ImageView; @@ -18,13 +17,10 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.powermock.reflect.Whitebox; import org.robolectric.RuntimeEnvironment; import org.smartregister.anc.BaseUnitTest; -import org.smartregister.anc.activity.LoginActivity; import org.smartregister.anc.library.R; import org.smartregister.login.model.BaseLoginModel; -import org.smartregister.util.SyncUtils; import org.smartregister.view.contract.BaseLoginContract; import java.lang.ref.WeakReference; @@ -49,9 +45,6 @@ public class LoginPresenterTest extends BaseUnitTest { @Mock private BaseLoginContract.Model model; - @Mock - private Resources resources; - private BaseLoginContract.Presenter presenter; @Before From c6e9d6357e825e3d4afc71e0f450a02abae74282 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 23 Apr 2020 20:31:29 +0300 Subject: [PATCH 027/302] :zap: reformat the properties --- .../main/assets/config/contact-summary.yml | 85 +++++----- .../resources/anc_physical_exam.properties | 20 +-- .../src/main/resources/anc_profile.properties | 10 +- .../main/resources/attention_flags.properties | 118 +++++++------- .../main/resources/contact_summary.properties | 43 +++++ .../profile_contact_tab_contacts.properties | 4 +- .../resources/profile_contact_test.properties | 150 +++++++++--------- .../resources/profile_overview.properties | 134 ++++++++-------- .../src/main/resources/robolectric.properties | 2 +- .../tests_hepatitis_b_sub_form.properties | 2 +- .../tests_hepatitis_b_sub_form_fr.properties | 2 +- 11 files changed, 307 insertions(+), 263 deletions(-) create mode 100644 opensrp-anc/src/main/resources/contact_summary.properties diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index 4fe50e7a0..4b08888c2 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -1,142 +1,143 @@ --- +properties_file_name: "contact_summary" group: hospital_referral fields: -- template: "Woman referred to hospital" +- template: "{{contact_summary.hospital_referral.woman_referred_to_hospital}}" relevance: "referred_hosp == 'yes'" -- template: "Woman not referred to hospital: {referred_hosp_notdone_value}" +- template: "{{contact_summary.hospital_referral.woman_not_referred_to_hospital}}: {referred_hosp_notdone_value}" relevance: "referred_hosp == 'no'" -- template: "Danger sign(s): {danger_signs_value}" +- template: "{{contact_summary.hospital_referral.danger_signs}}: {danger_signs_value}" relevance: "!danger_signs.isEmpty() && !danger_signs.contains('danger_none')" -- template: "Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" +- template: "{{contact_summary.hospital_referral.severe_hypertension}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" relevance: "severe_hypertension == 1" -- template: "Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia_value}" +- template: "{{contact_summary.hospital_referral.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia_value}" relevance: "hypertension == 1 && symp_sev_preeclampsia != '' && !symp_sev_preeclampsia.contains('none')" -- template: "Pre-eclampsia diagnosis" +- template: "{{contact_summary.hospital_referral.pre_eclampsia_diagnosis}}" relevance: "preeclampsia == 1" -- template: "Severe pre-eclampsia diagnosis" +- template: "{{contact_summary.hospital_referral.severe_pre_eclampsia_diagnosis}}" relevance: "severe_preeclampsia == 1" -- template: "Fever: {body_temp_repeat}ºC" +- template: "{{contact_summary.hospital_referral.fever}}: {body_temp_repeat}ºC" relevance: "body_temp_repeat >= 38" -- template: "Abnormal pulse rate: {pulse_rate_repeat}bpm" +- template: "{{contact_summary.hospital_referral.abnormal_pulse_rate}}: {pulse_rate_repeat}bpm" relevance: "pulse_rate_repeat < 60 || pulse_rate_repeat > 100" -- template: "Respiratory distress: {respiratory_exam_abnormal_value}" +- template: "{{contact_summary.hospital_referral.respiratory_distress}}: {respiratory_exam_abnormal_value}" relevance: "!respiratory_exam_abnormal.contains('none') && !respiratory_exam_abnormal.isEmpty()" -- template: "Low oximetry: {oximetry}%" +- template: "{{contact_summary.hospital_referral.low_oximetry}}: {oximetry}%" relevance: "oximetry < 92" -- template: "Abnormal cardiac exam: {cardiac_exam_abnormal_value}" +- template: "{{contact_summary.hospital_referral.abnormal_cardiac_exam}}: {cardiac_exam_abnormal_value}" relevance: "!cardiac_exam_abnormal.contains('none') && !cardiac_exam_abnormal.isEmpty()" -- template: "Abnormal breast exam: {breast_exam_abnormal_value}" +- template: "{{contact_summary.hospital_referral.abnormal_breast_exam}}: {breast_exam_abnormal_value}" relevance: "!breast_exam_abnormal.contains('none') && !breast_exam_abnormal.isEmpty()" -- template: "Abnormal abdominal exam: {abdominal_exam_abnormal_value}" +- template: "{{contact_summary.hospital_referral.abnormal_abdominal_exam}}: {abdominal_exam_abnormal_value}" relevance: "!abdominal_exam_abnormal.contains('none') && !abdominal_exam_abnormal.isEmpty()" -- template: "Abnormal pelvic exam: {pelvic_exam_abnormal_value}" +- template: "{{contact_summary.hospital_referral.abnormal_pelvic_exam}}: {pelvic_exam_abnormal_value}" relevance: "!pelvic_exam_abnormal.contains('none') && !pelvic_exam_abnormal.isEmpty()" -- template: "No fetal heartbeat observed" +- template: "{{contact_summary.hospital_referral.no_fetal_heartbeat_observed}}" relevance: "fetal_heartbeat == 'no'" -- template: "Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm" +- template: "{{contact_summary.hospital_referral.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat}bpm" relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" --- group: reason_for_visit fields: -- template: "Reason for coming to facility: {contact_reason_value}" +- template: "{{contact_summary.reason_for_visit.reason_for_coming_to_facility}}: {contact_reason_value}" relevance: "contact_reason_value != ''" -- template: "Specific complaint(s): {specific_complaint_value}" +- template: "{{contact_summary.reason_for_visit.specific_complaint }}: {specific_complaint_value}" relevance: "specific_complaint_value != ''" --- group: demographic_info fields: -- template: "Highest level of school: {educ_level_value}" +- template: "{{contact_summary.demographic_info.educ_level}}: {educ_level_value}" relevance: "educ_level_value != ''" -- template: "Marital status: {marital_status_value}" +- template: "{{contact_summary.demographic_info.marital_status}}: {marital_status_value}" relevance: "marital_status_value != ''" -- template: "Occupation: {occupation_value}" +- template: "{{contact_summary.demographic_info.occupation}}: {occupation_value}" relevance: "occupation_value != ''" --- group: current_pregnancy fields: -- template: "GA: {gest_age}" +- template: "{{contact_summary.current_pregnancy.ga}}: {gest_age}" relevance: "gest_age !='' " -- template: "EDD: {edd}" +- template: "{{contact_summary.current_pregnancy.edd}}: {edd}" relevance: "edd != '' " -- template: "Ultrasound date: {ultrasound_date}" +- template: "{{contact_summary.current_pregnancy.ultrasound_date}}: {ultrasound_date}" relevance: "ultrasound_date != ''" -- template: "No. of fetuses: {no_of_fetuses}" +- template: "{{contact_summary.current_pregnancy.no_of_fetuses}}: {no_of_fetuses}" relevance: "no_of_fetuses != ''" -- template: "Fetal presentation: {fetal_presentation_value}" +- template: "{{contact_summary.current_pregnancy.fetal_presentation}}: {fetal_presentation_value}" relevance: "fetal_presentation != ''" -- template: "Amniotic fluid: {amniotic_fluid_value}" +- template: "{{contact_summary.current_pregnancy.amniotic_fluid}}: {amniotic_fluid_value}" relevance: "amniotic_fluid != ''" -- template: "Placenta location: {placenta_location_value}" +- template: "{{contact_summary.current_pregnancy.placenta_location}}: {placenta_location_value}" relevance: "placenta_location != ''" --- group: obstetric_history fields: -- template: "G = {gravida} P = {parity}" +- template: "{{contact_summary.obstetric_history.gravida}} = {gravida} {{contact_summary.obstetric_history.parity}} = {parity}" relevance: "gravida !='' || parity != ''" -- template: "No. of pregnancies lost/ended: {miscarriages_abortions}" +- template: "{{contact_summary.obstetric_history.no_of_pregnancies_lost_ended=}}: {miscarriages_abortions}" relevance: "miscarriages_abortions > 0" -- template: "No. of live births: {live_births}" +- template: "{{contact_summary.obstetric_history.no_of_live_births}}: {live_births}" relevance: "live_births > 0" -- template: "No. of stillbirths: {stillbirths}" +- template: "{{contact_summary.obstetric_history.no_of_stillbirths}}: {stillbirths}" relevance: "stillbirths > 0" -- template: "No. of C-sections: {c_sections}" +- template: "{{contact_summary.obstetric_history.no_of_c_sections}}: {c_sections}" relevance: "c_sections > 0" -- template: "Past pregnancy problems: {prev_preg_comps_value}" +- template: "{{contact_summary.obstetric_history.past_pregnancy_problems}}: {prev_preg_comps_value}" relevance: "(!prev_preg_comps.contains('dont_know') || !prev_preg_comps.contains('none'))" -- template: "Past substances used: {substances_used_value}" +- template: "{{contact_summary.obstetric_history.past_substances_used}}: {substances_used_value}" relevance: "(!substances_used.isEmpty()) " --- group: medical_history fields: -- template: "Allergies: {allergies_value}, {}" +- template: "{{contact_summary.medical_history.allergies}}: {allergies_value}, {}" relevance: "!allergies.isEmpty()" -- template: "Surgeries: {surgeries_value}" +- template: "{{contact_summary.medical_history.surgeries}}: {surgeries_value}" relevance: "!surgeries.isEmpty()" -- template: "Chronic health conditions: {health_conditions_value}" +- template: "{{contact_summary.medical_history.chronic_health_conditions}}: {health_conditions_value}" relevance: "!health_conditions.isEmpty()" -- template: "HIV diagnosis date: {hiv_diagnosis_date}" +- template: "{{contact_summary.medical_history.hiv_diagnosis_date}}: {hiv_diagnosis_date}" relevance: "hiv_diagnosis_date != ''" -- template: "HIV diagnosis date unknown" +- template: "{{contact_summary.medical_history.hiv_diagnosis_date_unknown}}" relevance: "hiv_diagnosis_date_unknown.contains('yes') " --- group: immunisation_status @@ -533,7 +534,7 @@ fields: - template: "Blood type test date: {blood_type_test_date}" relevance: "blood_type_test_date != ''" -- template: "Blood type: {blood_type_value}" +- template: "{{contact_summary.blood_type_test.blood_type}}: {blood_type_value}" relevance: "blood_type != ''" - template: "Rh factor: {rh_factor_value}" diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index 24e430154..7c249322e 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -20,7 +20,7 @@ anc_physical_exam.step3.cardiac_exam.label = Cardiac exam anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) anc_physical_exam.step3.toaster24.text = Abnormal abdominal exam. Consider high level evaluation or referral. -anc_physical_exam.step3.body_temp_repeat.v_numeric.err = +anc_physical_exam.step3.body_temp_repeat.v_numeric.err = anc_physical_exam.step1.height.v_required.err = Please enter the height anc_physical_exam.step3.toaster21.toaster_info_text = Procedure:\n- Give oxygen\n- Refer urgently to hospital! anc_physical_exam.step3.body_temp.v_required.err = Please enter body temperature @@ -43,7 +43,7 @@ anc_physical_exam.step3.breast_exam.options.3.text = Abnormal anc_physical_exam.step2.cant_record_bp_reason.v_required.err = Reason why SBP and DPB is cannot be done is required anc_physical_exam.step3.abdominal_exam.options.2.text = Normal anc_physical_exam.step4.no_of_fetuses_label.text = No. of fetuses -anc_physical_exam.step1.pregest_weight.v_numeric.err = +anc_physical_exam.step1.pregest_weight.v_numeric.err = anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to record BP anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other @@ -55,7 +55,7 @@ anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes res anc_physical_exam.step3.cervical_exam.options.1.text = Done anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Please enter result for the second fetal heart rate anc_physical_exam.step3.toaster22.text = Abnormal cardiac exam. Refer urgently to the hospital! -anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = +anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation anc_physical_exam.step3.oedema.options.yes.text = Yes @@ -83,7 +83,7 @@ anc_physical_exam.step4.fetal_presentation.options.unknown.text = Unknown anc_physical_exam.step4.fetal_heartbeat.v_required.err = Please specify if fetal heartbeat is present. anc_physical_exam.step1.current_weight.v_required.err = Please enter the current weight anc_physical_exam.step2.bp_systolic_label.text = Systolic blood pressure (SBP) (mmHg) -anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = +anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = BP cuff (sphygmomanometer) is broken anc_physical_exam.step3.abdominal_exam.label = Abdominal exam anc_physical_exam.step4.fetal_presentation.v_required.err = Fetal representation field is required @@ -94,7 +94,7 @@ anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseli anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling -anc_physical_exam.step2.bp_systolic.v_numeric.err = +anc_physical_exam.step2.bp_systolic.v_numeric.err = anc_physical_exam.step2.urine_protein.options.none.text = None anc_physical_exam.step2.cant_record_bp_reason.label = Reason anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! @@ -106,7 +106,7 @@ anc_physical_exam.step2.toaster8.text = Do urine dipstick test for protein. anc_physical_exam.step4.fetal_heart_rate.v_required.err = Please specify if fetal heartbeat is present. anc_physical_exam.step1.toaster6.text = Balanced energy and protein dietary supplementation counseling anc_physical_exam.step2.toaster14.toaster_info_title = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. -anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = +anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre-eclampsia? anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! @@ -130,14 +130,14 @@ anc_physical_exam.step3.toaster16.toaster_info_text = Procedure:\n- Insert an IV anc_physical_exam.step2.toaster11.text = Symptom(s) of severe pre-eclampsia! Refer urgently to hospital! anc_physical_exam.step2.toaster14.text = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Please specify any other symptoms or select none -anc_physical_exam.step3.body_temp.v_numeric.err = +anc_physical_exam.step3.body_temp.v_numeric.err = anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Pre-gestational weight unknown anc_physical_exam.step2.title = Blood Pressure anc_physical_exam.step2.urine_protein.v_required.err = Please enter the result for the dipstick test. anc_physical_exam.step4.toaster30.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. anc_physical_exam.step2.toaster14.toaster_info_text = Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan anc_physical_exam.step3.cervical_exam.options.2.text = Not done -anc_physical_exam.step1.height.v_numeric.err = +anc_physical_exam.step1.height.v_numeric.err = anc_physical_exam.step3.oximetry_label.text = Oximetry (%) anc_physical_exam.step2.bp_diastolic_label.text = Diastolic blood pressure (DBP) (mmHg) anc_physical_exam.step2.urine_protein.label = Urine dipstick result - protein @@ -150,9 +150,9 @@ anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache anc_physical_exam.step3.oedema_severity.options.+.text = + anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. -anc_physical_exam.step3.pulse_rate.v_numeric.err = +anc_physical_exam.step3.pulse_rate.v_numeric.err = anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate -anc_physical_exam.step2.bp_diastolic.v_numeric.err = +anc_physical_exam.step2.bp_diastolic.v_numeric.err = anc_physical_exam.step1.current_weight.v_numeric.err = anc_physical_exam.step3.title = Maternal Exam anc_physical_exam.step3.toaster19.toaster_info_text = Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor. diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 668afae02..7668959a4 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -14,7 +14,7 @@ anc_profile.step6.medications.options.aspirin.text = Aspirin anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide -anc_profile.step2.sfh_gest_age_selection.label = +anc_profile.step2.sfh_gest_age_selection.label = anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine / Crack anc_profile.step5.hepb_immun_status.v_required.err = Please select Hep B immunisation status anc_profile.step8.partner_hiv_status.label = Partner HIV status @@ -23,7 +23,7 @@ anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please sele anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) anc_profile.step1.occupation.options.formal_employment.text = Formal employment anc_profile.step3.substances_used.options.marijuana.text = Marijuana -anc_profile.step2.lmp_gest_age_selection.label = +anc_profile.step2.lmp_gest_age_selection.label = anc_profile.step2.lmp_known.options.no.text = No anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling anc_profile.step7.other_substance_use.hint = Specify @@ -38,7 +38,7 @@ anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication anc_profile.step4.allergies.label = Any allergies? anc_profile.step6.medications.options.folic_acid.text = Folic Acid anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive -anc_profile.step2.ultrasound_gest_age_selection.label = +anc_profile.step2.ultrasound_gest_age_selection.label = anc_profile.step7.condom_counseling_toaster.text = Condom counseling anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused anc_profile.step6.medications_other.hint = Specify @@ -78,7 +78,7 @@ anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) anc_profile.step5.flu_immun_status.label = Flu immunisation status -anc_profile.step2.sfh_ultrasound_gest_age_selection.label = +anc_profile.step2.sfh_ultrasound_gest_age_selection.label = anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? anc_profile.step1.occupation_other.v_required.err = Please specify your occupation anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) @@ -310,7 +310,7 @@ anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Tetanus toxoid vac anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole anc_profile.step6.medications.options.thyroid.text = Thyroid medication anc_profile.step1.title = Demographic Info -anc_profile.step2.lmp_ultrasound_gest_age_selection.label = +anc_profile.step2.lmp_ultrasound_gest_age_selection.label = anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index e50acf259..16c657170 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -1,59 +1,59 @@ -attention_flags.yellow.age=Age -attention_flags.yellow.gravida=Gravida -attention_flags.yellow.parity=Parity -attention_flags.yellow.past_pregnancy_problems=Past pregnancy problems -attention_flags.yellow.past_alcohol_substances_used=Past alcohol / substances used -attention_flags.yellow.pre_eclampsia_risk=Pre-eclampsia risk -attention_flags.yellow.diabetes_risk=Diabetes risk -attention_flags.yellow.surgeries=Surgeries -attention_flags.yellow.chronic_health_conditions=Chronic health conditions -attention_flags.yellow.high_daily_consumption_of_caffeine=High daily consumption of caffeine -attention_flags.yellow.second_hand_exposure_to_tobacco_smoke=Second-hand exposure to tobacco smoke -attention_flags.yellow.persistent_physiological_symptoms=Persistent physiological symptoms -attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman=Reduced or no fetal movement perceived by woman -attention_flags.yellow.weight_category=Weight category -attention_flags.yellow.abnormal_breast_exam=Abnormal breast exam -attention_flags.yellow.abnormal_abdominal_exam=Abnormal abdominal exam -attention_flags.yellow.abnormal_pelvic_exam=Abnormal pelvic exam -attention_flags.yellow.oedema_present=Oedema present -attention_flags.yellow.rh_factor_negative=Rh factor negative -attention_flags.red.danger_sign=Danger sign(s) -attention_flags.red.occupation_informal_employment_sex_worker=Occupation: Informal employment (sex worker) -attention_flags.red.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended -attention_flags.red.no_of_stillbirths=No. of stillbirths -attention_flags.red.no_of_C_sections=No. of C-sections -attention_flags.red.allergies=Allergies -attention_flags.red.tobacco_user_or_recently_quit=Tobacco user or recently quit -attention_flags.red.woman_and_her_partner_do_not_use_condoms=Woman and her partner(s) do not use condoms -attention_flags.red.alcohol_substances_currently_using=Alcohol / substances currently using -attention_flags.red.hypertension_diagnosis=Hypertension diagnosis -attention_flags.red.severe_hypertension=Severe hypertension -attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia -attention_flags.red.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis -attention_flags.red.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis -attention_flags.red.fever=Fever -attention_flags.red.abnormal_pulse_rate=Abnormal pulse rate -attention_flags.red.anaemia_diagnosis=Anaemia diagnosis -attention_flags.red.respiratory_distress=Respiratory distress -attention_flags.red.low_oximetry=Low oximetry -attention_flags.red.abnormal_cardiac_exam=Abnormal cardiac exam -attention_flags.red.cervix_dilated=Cervix dilated -attention_flags.red.no_fetal_heartbeat_observed=No fetal heartbeat observed -attention_flags.red.abnormal_fetal_heart_rate=Abnormal fetal heart rate -attention_flags.red.no_of_fetuses=No. of fetuses -attention_flags.red.fetal_presentation=Fetal presentation -attention_flags.red.amniotic_fluid=Amniotic fluid -attention_flags.red.placenta_location=Placenta location -attention_flags.red.hiv_risk=HIV risk -attention_flags.red.hiv_positive=HIV positive -attention_flags.red.hepatitis_b_positive=Hepatitis B positive -attention_flags.red.hepatitis_c_positive=Hepatitis C positive -attention_flags.red.syphilis_positive=Syphilis positive -attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis=Asymptomatic bacteriuria (ASB) diagnosis -attention_flags.red.group_b_streptococcus_gbs_diagnosis=Group B Streptococcus (GBS) diagnosis -attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis=Gestational Diabetes Mellitus (GDM) diagnosis -attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis=Diabetes Mellitus (DM) in pregnancy diagnosis -attention_flags.red.hematocrit_ht=Hematocrit (Ht) -attention_flags.red.white_blood_cell_wbc_count=White blood cell (WBC) count -attention_flags.red.platelet_count=Platelet count -attention_flags.red.tb_screening_positive=TB screening positive +attention_flags.yellow.age = Age +attention_flags.yellow.gravida = Gravida +attention_flags.yellow.parity = Parity +attention_flags.yellow.past_pregnancy_problems = Past pregnancy problems +attention_flags.yellow.past_alcohol_substances_used = Past alcohol / substances used +attention_flags.yellow.pre_eclampsia_risk = Pre-eclampsia risk +attention_flags.yellow.diabetes_risk = Diabetes risk +attention_flags.yellow.surgeries = Surgeries +attention_flags.yellow.chronic_health_conditions = Chronic health conditions +attention_flags.yellow.high_daily_consumption_of_caffeine = High daily consumption of caffeine +attention_flags.yellow.second_hand_exposure_to_tobacco_smoke = Second-hand exposure to tobacco smoke +attention_flags.yellow.persistent_physiological_symptoms = Persistent physiological symptoms +attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman = Reduced or no fetal movement perceived by woman +attention_flags.yellow.weight_category = Weight category +attention_flags.yellow.abnormal_breast_exam = Abnormal breast exam +attention_flags.yellow.abnormal_abdominal_exam = Abnormal abdominal exam +attention_flags.yellow.abnormal_pelvic_exam = Abnormal pelvic exam +attention_flags.yellow.oedema_present = Oedema present +attention_flags.yellow.rh_factor_negative = Rh factor negative +attention_flags.red.danger_sign = Danger sign(s) +attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Informal employment (sex worker) +attention_flags.red.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended +attention_flags.red.no_of_stillbirths = No. of stillbirths +attention_flags.red.no_of_C_sections = No. of C-sections +attention_flags.red.allergies = Allergies +attention_flags.red.tobacco_user_or_recently_quit = Tobacco user or recently quit +attention_flags.red.woman_and_her_partner_do_not_use_condoms = Woman and her partner(s) do not use condoms +attention_flags.red.alcohol_substances_currently_using = Alcohol / substances currently using +attention_flags.red.hypertension_diagnosis = Hypertension diagnosis +attention_flags.red.severe_hypertension = Severe hypertension +attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia +attention_flags.red.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis +attention_flags.red.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis +attention_flags.red.fever = Fever +attention_flags.red.abnormal_pulse_rate = Abnormal pulse rate +attention_flags.red.anaemia_diagnosis = Anaemia diagnosis +attention_flags.red.respiratory_distress = Respiratory distress +attention_flags.red.low_oximetry = Low oximetry +attention_flags.red.abnormal_cardiac_exam = Abnormal cardiac exam +attention_flags.red.cervix_dilated = Cervix dilated +attention_flags.red.no_fetal_heartbeat_observed = No fetal heartbeat observed +attention_flags.red.abnormal_fetal_heart_rate = Abnormal fetal heart rate +attention_flags.red.no_of_fetuses = No. of fetuses +attention_flags.red.fetal_presentation = Fetal presentation +attention_flags.red.amniotic_fluid = Amniotic fluid +attention_flags.red.placenta_location = Placenta location +attention_flags.red.hiv_risk = HIV risk +attention_flags.red.hiv_positive = HIV positive +attention_flags.red.hepatitis_b_positive = Hepatitis B positive +attention_flags.red.hepatitis_c_positive = Hepatitis C positive +attention_flags.red.syphilis_positive = Syphilis positive +attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis = Asymptomatic bacteriuria (ASB) diagnosis +attention_flags.red.group_b_streptococcus_gbs_diagnosis = Group B Streptococcus (GBS) diagnosis +attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis = Gestational Diabetes Mellitus (GDM) diagnosis +attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis = Diabetes Mellitus (DM) in pregnancy diagnosis +attention_flags.red.hematocrit_ht = Hematocrit (Ht) +attention_flags.red.white_blood_cell_wbc_count = White blood cell (WBC) count +attention_flags.red.platelet_count = Platelet count +attention_flags.red.tb_screening_positive = TB screening positive diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties new file mode 100644 index 000000000..cf076963c --- /dev/null +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -0,0 +1,43 @@ +contact_summary.hospital_referral.woman_referred_to_hospital = Woman referred to hospital +contact_summary.hospital_referral.woman_not_referred_to_hospital = Woman not referred to hospital +contact_summary.hospital_referral.danger_signs = Danger sign(s) +contact_summary.hospital_referral.severe_hypertension = Severe hypertension +contact_summary.hospital_referral.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia +contact_summary.hospital_referral.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis +contact_summary.hospital_referral.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis +contact_summary.hospital_referral.fever = Fever +contact_summary.hospital_referral.abnormal_pulse_rate = Abnormal pulse rate +contact_summary.hospital_referral.respiratory_distress = Respiratory distress +contact_summary.hospital_referral.low_oximetry = Low oximetry +contact_summary.hospital_referral.abnormal_cardiac_exam = Abnormal cardiac exam +contact_summary.hospital_referral.abnormal_breast_exam = Abnormal breast exam +contact_summary.hospital_referral.abnormal_abdominal_exam = Abnormal abdominal exam +contact_summary.hospital_referral.abnormal_pelvic_exam = Abnormal pelvic exam +contact_summary.hospital_referral.no_fetal_heartbeat_observed = No fetal heartbeat observed +contact_summary.hospital_referral.abnormal_fetal_heart_rate = Abnormal fetal heart rate +contact_summary.reason_for_visit.reason_for_coming_to_facility = Reason for coming to facility +contact_summary.reason_for_visit.specific_complaint = Specific complaint(s) +contact_summary.demographic_info.educ_level = Highest level of school +contact_summary.demographic_info.marital_status = Marital status +contact_summary.demographic_info.occupation = Occupation +contact_summary.current_pregnancy.ga = GA +contact_summary.current_pregnancy.edd = EDD +contact_summary.current_pregnancy.ultrasound_date = Ultrasound date +contact_summary.current_pregnancy.no_of_fetuses = No. of fetuses. +contact_summary.current_pregnancy.fetal_presentation = Fetal presentation +contact_summary.current_pregnancy.amniotic_fluid = Amniotic fluid +contact_summary.current_pregnancy.placenta_location = Placenta location +contact_summary.obstetric_history.gravida = Gravida +contact_summary.obstetric_history.parity = Parity +contact_summary.obstetric_history.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended +contact_summary.obstetric_history.no_of_live_births = No. of live births. +contact_summary.obstetric_history.no_of_stillbirths = No. of stillbirths. +contact_summary.obstetric_history.no_of_c_sections = No. of C-sections. +contact_summary.obstetric_history.past_pregnancy_problems = Past pregnancy problems +contact_summary.obstetric_history.past_substances_used = Past substances used +contact_summary.blood_type_test.blood_type = Blood type +contact_summary.medical_history.allergies = Allergies +contact_summary.medical_history.surgeries = Surgeries +contact_summary.medical_history.chronic_health_conditions = Chronic health conditions +contact_summary.medical_history.hiv_diagnosis_date = HIV diagnosis date +contact_summary.medical_history.hiv_diagnosis_date_unknown = HIV diagnosis date unknown \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties b/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties index f0046a368..72fb17318 100644 --- a/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties +++ b/opensrp-anc/src/main/resources/profile_contact_tab_contacts.properties @@ -1,2 +1,2 @@ -profile_contact_tab_contacts.physiological_symptoms=Physiological symptoms -profile_contact_tab_contacts.average_weight_gain_per_week_since_last_contact=Average weight gain per week since last contact \ No newline at end of file +profile_contact_tab_contacts.physiological_symptoms = Physiological symptoms +profile_contact_tab_contacts.average_weight_gain_per_week_since_last_contact = Average weight gain per week since last contact \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_contact_test.properties b/opensrp-anc/src/main/resources/profile_contact_test.properties index a453a8a70..c9a5fdec2 100644 --- a/opensrp-anc/src/main/resources/profile_contact_test.properties +++ b/opensrp-anc/src/main/resources/profile_contact_test.properties @@ -1,75 +1,75 @@ -profile_contact_test.ultrasound_tests.ultrasound_test=Ultrasound test. -profile_contact_test.ultrasound_tests.ultrasound_not_done_reason=Ultrasound not done reason -profile_contact_test.ultrasound_tests.ultrasound_not_done_other_reason=Ultrasound not done other reason -profile_contact_test.ultrasound_tests.ultrasound_done_date=Ultrasound done date -profile_contact_test.blood_type_test.blood_type_test_status=Blood type test status -profile_contact_test.blood_type_test.blood_type_test_done_date=Blood type test done date -profile_contact_test.blood_type_test.blood_type=Blood Type -profile_contact_test.blood_type_test.rh_factor=RH factor -profile_contact_test.hiv_tests.hiv_test_status=Hiv test status -profile_contact_test.hiv_tests.hiv_test_done_date=Hiv test done date -profile_contact_test.hiv_tests.hiv_test_not_done_reason=Hiv test not done reason -profile_contact_test.hiv_tests.hiv_test_not_done_other_reason=Hiv test not done other reason -profile_contact_test.hiv_tests.hiv_test_result=Hiv test result -profile_contact_test.hepatitis_b_test.hepatitis_b_test_status=Hepatitis B test status -profile_contact_test.hepatitis_b_test.hepatitis_b_test_done_date=Hepatitis B test done date -profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_reason=Hepatitis B test not done reason -profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_other_reason=Hepatitis B test not done other reason -profile_contact_test.hepatitis_b_test.hepatitis_b_test_type=Hepatitis B test not done other reason -profile_contact_test.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result=HBsAg laboratory-based immunoassay result -profile_contact_test.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result=HBsAg rapid diagnostic test (RDT) result -profile_contact_test.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result=Dried Blood Spot (DBS) HBsAg test result -profile_contact_test.hepatitis_c_test.hepatitis_c_test_status=Hepatitis C test status -profile_contact_test.hepatitis_c_test.hepatitis_c_test_done_date=Hepatitis C test done date -profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_reason=Hepatitis C test not done reason -profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_other_reason=Hepatitis C test not done other reason -profile_contact_test.hepatitis_c_test.hepatitis_c_test_type=Hepatitis C test type -profile_contact_test.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result=Anti-HCV laboratory-based immunoassay result -profile_contact_test.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result=Anti-HCV rapid diagnostic test (RDT) result -profile_contact_test.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result=Dried Blood Spot (DBS) Anti-HCV test result -profile_contact_test.syphilis_test.syphilis_test_status=Syphilis test status -profile_contact_test.syphilis_test.syphilis_test_done_date=Syphilis test done date -profile_contact_test.syphilis_test.syphilis_test_not_done_reason=Syphilis test not done reason -profile_contact_test.syphilis_test.syphilis_test_not_done_other_reason=Syphilis test not done other reason -profile_contact_test.syphilis_test.syphilis_test_type=Syphilis test type -profile_contact_test.syphilis_test.rapid_plasma_reagin_rpr_test_result=Rapid plasma reagin (RPR) test result -profile_contact_test.syphilis_test.Off_site_lab_test_for_syphilis_result=Off-site lab test for syphilis result -profile_contact_test.urine_tests.urine_test_status=Urine test status -profile_contact_test.urine_tests.urine_test_done_date=Urine test done date -profile_contact_test.urine_tests.urine_test_type=Urine test type -profile_contact_test.urine_tests.urine_culture=Urine culture -profile_contact_test.urine_tests.urine_gram_stain=Urine gram stain -profile_contact_test.urine_tests.urine_nitrites=Urine nitrites -profile_contact_test.urine_tests.urine_leukocytes=Urine leukocytes -profile_contact_test.urine_tests.urine_glucose=Urine glucose -profile_contact_test.blood_glucose_tests.blood_glucose_test_status=Blood glucose test status -profile_contact_test.blood_glucose_tests.blood_glucose_test_date=Blood glucose test date -profile_contact_test.blood_glucose_tests.blood_glucose_test_type=Blood glucose test type -profile_contact_test.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl=Fasting plasma glucose results (mg/dl) -profile_contact_test.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl=75g OGTT - fasting glucose results (mg/dl) -profile_contact_test.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl=75g OGTT - 1 hr results (mg/dl) -profile_contact_test.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl=75g OGTT - 2 hrs results (mg/dl) -profile_contact_test.blood_glucose_tests.random_plasma_glucose_results_mg_dl=Random plasma glucose results (mg/dl) -profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_status=Blood haemoglobin test status -profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_done_date=Blood haemoglobin test done date -profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_reason=Blood haemoglobin test not done reason -profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason=Blood haemoglobin test not done other reason -profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_type=Blood haemoglobin test type -profile_contact_test.blood_haemoglobin_test.complete_blood_count_test_result_g_dl=Complete blood count test result (g/dl) -profile_contact_test.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl=RHb test result - haemoglobinometer (g/dl) -profile_contact_test.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl=Hb test result - haemoglobin colour scale (g/dl) -profile_contact_test.blood_haemoglobin_test.hematocrit_ht=Hematocrit (Ht) -profile_contact_test.blood_haemoglobin_test.white_blood_cell_wbc_count=White blood cell (WBC) count -profile_contact_test.blood_haemoglobin_test.platelet_count=Platelet count -profile_contact_test.tb_screening_test.tb_screening_test_status=TB screening test status -profile_contact_test.tb_screening_test.tb_screening_test_done_date=TB screening test done date -profile_contact_test.tb_screening_test.tb_screening_test_not_done_reason=TB screening test not done reason -profile_contact_test.tb_screening_test.tb_screening_test_not_done_other_reason=TB screening test not done other reason -profile_contact_test.tb_screening_test.tb_screening_result=TB screening result -profile_contact_test.partner_hiv_test.partner_hiv_test_status=Partner HIV test status -profile_contact_test.partner_hiv_test.partner_hiv_test_done_date=Partner HIV test done date -profile_contact_test.partner_hiv_test.partner_hiv_test_result=Partner HIV test result -profile_contact_test.other_tests.other_test_test_status=Other test test status -profile_contact_test.other_tests.other_test_done_date=Other test done date -profile_contact_test.other_tests.other_test_name=Other test name -profile_contact_test.other_tests.other_test_result=Other test result \ No newline at end of file +profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test. +profile_contact_test.ultrasound_tests.ultrasound_not_done_reason = Ultrasound not done reason +profile_contact_test.ultrasound_tests.ultrasound_not_done_other_reason = Ultrasound not done other reason +profile_contact_test.ultrasound_tests.ultrasound_done_date = Ultrasound done date +profile_contact_test.blood_type_test.blood_type_test_status = Blood type test status +profile_contact_test.blood_type_test.blood_type_test_done_date = Blood type test done date +profile_contact_test.blood_type_test.blood_type = Blood Type +profile_contact_test.blood_type_test.rh_factor = RH factor +profile_contact_test.hiv_tests.hiv_test_status = Hiv test status +profile_contact_test.hiv_tests.hiv_test_done_date = Hiv test done date +profile_contact_test.hiv_tests.hiv_test_not_done_reason = Hiv test not done reason +profile_contact_test.hiv_tests.hiv_test_not_done_other_reason = Hiv test not done other reason +profile_contact_test.hiv_tests.hiv_test_result = Hiv test result +profile_contact_test.hepatitis_b_test.hepatitis_b_test_status = Hepatitis B test status +profile_contact_test.hepatitis_b_test.hepatitis_b_test_done_date = Hepatitis B test done date +profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_reason = Hepatitis B test not done reason +profile_contact_test.hepatitis_b_test.hepatitis_b_test_not_done_other_reason = Hepatitis B test not done other reason +profile_contact_test.hepatitis_b_test.hepatitis_b_test_type = Hepatitis B test not done other reason +profile_contact_test.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result = HBsAg laboratory-based immunoassay result +profile_contact_test.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result = HBsAg rapid diagnostic test (RDT) result +profile_contact_test.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result = Dried Blood Spot (DBS) HBsAg test result +profile_contact_test.hepatitis_c_test.hepatitis_c_test_status = Hepatitis C test status +profile_contact_test.hepatitis_c_test.hepatitis_c_test_done_date = Hepatitis C test done date +profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_reason = Hepatitis C test not done reason +profile_contact_test.hepatitis_c_test.hepatitis_c_test_not_done_other_reason = Hepatitis C test not done other reason +profile_contact_test.hepatitis_c_test.hepatitis_c_test_type = Hepatitis C test type +profile_contact_test.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result = Anti-HCV laboratory-based immunoassay result +profile_contact_test.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result = Anti-HCV rapid diagnostic test (RDT) result +profile_contact_test.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result = Dried Blood Spot (DBS) Anti-HCV test result +profile_contact_test.syphilis_test.syphilis_test_status = Syphilis test status +profile_contact_test.syphilis_test.syphilis_test_done_date = Syphilis test done date +profile_contact_test.syphilis_test.syphilis_test_not_done_reason = Syphilis test not done reason +profile_contact_test.syphilis_test.syphilis_test_not_done_other_reason = Syphilis test not done other reason +profile_contact_test.syphilis_test.syphilis_test_type = Syphilis test type +profile_contact_test.syphilis_test.rapid_plasma_reagin_rpr_test_result = Rapid plasma reagin (RPR) test result +profile_contact_test.syphilis_test.Off_site_lab_test_for_syphilis_result = Off-site lab test for syphilis result +profile_contact_test.urine_tests.urine_test_status = Urine test status +profile_contact_test.urine_tests.urine_test_done_date = Urine test done date +profile_contact_test.urine_tests.urine_test_type = Urine test type +profile_contact_test.urine_tests.urine_culture = Urine culture +profile_contact_test.urine_tests.urine_gram_stain = Urine gram stain +profile_contact_test.urine_tests.urine_nitrites = Urine nitrites +profile_contact_test.urine_tests.urine_leukocytes = Urine leukocytes +profile_contact_test.urine_tests.urine_glucose = Urine glucose +profile_contact_test.blood_glucose_tests.blood_glucose_test_status = Blood glucose test status +profile_contact_test.blood_glucose_tests.blood_glucose_test_date = Blood glucose test date +profile_contact_test.blood_glucose_tests.blood_glucose_test_type = Blood glucose test type +profile_contact_test.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl = Fasting plasma glucose results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl = 75g OGTT - fasting glucose results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl = 75g OGTT - 1 hr results (mg/dl) +profile_contact_test.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl = 75g OGTT - 2 hrs results (mg/dl) +profile_contact_test.blood_glucose_tests.random_plasma_glucose_results_mg_dl = Random plasma glucose results (mg/dl) +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_status = Blood haemoglobin test status +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_done_date = Blood haemoglobin test done date +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_reason = Blood haemoglobin test not done reason +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason = Blood haemoglobin test not done other reason +profile_contact_test.blood_haemoglobin_test.blood_haemoglobin_test_type = Blood haemoglobin test type +profile_contact_test.blood_haemoglobin_test.complete_blood_count_test_result_g_dl = Complete blood count test result (g/dl) +profile_contact_test.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl = RHb test result - haemoglobinometer (g/dl) +profile_contact_test.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl = Hb test result - haemoglobin colour scale (g/dl) +profile_contact_test.blood_haemoglobin_test.hematocrit_ht = Hematocrit (Ht) +profile_contact_test.blood_haemoglobin_test.white_blood_cell_wbc_count = White blood cell (WBC) count +profile_contact_test.blood_haemoglobin_test.platelet_count = Platelet count +profile_contact_test.tb_screening_test.tb_screening_test_status = TB screening test status +profile_contact_test.tb_screening_test.tb_screening_test_done_date = TB screening test done date +profile_contact_test.tb_screening_test.tb_screening_test_not_done_reason = TB screening test not done reason +profile_contact_test.tb_screening_test.tb_screening_test_not_done_other_reason = TB screening test not done other reason +profile_contact_test.tb_screening_test.tb_screening_result = TB screening result +profile_contact_test.partner_hiv_test.partner_hiv_test_status = Partner HIV test status +profile_contact_test.partner_hiv_test.partner_hiv_test_done_date = Partner HIV test done date +profile_contact_test.partner_hiv_test.partner_hiv_test_result = Partner HIV test result +profile_contact_test.other_tests.other_test_test_status = Other test test status +profile_contact_test.other_tests.other_test_done_date = Other test done date +profile_contact_test.other_tests.other_test_name = Other test name +profile_contact_test.other_tests.other_test_result = Other test result \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 0f87f45ed..464994fa8 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -1,67 +1,67 @@ -profile_overview.overview_of_pregnancy.demographic_info.occupation=Occupation -profile_overview.overview_of_pregnancy.current_pregnancy.ga=GA -profile_overview.overview_of_pregnancy.current_pregnancy.edd=EDD -profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date=Ultrasound date -profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses=No. of fetuses -profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation=Fetal presentation -profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid=Amniotic fluid -profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location=Placenta location -profile_overview.overview_of_pregnancy.obstetric_history.gravida=Gravida -profile_overview.overview_of_pregnancy.obstetric_history.parity=Parity -profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended -profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths=No. of stillbirths -profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections=No. of C-sections -profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems=Past pregnancy problems -profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used=Past alcohol used -profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used=Past substances used -profile_overview.overview_of_pregnancy.medical_history.blood_type=Blood type -profile_overview.overview_of_pregnancy.medical_history.allergies=Allergies -profile_overview.overview_of_pregnancy.medical_history.surgeries=Surgeries -profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions=Chronic health conditions -profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date=Past HIV diagnosis date -profile_overview.overview_of_pregnancy.weight.bmi=BMI -profile_overview.overview_of_pregnancy.weight.weight_category=Weight category -profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy=Expected weight gain during the pregnancy -profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far=Total weight gain in pregnancy so far -profile_overview.overview_of_pregnancy.medications.current_medications=Current medications -profile_overview.overview_of_pregnancy.medications.medications_prescribed=Medications prescribed -profile_overview.overview_of_pregnancy.medications.calcium_compliance=Calcium compliance -profile_overview.overview_of_pregnancy.medications.calcium_side_effects=Calcium side effects -profile_overview.overview_of_pregnancy.medications.ifa_compliance=IFA compliance -profile_overview.overview_of_pregnancy.medications.ifa_side_effects=IFA side effects -profile_overview.overview_of_pregnancy.medications.aspirin_compliance=Aspirin compliance -profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance=Vitamin A compliance -profile_overview.overview_of_pregnancy.medications.penicillin_compliance=Penicillin compliance -profile_overview.hospital_referral_reasons.woman_referred_to_hospital=Woman referred to hospital -profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital=Woman not referred to hospital -profile_overview.hospital_referral_reasons.danger_signs=Danger sign(s) -profile_overview.hospital_referral_reasons.severe_hypertension=Severe hypertension -profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia -profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis -profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis -profile_overview.hospital_referral_reasons.fever=Fever -profile_overview.hospital_referral_reasons.abnormal_pulse_rate=Abnormal pulse rate -profile_overview.hospital_referral_reasons.respiratory_distress=Respiratory distress -profile_overview.hospital_referral_reasons.low_oximetry=Low oximetry -profile_overview.hospital_referral_reasons.abnormal_cardiac_exam=Abnormal cardiac exam -profile_overview.hospital_referral_reasons.abnormal_breast_exam=Abnormal breast exam -profile_overview.hospital_referral_reasons.abnormal_abdominal_exam=Abnormal abdominal exam -profile_overview.hospital_referral_reasons.abnormal_pelvic_exam=Abnormal pelvic exam -profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed=No fetal heartbeat observed -profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate=Abnormal fetal heart rate -profile_overview.physiological_symptoms.physiological_symptoms=Physiological symptoms -profile_overview.birth_plan_counseling.planned_birth_place=Planned birth place -profile_overview.birth_plan_counseling.fp_method_accepted=FP method accepted -profile_overview.malaria_prophylaxis.iptp_sp_dose_1=IPTp-SP dose 1 -profile_overview.malaria_prophylaxis.iptp_sp_dose_2=IPTp-SP dose 2 -profile_overview.malaria_prophylaxis.iptp_sp_dose_3=IPTp-SP dose 3 -profile_overview.immunisation_status.tt_immunisation_status=TT immunisation status -profile_overview.immunisation_status.tt_dose_1=TT dose #1 -profile_overview.immunisation_status.tt_dose_2=TT dose #2 -profile_overview.immunisation_status.tt_dose_3=TT dose #3 -profile_overview.immunisation_status.hep_b_immunisation_status=Hep B immunisation status -profile_overview.immunisation_status.hep_b_dose_1=Hep B dose #1 -profile_overview.immunisation_status.hep_b_dose_2=Hep B dose #2 -profile_overview.immunisation_status.hep_b_dose_3=Hep B dose #3 -profile_overview.immunisation_status.flu_immunisation_status=Flu immunisation status -profile_overview.immunisation_status.flu_dose=Flu dose \ No newline at end of file +profile_overview.overview_of_pregnancy.demographic_info.occupation = Occupation +profile_overview.overview_of_pregnancy.current_pregnancy.ga = GA +profile_overview.overview_of_pregnancy.current_pregnancy.edd = EDD +profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date = Ultrasound date +profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses = No. of fetuses +profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation = Fetal presentation +profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid = Amniotic fluid +profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location = Placenta location +profile_overview.overview_of_pregnancy.obstetric_history.gravida = Gravida +profile_overview.overview_of_pregnancy.obstetric_history.parity = Parity +profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended +profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths = No. of stillbirths +profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections = No. of C-sections +profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems = Past pregnancy problems +profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used = Past alcohol used +profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used = Past substances used +profile_overview.overview_of_pregnancy.medical_history.blood_type = Blood type +profile_overview.overview_of_pregnancy.medical_history.allergies = Allergies +profile_overview.overview_of_pregnancy.medical_history.surgeries = Surgeries +profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions = Chronic health conditions +profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date = Past HIV diagnosis date +profile_overview.overview_of_pregnancy.weight.bmi = BMI +profile_overview.overview_of_pregnancy.weight.weight_category = Weight category +profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy = Expected weight gain during the pregnancy +profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far = Total weight gain in pregnancy so far +profile_overview.overview_of_pregnancy.medications.current_medications = Current medications +profile_overview.overview_of_pregnancy.medications.medications_prescribed = Medications prescribed +profile_overview.overview_of_pregnancy.medications.calcium_compliance = Calcium compliance +profile_overview.overview_of_pregnancy.medications.calcium_side_effects = Calcium side effects +profile_overview.overview_of_pregnancy.medications.ifa_compliance = IFA compliance +profile_overview.overview_of_pregnancy.medications.ifa_side_effects = IFA side effects +profile_overview.overview_of_pregnancy.medications.aspirin_compliance = Aspirin compliance +profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance = Vitamin A compliance +profile_overview.overview_of_pregnancy.medications.penicillin_compliance = Penicillin compliance +profile_overview.hospital_referral_reasons.woman_referred_to_hospital = Woman referred to hospital +profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital = Woman not referred to hospital +profile_overview.hospital_referral_reasons.danger_signs = Danger sign(s) +profile_overview.hospital_referral_reasons.severe_hypertension = Severe hypertension +profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia +profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.fever = Fever +profile_overview.hospital_referral_reasons.abnormal_pulse_rate = Abnormal pulse rate +profile_overview.hospital_referral_reasons.respiratory_distress = Respiratory distress +profile_overview.hospital_referral_reasons.low_oximetry = Low oximetry +profile_overview.hospital_referral_reasons.abnormal_cardiac_exam = Abnormal cardiac exam +profile_overview.hospital_referral_reasons.abnormal_breast_exam = Abnormal breast exam +profile_overview.hospital_referral_reasons.abnormal_abdominal_exam = Abnormal abdominal exam +profile_overview.hospital_referral_reasons.abnormal_pelvic_exam = Abnormal pelvic exam +profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed = No fetal heartbeat observed +profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate = Abnormal fetal heart rate +profile_overview.physiological_symptoms.physiological_symptoms = Physiological symptoms +profile_overview.birth_plan_counseling.planned_birth_place = Planned birth place +profile_overview.birth_plan_counseling.fp_method_accepted = FP method accepted +profile_overview.malaria_prophylaxis.iptp_sp_dose_1 = IPTp-SP dose 1 +profile_overview.malaria_prophylaxis.iptp_sp_dose_2 = IPTp-SP dose 2 +profile_overview.malaria_prophylaxis.iptp_sp_dose_3 = IPTp-SP dose 3 +profile_overview.immunisation_status.tt_immunisation_status = TT immunisation status +profile_overview.immunisation_status.tt_dose_1 = TT dose #1 +profile_overview.immunisation_status.tt_dose_2 = TT dose #2 +profile_overview.immunisation_status.tt_dose_3 = TT dose #3 +profile_overview.immunisation_status.hep_b_immunisation_status = Hep B immunisation status +profile_overview.immunisation_status.hep_b_dose_1 = Hep B dose #1 +profile_overview.immunisation_status.hep_b_dose_2 = Hep B dose #2 +profile_overview.immunisation_status.hep_b_dose_3 = Hep B dose #3 +profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation status +profile_overview.immunisation_status.flu_dose = Flu dose \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/robolectric.properties b/opensrp-anc/src/main/resources/robolectric.properties index 89a6c8b4c..9bfeff8a5 100644 --- a/opensrp-anc/src/main/resources/robolectric.properties +++ b/opensrp-anc/src/main/resources/robolectric.properties @@ -1 +1 @@ -sdk=28 \ No newline at end of file +sdk = 28 \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties index 6d3b753da..971a71e9b 100644 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -8,7 +8,7 @@ tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = HBsAg laboratory-based im tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positive tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = HBsAg rapid diagnostic test (RDT) tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negative -tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = (DBS) HBsAg test is required +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = (DBS) HBsAg test is required tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Hep B test date tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Dried Blood Spot (DBS) HBsAg test tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Hep B test type diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties index 35499c86a..3c689f60b 100644 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties @@ -8,7 +8,7 @@ tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = Immunodosage en laboratoi tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positif tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = Test de diagnostic rapide HBsAg (TDR) tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Négatif -tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Tache de sang séché (TSS) est requise +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Tache de sang séché (TSS) est requise tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Date du test de l'hépatite B tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Test de taches de sang séché (TSS) pour HBsAg tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Type de test de l'hépatite B From 7deff81d1f334e20a0126c8aafe733539031b109 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Thu, 14 May 2020 10:17:10 +0300 Subject: [PATCH 028/302] update to local snapshot --- gradle.properties | 2 ++ opensrp-anc/build.gradle | 2 +- .../anc/library/activity/ContactJsonFormActivity.java | 10 ---------- .../ContactWizardJsonFormFragmentPresenter.java | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/gradle.properties b/gradle.properties index 788931ce5..62983d75b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,6 +8,8 @@ # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true +org.gradle.jvmargs=-Xmx1536m + android.debug.obsoleteApi=true ## PUBLISHING VARS diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 5480bcf6c..d66c3c5cc 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.31.0.8-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.32-1046.5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index f7f92fe77..4d4be62df 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -240,16 +240,6 @@ protected void callSuperWriteValue(String stepName, String key, String value, St } - - @Override - public void performActionOnReceived(String essentials) { - try { - invokeRefreshLogic(null, false, null, null, essentials.split(":")[0]); - } catch (Exception e) { - Timber.e(e); - } - } - public void showProgressDialog(String titleIdentifier) { if (progressDialog == null) { progressDialog = new ProgressDialog(this); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java index c52e68066..15a6f663e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java @@ -11,8 +11,8 @@ import com.vijay.jsonwizard.widgets.NativeRadioButtonFactory; import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; /** * Created by keyman on 04/08/18. From 6a3a1adc90e000160b2d8f16609fa1d2e8eaef05 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 15 May 2020 19:46:31 +0300 Subject: [PATCH 029/302] :zap: Updated the contact summary mls --- opensrp-anc/build.gradle | 4 +- .../main/assets/config/contact-summary.yml | 502 +++++++++--------- .../anc/library/fragment/MeFragment.java | 2 +- .../library/model/RegisterFragmentModel.java | 4 +- .../repository/RegisterQueryProvider.java | 2 +- opensrp-anc/src/main/res/values/strings.xml | 1 + .../main/resources/contact_summary.properties | 286 +++++++++- reference-app/build.gradle | 4 +- .../anc/activity/LoginActivity.java | 1 - 9 files changed, 544 insertions(+), 262 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 44d0fb7bc..7bca35ee5 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.8.0-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -151,7 +151,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.10.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index 4b08888c2..d5309c430 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -143,855 +143,855 @@ fields: group: immunisation_status fields: -- template: "TT immunisation status: {tt_immun_status}" +- template: "{{contact_summary.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" relevance: "tt_immun_status_value != ''" -- template: "TT dose #1: {tt1_date_done}" +- template: "{{contact_summary.immunisation_status.tt_dose_1}}: {tt1_date_done}" relevance: "tt1_date == 'done_today' || tt1_date == 'done_earlier'" -- template: "TT dose #2: {tt2_date_done}" +- template: "{{contact_summary.immunisation_status.tt_dose_2}}: {tt2_date_done}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" -- template: "TT dose #3: {tt3_date_done}" +- template: "{{contact_summary.immunisation_status.tt_dose_3}}: {tt3_date_done}" relevance: "tt3_date == 'done_today' || tt3_date == 'done_earlier'" -- template: "TT dose not given: {tt_dose_notdone_value}" +- template: "{{contact_summary.immunisation_status.tt_dose_not_given}}: {tt_dose_notdone_value}" relevance: "tt1_date == 'not_done' || tt2_date == 'not_done' || tt3_date == 'not_done'" -- template: "Hep B immunisation status: {hepb_immun_status}" +- template: "{{contact_summary.immunisation_status.hep_b_immunisation_status}}: {hepb_immun_status}" relevance: "hepb_immun_status_value != ''" -- template: "Hep B dose #1: {hepb1_date_done}" +- template: "{{contact_summary.immunisation_status.hep_b_dose_1}}: {hepb1_date_done}" relevance: "hepb1_date == 'done_today' || hepb1_date == 'done_earlier'" -- template: "Hep B dose #2: {hepb2_date_done}" +- template: "{{contact_summary.immunisation_status.hep_b_dose_2}}: {hepb2_date_done}" relevance: "hepb2_date == 'done_today' || hepb2_date == 'done_earlier'" -- template: "Hep B dose #3: {hepb3_date_done}" +- template: "{{contact_summary.immunisation_status.hep_b_dose_3}}: {hepb3_date_done}" relevance: "hepb3_date == 'done_today' || hepb3_date == 'done_earlier'" -- template: "Hep B dose not given: {hepb_dose_notdone_value}" +- template: "{{contact_summary.immunisation_status.hep_b_dose_not_given}}: {hepb_dose_notdone_value}" relevance: "hepb1_date == 'not_done' || hepb2_date == 'not_done' || hepb3_date == 'not_done'" -- template: "Flu immunisation status: {flu_immun_status}" +- template: "{{contact_summary.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" relevance: "flu_immun_status_value != ''" -- template: "Flu dose: {flu_date_done}" +- template: "{{contact_summary.immunisation_status.flu_dose}}: {flu_date_done}" relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" -- template: "Flu dose not given: {flu_dose_notdone_value}" +- template: "{{contact_summary.immunisation_status.flu_dose_not_given}}: {flu_dose_notdone_value}" relevance: "flu_date == 'not_done'" --- group: medications fields: -- template: "Current medications: {medications_value}" +- template: "{{contact_summary.medications.current_medications}}: {medications_value}" relevance: "!medications_value.isEmpty()" -- template: "Medications prescribed: {vita}, {alben_meben}, {mag_calc}, {nausea_pharma}, {antacid}, {penicillin}, {antibiotic}, {prep}, {sp}, {ifa}, {ifa_medication}, {aspirin}, {calcium}" +- template: "{{contact_summary.medications.current_medications}}: {vita}, {alben_meben}, {mag_calc}, {nausea_pharma}, {antacid}, {penicillin}, {antibiotic}, {prep}, {sp}, {ifa}, {ifa_medication}, {aspirin}, {calcium}" relevance: "vita != '' || mag_calc != '' || nausea_pharma != '' || vita != '' || alben_meben != '' || antacid != '' || penicillin != '' || antibiotic != '' || prep != '' || sp != '' || ifa != '' || ifa_medication != '' || aspirin != '' || calcium != ''" isMultiWidget: true -- template: "Calcium compliance: {calcium_comply}" +- template: "{{contact_summary.medications.calcium_compliance}}: {calcium_comply}" relevance: "calcium_comply != ''" -- template: "Calcium side effects: {calcium_effects}" +- template: "{{contact_summary.medications.calcium_side_effects}}: {calcium_effects}" relevance: "calcium_effects != ''" -- template: "IFA compliance: {ifa_comply}" +- template: "{{contact_summary.medications.ifa_compliance}}: {ifa_comply}" relevance: "ifa_comply != ''" -- template: "IFA side effects: {ifa_effects}" +- template: "{{contact_summary.medications.ifa_side_effects}}: {ifa_effects}" relevance: "ifa_effects != ''" -- template: "Aspirin compliance: {aspirin_comply}" +- template: "{{contact_summary.medications.aspirin_compliance}}: {aspirin_comply}" relevance: "aspirin_comply != ''" -- template: "Vitamin A compliance: {vita_comply}" +- template: "{{contact_summary.medications.vitamin_a_compliance}}: {vita_comply}" relevance: "vita_comply != ''" -- template: "Penicillin compliance: {penicillin_comply}" +- template: "{{contact_summary.medications.penicillin_compliance}}: {penicillin_comply}" relevance: "penicillin_comply != ''" --- group: woman's_behaviour fields: -- template: "Persisting behaviours: {behaviour_persist_value}" +- template: "{{contact_summary.woman_behaviour.persisting_behaviours}}: {behaviour_persist_value}" relevance: "behaviour_persist != ''" -- template: "Daily caffeine intake: {caffeine_intake_value}" +- template: "{{contact_summary.woman_behaviour.caffeine_intake}}: {caffeine_intake_value}" relevance: "caffeine_intake != ''" -- template: "Caffeine reduction counseling: {caffeine_counsel_value}" +- template: "{{contact_summary.woman_behaviour.caffeine_reduction_counseling}}: {caffeine_counsel_value}" relevance: "caffeine_counsel == 'done'" -- template: "Caffeine reduction counseling not done: {caffeine_counsel_notdone_value}" +- template: "{{contact_summary.woman_behaviour.caffeine_reduction_not_counseling}}: {caffeine_counsel_notdone_value}" relevance: "caffeine_counsel == 'not_done'" -- template: "Tobacco user: {tobacco_user_value}" +- template: "{{contact_summary.woman_behaviour.tobacco_user}}: {tobacco_user_value}" relevance: "tobacco_user != ''" -- template: "Tobacco cessation counseling done" +- template: "{{contact_summary.woman_behaviour.tobacco_cessation_counseling_done}}" relevance: "tobacco_counsel == 'done'" -- template: "Tobacco cessation counseling not done: {tobacco_counsel_notdone_value}" +- template: "{{contact_summary.woman_behaviour.tobacco_cessation_counseling_done}}: {tobacco_counsel_notdone_value}" relevance: "tobacco_counsel == 'not_done'" -- template: "Anyone in the household smokes tobacco products: {shs_exposure_value}" +- template: "{{contact_summary.woman_behaviour.shs_exposure}}: {shs_exposure_value}" relevance: "shs_exposure != ''" -- template: "Second-hand smoke counseling done" +- template: "{{contact_summary.woman_behaviour.shs_counseling_done}}" relevance: "shs_counsel == 'done'" -- template: "Second-hand smoke counseling not done: {shs_counsel_notdone_value}" +- template: "{{contact_summary.woman_behaviour.shs_counseling_not_done}}: {shs_counsel_notdone_value}" relevance: "shs_counsel == 'not_done'" -- template: "Uses condoms during sex: {condom_use_value}" +- template: "{{contact_summary.woman_behaviour.condom_use}}: {condom_use_value}" relevance: "condom_use != ''" -- template: "Condom counseling done" +- template: "{{contact_summary.woman_behaviour.condom_counseling_done}}" relevance: "condom_counsel == 'done'" -- template: "Condom counseling not done: {condom_counsel_notdone_value}" +- template: "{{contact_summary.woman_behaviour.condom_counseling_not_done}}: {condom_counsel_notdone_value}" relevance: "condom_counsel == 'not_done'" -- template: "Clinical enquiry for alcohol and other substance use done: {alcohol_substance_enquiry_value}" +- template: "{{contact_summary.woman_behaviour.alcohol_substance_enquiry }}: {alcohol_substance_enquiry_value}" relevance: "alcohol_substance_enquiry != ''" -- template: "Alcohol / substances used: {alcohol_substance_use_value}, {other_substance_use}" +- template: "{{contact_summary.woman_behaviour.alcohol_substances_used}}: {alcohol_substance_use_value}, {other_substance_use}" relevance: "alcohol_substance_use != ''" -- template: "Alcohol / substance use counseling done" +- template: "{{contact_summary.woman_behaviour.alcohol_substances_use_counseling_done}}" relevance: "alcohol_substance_counsel == 'done'" -- template: "Alcohol / substance use counseling not done: {alcohol_substance_counsel_notdone_value}" +- template: "{{contact_summary.woman_behaviour.alcohol_substances_use_counseling_not_done}}: {alcohol_substance_counsel_notdone_value}" relevance: "alcohol_substance_counsel == 'not_done'" --- group: physiological_symptoms fields: -- template: "Persisting physiological symptoms: {phys_symptoms_persist_value}" +- template: "{{contact_summary.physiological_symptoms.persisting_physiological_symptoms}}: {phys_symptoms_persist_value}" relevance: "phys_symptoms_persist != ''" -- template: "Physiological symptoms: {phys_symptoms_value}" +- template: "{{contact_summary.physiological_symptoms.physiological_symptoms}}: {phys_symptoms_value}" relevance: "phys_symptoms != ''" -- template: "Low back and pelvic pain other symptoms: {other_sym_lbpp_value}" +- template: "{{contact_summary.physiological_symptoms.low_back_and_pelvic_pain_other_symptoms}}: {other_sym_lbpp_value}" relevance: "other_sym_lbpp != ''" -- template: "Varicose veins or oedema other symptoms: {other_sym_vvo_value}" +- template: "{{contact_summary.physiological_symptoms.varicose_veins_or_oedema_other_symptoms}}: {other_sym_vvo_value}" relevance: "other_sym_vvo != ''" -- template: "Non-pharma measures to relieve nausea and vomiting counseling done" +- template: "{{contact_summary.physiological_symptoms.non_pharma_nausea_and_vomiting_counseling_done}}" relevance: "nausea_counsel == 'done'" -- template: "Non-pharma measures to relieve nausea and vomiting counseling not done: {nausea_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.non_pharma_nausea_and_vomiting_counseling_not_done}}: {nausea_counsel_notdone_value}" relevance: "nausea_counsel == 'not_done'" -- template: "Pharmacological treatments for nausea and vomiting counseling done" +- template: "{{contact_summary.physiological_symptoms.pharma_nausea_and_vomiting_counseling_done}}" relevance: "nausea_not_relieved_counsel == 'done'" -- template: "Pharmacological treatments for nausea and vomiting counseling not done: {nausea_not_relieved_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.pharma_nausea_and_vomiting_counseling_not_done}}: {nausea_not_relieved_counsel_notdone_value}" relevance: "nausea_not_relieved_counsel == 'not_done'" -- template: "Diet and lifestyle changes to prevent and relieve heartburn counseling done" +- template: "{{contact_summary.physiological_symptoms.diet_heartburn_counseling_done}}" relevance: "heartburn_counsel == 'done'" -- template: "Diet and lifestyle changes to prevent and relieve heartburn counseling not done: {heartburn_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.diet_heartburn_counseling_not_done}}: {heartburn_counsel_notdone_value}" relevance: "heartburn_counsel == 'not_done'" -- template: "Antacid preparations to relieve heartburn counseling done" +- template: "{{contact_summary.physiological_symptoms.antacid_heartburn_counseling_done}}" relevance: "heartburn_not_relieved_counsel == 'done'" -- template: "Antacid preparations to relieve heartburn counseling not done: {heartburn_not_relieved_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.antacid_heartburn_counseling_not_done}}: {heartburn_not_relieved_counsel_notdone_value}" relevance: "heartburn_not_relieved_counsel == 'not_done'" -- template: "Non-pharmacological treatment for the relief of leg cramps counseling done" +- template: "{{contact_summary.physiological_symptoms.no_pharma_legs_cramps_counseling_done}}" relevance: "leg_cramp_counsel == 'done'" -- template: "Non-pharmacological treatment for the relief of leg cramps counseling not done: {leg_cramp_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.no_pharma_legs_cramps_counseling_not_done}}: {leg_cramp_counsel_notdone_value}" relevance: "leg_cramp_counsel == 'not_done'" -- template: "Magnesium and calcium to relieve leg cramps counseling done" +- template: "{{contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_done }}" relevance: "leg_cramp_not_relieved_counsel == 'done'" -- template: "Magnesium and calcium to relieve leg cramps counseling not done: {leg_cramp_not_relieved_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_not_done}}: {leg_cramp_not_relieved_counsel_notdone_value}" relevance: "leg_cramp_not_relieved_counsel == 'not_done'" -- template: "Dietary modifications to relieve constipation counseling done" +- template: "{{contact_summary.physiological_symptoms.dietary_modifications_counseling_done}}" relevance: "constipation_counsel == 'done'" -- template: "Dietary modifications to relieve constipation counseling not done: {constipation_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.dietary_modifications_counseling_not_done}}: {constipation_counsel_notdone_value}" relevance: "constipation_counsel == 'not_done'" -- template: "Wheat bran or other fiber supplements to relieve constipation counseling done" +- template: "{{contact_summary.physiological_symptoms.fiber_relieve_constipation_counseling_done}}" relevance: "constipation_not_relieved_counsel == 'done'" -- template: "Wheat bran or other fiber supplements to relieve constipation counseling not done: {constipation_not_relieved_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.fiber_relieve_constipation_counseling_not_done}}: {constipation_not_relieved_counsel_notdone_value}" relevance: "constipation_not_relieved_counsel == 'not_done'" -- template: "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling done" +- template: "{{contact_summary.physiological_symptoms.regular_low_back_pelvic_pain_counseling_done}}" relevance: "back_pelvic_pain_counsel == 'done'" -- template: "Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling not done: {back_pelvic_pain_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.regular_low_back_pelvic_pain_counseling_not_done}}: {back_pelvic_pain_counsel_notdone_value}" relevance: "back_pelvic_pain_counsel == 'not_done'" -- template: "Non-pharmacological options for varicose veins and oedema counseling done" +- template: "{{contact_summary.physiological_symptoms.pharma_oedema_counseling_done}}" relevance: "varicose_oedema_counsel == 'done'" -- template: "Non-pharmacological options for varicose veins and oedema counseling not done: {varicose_oedema_counsel_notdone_value}" +- template: "{{contact_summary.physiological_symptoms.pharma_oedema_counseling_not_done}}: {varicose_oedema_counsel_notdone_value}" relevance: "varicose_oedema_counsel == 'not_done'" -- template: "Other persisting symptoms: {other_symptoms_persist_value}" +- template: "{{contact_summary.physiological_symptoms.other_persisting_symptoms}}: {other_symptoms_persist_value}" relevance: "other_symptoms_persist != ''" -- template: "Other symptoms: {other_symptoms_value}" +- template: "{{contact_summary.physiological_symptoms.other_symptoms}}: {other_symptoms_value}" relevance: "other_symptoms != ''" -- template: "Fetal movement felt by woman: {mat_percept_fetal_move_value}" +- template: "{{contact_summary.physiological_symptoms.fetal_movement_felt_by_woman}}: {mat_percept_fetal_move_value}" relevance: "mat_percept_fetal_move != ''" --- group: height_and_weight fields: -- template: "Height: {height} cm" +- template: "{{contact_summary.height_and_weight.height}}: {height} cm" relevance: "height != ''" -- template: "Pre-gestational weight: {first_weight} kg" +- template: "{{contact_summary.height_and_weight.pre_gestational_weight}}: {first_weight} kg" relevance: "first_weight != ''" -- template: "Body mass index (BMI) = {bmi}" +- template: "{{contact_summary.height_and_weight.bmi}} = {bmi}" relevance: "bmi != ''" -- template: "Weight category: {weight_cat}" +- template: "{{contact_summary.height_and_weight.weight_category}}: {weight_cat}" relevance: "weight_cat !=''" -- template: "Expected weight gain during pregnancy: {exp_weight_gain}" +- template: "{{contact_summary.height_and_weight.weight_gain_during_pregnancy}}: {exp_weight_gain}" relevance: "exp_weight_gain != ''" -- template: "Current weight: {current_weight} kg" +- template: "{{contact_summary.height_and_weight.current_weight}}: {current_weight} kg" relevance: "current_weight != ''" -- template: "Average weight gain per week since last contact: {weight_gain} kg" +- template: "{{contact_summary.height_and_weight.weight_gain_per_last_contact}}: {weight_gain} kg" relevance: "weight_gain != ''" -- template: "Total weight gain in pregnancy so far: {tot_weight_gain} kg" +- template: "{{contact_summary.height_and_weight.total_weight_pregnancy}}: {tot_weight_gain} kg" relevance: "tot_weight_gain != ''" -- template: "Healthy eating and keeping physically active counseling done" +- template: "{{contact_summary.height_and_weight.health_eating_counseling_done}}" relevance: "eat_exercise_counsel == 'done'" -- template: "Healthy eating and keeping physically active counseling not done: {eat_exercise_counsel_notdone_value}" +- template: "{{contact_summary.height_and_weight.health_eating_counseling_not_done}}: {eat_exercise_counsel_notdone_value}" relevance: "eat_exercise_counsel == 'not_done'" -- template: "Increase daily energy and protein intake counseling done" +- template: "{{contact_summary.height_and_weight.daily_energy_protein_counseling_done}}" relevance: "increase_energy_counsel == 'done'" -- template: "Increase daily energy and protein intake counseling not done: {increase_energy_counsel_notdone_value}" +- template: "{{contact_summary.height_and_weight.daily_energy_protein_counseling_not_done}}: {increase_energy_counsel_notdone_value}" relevance: "increase_energy_counsel == 'not_done'" -- template: "Balanced energy and protein dietary supplementation counseling done" +- template: "{{contact_summary.height_and_weight.balanced_protein_dietary_counseling_done}}" relevance: "balanced_energy_counsel == 'done'" -- template: "Balanced energy and protein dietary supplementation counseling not done: {balanced_energy_counsel_notdone_value}" +- template: "{{contact_summary.height_and_weight.balanced_protein_dietary_counseling_not_done}}: {balanced_energy_counsel_notdone_value}" relevance: "balanced_energy_counsel == 'not_done'" --- group: blood_pressure fields: -- template: "BP: {bp_systolic}/{bp_diastolic} mmHg" +- template: "{{contact_summary.blood_pressure.bp}}: {bp_systolic}/{bp_diastolic} mmHg" relevance: "bp_systolic != '' && bp_diastolic != ''" -- template: "BP (after 10-15 minutes rest): {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" +- template: "{{contact_summary.blood_pressure.bp_10_min_rest}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" relevance: "bp_systolic_repeat != '' && bp_diastolic_repeat != ''" -- template: "Symptoms of severe pre-eclampsia: {symp_sev_preeclampsia_value}" +- template: "{{contact_summary.blood_pressure.systptoms_pre_eclampsi}}: {symp_sev_preeclampsia_value}" relevance: "symp_sev_preeclampsia != ''" -- template: "Urine dipstick result - protein: {urine_protein_value}" +- template: "{{contact_summary.blood_pressure.urine_dipstick_protein}}: {urine_protein_value}" relevance: "urine_protein != ''" -- template: "Hypertension diagnosis" +- template: "{{contact_summary.blood_pressure.hypertension_diagnosis}}" relevance: "hypertension == 1" -- template: "Hypertension counseling done" +- template: "{{contact_summary.blood_pressure.hypertension_counseling_done}}" relevance: "hypertension_counsel == 'done'" -- template: "Hypertension counseling not done" +- template: "{{contact_summary.blood_pressure.hypertension_counseling_not_done}}" relevance: "hypertension_counsel == 'not_done'" -- template: "Severe hypertension diagnosis" +- template: "{{contact_summary.blood_pressure.severe_hypertension_diagnosis}}" relevance: "severe_hypertension == 1" -- template: "Pre-eclampsia diagnosis" +- template: "{{contact_summary.blood_pressure.pre_eclampsia_diagnosis}}" relevance: "preeclampsia == 1" -- template: "Severe pre-eclampsia diagnosis" +- template: "{{contact_summary.blood_pressure.severe_pre_eclampsia_diagnosis}}" relevance: "severe_preeclampsia == 1" --- group: maternal_exam fields: -- template: "Temperature: {body_temp}ºC" +- template: "{{contact_summary.maternal_exam.temperature}}: {body_temp}ºC" relevance: "body_temp != ''" -- template: "Second temperature: {body_temp_repeat}ºC" +- template: "{{contact_summary.maternal_exam.second_temperature}}: {body_temp_repeat}ºC" relevance: "body_temp_repeat != ''" -- template: "Pulse rate: {pulse_rate} bpm" +- template: "{{contact_summary.maternal_exam.pulse_rate}}: {pulse_rate} bpm" relevance: "pulse_rate != ''" -- template: "Second pulse rate: {pulse_rate_repeat} bpm" +- template: "{contact_summary.maternal_exam.second_pulse_rate}: {pulse_rate_repeat} bpm" relevance: "pulse_rate_repeat != ''" -- template: "Pallor present: {pallor_value}" +- template: "{{contact_summary.maternal_exam.pallor_present}}: {pallor_value}" relevance: "pallor != ''" -- template: "Respiratory exam: {respiratory_exam_value}" +- template: "{{contact_summary.maternal_exam.respiratory_exam}}: {respiratory_exam_value}" relevance: "respiratory_exam != ''" -- template: "Abnormal (specify): {respiratory_exam_abnormal_value}" +- template: "{{contact_summary.maternal_exam.abnormal_specify}}: {respiratory_exam_abnormal_value}" relevance: "!respiratory_exam_abnormal.contains('none') && !respiratory_exam_abnormal.isEmpty()" -- template: "Oximetry: {oximetry}%" +- template: "{contact_summary.maternal_exam.oximetry}: {oximetry}%" relevance: "oximetry != ''" -- template: "Cardiac exam: {cardiac_exam_value}" +- template: "{{contact_summary.maternal_exam.cardiac_exam}}: {cardiac_exam_value}" relevance: "cardiac_exam != ''" -- template: "Abnormal (specify): {cardiac_exam_abnormal_value}" +- template: "{{contact_summary.maternal_exam.abnormal_specify}}: {cardiac_exam_abnormal_value}" relevance: "!cardiac_exam_abnormal.isEmpty()" -- template: "Breast exam: {breast_exam_value}" +- template: "{{contact_summary.maternal_exam.breast_exam}}: {breast_exam_value}" relevance: "breast_exam != ''" -- template: "Abnormal (specify): {breast_exam_abnormal_value}" +- template: "{{contact_summary.maternal_exam.abnormal_specify}}: {breast_exam_abnormal_value}" relevance: "!breast_exam_abnormal.isEmpty()" -- template: "Abdominal exam: {abdominal_exam_value}" +- template: "{{contact_summary.maternal_exam.abdominal_exam}}: {abdominal_exam_value}" relevance: "abdominal_exam != ''" -- template: "Abnormal (specify): {abdominal_exam_abnormal_value}" +- template: "{{contact_summary.maternal_exam.abnormal_specify}}: {abdominal_exam_abnormal_value}" relevance: "!abdominal_exam_abnormal.isEmpty()" -- template: "Pelvic exam: {pelvic_exam_value}" +- template: "{{contact_summary.maternal_exam.pelvic_exam}}: {pelvic_exam_value}" relevance: "pelvic_exam != ''" -- template: "Abnormal (specify): {pelvic_exam_abnormal_value}" +- template: "{{contact_summary.maternal_exam.abnormal_specify}}: {pelvic_exam_abnormal_value}" relevance: "!pelvic_exam_abnormal.isEmpty()" -- template: "Cervical exam: {cervical_exam_value}" +- template: "{{contact_summary.maternal_exam.cervical_exam}}: {cervical_exam_value}" relevance: "cervical_exam != ''" -- template: "Cervix dilated: {dilation_cm_value} cm" +- template: "{{contact_summary.maternal_exam.cervix_dilated}}: {dilation_cm_value} cm" relevance: "dilation_cm != ''" -- template: "Oedema present: {oedema_value}" +- template: "{{contact_summary.maternal_exam.oedema_present}}: {oedema_value}" relevance: "oedema != ''" -- template: "Oedema type: {oedema_type_value}" +- template: "{{contact_summary.maternal_exam.oedema_type}}: {oedema_type_value}" relevance: "oedema_type != ''" -- template: "Oedema severity: {oedema_severity_value}" +- template: "{{contact_summary.maternal_exam.oedema_severity}}: {oedema_severity_value}" relevance: "oedema_severity != ''" --- group: fetal_assessment fields: -- template: "Symphysis-fundal height (SFH): {sfh} cm" +- template: "{{contact_summary.maternal_exam.sfh }}: {sfh} cm" relevance: "sfh != ''" -- template: "Fetal movement felt: {fetal_movement}" +- template: "{{contact_summary.maternal_exam.fetal_movement_felt}}: {fetal_movement}" relevance: "fetal_movement != ''" -- template: "Fetal heartbeat present: {fetal_heartbeat}" +- template: "{{contact_summary.maternal_exam.fetal_heartbeat_present}}: {fetal_heartbeat}" relevance: "fetal_heartbeat != ''" -- template: "Fetal heart rate: {fetal_heart_rate} bpm" +- template: "{{contact_summary.maternal_exam.fetal_heart_rate}}: {fetal_heart_rate} bpm" relevance: "fetal_heart_rate != ''" -- template: "Second fetal heart rate: {fetal_heart_rate_repeat} bpm" +- template: "{{contact_summary.maternal_exam.second_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" relevance: "fetal_heart_rate_repeat != ''" --- group: ultrasound_test fields: -- template: "Ultrasound test ordered" +- template: "{{contact_summary.ultrasound_tests.ultrasound_test}}" relevance: "ultrasound == 'ordered'" -- template: "Ultrasound not done: {ultrasound_notdone_value}" +- template: "{{contact_summary.ultrasound_tests.ultrasound_not_done}}: {ultrasound_notdone_value}" relevance: "ultrasound == 'not_done'" --- group: blood_type_test fields: -- template: "Blood type test ordered" +- template: "{{contact_summary.blood_type_test.blood_type_test_ordered}}" relevance: "blood_type_test_status == 'ordered'" -- template: "Blood type test not done" +- template: "{{contact_summary.blood_type_test.blood_type_test_not_done}}" relevance: "blood_type_test_status == 'not_done'" -- template: "Blood type test date: {blood_type_test_date}" +- template: "{{contact_summary.blood_type_test.blood_type_test_date}}: {blood_type_test_date}" relevance: "blood_type_test_date != ''" - template: "{{contact_summary.blood_type_test.blood_type}}: {blood_type_value}" relevance: "blood_type != ''" -- template: "Rh factor: {rh_factor_value}" +- template: "{{contact_summary.blood_type_test.rh_factor}}: {rh_factor_value}" relevance: "rh_factor != ''" -- template: "Rh factor negative counseling done" +- template: "{{contact_summary.blood_type_test.rh_factor_negative_counseling_done}}" relevance: "rh_negative_counsel == 'done'" -- template: "Rh factor negative counseling not done" +- template: "{{contact_summary.blood_type_test.rh_factor_negative_counseling_not_done}}" relevance: "rh_negative_counsel == 'not_done'" --- group: hiv_test fields: -- template: "HIV test ordered" +- template: "{{contact_summary.hiv_tests.hiv_test_ordered}}" relevance: "hiv_test_status == 'ordered'" -- template: "HIV test not done: {hiv_test_notdone_value}" +- template: "{{contact_summary.hiv_tests.hiv_test_not_done}}: {hiv_test_notdone_value}" relevance: "hiv_test_status == 'not_done'" -- template: "HIV test date: {hiv_test_date}" +- template: "{{contact_summary.hiv_tests.hiv_test_date}}: {hiv_test_date}" relevance: "hiv_test_date != ''" -- template: "HIV test result: {hiv_test_result_value}" +- template: "{{contact_summary.hiv_tests.hiv_test_result}}: {hiv_test_result_value}" relevance: "hiv_test_result != ''" -- template: "HIV positive counseling done" +- template: "{{contact_summary.hiv_tests.hiv_positive_counseling_done}}" relevance: "hiv_positive_counsel == 'done'" -- template: "HIV positive counseling not done" +- template: "{{contact_summary.hiv_tests.hiv_positive_counseling_not_done}}" relevance: "hiv_positive_counsel == 'not_done'" --- group: partner_hiv_test fields: -- template: "Partner HIV status: {partner_hiv_status_value}" +- template: "{{contact_summary.partner_hiv_test.partner_hiv_test_status}}: {partner_hiv_status_value}" relevance: "partner_hiv_status != ''" -- template: "Partner HIV test date: {hiv_test_partner_date}" +- template: "contact_summary.partner_hiv_test.partner_hiv_test_date: {hiv_test_partner_date}" relevance: "hiv_test_partner_date != ''" -- template: "Partner HIV test result: {hiv_test_partner_result_value}" +- template: "{{contact_summary.partner_hiv_test.partner_hiv_test_result}}: {hiv_test_partner_result_value}" relevance: "hiv_test_partner_result != ''" -- template: "Partner HIV test ordered" +- template: "{{contact_summary.partner_hiv_test.partner_hiv_test_ordered}}" relevance: "hiv_test_partner_status == 'ordered'" -- template: "Partner HIV test not done" +- template: "{{contact_summary.partner_hiv_test.partner_hiv_test_not_done}}" relevance: "hiv_test_partner_status == 'not_done'" --- group: hepatitis_b_test fields: -- template: "Hepatitis B test ordered" +- template: "{{contact_summary.hepatitis_b_test.hepatitis_b_test_ordered}}" relevance: "hepb_test_status == 'ordered'" -- template: "Hepatitis B test not done: {hepb_test_notdone_value}" +- template: "{{contact_summary.hepatitis_b_test.hepatitis_b_test_not_done}}: {hepb_test_notdone_value}" relevance: "hepb_test_status == 'not_done'" -- template: "Hepatitis B test date: {hepb_test_date}" +- template: "{{contact_summary.hepatitis_b_test.hepatitis_b_test_date}}: {hepb_test_date}" relevance: "hepb_test_date != ''" -- template: "HBsAg laboratory-based immunoassay result: {hbsag_lab_ima_value}" +- template: "{{contact_summary.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result}}: {hbsag_lab_ima_value}" relevance: "hbsag_lab_ima != ''" -- template: "HBsAg rapid diagnostic test (RDT) result: {hbsag_rdt_value}" +- template: "{{contact_summary.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result}}: {hbsag_rdt_value}" relevance: "hbsag_rdt != ''" -- template: "Dried Blood Spot (DBS) HBsAg testing result: {hbsag_dbs_value}" +- template: "{{contact_summary.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result}}: {hbsag_dbs_value}" relevance: "hbsag_dbs != ''" -- template: "Hepatitis B positive counseling done" +- template: "{{contact_summary.hepatitis_b_test.hepatitis_b_positive_counseling_done}}" relevance: "hepb_positive_counsel == 'done'" -- template: "Hepatitis B positive counseling not done" +- template: "{{contact_summary.hepatitis_b_test.hepatitis_b_positive_counseling_not_done}}" relevance: "hepb_positive_counsel == 'not_done'" --- group: hepatitis_c_test fields: -- template: "Hepatitis C test ordered" +- template: "{{contact_summary.hepatitis_c_test.hepatitis_c_test_ordered}}" relevance: "hepc_test_status == 'ordered'" -- template: "Hepatitis C test not done: {hepc_test_notdone_value}" +- template: "{{contact_summary.hepatitis_c_test.hepatitis_c_test_not_done}}: {hepc_test_notdone_value}" relevance: "hepc_test_status == 'not_done'" -- template: "Hepatitis C test date: {hepc_test_date}" +- template: "{{contact_summary.hepatitis_c_test.hepatitis_c_test_date}}: {hepc_test_date}" relevance: "hepc_test_date != ''" -- template: "Anti-HCV laboratory-based immunoassay result: {hcv_lab_ima}" +- template: "{{contact_summary.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result}}: {hcv_lab_ima}" relevance: "hcv_lab_ima != ''" -- template: "Anti-HCV rapid diagnostic test (RDT) result: {hcv_rdt}" +- template: "{{contact_summary.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result}}: {hcv_rdt}" relevance: "hcv_rdt != ''" -- template: "Dried Blood Spot (DBS) anti-HCV test result: {hcv_dbs}" +- template: "{{contact_summary.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result}}: {hcv_dbs}" relevance: "hcv_dbs != ''" -- template: "Hepatitis C positive counseling done" +- template: "{{contact_summary.hepatitis_c_test.hepatitis_C_positive_counseling_done}}" relevance: "hepc_positive_counsel == 'done'" -- template: "Hepatitis C positive counseling not done" +- template: "{{contact_summary.hepatitis_c_test.hepatitis_C_positive_counseling_not_done}}" relevance: "hepc_positive_counsel == 'not_done'" --- group: syphilis_test fields: -- template: "Syphilis test ordered" +- template: "{{contact_summary.syphilis_test.syphilis_test_ordered}}" relevance: "syph_test_status == 'ordered'" -- template: "Syphilis test not done: {syph_test_notdone_value}" +- template: "{{contact_summary.syphilis_test.syphilis_test_not_done}}: {syph_test_notdone_value}" relevance: "syph_test_status == 'not_done'" -- template: "Syphilis test date: {syphilis_test_date}" +- template: "{{contact_summary.syphilis_test.syphilis_test_date}}: {syphilis_test_date}" relevance: "syphilis_test_date != ''" -- template: "Rapid syphilis test (RST) result: {rapid_syphilis_test}" +- template: "{{contact_summary.syphilis_test.rapid_syphilis_test_rst_result}}: {rapid_syphilis_test}" relevance: "rapid_syphilis_test != ''" -- template: "Rapid plasma reagin (RPR) test result: {rpr_syphilis_test}" +- template: "{{contact_summary.syphilis_test.rapid_plasma_reagin_rpr_test_result}}: {rpr_syphilis_test}" relevance: "rpr_syphilis_test != ''" -- template: "Off-site lab test for syphilis result: {lab_syphilis_test}" +- template: "{{contact_summary.syphilis_test.Off_site_lab_test_for_syphilis_result}}: {lab_syphilis_test}" relevance: "lab_syphilis_test != ''" -- template: "Syphilis counselling and treatment done" +- template: "{{contact_summary.syphilis_test.syphilis_counselling_and_treatment_done}}" relevance: "syphilis_low_prev_counsel == 'done'" -- template: "Syphilis counselling and treatment not done" +- template: "{{contact_summary.syphilis_test.syphilis_counselling_and_treatment_not_done}}" relevance: "syphilis_low_prev_counsel == 'not_done'" -- template: "Syphilis counselling and further testing done" +- template: "{{contact_summary.syphilis_test.syphilis_counselling_and_further_testing_done}}" relevance: "syphilis_high_prev_counsel == 'done'" -- template: "Syphilis counselling and further testing not done" +- template: "{{contact_summary.syphilis_test.syphilis_counselling_and_further_testing_not_done}}" relevance: "syphilis_high_prev_counsel == 'not_done'" --- group: urine_test fields: -- template: "Urine test ordered" +- template: "{{contact_summary.urine_tests.urine_test_ordered}}" relevance: "urine_test_status == 'ordered'" -- template: "Urine test not done: {urine_test_notdone_value}" +- template: "{{contact_summary.urine_tests.urine_test_noe_done}}: {urine_test_notdone_value}" relevance: "urine_test_status == 'not_done'" -- template: "Urine test date: {urine_test_date}" +- template: "{{contact_summary.urine_tests.urine_test_date}}: {urine_test_date}" relevance: "urine_test_date != ''" -- template: "Midstream urine culture result: {urine_culture_value}" +- template: "{{contact_summary.urine_tests.midstream_urine_culture_result}}: {urine_culture_value}" relevance: "urine_culture != ''" -- template: "Midstream urine Gram-staining result: {urine_gram_stain_value}" +- template: "{{contact_summary.urine_tests.midstream_urine_gram_staining_result}}: {urine_gram_stain_value}" relevance: "urine_gram_stain != ''" -- template: "Urine dipstick result - nitrites: {urine_nitrites_value}" +- template: "{{contact_summary.urine_tests.urine_nitrites}}: {urine_nitrites_value}" relevance: "urine_nitrites != ''" -- template: "Urine dipstick result - leukocytes: {urine_leukocytes_value}" +- template: "{{contact_summary.urine_tests.urine_leukocytes}}: {urine_leukocytes_value}" relevance: "urine_leukocytes != ''" -- template: "Urine dipstick result - protein: {urine_protein_value}" +- template: "{{contact_summary.urine_tests.urine_protein}}: {urine_protein_value}" relevance: "urine_protein != ''" -- template: "Urine dipstick result - glucose: {urine_glucose_value}" +- template: "{{contact_summary.urine_tests.urine_glucose}}: {urine_glucose_value}" relevance: "urine_glucose != ''" -- template: "Seven-day antibiotic regimen for ASB given" +- template: "{{contact_summary.urine_tests.asb_given}}" relevance: "asb_positive_counsel == 'done'" -- template: "Seven-day antibiotic regimen for ASB not given: {asb_positive_counsel_notdone_value}" +- template: "{{contact_summary.urine_tests.asb_not_given}}: {asb_positive_counsel_notdone_value}" relevance: "asb_positive_counsel == 'not_done'" -- template: "Intrapartum antibiotic to prevent early neonatal GBS infection counseling done" +- template: "{{contact_summary.urine_tests.intrapartum_antibiotic_counseling_done}}" relevance: "gbs_agent_counsel == 'done'" -- template: "Intrapartum antibiotic to prevent early neonatal GBS infection counseling not done" +- template: "{{contact_summary.urine_tests.intrapartum_antibiotic_counseling_not_done}}" relevance: "gbs_agent_counsel == 'not_done'" --- group: blood_glucose_test fields: -- template: "Blood glucose test ordered" +- template: "{{contact_summary.blood_glucose_tests.blood_glucose_test_ordered}}" relevance: "glucose_test_status == 'ordered'" -- template: "Blood glucose test not done" +- template: "{{contact_summary.blood_glucose_tests.blood_glucose_test_not_done}}" relevance: "glucose_test_status == 'not_done'" -- template: "Blood glucose test date: {glucose_test_date}" +- template: "{{contact_summary.blood_glucose_tests.blood_glucose_test_date}}: {glucose_test_date}" relevance: "glucose_test_date != ''" -- template: "Fasting plasma glucose results: {fasting_plasma_gluc} mg/dl" +- template: "{{contact_summary.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl}}: {fasting_plasma_gluc} mg/dl" relevance: "fasting_plasma_gluc != ''" -- template: "75g OGTT - fasting glucose results: {ogtt_fasting} mg/dl" +- template: "{{contact_summary.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl}}: {ogtt_fasting} mg/dl" relevance: "ogtt_fasting != ''" -- template: "75g OGTT - 1 hr results: {ogtt_1} mg/dl" +- template: "{{contact_summary.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl}}: {ogtt_1} mg/dl" relevance: "ogtt_1 != ''" -- template: "75g OGTT - 2 hrs results: {ogtt_2} mg/dl" +- template: "{{contact_summary.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl}}: {ogtt_2} mg/dl" relevance: "ogtt_2 != ''" -- template: "Random plasma glucose results: {random_plasma} mg/dl" +- template: "{{contact_summary.blood_glucose_tests.random_plasma_glucose_results_mg_dl}}: {random_plasma} mg/dl" relevance: "random_plasma != ''" -- template: "Diabetes counseling done" +- template: "{{contact_summary.blood_glucose_tests.diabetes_counseling_done}}" relevance: "diabetes_counsel == 'done'" -- template: "Diabetes counseling not done" +- template: "{{contact_summary.blood_glucose_tests.diabetes_counseling_not_done}}" relevance: "diabetes_counsel == 'not_done'" --- group: blood_haemoglobin_test_and_ifa fields: -- template: "Blood haemoglobin test ordered" +- template: "{{contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_ordered}}" relevance: "hb_test_status == 'ordered'" -- template: "Blood haemoglobin test not done: {hb_test_notdone_value}" +- template: "{{contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_not_done}}: {hb_test_notdone_value}" relevance: "hb_test_status == 'not_done'" -- template: "Blood haemoglobin test date: {hb_test_date}" +- template: "{{contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_date}}: {hb_test_date}" relevance: "hb_test_date != ''" -- template: "Complete blood count test results: {cbc} g/dl" +- template: "{{contact_summary.blood_haemoglobin_test.complete_blood_count_test_result_g_dl}}: {cbc} g/dl" relevance: "cbc != ''" -- template: "Hb test result - haemoglobinometer: {hb_gmeter} g/dl" +- template: "{{contact_summary.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl}}: {hb_gmeter} g/dl" relevance: "hb_gmeter != ''" -- template: "Hb test result - haemoglobin colour scale: {hb_colour} g/dl" +- template: "{{contact_summary.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl }}: {hb_colour} g/dl" relevance: "hb_colour != ''" -- template: "Hematocrit (Ht): {ht}" +- template: "{{contact_summary.blood_haemoglobin_test.hematocrit_ht}}: {ht}" relevance: "ht != ''" -- template: "White blood cell (WBC) count: {wbc}" +- template: "{{contact_summary.blood_haemoglobin_test.white_blood_cell_wbc_count}}: {wbc}" relevance: "wbc != ''" -- template: "Platelet count: {platelets}" +- template: "{{contact_summary.blood_haemoglobin_test.platelet_count}}: {platelets}" relevance: "platelets != ''" -- template: "Daily dose of 120 mg iron and 2.8 mg folic acid given" +- template: "{{contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_given}}" relevance: "ifa_anaemia == 'done'" -- template: "Daily dose of 120 mg iron and 2.8 mg folic acid not given: {ifa_anaemia_notdone_value}" +- template: "{{contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_not_given}}: {ifa_anaemia_notdone_value}" relevance: "ifa_anaemia == 'not_done'" --- group: tb_screening fields: -- template: "TB screening ordered" +- template: "{{contact_summary.tb_screening_test.tb_screening_ordered}}" relevance: "tb_screening_status == 'ordered'" -- template: "TB screening not done: {tb_screening_notdone_value}" +- template: "{{contact_summary.tb_screening_test.tb_screening_not_done}}: {tb_screening_notdone_value}" relevance: "tb_screening_status == 'not_done'" -- template: "TB screening date: {tb_screening_date}" +- template: "{{contact_summary.tb_screening_test.tb_screening_date}}: {tb_screening_date}" relevance: "tb_screening_date != ''" -- template: "TB screening result: {tb_screening_result}" +- template: "{{contact_summary.tb_screening_test.tb_screening_result}}: {tb_screening_result}" relevance: "tb_screening_result != ''" -- template: "TB screening positive counseling done" +- template: "{{contact_summary.tb_screening_test.tb_screening_positive_counseling_done}}" relevance: "tb_positive_counseling == 'done'" -- template: "TB screening positive counseling not done" +- template: "{{contact_summary.tb_screening_test.tb_screening_positive_counseling_not_done}}" relevance: "tb_positive_counseling == 'not_done'" --- group: other_tests fields: -- template: "Other test done: {other_test_name}" +- template: "{{contact_summary.other_tests.other_test_done}}: {other_test_name}" relevance: "other_test_name != ''" -- template: "Other test date: {other_test_date}" +- template: "{{contact_summary.other_tests.other_test_date}}: {other_test_date}" relevance: "other_test_date != ''" -- template: "Other test result: {other_test_result}" +- template: "{{contact_summary.other_tests.other_test_result}}: {other_test_result}" relevance: "other_test_result != ''" --- group: pre-eclampsia_risk fields: -- template: "Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) prescribed" +- template: "{{contact_summary.pre_eclampsia_risk.asprin_till_deliver_prescribed}}" relevance: "pe_risk_aspirin == 'done'" -- template: "Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) not prescribed: {pe_risk_aspirin_notdone_value}" +- template: "{{contact_summary.pre_eclampsia_risk.asprin_till_deliver_not_prescribed}}: {pe_risk_aspirin_notdone_value}" relevance: "pe_risk_aspirin == 'not_done'" -- template: "Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) prescribed and woman told to continue to take daily calcium supplement of 1.5 to 2 g daily until delivery." +- template: "{{contact_summary.pre_eclampsia_risk.asprin_plus_calcium_till_deliver_prescribed}}" relevance: "pe_risk_aspirin_calcium == 'done'" -- template: "Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) not given and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery: {pe_risk_aspirin_calcium_notdone_value}" +- template: "{{contact_summary.pre_eclampsia_risk.asprin_not_given_plus_calcium_till_deliver_prescribed}}: {pe_risk_aspirin_calcium_notdone_value}" relevance: "pe_risk_aspirin_calcium == 'not_done'" --- group: hiv_risk_and_prep fields: -- template: "HIV risk counseling done" +- template: "{{contact_summary.hiv_risk_and_prep.hiv_risk_counseling_done}}" relevance: "hiv_risk_counsel == 'done'" -- template: "HIV risk counseling not done" +- template: "{{contact_summary.hiv_risk_and_prep.hiv_risk_counseling_not_done}}" relevance: "hiv_risk_counsel == 'not_done'" -- template: "PrEP for HIV prevention counseling done" +- template: "{{contact_summary.hiv_risk_and_prep.prep_hiv_protection_counseling_done}}" relevance: "hiv_prep == 'done'" -- template: "PrEP for HIV prevention counseling not done: {hiv_prep_notdone_value}" +- template: "{{contact_summary.hiv_risk_and_prep.prep_hiv_protection_counseling_not_done}}: {hiv_prep_notdone_value}" relevance: "hiv_prep == 'not_done'" --- group: diabetes_risk fields: -- template: "Gestational diabetes mellitus (GDM) risk counseling done" +- template: "{{contact_summary.diabetes_risk.gdm_risk_counseling_done}}" relevance: "gdm_risk_counsel == 'done'" -- template: "Gestational diabetes mellitus (GDM) risk counseling not done" +- template: "{{contact_summary.diabetes_risk.gdm_risk_counseling_not_done}}" relevance: "gdm_risk_counsel == 'not_done'" --- group: danger_signs_counseling fields: -- template: "Seeking care for danger signs counseling done" +- template: "{{contact_summary.danger_signs_counseling.seek_danger_signs_care_counseling_done}}" relevance: "danger_signs_counsel == 'done'" -- template: "Seeking care for danger signs counseling not done" +- template: "{{contact_summary.danger_signs_counseling.seek_danger_signs_care_counseling_not_done}}" relevance: "danger_signs_counsel == 'not_done'" -- template: "Counseling done on going immediately to the hospital if severe danger signs" +- template: "{{contact_summary.danger_signs_counseling.danger_signs_counseling_done_immediately}}" relevance: "emergency_hosp_counsel == 'done'" -- template: "Counseling not done on going immediately to the hospital if severe danger signs" +- template: "{{contact_summary.danger_signs_counseling.danger_signs_counseling_not_done_immediately}}" relevance: "emergency_hosp_counsel == 'not_done'" --- group: anc_contacts_counseling fields: -- template: "ANC contact schedule counseling done" +- template: "{{contact_summary.anc_contacts_counseling.contact_schedule_counseling_done}}" relevance: "anc_contact_counsel == 'done'" -- template: "ANC contact schedule counseling not done" +- template: "{{contact_summary.anc_contacts_counseling.contact_schedule_counseling_not_done}}" relevance: "anc_contact_counsel == 'not_done'" --- group: family_planning_counseling fields: -- template: "Postpartum family planning counseling done" +- template: "{{contact_summary.family_planning_counseling.pfp_counseling_done}}" relevance: "family_planning_counsel == 'done'" -- template: "Postpartum family planning counseling not done" +- template: "{{contact_summary.family_planning_counseling.pfp_counseling_not_done}}" relevance: "family_planning_counsel == 'not_done'" -- template: "FP method accepted: {family_planning_type_value}" +- template: "{{contact_summary.family_planning_counseling.fp_method_accepted}}: {family_planning_type_value}" relevance: "family_planning_type != ''" --- group: birth_plan_counseling fields: -- template: "Planned birth place: {delivery_place_value}" +- template: "{{contact_summary.birth_plan_counseling.planned_birth_place}}: {delivery_place_value}" relevance: "delivery_place != ''" -- template: "Birth preparedness and complications readiness counseling done" +- template: "{{contact_summary.birth_plan_counseling.birth_preparedness_counseling_done}}" relevance: "birth_prep_counsel == 'done'" -- template: "Birth preparedness and complications readiness counseling not done" +- template: "{{contact_summary.birth_plan_counseling.birth_preparedness_counseling_not_done}}" relevance: "birth_prep_counsel == 'not_done'" --- group: breastfeeding_counseling fields: -- template: "Breastfeeding counseling done" +- template: "{{contact_summary.breastfeeding_counseling.breastfeeding_counseling_done}}" relevance: "breastfeed_counsel == 'done'" -- template: "Breastfeeding counseling not done" +- template: "{{contact_summary.breastfeeding_counseling.breastfeeding_counseling_not_done}}" relevance: "breastfeed_counsel == 'not_done'" --- group: ipv_assessment fields: -- template: "Clinical enquiry for IPV done" +- template: "{{contact_summary.ipv_assessment.clinical_enquiry_for_IPV_done}}" relevance: "ipv_enquiry == 'done'" -- template: "IPV enquiry results: {ipv_enquiry_results}" +- template: "{{contact_summary.ipv_assessment.ipv_enquiry_results}}: {ipv_enquiry_results}" relevance: "ipv_enquiry_results != ''" -- template: "Clinical enquiry for IPV not done: {ipv_enquiry_notdone_value}" +- template: "{{contact_summary.ipv_assessment.clinical_enquiry_for_IPV_not_done}}: {ipv_enquiry_notdone_value}" relevance: "ipv_enquiry == 'not_done'" --- group: anaemia_prevention fields: -- template: "Daily dose of 60 mg iron and 0.4 mg folic acid prescribed" +- template: "{{contact_summary.anaemia_prevention.daily_folic_acid_prescribed}}" relevance: "ifa_high_prev == 'done'" -- template: "Daily dose of 60 mg iron and 0.4 mg folic acid not prescribed: {ifa_high_prev_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.daily_folic_acid_not_prescribed }}: {ifa_high_prev_notdone_value}" relevance: "ifa_high_prev == 'not_done'" -- template: "Daily dose of 30 to 60 mg iron and 0.4 mg folic acid prescribed" +- template: "{{contact_summary.anaemia_prevention.daily_30_60_folic_acid_prescribed}}" relevance: "ifa_low_prev == 'done'" -- template: "Daily dose of 30 to 60 mg iron and 0.4 mg folic acid not prescribed: {ifa_low_prev_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.daily_30_60_folic_acid_not_prescribed}}: {ifa_low_prev_notdone_value}" relevance: "ifa_low_prev == 'not_done'" -- template: "Changed prescription to weekly dose of 120 mg iron and 2.8 mg folic acid " +- template: "{{contact_summary.anaemia_prevention.changed_prescription_folic_acid}}" relevance: "ifa_weekly == 'done'" -- template: "Didn't change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid: {ifa_weekly_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.dont_changed_prescription_folic_acid}}: {ifa_weekly_notdone_value}" relevance: "ifa_weekly == 'not_done'" --- group: deworming_and_malaria_prophylaxis fields: -- template: "Single dose albendazole 400 mg or mebendazole 500 mg prescribed" +- template: "{{contact_summary.anaemia_prevention.single_dose_prescribed}}" relevance: "deworm == 'done'" -- template: "Single dose albendazole 400 mg or mebendazole 500 mg not prescribed: {deworm_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.single_dose_not_prescribed}}: {deworm_notdone_value}" relevance: "deworm == 'not_done'" -- template: "IPTp-SP dose 1 given" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_1_given}}" relevance: "iptp_sp1 == 'done'" -- template: "IPTp-SP dose 1 not given: {iptp_sp_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_1_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp1 == 'not_done'" -- template: "IPTp-SP dose 2 given" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_2_given}}" relevance: "iptp_sp2 == 'done'" -- template: "IPTp-SP dose 2 not given: {iptp_sp_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_2_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp2 == 'not_done'" -- template: "IPTp-SP dose 3 given" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_3_given}}" relevance: "iptp_sp3 == 'done'" -- template: "IPTp-SP dose 3 not given: {iptp_sp_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_3_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp3 == 'not_done'" -- template: "Malaria prevention counseling done" +- template: "{{contact_summary.anaemia_prevention.malaria_prevention_counseling_done}}" relevance: "malaria_counsel == 'done'" -- template: "Malaria prevention counseling not done: {malaria_counsel_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.malaria_prevention_counseling_not_done}}: {malaria_counsel_notdone_value}" relevance: "malaria_counsel == 'not_done'" --- group: calcium_supplementation fields: -- template: "Daily calcium supplementation (1.5–2.0 g oral elemental calcium) prescribed" +- template: "{{contact_summary.calcium_supplementation.daily_calcium_prescribed}}" relevance: "calcium_supp == 'done'" -- template: "Daily calcium supplementation (1.5–2.0 g oral elemental calcium) not prescribed: {calcium_supp_notdone_value}" +- template: "{{contact_summary.calcium_supplementation.daily_calcium_not_prescribed}}: {calcium_supp_notdone_value}" relevance: "calcium_supp == 'not_done'" --- group: vitamin_a_supplementation fields: -- template: "Daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU prescribed" +- template: "{{contact_summary.vitamin_a_supplementation.daily_dose_ui_prescribed}}" relevance: "vita_supp == 'done'" -- template: "Daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU not prescribed: {vita_supp_notdone_value}" +- template: "{{contact_summary.vitamin_a_supplementation.daily_dose_ui_not_prescribed}}: {vita_supp_notdone_value}" relevance: "vita_supp == 'not_done'" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index cf0334565..485497e0f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -150,7 +150,7 @@ private void registerLanguageSwitcher() { } private void addLanguages() { - locales.put("English", Locale.ENGLISH); + locales.put(getString(R.string.english_language), Locale.ENGLISH); locales.put("French", Locale.FRENCH); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java index 9aa594217..8b131bba5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java @@ -57,7 +57,7 @@ public Set getRegisterActiveColumns(String viewConfigurationIdentifier) { @Override public String countSelect(String tableName, String mainCondition) { SmartRegisterQueryBuilder countQueryBuilder = new SmartRegisterQueryBuilder(); - countQueryBuilder.SelectInitiateMainTableCounts(tableName); + countQueryBuilder.selectInitiateMainTableCounts(tableName); return countQueryBuilder.mainCondition(mainCondition); } @@ -73,7 +73,7 @@ public String mainSelect(String tableName, String mainCondition) { getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.CONTACT_STATUS, getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT, getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE}; - queryBuilder.SelectInitiateMainTable(tableName, columns); + queryBuilder.selectInitiateMainTable(tableName, columns); queryBuilder.customJoin(" join " + getRegisterQueryProvider().getDetailsTable() + " on " + getRegisterQueryProvider().getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + "= " + getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID); return queryBuilder.mainCondition(mainCondition); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java index 4828dda47..08582b6db 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java @@ -59,7 +59,7 @@ public String getCountExecuteQuery(String mainCondition, String filters) { public String mainRegisterQuery() { SmartRegisterQueryBuilder queryBuilder = new SmartRegisterQueryBuilder(); - queryBuilder.SelectInitiateMainTable(getDemographicTable(), mainColumns()); + queryBuilder.selectInitiateMainTable(getDemographicTable(), mainColumns()); queryBuilder.customJoin(" join " + getDetailsTable() + " on " + getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + "= " + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " "); return queryBuilder.getSelectquery(); diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 258883370..6602242bf 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -420,4 +420,5 @@ Current language: %1s Choose language + English \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties index cf076963c..163f40b40 100644 --- a/opensrp-anc/src/main/resources/contact_summary.properties +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -35,9 +35,291 @@ contact_summary.obstetric_history.no_of_stillbirths = No. of stillbirths. contact_summary.obstetric_history.no_of_c_sections = No. of C-sections. contact_summary.obstetric_history.past_pregnancy_problems = Past pregnancy problems contact_summary.obstetric_history.past_substances_used = Past substances used -contact_summary.blood_type_test.blood_type = Blood type contact_summary.medical_history.allergies = Allergies contact_summary.medical_history.surgeries = Surgeries contact_summary.medical_history.chronic_health_conditions = Chronic health conditions contact_summary.medical_history.hiv_diagnosis_date = HIV diagnosis date -contact_summary.medical_history.hiv_diagnosis_date_unknown = HIV diagnosis date unknown \ No newline at end of file +contact_summary.medical_history.hiv_diagnosis_date_unknown = HIV diagnosis date unknown +contact_summary.immunisation_status.tt_immunisation_status = TT immunisation status +contact_summary.immunisation_status.tt_dose_1 = TT dose #1 +contact_summary.immunisation_status.tt_dose_2 = TT dose #2 +contact_summary.immunisation_status.tt_dose_3 = TT dose #3 +contact_summary.immunisation_status.tt_dose_not_given = TT dose not given +contact_summary.immunisation_status.hep_b_immunisation_status = Hep B immunisation status +contact_summary.immunisation_status.hep_b_dose_1 = Hep B dose #1 +contact_summary.immunisation_status.hep_b_dose_2 = Hep B dose #2 +contact_summary.immunisation_status.hep_b_dose_3 = Hep B dose #3 +contact_summary.immunisation_status.hep_b_dose_not_given = Hep B dose not given +contact_summary.immunisation_status.flu_immunisation_status = Flu immunisation status +contact_summary.immunisation_status.flu_dose = Flu dose +contact_summary.immunisation_status.flu_dose_not_given = Flu dose not given +contact_summary.medications.current_medications = Current medications +contact_summary.medications.medications_prescribed = Medications prescribed +contact_summary.medications.calcium_compliance = Calcium compliance +contact_summary.medications.calcium_side_effects = Calcium side effects +contact_summary.medications.ifa_compliance = IFA compliance +contact_summary.medications.ifa_side_effects = IFA side effects +contact_summary.medications.aspirin_compliance = Aspirin compliance +contact_summary.medications.vitamin_a_compliance = Vitamin A compliance +contact_summary.medications.penicillin_compliance = Penicillin compliance +contact_summary.woman_behaviour.persisting_behaviours = Persisting behaviours +contact_summary.woman_behaviour.caffeine_intake = Daily caffeine intake +contact_summary.woman_behaviour.caffeine_reduction_counseling = Caffeine reduction counseling +contact_summary.woman_behaviour.caffeine_reduction_not_counseling = Caffeine reduction counseling not done +contact_summary.woman_behaviour.tobacco_user = Tobacco user +contact_summary.woman_behaviour.tobacco_cessation_counseling_done = Tobacco cessation counseling done +contact_summary.woman_behaviour.tobacco_cessation_counseling_not_done = Tobacco cessation counseling not done +contact_summary.woman_behaviour.shs_exposure = Anyone in the household smokes tobacco products? +contact_summary.woman_behaviour.shs_counseling_done = Second-hand smoke counseling done +contact_summary.woman_behaviour.shs_counseling_not_done = Second-hand smoke counseling not done +contact_summary.woman_behaviour.condom_use = Uses condoms during sex? +contact_summary.woman_behaviour.condom_counseling_done = Condom counseling done +contact_summary.woman_behaviour.condom_counseling_not_done = Condom counseling not done +contact_summary.woman_behaviour.alcohol_substance_enquiry = A clinical enquiry for alcohol and other substance use done? +contact_summary.woman_behaviour.alcohol_substances_used = Alcohol / substances used +contact_summary.woman_behaviour.alcohol_substances_use_counseling_done = Alcohol / substance use counseling done +contact_summary.woman_behaviour.alcohol_substances_use_counseling_not_done = Alcohol / substance use counseling not done + +contact_summary.ultrasound_tests.ultrasound_test = Ultrasound test ordered. +contact_summary.ultrasound_tests.ultrasound_not_done = Ultrasound not done + +contact_summary.blood_type_test.blood_type_test_ordered = Blood type test ordered +contact_summary.blood_type_test.blood_type_test_not_done = Blood type test not done +contact_summary.blood_type_test.blood_type_test_date = Blood type test date +contact_summary.blood_type_test.blood_type = Blood Type +contact_summary.blood_type_test.rh_factor = RH factor +contact_summary.blood_type_test.rh_factor_negative_counseling_done = Rh factor negative counseling done +contact_summary.blood_type_test.rh_factor_negative_counseling_not_done = Rh factor negative counseling not done + + +contact_summary.hiv_tests.hiv_test_ordered = Hiv test ordered +contact_summary.hiv_tests.hiv_test_date = Hiv test date +contact_summary.hiv_tests.hiv_test_not_done = Hiv test not done +contact_summary.hiv_tests.hiv_test_not_done_other_reason = Hiv test not done other reason +contact_summary.hiv_tests.hiv_test_result = Hiv test result +contact_summary.hiv_tests.hiv_positive_counseling_done = HIV positive counseling done +contact_summary.hiv_tests.hiv_positive_counseling_not_done = HIV positive counseling not done + +contact_summary.partner_hiv_test.partner_hiv_test_status = Partner HIV test status +contact_summary.partner_hiv_test.partner_hiv_test_date = Partner HIV test date +contact_summary.partner_hiv_test.partner_hiv_test_result = Partner HIV test result +contact_summary.partner_hiv_test.partner_hiv_test_ordered = Partner HIV test ordered +contact_summary.partner_hiv_test.partner_hiv_test_not_done= Partner HIV test not done + +contact_summary.hepatitis_b_test.hepatitis_b_test_ordered = Hepatitis B test ordered +contact_summary.hepatitis_b_test.hepatitis_b_test_date = Hepatitis B test date +contact_summary.hepatitis_b_test.hepatitis_b_test_not_done = Hepatitis B test not done +contact_summary.hepatitis_b_test.hepatitis_b_positive_counseling_done = Hepatitis B positive counseling done +contact_summary.hepatitis_b_test.hepatitis_b_positive_counseling_not_done = Hepatitis B positive counseling not done +contact_summary.hepatitis_b_test.hbsag_laboratory_based_immunoassay_result = HBsAg laboratory-based immunoassay result +contact_summary.hepatitis_b_test.hbsag_rapid_diagnostic_test_rdt_result = HBsAg rapid diagnostic test (RDT) result +contact_summary.hepatitis_b_test.dried_blood_spot_dbs_hbsag_test_result = Dried Blood Spot (DBS) HBsAg test result + + +contact_summary.hepatitis_c_test.hepatitis_c_test_ordered = Hepatitis C test ordered +contact_summary.hepatitis_c_test.hepatitis_c_test_date = Hepatitis C test date +contact_summary.hepatitis_c_test.hepatitis_c_test_not_done = Hepatitis C test not done +contact_summary.hepatitis_c_test.hepatitis_C_positive_counseling_done = Hepatitis C positive counseling done +contact_summary.hepatitis_c_test.hepatitis_C_positive_counseling_not_done = Hepatitis C positive counseling not done +contact_summary.hepatitis_c_test.anti_hcv_laboratory_based_immunoassay_result = Anti-HCV laboratory-based immunoassay result +contact_summary.hepatitis_c_test.anti_hcv_rapid_diagnostic_test_rdt_result = Anti-HCV rapid diagnostic test (RDT) result +contact_summary.hepatitis_c_test.dried_blood_spot_dbs_anti_hcv_test_result = Dried Blood Spot (DBS) Anti-HCV test result + +contact_summary.syphilis_test.syphilis_test_ordered = Syphilis test ordered +contact_summary.syphilis_test.syphilis_test_date = Syphilis test date +contact_summary.syphilis_test.syphilis_test_not_done = Syphilis test not done +contact_summary.syphilis_test.rapid_syphilis_test_rst_result = Rapid syphilis test (RST) result +contact_summary.syphilis_test.syphilis_counselling_and_treatment_done = Syphilis counselling and treatment done +contact_summary.syphilis_test.syphilis_counselling_and_treatment_not_done = Syphilis counselling and treatment not done +contact_summary.syphilis_test.syphilis_counselling_and_further_testing_done = Syphilis counselling and further testing done +contact_summary.syphilis_test.syphilis_counselling_and_further_testing_not_done = Syphilis counselling and further testing not done +contact_summary.syphilis_test.rapid_plasma_reagin_rpr_test_result = Rapid plasma reagin (RPR) test result +contact_summary.syphilis_test.Off_site_lab_test_for_syphilis_result = Off-site lab test for syphilis result + +contact_summary.urine_tests.urine_test_ordered = Urine test ordered +contact_summary.urine_tests.urine_test_date = Urine test date +contact_summary.urine_tests.urine_test_noe_done = Urine test not done +contact_summary.urine_tests.midstream_urine_culture_result = Midstream urine culture result +contact_summary.urine_tests.midstream_urine_gram_staining_result = Midstream urine Gram-staining result +contact_summary.urine_tests.urine_protein = Urine dipstick result -protein +contact_summary.urine_tests.urine_nitrites = Urine dipstick result - nitrites +contact_summary.urine_tests.urine_leukocytes = Urine dipstick result - leukocytes +contact_summary.urine_tests.urine_glucose = Urine dipstick result - glucose +contact_summary.urine_tests.asb_given = Seven-day antibiotic regimen for ASB given +contact_summary.urine_tests.asb_not_give = Seven-day antibiotic regimen for ASB not given +contact_summary.urine_tests.intrapartum_antibiotic_counseling_done = Intrapartum antibiotic to prevent early neonatal GBS infection counseling done +contact_summary.urine_tests.intrapartum_antibiotic_counseling_not_done = Intrapartum antibiotic to prevent early neonatal GBS infection counseling not done + +contact_summary.blood_glucose_tests.blood_glucose_test_ordered = Blood glucose test ordered +contact_summary.blood_glucose_tests.blood_glucose_test_date = Blood glucose test date +contact_summary.blood_glucose_tests.blood_glucose_test_not_done = Blood glucose test not done +contact_summary.blood_glucose_tests.blood_glucose_test_type = Blood glucose test type +contact_summary.blood_glucose_tests.fasting_plasma_glucose_results_mg_dl = Fasting plasma glucose results +contact_summary.blood_glucose_tests.75g_ogtt_fasting_glucose_results_mg_dl = 75g OGTT - fasting glucose results +contact_summary.blood_glucose_tests.75g_ogtt_1_hr_results_mg_dl = 75g OGTT - 1 hr results +contact_summary.blood_glucose_tests.75g_ogtt_2_hrs_results_mg_dl = 75g OGTT - 2 hrs results +contact_summary.blood_glucose_tests.random_plasma_glucose_results_mg_dl = Random plasma glucose results +contact_summary.blood_glucose_tests.diabetes_counseling_done = Diabetes counseling done +contact_summary.blood_glucose_tests.diabetes_counseling_not_done = Diabetes counseling not done + +contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_ordered = Blood haemoglobin test ordered +contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_date = Blood haemoglobin test date +contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_not_done = Blood haemoglobin test not done +contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason = Blood haemoglobin test not done other reason +contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_given = Daily dose of 120 mg iron and 2.8 mg folic acid given +contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_not_given = Daily dose of 120 mg iron and 2.8 mg folic acid not given +contact_summary.blood_haemoglobin_test.complete_blood_count_test_result_g_dl = Complete blood count test result +contact_summary.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl = RHb test result - haemoglobinometer +contact_summary.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl = Hb test result - haemoglobin colour scale +contact_summary.blood_haemoglobin_test.hematocrit_ht = Hematocrit (Ht) +contact_summary.blood_haemoglobin_test.white_blood_cell_wbc_count = White blood cell (WBC) count +contact_summary.blood_haemoglobin_test.platelet_count = Platelet count + +contact_summary.tb_screening_test.tb_screening_ordered = TB screening ordered +contact_summary.tb_screening_test.tb_screening_date = TB screening date +contact_summary.tb_screening_test.tb_screening_not_done = TB screening not done +contact_summary.tb_screening_test.tb_screening_positive_counseling_done= TB screening positive counseling done +contact_summary.tb_screening_test.tb_screening_positive_counseling_not_done= TB screening positive counseling not done +contact_summary.tb_screening_test.tb_screening_result = TB screening result + +contact_summary.other_tests.other_test_done = Other test done +contact_summary.other_tests.other_test_date = Other test date +contact_summary.other_tests.other_test_result = Other test result + +contact_summary.pre_eclampsia_risk.asprin_till_deliver_prescribed = Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) prescribed +contact_summary.pre_eclampsia_risk.asprin_till_deliver_not_prescribed = Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) not prescribed +contact_summary.pre_eclampsia_risk.asprin_plus_calcium_till_deliver_prescribed = Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) prescribed and woman told to continue to take daily calcium supplement of 1.5 to 2 g daily until delivery. +contact_summary.pre_eclampsia_risk.asprin_not_given_plus_calcium_till_deliver_prescribed = Aspirin 75 mg daily until delivery (starting at 12 weeks gestation) not given and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery + +contact_summary.hiv_risk_and_prep.hiv_risk_counseling_done = HIV risk counseling done +contact_summary.hiv_risk_and_prep.hiv_risk_counseling_not_done = HIV risk counseling not done +contact_summary.hiv_risk_and_prep.prep_hiv_protection_counseling_done = PrEP for HIV prevention counseling done +contact_summary.hiv_risk_and_prep.prep_hiv_protection_counseling_not_done = PrEP for HIV prevention counseling not done + +contact_summary.diabetes_risk.gdm_risk_counseling_done = Gestational diabetes mellitus (GDM) risk counseling done +contact_summary.diabetes_risk.gdm_risk_counseling_not_done = Gestational diabetes mellitus (GDM) risk counseling not done + +contact_summary.danger_signs_counseling.seek_danger_signs_care_counseling_done = Seeking care for danger signs counseling done +contact_summary.danger_signs_counseling.seek_danger_signs_care_counseling_not_done = Seeking care for danger signs counseling not done +contact_summary.danger_signs_counseling.danger_signs_counseling_done_immediately = Counseling done on going immediately to the hospital if severe danger signs +contact_summary.danger_signs_counseling.danger_signs_counseling_not_done_immediately = Counseling not done on going immediately to the hospital if severe danger signs + +contact_summary.anc_contacts_counseling.contact_schedule_counseling_done = ANC contact schedule counseling done +contact_summary.anc_contacts_counseling.contact_schedule_counseling_not_done = ANC contact schedule counseling not done + +contact_summary.family_planning_counseling.pfp_counseling_done = Postpartum family planning counseling done +contact_summary.family_planning_counseling.pfp_counseling_not_done = Postpartum family planning counseling not done +contact_summary.family_planning_counseling.fp_method_accepted = FP method accepted + +contact_summary.birth_plan_counseling.planned_birth_place = Planned birth place +contact_summary.birth_plan_counseling.birth_preparedness_counseling_done = Birth preparedness and complications readiness counseling done +contact_summary.birth_plan_counseling.birth_preparedness_counseling_not_done = Birth preparedness and complications readiness counseling not done + +contact_summary.breastfeeding_counseling.breastfeeding_counseling_done = Breastfeeding counseling done +contact_summary.breastfeeding_counseling.breastfeeding_counseling_not_done = Breastfeeding counseling not done + +contact_summary.ipv_assessment.clinical_enquiry_for_IPV_done = Clinical enquiry for IPV done +contact_summary.ipv_assessment.ipv_enquiry_results = IPV enquiry results +contact_summary.ipv_assessment.clinical_enquiry_for_IPV_not_done = Clinical enquiry for IPV not done + +contact_summary.anaemia_prevention.daily_folic_acid_prescribed = Daily dose of 60 mg iron and 0.4 mg folic acid prescribed +contact_summary.anaemia_prevention.daily_folic_acid_not_prescribed = Daily dose of 60 mg iron and 0.4 mg folic acid not prescribed +contact_summary.anaemia_prevention.daily_30_60_folic_acid_prescribed = Daily dose of 30 to 60 mg iron and 0.4 mg folic acid prescribed +contact_summary.anaemia_prevention.daily_30_60_folic_acid_not_prescribed = Daily dose of 30 to 60 mg iron and 0.4 mg folic acid not prescribed +contact_summary.anaemia_prevention.changed_prescription_folic_acid = Changed prescription to weekly dose of 120 mg iron and 2.8 mg folic acid +contact_summary.anaemia_prevention.dont_changed_prescription_folic_acid = Didn't change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid + +contact_summary.deworming_and_malaria_prophylaxis.single_dose_prescribed = Single dose albendazole 400 mg or mebendazole 500 mg prescribed +contact_summary.deworming_and_malaria_prophylaxis.single_dose_not_prescribed = Single dose albendazole 400 mg or mebendazole 500 mg not prescribed +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_1_given = IPTp-SP dose 1 given +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_1_not_given = IPTp-SP dose 1 not given +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_2_given = IPTp-SP dose 2 given +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_2_not_given = IPTp-SP dose 2 not given +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_3_given = IPTp-SP dose 3 given +contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_3_not_given = IPTp-SP dose 3 not given +contact_summary.deworming_and_malaria_prophylaxis.malaria_prevention_counseling_done = Malaria prevention counseling done +contact_summary.deworming_and_malaria_prophylaxis.malaria_prevention_counseling_not_done = Malaria prevention counseling not done + +contact_summary.calcium_supplementation.daily_calcium_prescribed = Daily calcium supplementation (1.5–2.0 g oral elemental calcium) prescribed +contact_summary.calcium_supplementation.daily_calcium_not_prescribed = Daily calcium supplementation (1.5–2.0 g oral elemental calcium) not prescribed + +contact_summary.vitamin_a_supplementation.daily_dose_ui_prescribed = Daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU prescribed +contact_summary.vitamin_a_supplementation.daily_dose_ui_not_prescribed = Daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU not prescribed + +contact_summary.physiological_symptoms.persisting_physiological_symptoms = Persisting physiological symptoms +contact_summary.physiological_symptoms.physiological_symptoms = Physiological symptoms +contact_summary.physiological_symptoms.low_back_and_pelvic_pain_other_symptoms = Low back and pelvic pain other symptoms +contact_summary.physiological_symptoms.varicose_veins_or_oedema_other_symptoms = Varicose veins or oedema other symptoms +contact_summary.physiological_symptoms.non_pharma_nausea_and_vomiting_counseling_done = Non-pharma measures to relieve nausea and vomiting counseling done +contact_summary.physiological_symptoms.non_pharma_nausea_and_vomiting_counseling_not_done = Non-pharma measures to relieve nausea and vomiting counseling not done +contact_summary.physiological_symptoms.pharma_nausea_and_vomiting_counseling_done = Pharmacological treatments for nausea and vomiting counseling done +contact_summary.physiological_symptoms.pharma_nausea_and_vomiting_counseling_not_done = Pharmacological treatments for nausea and vomiting counseling not done +contact_summary.physiological_symptoms.diet_heartburn_counseling_done = Diet and lifestyle changes to prevent and relieve heartburn counseling done +contact_summary.physiological_symptoms.diet_heartburn_counseling_not_done = Diet and lifestyle changes to prevent and relieve heartburn counseling not done +contact_summary.physiological_symptoms.antacid_heartburn_counseling_done = Antacid preparations to relieve heartburn counseling done +contact_summary.physiological_symptoms.antacid_heartburn_counseling_not_done = Antacid preparations to relieve heartburn counseling not done +contact_summary.physiological_symptoms.no_pharma_legs_cramps_counseling_done = Non-pharmacological treatment for the relief of leg cramps counseling done +contact_summary.physiological_symptoms.no_pharma_legs_cramps_counseling_not_done = Non-pharmacological treatment for the relief of leg cramps counseling not done +contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_done = Magnesium and calcium to relieve leg cramps counseling done +contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_not_done = Magnesium and calcium to relieve leg cramps counseling not done +contact_summary.physiological_symptoms.dietary_modifications_counseling_done = Dietary modifications to relieve constipation counseling done +contact_summary.physiological_symptoms.dietary_modifications_counseling_not_done = Dietary modifications to relieve constipation counseling not done +contact_summary.physiological_symptoms.fiber_relieve_constipation_counseling_done = Wheat bran or other fiber supplements to relieve constipation counseling done +contact_summary.physiological_symptoms.fiber_relieve_constipation_counseling_not_done = Wheat bran or other fiber supplements to relieve constipation counseling not done +contact_summary.physiological_symptoms.regular_low_back_pelvic_pain_counseling_done = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling done +contact_summary.physiological_symptoms.regular_low_back_pelvic_pain_counseling_not_done = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling not done +contact_summary.physiological_symptoms.pharma_oedema_counseling_done = Non-pharmacological options for varicose veins and oedema counseling done +contact_summary.physiological_symptoms.pharma_oedema_counseling_not_done = Non-pharmacological options for varicose veins and oedema counseling not done +contact_summary.physiological_symptoms.other_persisting_symptoms = Other persisting symptoms +contact_summary.physiological_symptoms.other_symptoms = Other symptoms +contact_summary.physiological_symptoms.fetal_movement_felt_by_woman = Fetal movement felt by woman + +contact_summary.height_and_weight.height = Height +contact_summary.height_and_weight.pre_gestational_weight = Pre-gestational weight +contact_summary.height_and_weight.bmi = Body mass index (BMI) +contact_summary.height_and_weight.weight_category = Weight category +contact_summary.height_and_weight.weight_gain_during_pregnancy = Expected weight gain during pregnancy +contact_summary.height_and_weight.current_weight = Current weight +contact_summary.height_and_weight.weight_gain_per_last_contact = Average weight gain per week since last contact +contact_summary.height_and_weight.total_weight_pregnancy = Total weight gain in pregnancy so far +contact_summary.height_and_weight.health_eating_counseling_done = Healthy eating and keeping physically active counseling done +contact_summary.height_and_weight.health_eating_counseling_not_done = Healthy eating and keeping physically active counseling not done +contact_summary.height_and_weight.daily_energy_protein_counseling_done = Increase daily energy and protein intake counseling done +contact_summary.height_and_weight.daily_energy_protein_counseling_not_done = Increase daily energy and protein intake counseling not done +contact_summary.height_and_weight.balanced_protein_dietary_counseling_done = Balanced energy and protein dietary supplementation counseling done +contact_summary.height_and_weight.balanced_protein_dietary_counseling_not_done = Balanced energy and protein dietary supplementation counseling not done + +contact_summary.blood_pressure.bp = BP +contact_summary.blood_pressure.bp_10_min_rest = BP (after 10-15 minutes rest) +contact_summary.blood_pressure.systptoms_pre_eclampsia = Symptoms of severe pre-eclampsia +contact_summary.blood_pressure.urine_dipstick_protein = Urine dipstick result - protein +contact_summary.blood_pressure.hypertension_diagnosis = Hypertension diagnosis +contact_summary.blood_pressure.hypertension_counseling_done = Hypertension counseling done +contact_summary.blood_pressure.hypertension_counseling_not_done = Hypertension counseling not done +contact_summary.blood_pressure.severe_hypertension_diagnosis = Severe hypertension diagnosis +contact_summary.blood_pressure.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis +contact_summary.blood_pressure.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis + +contact_summary.maternal_exam.temperature = Temperature +contact_summary.maternal_exam.second_temperature = Second temperature +contact_summary.maternal_exam.pulse_rate = Pulse rate +contact_summary.maternal_exam.second_pulse_rate = Second pulse rate +contact_summary.maternal_exam.pallor_present = Pallor present +contact_summary.maternal_exam.respiratory_exam = Respiratory exam +contact_summary.maternal_exam.abnormal_specify = Abnormal (specify) +contact_summary.maternal_exam.oximetry = Oximetry +contact_summary.maternal_exam.cardiac_exam = Cardiac exam +contact_summary.maternal_exam.breast_exam = Breast exam +contact_summary.maternal_exam.abdominal_exam = Abdominal exam +contact_summary.maternal_exam.pelvic_exam = Pelvic exam +contact_summary.maternal_exam.cervical_exam = Cervical exam +contact_summary.maternal_exam.cervix_dilated = Cervix dilated +contact_summary.maternal_exam.oedema_present = Oedema present +contact_summary.maternal_exam.oedema_type = Oedema type +contact_summary.maternal_exam.oedema_severity = Oedema severity + +contact_summary.maternal_exam.sfh = Symphysis-fundal height (SFH) +contact_summary.maternal_exam.fetal_movement_felt = Fetal movement felt +contact_summary.maternal_exam.fetal_heartbeat_present = Fetal heartbeat present +contact_summary.maternal_exam.fetal_heart_rate = Fetal heart rate +contact_summary.maternal_exam.second_fetal_heart_rate = Second fetal heart rate diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 055e73cdb..54171b8da 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,7 +221,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.8.0-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -232,7 +232,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.10.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java index db6e3d889..89d841ff6 100644 --- a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java +++ b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java @@ -1,6 +1,5 @@ package org.smartregister.anc.activity; -import android.app.Activity; import android.content.Intent; import org.greenrobot.eventbus.Subscribe; From f430666b9bb8d60bf2570889463bc226ff286de8 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Thu, 21 May 2020 12:55:28 +0300 Subject: [PATCH 030/302] update code with latest optimization code --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../anc/library/activity/ContactJsonFormActivity.java | 2 +- .../anc/library/activity/MainContactActivity.java | 2 +- .../anc/library/fragment/ContactWizardJsonFormFragment.java | 5 ++++- .../presenter/ContactWizardJsonFormFragmentPresenter.java | 6 ++++-- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index 62983d75b..ce4b73b6c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.2.9-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.1-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index d66c3c5cc..5dc5da57a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.32-1046.5-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.32-1050.2-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 4d4be62df..662e4d44e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -130,7 +130,7 @@ protected void checkBoxWriteValue(String stepName, String parentKey, String chil quickCheckDangerSignsSelectionHandler(fields); } - invokeRefreshLogic(value, popup, parentKey, childKey, stepName); + invokeRefreshLogic(value, popup, parentKey, childKey, stepName, false); return; } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 5fd46a950..17bd83f7e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -326,7 +326,7 @@ private void processRequiredStepsField(JSONObject object) throws Exception { Iterator keys = object.keys(); while (keys.hasNext()) { String key = keys.next(); - if (key.startsWith(RuleConstant.STEP)) { + if (key.startsWith(RuleConstant.STEP) && !object.getJSONObject(key).has("skipped")) { JSONArray stepArray = object.getJSONObject(key).getJSONArray(JsonFormConstants.FIELDS); for (int i = 0; i < stepArray.length(); i++) { JSONObject fieldObject = stepArray.getJSONObject(i); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index a7e39e154..43fdad1de 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -22,16 +22,19 @@ import android.widget.Toast; import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; import com.vijay.jsonwizard.interactors.JsonFormInteractor; +import org.apache.commons.lang3.StringUtils; +import org.json.JSONObject; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.presenter.ContactWizardJsonFormFragmentPresenter; import org.smartregister.anc.library.task.ANCNextProgressDialogTask; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.anc.library.viewstate.ContactJsonFormFragmentViewState; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java index 15a6f663e..9357b164e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java @@ -10,6 +10,7 @@ import com.vijay.jsonwizard.presenters.JsonWizardFormFragmentPresenter; import com.vijay.jsonwizard.widgets.NativeRadioButtonFactory; +import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; @@ -33,8 +34,9 @@ public void setUpToolBar() { @Override protected boolean moveToNextWizardStep() { - if (!"".equals(mStepDetails.optString(JsonFormConstants.NEXT))) { - JsonFormFragment next = ContactWizardJsonFormFragment.getFormFragment(mStepDetails.optString(ConstantsUtils.NEXT)); + String nextStep = getFormFragment().getJsonApi().nextStep(); + if (StringUtils.isNotBlank(nextStep)) { + JsonFormFragment next = ContactWizardJsonFormFragment.getFormFragment(nextStep); getView().hideKeyBoard(); getView().transactThis(next); return true; From 6ffddc0ce9e415789f318088b18930da65f3442f Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 28 May 2020 08:02:41 +0300 Subject: [PATCH 031/302] :zap: update the core version --- opensrp-anc/build.gradle | 4 ++-- .../adapter/CharacteristicsAdapter.java | 4 ++-- .../task/FetchSiteCharacteristicsTask.java | 4 +--- .../anc/library/fragment/MeFragmentTest.java | 21 +++++++++++++++++++ .../RegisterFragmentPresenterTest.java | 4 ++-- reference-app/build.gradle | 5 +++-- .../anc/application/AncApplication.java | 14 ++++++++----- .../anc/application/AncSyncConfiguration.java | 10 +++++++++ .../anc/interactor/LoginInteractor.java | 1 - 9 files changed, 50 insertions(+), 17 deletions(-) create mode 100644 opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 7bca35ee5..46cf84861 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -140,7 +140,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.8.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.6-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -151,7 +151,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.4001-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java index 7a71ee7f9..407558f3e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java @@ -34,8 +34,8 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { @Override public void onBindViewHolder(ViewHolder holder, int position) { - ServerSetting characteristic = mData.get(position); - holder.labelTextView.setText(characteristic.getLabel()); + ServerSetting characteristic = mData.get(position);String label = characteristic.getLabel() != null ? characteristic.getLabel() : ""; + holder.labelTextView.setText(label); holder.valueTextView.setText(characteristic.getValue() ? "Yes" : "No"); holder.info.setTag(characteristic.getKey()); holder.info.setTag(R.id.CHARACTERISTIC_DESC, characteristic.getDescription()); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchSiteCharacteristicsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchSiteCharacteristicsTask.java index 8a71573a2..fc8c4f98c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchSiteCharacteristicsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchSiteCharacteristicsTask.java @@ -24,9 +24,7 @@ public FetchSiteCharacteristicsTask(PopulationCharacteristicsContract.Presenter @Override protected List doInBackground(final Void... params) { ServerSettingsHelper helper = new ServerSettingsHelper(ConstantsUtils.PrefKeyUtils.SITE_CHARACTERISTICS); - List characteristics = helper.getServerSettings(); - - return characteristics; + return helper.getServerSettings(); } @Override diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java new file mode 100644 index 000000000..0891e12eb --- /dev/null +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java @@ -0,0 +1,21 @@ +package org.smartregister.anc.library.fragment; + +import org.junit.Before; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.activity.BaseUnitTest; + +public class MeFragmentTest extends BaseUnitTest { + @Mock + private AncLibrary ancLibrary; + + private MeFragment meFragment; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + meFragment = Mockito.spy(MeFragment.class); + } +} diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenterTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenterTest.java index 57927aa43..b775b4bf2 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenterTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenterTest.java @@ -89,7 +89,7 @@ public void testInitializeQueries() { private String countSelect(String tableName, String mainCondition) { SmartRegisterQueryBuilder countQueryBuilder = new SmartRegisterQueryBuilder(); - countQueryBuilder.SelectInitiateMainTableCounts(tableName); + countQueryBuilder.selectInitiateMainTableCounts(tableName); return countQueryBuilder.mainCondition(mainCondition); } @@ -104,7 +104,7 @@ private String mainSelect(String tableName, String mainCondition) { tableName + "." + DBConstantsUtils.KeyUtils.ANC_ID, tableName + "." + DBConstantsUtils.KeyUtils.DOB, tableName + "." + DBConstantsUtils.KeyUtils.DATE_REMOVED}; - queryBUilder.SelectInitiateMainTable(tableName, columns); + queryBUilder.selectInitiateMainTable(tableName, columns); return queryBUilder.mainCondition(mainCondition); } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 54171b8da..047e81e46 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -73,6 +73,7 @@ android { buildConfigField "long", "BUILD_TIMESTAMP", System.currentTimeMillis() + "L" buildConfigField "boolean", "IS_SYNC_SETTINGS", "true" buildConfigField "long", "EVENT_VERSION", System.currentTimeMillis() + "L" + buildConfigField "boolean", "RESOLVE_SETTINGS", "true" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true @@ -221,7 +222,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.8.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.8.6-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -232,7 +233,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.4001-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 767221f1f..4b21b20a7 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -63,11 +63,7 @@ public void onCreate() { LocationHelper.init(Utils.ALLOWED_LEVELS, Utils.DEFAULT_LOCATION_LEVEL); Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build()); - try { - Utils.saveLanguage("en"); - } catch (Exception e) { - Timber.e(e, " --> saveLanguage"); - } + setDefaultLanguage(); //init Job Manager JobManager.create(this).addJobCreator(new AncJobCreator()); @@ -84,6 +80,14 @@ public void onCreate() { } + private void setDefaultLanguage() { + try { + Utils.saveLanguage("en"); + } catch (Exception e) { + Timber.e(e, " --> saveLanguage"); + } + } + public static CommonFtsObject createCommonFtsObject() { if (commonFtsObject == null) { commonFtsObject = new CommonFtsObject(getFtsTables()); diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index d23dfc983..2d56ca871 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -22,6 +22,16 @@ public SyncFilter getSyncFilterParam() { return SyncFilter.TEAM_ID; } + @Override + public SyncFilter getSettingsSyncFilterParam() { + return super.getSettingsSyncFilterParam(); + } + + @Override + public boolean resolveSettings() { + return BuildConfig.RESOLVE_SETTINGS; + } + @Override public String getSyncFilterValue() { AllSharedPreferences sharedPreferences = diff --git a/reference-app/src/main/java/org/smartregister/anc/interactor/LoginInteractor.java b/reference-app/src/main/java/org/smartregister/anc/interactor/LoginInteractor.java index ff4b8bf6b..0c66911d0 100644 --- a/reference-app/src/main/java/org/smartregister/anc/interactor/LoginInteractor.java +++ b/reference-app/src/main/java/org/smartregister/anc/interactor/LoginInteractor.java @@ -42,7 +42,6 @@ protected void scheduleJobsImmediately() { @Override protected void processServerSettings(LoginResponse loginResponse) { - super.processServerSettings(loginResponse); AncLibrary.getInstance().populateGlobalSettings(); } From 2d9e0ad514c2124374f6ae20fe4aaecc5bcf5ad4 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 28 May 2020 14:02:40 +0300 Subject: [PATCH 032/302] :zap: added the setitngs API new endpoints --- opensrp-anc/build.gradle | 4 ++-- .../anc/library/util/ConstantsUtils.java | 4 ++++ reference-app/build.gradle | 6 +++-- .../anc/application/AncSyncConfiguration.java | 22 +++++++++++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 46cf84861..f804f68c3 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -56,7 +56,7 @@ android { minSdkVersion androidMinSdkVersion targetSdkVersion androidTargetSdkVersion versionCode 1 - versionName "1.3.0" + versionName "1.4.0" multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -151,7 +151,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.4001-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.5000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index de27f32aa..7a3b8f9a4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -239,4 +239,8 @@ public static class AttentionFlagUtils { public static class ClientUtils { public static final String ANC_ID = "ANC_ID"; } + + public static class SettingsSyncParams{ + public static final String LOCATION_ID = "locationId"; + } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 047e81e46..8cacedb00 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -19,7 +19,7 @@ jacoco { } // This variables are used by the version code & name generators ext.versionMajor = 1 -ext.versionMinor = 3 +ext.versionMinor = 4 ext.versionPatch = 0 ext.versionClassifier = null ext.isSnapshot = false @@ -74,6 +74,8 @@ android { buildConfigField "boolean", "IS_SYNC_SETTINGS", "true" buildConfigField "long", "EVENT_VERSION", System.currentTimeMillis() + "L" buildConfigField "boolean", "RESOLVE_SETTINGS", "true" + buildConfigField "boolean", "HAS_GLOBAL_SETTINGS", "true" + buildConfigField "boolean", "HAS_SETTINGS_SYNC", "true" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true @@ -233,7 +235,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.4001-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.11.5000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index 2d56ca871..ecc55f6c5 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -4,8 +4,10 @@ import org.smartregister.SyncFilter; import org.smartregister.anc.BuildConfig; import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.repository.AllSharedPreferences; +import java.util.ArrayList; import java.util.List; /** @@ -32,6 +34,26 @@ public boolean resolveSettings() { return BuildConfig.RESOLVE_SETTINGS; } + @Override + public boolean hasGlobalSettings() { + return BuildConfig.HAS_GLOBAL_SETTINGS; + } + + @Override + public boolean hasExtraSettingsSync() { + return BuildConfig.HAS_SETTINGS_SYNC; + } + + @Override + public List getExtraSettingsParameters() { + AllSharedPreferences sharedPreferences = AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(); + String providerId = sharedPreferences.fetchRegisteredANM(); + + List params = new ArrayList<>(); + params.add(ConstantsUtils.SettingsSyncParams.LOCATION_ID + "=" + sharedPreferences.fetchDefaultLocalityId(providerId)); + return params; + } + @Override public String getSyncFilterValue() { AllSharedPreferences sharedPreferences = From 0c8f1b63cad5f39ee1cc8e7b697e248c2a5d1443 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Fri, 29 May 2020 17:46:58 +0300 Subject: [PATCH 033/302] update popStack --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../library/activity/ContactJsonFormActivity.java | 2 +- .../fragment/ContactWizardJsonFormFragment.java | 13 +++---------- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/gradle.properties b/gradle.properties index ce4b73b6c..9df418453 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.1-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.4-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 5dc5da57a..7520472b0 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.32-1050.2-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.7.32-1137.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 662e4d44e..50c257d0b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -88,7 +88,7 @@ protected void initializeFormFragmentCore() { JsonWizardFormFragment contactJsonFormFragment = ContactWizardJsonFormFragment.getFormFragment(JsonFormConstants.FIRST_STEP_NAME); - getSupportFragmentManager().beginTransaction().add(com.vijay.jsonwizard.R.id.container, contactJsonFormFragment) + getSupportFragmentManager().beginTransaction().add(com.vijay.jsonwizard.R.id.container, contactJsonFormFragment).addToBackStack(contactJsonFormFragment.getArguments().getString(JsonFormConstants.STEPNAME)) .commit(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index 43fdad1de..3ebce96ab 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -22,12 +22,9 @@ import android.widget.Toast; import com.vijay.jsonwizard.activities.JsonFormActivity; -import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; import com.vijay.jsonwizard.interactors.JsonFormInteractor; -import org.apache.commons.lang3.StringUtils; -import org.json.JSONObject; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.domain.Contact; @@ -144,15 +141,10 @@ protected void setupCustomUI() { } } + // @Override public void onResume() { super.onResume(); -// no need repetition -// if (!getJsonApi().isPreviousPressed()) { -// skipStepsOnNextPressed(); -// } else { -// skipStepOnPreviousPressed(); -// } setJsonFormFragment(this); } @@ -361,7 +353,8 @@ public void onClick(View view) { view.getId() == com.vijay.jsonwizard.R.id.previous_icon) { assert getFragmentManager() != null; getJsonApi().setPreviousPressed(true); - getFragmentManager().popBackStack(); + getJsonApi().getStack().pop(); + getFragmentManager().popBackStack(getJsonApi().getStack().pop(), 0); } else if (view.getId() == R.id.refer) { displayReferralDialog(); } else if (view.getId() == R.id.proceed && getActivity() != null) { From dd5c4c347fc604c2aab7e38ab16a3cc9bae3dc02 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Wed, 24 Jun 2020 12:17:08 +0300 Subject: [PATCH 034/302] add contact sequencing logic --- gradle.properties | 2 +- opensrp-anc/build.gradle | 2 +- .../main/assets/json.form/anc_register.json | 19 +++ .../smartregister/anc/library/AncLibrary.java | 9 ++ .../activity/ContactJsonFormActivity.java | 3 +- .../library/activity/MainContactActivity.java | 12 +- .../ContactWizardJsonFormFragment.java | 40 ++++-- .../library/interactor/ContactInteractor.java | 15 +- .../interactor/RegisterInteractor.java | 31 +++- .../library/presenter/ContactPresenter.java | 7 +- ...ontactWizardJsonFormFragmentPresenter.java | 9 +- .../library/repository/PatientRepository.java | 14 ++ .../anc/library/util/ANCJsonFormUtils.java | 87 ++++++----- .../anc/library/util/ConstantsUtils.java | 9 ++ .../anc/library/util/DBConstantsUtils.java | 1 + .../smartregister/anc/library/util/Utils.java | 136 ++++++++++++++++++ reference-app/src/main/assets/app.properties | 3 +- 17 files changed, 319 insertions(+), 80 deletions(-) diff --git a/gradle.properties b/gradle.properties index 9df418453..cfc79dc2a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.4-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.7-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 7520472b0..4f60e9556 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -145,7 +145,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.7.32-1137.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.9.2-r116-OPTIMIZED-LOCAL-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 5b49920f0..3e614184d 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -413,6 +413,25 @@ "openmrs_entity_id": "last_contact_record_date", "type": "hidden", "value": "" + }, + { + "key": "previous_visits", + "type": "repeating_group", + "reference_edit_text_hint": "# of visits", + "repeating_group_label": "", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "value": [ + { + "key": "visit_date", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "date_picker", + "hint": "Visit date" + } + ] } ] } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 6647905b1..4a5581706 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -25,6 +25,7 @@ import org.smartregister.anc.library.repository.PreviousContactRepository; import org.smartregister.anc.library.repository.RegisterQueryProvider; import org.smartregister.anc.library.util.AncMetadata; +import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; import org.smartregister.configurableviews.helper.JsonSpecHelper; @@ -70,6 +71,7 @@ public class AncLibrary { private int databaseVersion; private ActivityConfiguration activityConfiguration; private AncMetadata ancMetadata = new AncMetadata(); + private AppExecutors appExecutors; private AncLibrary(@NonNull Context context, int dbVersion, @NonNull ActivityConfiguration activityConfiguration, @Nullable SubscriberInfoIndex subscriberInfoIndex, @Nullable RegisterQueryProvider registerQueryProvider) { @@ -344,4 +346,11 @@ public void setRegisterQueryProvider(RegisterQueryProvider registerQueryProvider public AncMetadata getAncMetadata() { return ancMetadata; } + + public AppExecutors getAppExecutors() { + if (appExecutors == null) { + appExecutors = new AppExecutors(); + } + return appExecutors; + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 50c257d0b..0b163ce26 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -88,8 +88,7 @@ protected void initializeFormFragmentCore() { JsonWizardFormFragment contactJsonFormFragment = ContactWizardJsonFormFragment.getFormFragment(JsonFormConstants.FIRST_STEP_NAME); - getSupportFragmentManager().beginTransaction().add(com.vijay.jsonwizard.R.id.container, contactJsonFormFragment).addToBackStack(contactJsonFormFragment.getArguments().getString(JsonFormConstants.STEPNAME)) - .commit(); + getSupportFragmentManager().beginTransaction().add(com.vijay.jsonwizard.R.id.container, contactJsonFormFragment).commit(); } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 17bd83f7e..695d6f372 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -21,6 +21,7 @@ import org.smartregister.anc.library.model.PartialContact; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.presenter.ContactPresenter; +import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; @@ -92,7 +93,7 @@ private void initializeMainContactContainers() { process(contactForms); requiredFieldsMap.put(ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS_ENCOUNTER_TYPE, 0); - if (StringUtils.isNotBlank(formInvalidFields) && contactNo > 1) { + if (StringUtils.isNotBlank(formInvalidFields) && contactNo > 1 && !PatientRepository.isFirstVisit(baseEntityId)) { String[] pair = formInvalidFields.split(":"); if (ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(pair[0])) requiredFieldsMap.put(pair[0], Integer.parseInt(pair[1])); @@ -223,7 +224,7 @@ private void loadContactGlobalsConfig() throws IOException { private void process(String[] mainContactForms) { //Fetch and load previously saved values try { - if (contactNo > 1) { + if (contactNo > 1 && !PatientRepository.isFirstVisit(baseEntityId)) { for (String formEventType : new ArrayList<>(Arrays.asList(mainContactForms))) { if (eventToFileMap.containsValue(formEventType)) { updateGlobalValuesWithDefaults(formEventType); @@ -315,7 +316,8 @@ private void processRequiredStepsField(JSONObject object) throws Exception { if (!ConstantsUtils.JsonFormUtils.ANC_TEST_ENCOUNTER_TYPE.equals(encounterType) && (requiredFieldsMap.size() == 0 || !requiredFieldsMap.containsKey(encounterType))) { requiredFieldsMap.put(object.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_TYPE), 0); } - if (contactNo > 1 && ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(encounterType)) { + if (contactNo > 1 && ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(encounterType) + && !PatientRepository.isFirstVisit(baseEntityId)) { requiredFieldsMap.put(ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE, 0); } @@ -738,6 +740,10 @@ public void loadGlobals(Contact contact) { map.put(ConstantsUtils.PREVIOUS_CONTACT_NO, contactNo > 1 ? String.valueOf(contactNo - 1) : "0"); map.put(ConstantsUtils.AGE, womanAge); + if (ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + map.put(ConstantsUtils.IS_FIRST_CONTACT, String.valueOf(PatientRepository.isFirstVisit(baseEntityId))); + } + //Inject gestational age when it has not been calculated from profile form if (TextUtils.isEmpty(formGlobalValues.get(ConstantsUtils.GEST_AGE_OPENMRS))) { map.put(ConstantsUtils.GEST_AGE_OPENMRS, String.valueOf(presenter.getGestationAge())); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index 3ebce96ab..db6570cff 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -29,7 +29,6 @@ import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.presenter.ContactWizardJsonFormFragmentPresenter; -import org.smartregister.anc.library.task.ANCNextProgressDialogTask; import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; @@ -141,7 +140,6 @@ protected void setupCustomUI() { } } - // @Override public void onResume() { super.onResume(); @@ -286,15 +284,25 @@ public void displayQuickCheckBottomReferralButtons(boolean none, boolean other) proceedButton = buttonLayout.findViewById(R.id.proceed); } - setQuickCheckButtonsVisible(none, other, buttonLayout, referButton, proceedButton); - setQuickCheckButtonsInvisible(none, other, buttonLayout, referButton, proceedButton); - if ((none && !other) && buttonLayout != null) { - referButton.setVisibility(View.GONE); - } + Button finalReferButton = referButton; + Button finalProceedButton = proceedButton; + getJsonApi().getAppExecutors().mainThread().execute(new Runnable() { + @Override + public void run() { + setQuickCheckButtonsVisible(none, other, buttonLayout, finalReferButton, finalProceedButton); + setQuickCheckButtonsInvisible(none, other, buttonLayout, finalReferButton, finalProceedButton); + + if ((none && !other) && buttonLayout != null) { + finalReferButton.setVisibility(View.GONE); + } + } + }); + } + @Nullable private LinearLayout getQuickCheckButtonsLayout() { LinearLayout linearLayout = (LinearLayout) this.getView(); @@ -339,11 +347,22 @@ public void onClick(View view) { if (view.getId() == com.vijay.jsonwizard.R.id.next || view.getId() == com.vijay.jsonwizard.R.id.next_icon) { Object tag = view.getTag(com.vijay.jsonwizard.R.id.NEXT_STATE); if (tag == null) { - new ANCNextProgressDialogTask(getJsonFormFragment()).execute(); + getJsonApi().getAppExecutors().diskIO().execute(new Runnable() { + @Override + public void run() { + next(); + } + }); +// new ANCNextProgressDialogTask(getJsonFormFragment()).execute(); } else { boolean next = (boolean) tag; if (next) { - new ANCNextProgressDialogTask(getJsonFormFragment()).execute(); + getJsonApi().getAppExecutors().diskIO().execute(new Runnable() { + @Override + public void run() { + next(); + } + }); } else { savePartial = true; save(); @@ -353,8 +372,7 @@ public void onClick(View view) { view.getId() == com.vijay.jsonwizard.R.id.previous_icon) { assert getFragmentManager() != null; getJsonApi().setPreviousPressed(true); - getJsonApi().getStack().pop(); - getFragmentManager().popBackStack(getJsonApi().getStack().pop(), 0); + getFragmentManager().popBackStack(); } else if (view.getId() == R.id.refer) { displayReferralDialog(); } else if (view.getId() == R.id.proceed && getActivity() != null) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java index 7e26aca81..d9f6fa3af 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java @@ -21,10 +21,10 @@ import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; import org.smartregister.anc.library.rule.ContactRule; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.clientandeventmodel.Event; import org.smartregister.repository.DetailsRepository; @@ -129,9 +129,9 @@ public HashMap finalizeContactForm(final Map det addReferralGa(baseEntityId, details); } - Pair eventPair = ANCJsonFormUtils.createContactVisitEvent(formSubmissionIDs, details); + Pair eventPair = ANCJsonFormUtils.createVisitAndUpdateEvent(formSubmissionIDs, details); if (eventPair != null) { - createEvent(baseEntityId, new JSONObject(facts.asMap()).toString(), eventPair, referral); + createEvent(baseEntityId, new JSONObject(facts.asMap()).toString(), eventPair, referral, getCurrentContactState(baseEntityId)); JSONObject updateClientEventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(eventPair.second)); AncLibrary.getInstance().getEcSyncHelper().addEvent(baseEntityId, updateClientEventJson); } @@ -211,14 +211,9 @@ private void addReferralGa(String baseEntityId, Map details) { } private void createEvent(String baseEntityId, String attentionFlagsString, Pair eventPair, - String referral) + String referral, String currentContactState) throws JSONException { - Event event = eventPair.first; - event.addDetails(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS, attentionFlagsString); - String currentContactState = getCurrentContactState(baseEntityId); - if (currentContactState != null && referral == null) { - event.addDetails(ConstantsUtils.DetailsKeyUtils.PREVIOUS_CONTACTS, currentContactState); - } + Event event = Utils.addContactVisitDetails(attentionFlagsString, eventPair.first, referral, currentContactState); JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(event)); AncLibrary.getInstance().getEcSyncHelper().addEvent(baseEntityId, eventJson); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index ef85b82c0..6b3197fca 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -6,16 +6,17 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; +import org.json.JSONException; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.event.PatientRemovedEvent; import org.smartregister.anc.library.helper.ECSyncHelper; import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; @@ -23,10 +24,10 @@ import org.smartregister.domain.UniqueId; import org.smartregister.job.PullUniqueIdsServiceJob; import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.repository.BaseRepository; import org.smartregister.repository.UniqueIdRepository; import org.smartregister.sync.ClientProcessorForJava; +import java.util.Collections; import java.util.Date; import timber.log.Timber; @@ -79,8 +80,15 @@ public void getNextUniqueId(final Triple triple, public void saveRegistration(final Pair pair, final String jsonString, final boolean isEditMode, final RegisterContract.InteractorCallBack callBack) { Runnable runnable = () -> { + saveRegistration(pair, jsonString, isEditMode); + String baseEntityId = getBaseEntityId(pair); + + if (!isEditMode && ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + createPartialPreviousEvent(pair, baseEntityId); + } + appExecutors.mainThread().execute(() -> { callBack.setBaseEntityRegister(baseEntityId); callBack.onRegistrationSaved(isEditMode); @@ -90,6 +98,20 @@ public void saveRegistration(final Pair pair, final String jsonSt appExecutors.diskIO().execute(runnable); } + //this creates partial previous visit events + private void createPartialPreviousEvent(Pair pair, String baseEntityId) { + appExecutors.diskIO().execute(() -> { + try { + String strPreviousVisitsMap = pair.second.getIdentifiers().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); + if (StringUtils.isNotBlank(strPreviousVisitsMap)) { + Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); + } + } catch (JSONException e) { + Timber.e(e); + } + }); + } + @Override public void removeWomanFromANCRegister(final String closeFormJsonString, final String providerId) { Runnable runnable = () -> { @@ -205,10 +227,7 @@ private void saveRegistration(Pair pair, String jsonString, boole long lastSyncTimeStamp = getAllSharedPreferences().fetchLastUpdatedAtDate(0); Date lastSyncDate = new Date(lastSyncTimeStamp); - - - // Todo: Use the event clients from above here - getClientProcessorForJava().processClient(getSyncHelper().getEvents(lastSyncDate, BaseRepository.TYPE_Unprocessed)); + getClientProcessorForJava().processClient(getSyncHelper().getEvents(Collections.singletonList(baseEvent.getFormSubmissionId()))); getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); } catch (Exception e) { Timber.e(e, " --> saveRegistration"); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactPresenter.java index d127c48cb..b0e8478ea 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactPresenter.java @@ -1,7 +1,6 @@ package org.smartregister.anc.library.presenter; import android.content.Context; -import android.util.Log; import com.vijay.jsonwizard.constants.JsonFormConstants; @@ -19,6 +18,8 @@ import java.lang.ref.WeakReference; import java.util.Map; +import timber.log.Timber; + public class ContactPresenter implements ContactContract.Presenter, ContactContract.InteractorCallback { public static final String TAG = ContactPresenter.class.getName(); @@ -136,10 +137,10 @@ public void startForm(Object tag) { getView().startFormActivity(form, contact); } } catch (JSONException e) { - Log.e(TAG, Log.getStackTraceString(e)); + Timber.e(e); } } catch (Exception e) { - Log.e(TAG, Log.getStackTraceString(e)); + Timber.e(e); getView().displayToast(R.string.error_unable_to_start_form); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java index 9357b164e..9b80a5fff 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactWizardJsonFormFragmentPresenter.java @@ -8,6 +8,7 @@ import com.vijay.jsonwizard.fragments.JsonFormFragment; import com.vijay.jsonwizard.interactors.JsonFormInteractor; import com.vijay.jsonwizard.presenters.JsonWizardFormFragmentPresenter; +import com.vijay.jsonwizard.views.JsonFormFragmentView; import com.vijay.jsonwizard.widgets.NativeRadioButtonFactory; import org.apache.commons.lang3.StringUtils; @@ -37,8 +38,11 @@ protected boolean moveToNextWizardStep() { String nextStep = getFormFragment().getJsonApi().nextStep(); if (StringUtils.isNotBlank(nextStep)) { JsonFormFragment next = ContactWizardJsonFormFragment.getFormFragment(nextStep); - getView().hideKeyBoard(); - getView().transactThis(next); + JsonFormFragmentView jsonFormFragmentView = getView(); + if (jsonFormFragmentView != null) { + jsonFormFragmentView.hideKeyBoard(); + jsonFormFragmentView.transactThis(next); + } return true; } return false; @@ -64,7 +68,6 @@ public void onClick(View view) { } } - @Override protected void nativeRadioButtonClickActions(View view) { String type = (String) view.getTag(com.vijay.jsonwizard.R.id.specify_type); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index 87a51b561..d7f62006f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.repository; import android.content.ContentValues; +import android.support.annotation.NonNull; import net.sqlcipher.Cursor; import net.sqlcipher.database.SQLiteDatabase; @@ -63,6 +64,19 @@ public static Map getWomanProfileDetails(String baseEntityId) { return null; } + public static boolean isFirstVisit(@NonNull String baseEntityId) { + SQLiteDatabase sqLiteDatabase = getMasterRepository().getReadableDatabase(); + Cursor cursor = sqLiteDatabase.query(getRegisterQueryProvider().getDetailsTable(), + new String[]{DBConstantsUtils.KeyUtils.EDD}, + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ? ", + new String[]{baseEntityId}, null, null, null, "1"); + String isFirstVisit = null; + if (cursor != null && cursor.moveToFirst()) { + isFirstVisit = cursor.getString(cursor.getColumnIndex(DBConstantsUtils.KeyUtils.EDD)); + } + return StringUtils.isBlank(isFirstVisit); + } + protected static Repository getMasterRepository() { return DrishtiApplication.getInstance().getRepository(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 838ce1acf..18781f978 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -33,7 +33,6 @@ import org.smartregister.anc.library.domain.YamlConfigWrapper; import org.smartregister.anc.library.model.ContactSummaryModel; import org.smartregister.anc.library.model.Task; -import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; import org.smartregister.clientandeventmodel.FormEntityConstants; @@ -65,8 +64,10 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import timber.log.Timber; @@ -223,15 +224,18 @@ public static Pair processRegistrationForm(AllSharedPreferences a JSONObject metadata = ANCJsonFormUtils.getJSONObject(jsonForm, METADATA); addLastInteractedWith(fields); getDobStrings(fields); - initializeFirstContactValues(fields); + String previousVisitsMap = initializeFirstContactValues(fields); processLocationFields(fields); - FormTag formTag = getFormTag(allSharedPreferences); + FormTag formTag = getFormTag(allSharedPreferences); Client baseClient = org.smartregister.util.JsonFormUtils.createBaseClient(fields, formTag, entityId); Event baseEvent = org.smartregister.util.JsonFormUtils .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); + if (previousVisitsMap != null) { + baseEvent.addIdentifier(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP, previousVisitsMap); + } tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs return Pair.create(baseClient, baseEvent); @@ -298,23 +302,52 @@ private static void getDobStrings(JSONArray fields) throws JSONException { } } - private static void initializeFirstContactValues(JSONArray fields) throws JSONException { + private static String initializeFirstContactValues(JSONArray fields) throws JSONException { //initialize first contact values + String strGroup = null; + + int nextContact = 1; + + String nextContactDate = Utils.convertDateFormat(Calendar.getInstance().getTime(), Utils.DB_DF); + + if (ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + HashMap> previousVisitsMap = Utils.buildRepeatingGroupValues(fields, ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS); + if (!previousVisitsMap.isEmpty()) { + + nextContact = previousVisitsMap.size() + 1; + + strGroup = ANCJsonFormUtils.gson.toJson(previousVisitsMap); + + Set>> set = previousVisitsMap.entrySet(); + + HashMap hashMap = new LinkedHashMap<>(); + + for (Map.Entry> entry : set) { + hashMap = entry.getValue(); + } + + JSONObject lastContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); + lastContactDateJSONObject.put(ANCJsonFormUtils.VALUE, hashMap.get(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE)); + } + } JSONObject nextContactJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); if (nextContactJSONObject.has(JsonFormConstants.VALUE) && "".equals(nextContactJSONObject.getString(JsonFormConstants.VALUE))) { - nextContactJSONObject.put(ANCJsonFormUtils.VALUE, 1); + nextContactJSONObject.put(ANCJsonFormUtils.VALUE, nextContact); } JSONObject nextContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE); if (nextContactDateJSONObject.has(JsonFormConstants.VALUE) && "".equals(nextContactDateJSONObject.getString(JsonFormConstants.VALUE))) { - nextContactDateJSONObject.put(ANCJsonFormUtils.VALUE, Utils.convertDateFormat(Calendar.getInstance().getTime(), Utils.DB_DF)); + nextContactDateJSONObject.put(ANCJsonFormUtils.VALUE, nextContactDate); } + + return strGroup; } + @NotNull - private static FormTag getFormTag(AllSharedPreferences allSharedPreferences) { + public static FormTag getFormTag(AllSharedPreferences allSharedPreferences) { FormTag formTag = new FormTag(); formTag.providerId = allSharedPreferences.fetchRegisteredANM(); formTag.appVersion = BuildConfig.VERSION_CODE; @@ -322,7 +355,7 @@ private static FormTag getFormTag(AllSharedPreferences allSharedPreferences) { return formTag; } - private static void tagSyncMetadata(AllSharedPreferences allSharedPreferences, Event event) { + public static void tagSyncMetadata(AllSharedPreferences allSharedPreferences, Event event) { String providerId = allSharedPreferences.fetchRegisteredANM(); event.setProviderId(providerId); event.setLocationId(allSharedPreferences.fetchDefaultLocalityId(providerId)); @@ -760,45 +793,24 @@ public static String getAutoPopulatedSiteCharacteristicsEditFormString(Context c return ""; } - public static Pair createContactVisitEvent(List formSubmissionIDs, - Map womanDetails) { + public static Pair createVisitAndUpdateEvent(List formSubmissionIDs, + Map womanDetails) { if (formSubmissionIDs.size() < 1 && womanDetails.get(ConstantsUtils.REFERRAL) == null) { return null; } try { - - String contactNo = womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT); - String contactStartDate = womanDetails.get(DBConstantsUtils.KeyUtils.VISIT_START_DATE); String baseEntityId = womanDetails.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID); - Event contactVisitEvent = (Event) new Event().withBaseEntityId(baseEntityId).withEventDate(new Date()) - .withEventType(ConstantsUtils.EventTypeUtils.CONTACT_VISIT).withEntityType(DBConstantsUtils.CONTACT_ENTITY_TYPE) - .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()) - .withDateCreated(getContactStartDate(contactStartDate)); - - String currentContactNo; - if (womanDetails.get(ConstantsUtils.REFERRAL) == null) { - currentContactNo = ConstantsUtils.CONTACT + " " + contactNo; - } else { - currentContactNo = ConstantsUtils.CONTACT + " " + womanDetails.get(ConstantsUtils.REFERRAL); - } - contactVisitEvent.addDetails(ConstantsUtils.CONTACT, currentContactNo); - contactVisitEvent.addDetails(ConstantsUtils.FORM_SUBMISSION_IDS, formSubmissionIDs.toString()); - contactVisitEvent.addDetails(ConstantsUtils.OPEN_TEST_TASKS, String.valueOf(getOpenTasks(baseEntityId))); - - tagSyncMetadata(AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(), - contactVisitEvent); - - PatientRepository.updateContactVisitStartDate(baseEntityId, null);//reset contact visit date - + Event contactVisitEvent = Utils.createContactVisitEvent(formSubmissionIDs, womanDetails, String.valueOf(getOpenTasks(baseEntityId))); //Update client EventClientRepository db = AncLibrary.getInstance().getEventClientRepository(); + JSONObject clientForm = db.getClientByBaseEntityId(baseEntityId); JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, contactNo); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, contactVisitEvent.getDetails().get(ConstantsUtils.CONTACT)); attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); @@ -808,13 +820,10 @@ public static Pair createContactVisitEvent(List formSubmis attributes.put(DBConstantsUtils.KeyUtils.EDD, womanDetails.get(DBConstantsUtils.KeyUtils.EDD)); clientForm.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); - FormTag formTag = getFormTag(AncLibrary.getInstance().getContext().allSharedPreferences()); - formTag.childLocationId = LocationHelper.getInstance().getChildLocationId(); - formTag.locationId = LocationHelper.getInstance().getParentLocationId(); - db.addorUpdateClient(baseEntityId, clientForm); Event updateClientEvent = createUpdateClientDetailsEvent(baseEntityId); + return Pair.create(contactVisitEvent, updateClientEvent); } catch (Exception e) { @@ -824,7 +833,7 @@ public static Pair createContactVisitEvent(List formSubmis } - private static Date getContactStartDate(String contactStartDate) { + public static Date getContactStartDate(String contactStartDate) { try { return new LocalDate(contactStartDate).toDate(); } catch (Exception e) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index 26e2286af..b75f3e3de 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -67,10 +67,16 @@ public abstract class ConstantsUtils { public static final String DUE = "Due"; public static final String OPEN_TEST_TASKS = "open_test_tasks"; public static final String ANDROID_SWITCHER = "android:switcher:"; + public static final String IS_FIRST_CONTACT = "is_first_contact"; public interface Properties { String CAN_SAVE_SITE_INITIAL_SETTING = "CAN_SAVE_INITIAL_SITE_SETTING"; String MAX_CONTACT_SCHEDULE_DISPLAYED = "MAX_CONTACT_SCHEDULE_DISPLAYED"; + String DUE_CHECK_STRATEGY = "DUE_CHECK_STRATEGY"; + } + + public interface DueCheckStrategy { + String CHECK_FOR_FIRST_CONTACT = "check_for_first_contact"; } public interface TemplateUtils { @@ -142,6 +148,9 @@ public static class JsonFormKeyUtils { public static final String STEP1 = "step1"; public static final String FIELDS = "fields"; public static final String VILLAGE = "village"; + public static final String PREVIOUS_VISITS = "previous_visits"; + public static final String VISIT_DATE = "visit_date"; + public static final String PREVIOUS_VISITS_MAP = "previous_visits_map"; } public static class JsonFormExtraUtils { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java index cac4d827f..f4807e0d3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java @@ -43,5 +43,6 @@ public static final class KeyUtils { public static final String LAST_CONTACT_RECORD_DATE = "last_contact_record_date"; public static final String RELATIONAL_ID = "relationalid"; public static final String VISIT_START_DATE = "visit_start_date"; + public static final String IS_FIRST_VISIT = "is_first_visit"; } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index bd91eb018..33981a43b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -50,8 +50,11 @@ import org.smartregister.anc.library.model.PartialContact; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.repository.ContactTasksRepository; +import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.rule.AlertRule; +import org.smartregister.clientandeventmodel.Event; import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.util.JsonFormUtils; import org.smartregister.view.activity.DrishtiApplication; import java.io.IOException; @@ -64,6 +67,7 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -714,4 +718,136 @@ private void createAndPersistPartialContact(String baseEntityId, int contactNo, public ContactTasksRepository getContactTasksRepositoryHelper() { return AncLibrary.getInstance().getContactTasksRepository(); } + + public static String getDueCheckStrategy() { + return getProperties(AncLibrary.getInstance().getApplicationContext()).getProperty(ConstantsUtils.Properties.DUE_CHECK_STRATEGY, ""); + } + + public static HashMap> buildRepeatingGroupValues(@NonNull JSONArray fields, String fieldName) throws JSONException { + ArrayList keysArrayList = new ArrayList<>(); + JSONObject jsonObject = JsonFormUtils.getFieldJSONObject(fields, fieldName); + HashMap> repeatingGroupMap = new LinkedHashMap<>(); + if (jsonObject != null) { + JSONArray jsonArray = jsonObject.optJSONArray(JsonFormConstants.VALUE); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject valueField = jsonArray.optJSONObject(i); + String fieldKey = valueField.optString(JsonFormConstants.KEY); + keysArrayList.add(fieldKey); + } + + for (int k = 0; k < fields.length(); k++) { + JSONObject valueField = fields.optJSONObject(k); + String fieldKey = valueField.optString(JsonFormConstants.KEY); + String fieldValue = valueField.optString(JsonFormConstants.VALUE); + + if (fieldKey.contains("_")) { + fieldKey = fieldKey.substring(0, fieldKey.lastIndexOf("_")); + if (keysArrayList.contains(fieldKey) && StringUtils.isNotBlank(fieldValue)) { + String fieldKeyId = valueField.optString(JsonFormConstants.KEY).substring(fieldKey.length() + 1); + valueField.put(JsonFormConstants.KEY, fieldKey); + HashMap hashMap = repeatingGroupMap.get(fieldKeyId) == null ? new HashMap<>() : repeatingGroupMap.get(fieldKeyId); + hashMap.put(fieldKey, fieldValue); + repeatingGroupMap.put(fieldKeyId, hashMap); + } + } + } + } + return repeatingGroupMap; + } + + public static Event createContactVisitEvent(@NonNull List formSubmissionIDs, + @NonNull Map womanDetails, + @Nullable String openTasks) { + + try { + String contactNo = womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT); + String contactStartDate = womanDetails.get(DBConstantsUtils.KeyUtils.VISIT_START_DATE); + String baseEntityId = womanDetails.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID); + + Event contactVisitEvent = (Event) new Event().withBaseEntityId(baseEntityId).withEventDate(new Date()) + .withEventType(ConstantsUtils.EventTypeUtils.CONTACT_VISIT).withEntityType(DBConstantsUtils.CONTACT_ENTITY_TYPE) + .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()) + .withDateCreated(ANCJsonFormUtils.getContactStartDate(contactStartDate)); + + String currentContactNo; + + if (womanDetails.get(ConstantsUtils.REFERRAL) == null) { + currentContactNo = ConstantsUtils.CONTACT + " " + contactNo; + } else { + currentContactNo = ConstantsUtils.CONTACT + " " + womanDetails.get(ConstantsUtils.REFERRAL); + } + + contactVisitEvent.addDetails(ConstantsUtils.CONTACT, currentContactNo); + contactVisitEvent.addDetails(ConstantsUtils.FORM_SUBMISSION_IDS, formSubmissionIDs.toString()); + contactVisitEvent.addDetails(ConstantsUtils.OPEN_TEST_TASKS, openTasks); + + ANCJsonFormUtils.tagSyncMetadata(AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(), + contactVisitEvent); + + PatientRepository.updateContactVisitStartDate(baseEntityId, null);//reset contact visit date + + return contactVisitEvent; + + } catch (NullPointerException e) { + Timber.e(e, " --> createContactVisitEvent"); + return null; + } + + } + + public static void createPreviousVisitFromGroup(@NonNull String strGroup, @NonNull String baseEntityId) throws JSONException { + JSONObject jsonObject = new JSONObject(strGroup); + Iterator repeatingGroupKeys = jsonObject.keys(); + List currentFormSubmissionIds = new ArrayList<>(); + + int count = 0; + + while (repeatingGroupKeys.hasNext()) { + + ++count; + + JSONObject jsonSingleVisitObject = jsonObject.optJSONObject(repeatingGroupKeys.next()); + + String contactDate = jsonSingleVisitObject.optString(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE); + + Facts entries = new Facts(); + + entries.put(ConstantsUtils.CONTACT_DATE, contactDate); + + HashMap details = new HashMap<>(); + + details.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, String.valueOf(count + 1)); + + details.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, baseEntityId); + + Event contactVisitEvent = Utils.createContactVisitEvent(new ArrayList<>(), details, null); + + if (contactVisitEvent != null) { + JSONObject factsJsonObject = new JSONObject(ANCJsonFormUtils.gson.toJson(entries.asMap())); + Event event = Utils.addContactVisitDetails("", contactVisitEvent, null, factsJsonObject.toString()); + JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(event)); + AncLibrary.getInstance().getEcSyncHelper().addEvent(baseEntityId, eventJson); + currentFormSubmissionIds.add(event.getFormSubmissionId()); + } + } + + long lastSyncTimeStamp = Utils.getAllSharedPreferences().fetchLastUpdatedAtDate(0); + Date lastSyncDate = new Date(lastSyncTimeStamp); + try { + AncLibrary.getInstance().getClientProcessorForJava().processClient(AncLibrary.getInstance().getEcSyncHelper().getEvents(currentFormSubmissionIds)); + Utils.getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); + } catch (Exception e) { + Timber.e(e); + } + } + + + public static Event addContactVisitDetails(String attentionFlagsString, Event event, + String referral, String currentContactState) { + event.addDetails(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS, attentionFlagsString); + if (currentContactState != null && referral == null) { + event.addDetails(ConstantsUtils.DetailsKeyUtils.PREVIOUS_CONTACTS, currentContactState); + } + return event; + } } diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index 906e7afbc..7c8570781 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -3,4 +3,5 @@ PORT=-1 SHOULD_VERIFY_CERTIFICATE=false SYNC_DOWNLOAD_BATCH_SIZE=100 CAN_SAVE_INITIAL_SITE_SETTING=false -MAX_CONTACT_SCHEDULE_DISPLAYED=5 \ No newline at end of file +MAX_CONTACT_SCHEDULE_DISPLAYED=5 +DUE_CHECK_STRATEGY=check_for_first_contact \ No newline at end of file From bdc4954dedc4c00b86c4a451acba1924f0050020 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Wed, 24 Jun 2020 12:41:26 +0300 Subject: [PATCH 035/302] remove due check strategy config --- .../anc/library/util/ANCJsonFormUtils.java | 19 +++++++----- .../smartregister/anc/library/util/Utils.java | 30 +++++++++++++++---- reference-app/src/main/assets/app.properties | 3 +- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 18781f978..2a5030d65 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -302,8 +302,13 @@ private static void getDobStrings(JSONArray fields) throws JSONException { } } - private static String initializeFirstContactValues(JSONArray fields) throws JSONException { - //initialize first contact values + /*** + * Initializes the values in the mother details table used by contact containers + * @param fields {@link JSONArray} + * @return + * @throws JSONException + */ + private static String initializeFirstContactValues(@NonNull JSONArray fields) throws JSONException { String strGroup = null; int nextContact = 1; @@ -318,16 +323,16 @@ private static String initializeFirstContactValues(JSONArray fields) throws JSON strGroup = ANCJsonFormUtils.gson.toJson(previousVisitsMap); - Set>> set = previousVisitsMap.entrySet(); + Set>> previousVisitsMapSet = previousVisitsMap.entrySet(); - HashMap hashMap = new LinkedHashMap<>(); + HashMap previousVisitsMapItem = new LinkedHashMap<>(); - for (Map.Entry> entry : set) { - hashMap = entry.getValue(); + for (Map.Entry> entry : previousVisitsMapSet) { + previousVisitsMapItem = entry.getValue(); } JSONObject lastContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); - lastContactDateJSONObject.put(ANCJsonFormUtils.VALUE, hashMap.get(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE)); + lastContactDateJSONObject.put(ANCJsonFormUtils.VALUE, previousVisitsMapItem.get(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE)); } } JSONObject nextContactJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 33981a43b..3d0f4243b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -723,7 +723,14 @@ public static String getDueCheckStrategy() { return getProperties(AncLibrary.getInstance().getApplicationContext()).getProperty(ConstantsUtils.Properties.DUE_CHECK_STRATEGY, ""); } - public static HashMap> buildRepeatingGroupValues(@NonNull JSONArray fields, String fieldName) throws JSONException { + /*** + * Creates a map for repeating group fields and values + * @param fields {@link JSONArray} + * @param fieldName {@link String} + * @return {@link HashMap} + * @throws JSONException + */ + public static HashMap> buildRepeatingGroupValues(@NonNull JSONArray fields, @NonNull String fieldName) throws JSONException { ArrayList keysArrayList = new ArrayList<>(); JSONObject jsonObject = JsonFormUtils.getFieldJSONObject(fields, fieldName); HashMap> repeatingGroupMap = new LinkedHashMap<>(); @@ -755,6 +762,13 @@ public static HashMap> buildRepeatingGroupValues return repeatingGroupMap; } + /*** + * Creates contact visit event after each visit + * @param formSubmissionIDs {@link List} + * @param womanDetails {@link Map} + * @param openTasks {@link String} + * @return {@link Event} + */ public static Event createContactVisitEvent(@NonNull List formSubmissionIDs, @NonNull Map womanDetails, @Nullable String openTasks) { @@ -795,6 +809,12 @@ public static Event createContactVisitEvent(@NonNull List formSubmission } + /*** + * Creates partial previous visit events for clients from the registration form + * @param strGroup {@link String} + * @param baseEntityId {@link String} + * @throws JSONException + */ public static void createPreviousVisitFromGroup(@NonNull String strGroup, @NonNull String baseEntityId) throws JSONException { JSONObject jsonObject = new JSONObject(strGroup); Iterator repeatingGroupKeys = jsonObject.keys(); @@ -814,13 +834,13 @@ public static void createPreviousVisitFromGroup(@NonNull String strGroup, @NonNu entries.put(ConstantsUtils.CONTACT_DATE, contactDate); - HashMap details = new HashMap<>(); + HashMap womanDetails = new HashMap<>(); - details.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, String.valueOf(count + 1)); + womanDetails.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, String.valueOf(count + 1)); - details.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, baseEntityId); + womanDetails.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, baseEntityId); - Event contactVisitEvent = Utils.createContactVisitEvent(new ArrayList<>(), details, null); + Event contactVisitEvent = Utils.createContactVisitEvent(new ArrayList<>(), womanDetails, null); if (contactVisitEvent != null) { JSONObject factsJsonObject = new JSONObject(ANCJsonFormUtils.gson.toJson(entries.asMap())); diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index 7c8570781..906e7afbc 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -3,5 +3,4 @@ PORT=-1 SHOULD_VERIFY_CERTIFICATE=false SYNC_DOWNLOAD_BATCH_SIZE=100 CAN_SAVE_INITIAL_SITE_SETTING=false -MAX_CONTACT_SCHEDULE_DISPLAYED=5 -DUE_CHECK_STRATEGY=check_for_first_contact \ No newline at end of file +MAX_CONTACT_SCHEDULE_DISPLAYED=5 \ No newline at end of file From b72675ead4fb399036f40ed86b3e785295c3c109 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Wed, 24 Jun 2020 17:21:41 +0300 Subject: [PATCH 036/302] make anc profile activity configurable --- .../anc/library/activity/ActivityConfiguration.java | 10 ++++++++++ .../java/org/smartregister/anc/library/util/Utils.java | 3 +-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java index 553cff683..2e367dbb4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java @@ -12,12 +12,14 @@ public class ActivityConfiguration { private Class homeRegisterActivityClass; private Class landingPageActivityClass; private Class mainContactActivityClass; + private Class profileActivityClass; public ActivityConfiguration() { setHomeRegisterActivityClass(BaseHomeRegisterActivity.class); setLandingPageActivityClass(getHomeRegisterActivityClass()); setMainContactActivityClass(MainContactActivity.class); + setProfileActivityClass(ProfileActivity.class); } public Class getHomeRegisterActivityClass() { @@ -43,4 +45,12 @@ public Class getMainContactActivityClass() { public void setMainContactActivityClass(Class mainContactActivityClass) { this.mainContactActivityClass = mainContactActivityClass; } + + public Class getProfileActivityClass() { + return profileActivityClass; + } + + public void setProfileActivityClass(Class profileActivityClass) { + this.profileActivityClass = profileActivityClass; + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 3d0f4243b..067b03d36 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -42,7 +42,6 @@ import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.activity.ContactSummaryFinishActivity; -import org.smartregister.anc.library.activity.ProfileActivity; import org.smartregister.anc.library.domain.ButtonAlertStatus; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.event.BaseEvent; @@ -387,7 +386,7 @@ public static void navigateToHomeRegister(Context context, boolean isRemote, Cla } public static void navigateToProfile(Context context, HashMap patient) { - Intent intent = new Intent(context, ProfileActivity.class); + Intent intent = new Intent(context, AncLibrary.getInstance().getActivityConfiguration().getProfileActivityClass()); intent.putExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID, patient.get(DBConstantsUtils.KeyUtils.ID_LOWER_CASE)); intent.putExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP, patient); context.startActivity(intent); From 3f54903280c5f0bf83f3fc4dc1cb21aa4b5e22ac Mon Sep 17 00:00:00 2001 From: bennsimon Date: Thu, 25 Jun 2020 16:16:44 +0300 Subject: [PATCH 037/302] update snapshot version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cfc79dc2a..289630a26 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.7-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.9-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library From aa26c4662df5fb174a32f44aebd65f57ec1a1ad0 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Thu, 25 Jun 2020 16:17:56 +0300 Subject: [PATCH 038/302] remove unneeded column --- .../main/assets/json.form/anc_register.json | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 3e614184d..5b49920f0 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -413,25 +413,6 @@ "openmrs_entity_id": "last_contact_record_date", "type": "hidden", "value": "" - }, - { - "key": "previous_visits", - "type": "repeating_group", - "reference_edit_text_hint": "# of visits", - "repeating_group_label": "", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "value": [ - { - "key": "visit_date", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "date_picker", - "hint": "Visit date" - } - ] } ] } From 7e088f6699d521213fe624b26949dd2634ea57f4 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Fri, 26 Jun 2020 16:35:09 +0300 Subject: [PATCH 039/302] update null check for event details --- gradle.properties | 2 +- .../anc/library/interactor/RegisterInteractor.java | 14 ++++++++++---- .../anc/library/repository/PatientRepository.java | 2 ++ .../repository/PreviousContactRepository.java | 4 ++-- .../org/smartregister/anc/library/util/Utils.java | 8 +++++--- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/gradle.properties b/gradle.properties index 289630a26..efe63c14e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.9-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.11-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index 6b3197fca..d93425a8d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -98,13 +98,19 @@ public void saveRegistration(final Pair pair, final String jsonSt appExecutors.diskIO().execute(runnable); } - //this creates partial previous visit events + /*** + * creates partial previous visit events after creation of client + * @param pair {@link Pair} + * @param baseEntityId {@link String} + */ private void createPartialPreviousEvent(Pair pair, String baseEntityId) { appExecutors.diskIO().execute(() -> { try { - String strPreviousVisitsMap = pair.second.getIdentifiers().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); - if (StringUtils.isNotBlank(strPreviousVisitsMap)) { - Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); + if (pair.second != null && pair.second.getIdentifiers() != null) { + String strPreviousVisitsMap = pair.second.getIdentifiers().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); + if (StringUtils.isNotBlank(strPreviousVisitsMap)) { + Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); + } } } catch (JSONException e) { Timber.e(e); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index 184334e77..8ab625c5f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -73,7 +73,9 @@ public static boolean isFirstVisit(@NonNull String baseEntityId) { String isFirstVisit = null; if (cursor != null && cursor.moveToFirst()) { isFirstVisit = cursor.getString(cursor.getColumnIndex(DBConstantsUtils.KeyUtils.EDD)); + cursor.close(); } + return StringUtils.isBlank(isFirstVisit); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index eb6f4f9bd..08a025acc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -11,8 +11,8 @@ import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; -import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.repository.BaseRepository; @@ -310,7 +310,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool String[] selectionArgs = null; Facts previousContactFacts = new Facts(); try { - SQLiteDatabase db = getWritableDatabase(); + SQLiteDatabase db = getReadableDatabase(); if (StringUtils.isNotBlank(baseEntityId) && StringUtils.isNotBlank(contactNo)) { selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 067b03d36..9184b13f5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -227,9 +227,11 @@ public static void proceedToContact(String baseEntityId, HashMap ContactModel baseContactModel = new ContactModel(); JSONObject form = baseContactModel.getFormAsJson(quickCheck.getFormName(), baseEntityId, locationId); - JSONObject globals = new JSONObject(); - globals.put(ConstantsUtils.CONTACT_NO, personObjectClient.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT)); - form.put(ConstantsUtils.GLOBAL, globals); + if (ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + JSONObject globals = new JSONObject(); + globals.put(ConstantsUtils.IS_FIRST_CONTACT, PatientRepository.isFirstVisit(personObjectClient.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID))); + form.put(ConstantsUtils.GLOBAL, globals); + } String processedForm = ANCFormUtils.getFormJsonCore(partialContactRequest, form).toString(); From 1055065f0a3c605cc98dec70e7fbef8363218656 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Mon, 29 Jun 2020 09:40:54 +0300 Subject: [PATCH 040/302] fix next contact update --- gradle.properties | 2 +- .../org/smartregister/anc/library/util/ANCJsonFormUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index efe63c14e..bcac6f87f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.11-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.12-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index a694f9de9..7f845e91d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -815,7 +815,7 @@ public static Pair createVisitAndUpdateEvent(List formSubm JSONObject clientForm = db.getClientByBaseEntityId(baseEntityId); JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, contactVisitEvent.getDetails().get(ConstantsUtils.CONTACT)); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT)); attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); From d37270c85db5b96b77ceadddb7351a9f1ef94c9a Mon Sep 17 00:00:00 2001 From: bennsimon Date: Mon, 29 Jun 2020 11:20:30 +0300 Subject: [PATCH 041/302] update/fix tests --- .../interactor/RegisterInteractor.java | 4 ++-- .../task/LoadContactSummaryDataTask.java | 2 +- .../anc/library/util/ANCJsonFormUtils.java | 9 ++++++--- .../activity/BaseActivityUnitTest.java | 20 +++++++++++++++---- .../BaseHomeRegisterActivityTest.java | 2 ++ .../interactor/RegisterInteractorTest.java | 17 ++++++++++++++-- .../library/util/ANCJsonFormUtilsTest.java | 6 +++++- 7 files changed, 47 insertions(+), 13 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index d93425a8d..767b0fab1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -106,8 +106,8 @@ public void saveRegistration(final Pair pair, final String jsonSt private void createPartialPreviousEvent(Pair pair, String baseEntityId) { appExecutors.diskIO().execute(() -> { try { - if (pair.second != null && pair.second.getIdentifiers() != null) { - String strPreviousVisitsMap = pair.second.getIdentifiers().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); + if (pair.second != null && pair.second.getDetails() != null) { + String strPreviousVisitsMap = pair.second.getDetails().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); if (StringUtils.isNotBlank(strPreviousVisitsMap)) { Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java index bdb7e3191..3d6b263bb 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java @@ -64,7 +64,7 @@ protected void onPostExecute(Void result) { } catch (NullPointerException e) { clientDetails = new HashMap<>(); } - String edd = StringUtils.isNotBlank(facts.get(DBConstantsUtils.KeyUtils.EDD)) ? facts.get(DBConstantsUtils.KeyUtils.EDD) : Utils.reverseHyphenSeperatedValues(clientDetails.get(ConstantsUtils.EDD), "-"); + String edd = StringUtils.isNotBlank(facts.get(DBConstantsUtils.KeyUtils.EDD)) ? facts.get(DBConstantsUtils.KeyUtils.EDD) : clientDetails != null ? Utils.reverseHyphenSeperatedValues(clientDetails.get(ConstantsUtils.EDD), "-") : ""; String contactNo = String.valueOf(intent.getExtras().getInt(ConstantsUtils.IntentKeyUtils.CONTACT_NO)); if (edd != null && ((ContactSummaryFinishActivity) context).saveFinishMenuItem != null) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 7f845e91d..4e09524a9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -234,7 +234,7 @@ public static Pair processRegistrationForm(AllSharedPreferences a .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); if (previousVisitsMap != null) { - baseEvent.addIdentifier(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP, previousVisitsMap); + baseEvent.addDetails(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP, previousVisitsMap); } tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs @@ -528,6 +528,8 @@ private static LocationPickerView createLocationPickerView(Context context) { protected static void processPopulatableFields(Map womanClient, JSONObject jsonObject) throws JSONException { + AncMetadata ancMetadata = AncLibrary.getInstance().getAncMetadata(); + if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.DOB_ENTERED)) { getDobUsingEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.DOB); @@ -547,8 +549,9 @@ protected static void processPopulatableFields(Map womanClient, if (StringUtils.isNotBlank(womanClient.get(DBConstantsUtils.KeyUtils.DOB))) { jsonObject.put(ANCJsonFormUtils.VALUE, Utils.getAgeFromDate(womanClient.get(DBConstantsUtils.KeyUtils.DOB))); } - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.VILLAGE)) { - reverseLocationTree(jsonObject, womanClient.get(ConstantsUtils.JsonFormKeyUtils.VILLAGE)); + } else if (ancMetadata != null && ancMetadata.getFieldsWithLocationHierarchy() != null && + ancMetadata.getFieldsWithLocationHierarchy().contains(jsonObject.optString(ANCJsonFormUtils.KEY))) { + reverseLocationTree(jsonObject, womanClient.get(jsonObject.optString(ANCJsonFormUtils.KEY))); } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.EDD)) { formatEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.EDD); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java index f6b35a210..84cee149b 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java @@ -12,6 +12,8 @@ import org.smartregister.CoreLibrary; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.util.Utils; +import org.smartregister.configurableviews.ConfigurableViewsLibrary; +import org.smartregister.configurableviews.helper.ConfigurableViewsHelper; import org.smartregister.location.helper.LocationHelper; import org.smartregister.repository.AllSharedPreferences; import org.smartregister.repository.FormDataRepository; @@ -24,13 +26,19 @@ public abstract class BaseActivityUnitTest extends BaseUnitTest { public Context context; + @Mock private Repository repository; + @Mock private FormDataRepository formDataRepository; + @Mock private CoreLibrary coreLibrary; + @Mock + private ConfigurableViewsLibrary configurableViewsLibrary; + public void setUp() { MockitoAnnotations.initMocks(this); @@ -54,6 +62,10 @@ public void setUp() { context.configuration().getDrishtiApplication().setPassword(password); context.session().setPassword(password); + ReflectionHelpers.setStaticField(ConfigurableViewsLibrary.class, "instance", configurableViewsLibrary); + ConfigurableViewsHelper configurableViewsHelper = Mockito.mock(ConfigurableViewsHelper.class); + Mockito.when(configurableViewsLibrary.getConfigurableViewsHelper()).thenReturn(configurableViewsHelper); + DrishtiApplication drishtiApplication = Mockito.mock(DrishtiApplication.class); ReflectionHelpers.setStaticField(DrishtiApplication.class, "mInstance", drishtiApplication); @@ -63,13 +75,13 @@ public void setUp() { protected void destroyController() { try { - getActivity().finish(); - getActivityController().pause().stop().destroy(); //destroy controller if we can - + if (getActivity() != null) { + getActivity().finish(); + getActivityController().pause().stop().destroy(); //destroy controller if we can + } } catch (Exception e) { e.printStackTrace(); } - System.gc(); } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java index 2e2992015..6fad7becf 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java @@ -18,6 +18,7 @@ import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; +import org.robolectric.util.ReflectionHelpers; import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.domain.AttentionFlag; @@ -32,6 +33,7 @@ import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.configurableviews.ConfigurableViewsLibrary; import org.smartregister.configurableviews.model.Field; import org.smartregister.domain.FetchStatus; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java index 802b660bc..451cc4360 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java @@ -12,17 +12,21 @@ import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.Captor; +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.util.ReflectionHelpers; +import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.activity.BaseUnitTest; import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.helper.ECSyncHelper; import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; +import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.clientandeventmodel.Client; import org.smartregister.clientandeventmodel.Event; import org.smartregister.domain.UniqueId; @@ -32,6 +36,7 @@ import org.smartregister.repository.UniqueIdRepository; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -62,8 +67,12 @@ public class RegisterInteractorTest extends BaseUnitTest { @Captor private ArgumentCaptor longArgumentCaptor; + @Mock + AncLibrary ancLibrary; + @Before public void setUp() { + MockitoAnnotations.initMocks(this); interactor = new RegisterInteractor(new AppExecutors(Executors.newSingleThreadExecutor(), Executors.newSingleThreadExecutor(), Executors.newSingleThreadExecutor())); } @@ -136,6 +145,7 @@ public void testSaveNewRegistration() throws Exception { String baseEntityId = "112123"; String ancId = "1324354"; + String formSubmissionId = "132vb-sdsd-we"; Client client = new Client(baseEntityId); Map identifiers = new HashMap<>(); @@ -144,6 +154,7 @@ public void testSaveNewRegistration() throws Exception { Event event = new Event(); event.setBaseEntityId(baseEntityId); + event.setFormSubmissionId(formSubmissionId); Pair pair = Pair.create(client, event); @@ -160,7 +171,9 @@ public void testSaveNewRegistration() throws Exception { eventClients.add(eventClient); Mockito.doReturn(timestamp).when(allSharedPreferences).fetchLastUpdatedAtDate(0); - Mockito.doReturn(eventClients).when(syncHelper).getEvents(new Date(timestamp), BaseRepository.TYPE_Unprocessed); + Mockito.doReturn(eventClients).when(syncHelper).getEvents(Arrays.asList(formSubmissionId)); + + ReflectionHelpers.setStaticField(AncLibrary.class, "instance", ancLibrary); registerInteractor.saveRegistration(pair, jsonString, false, callBack); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java index 9ca04a354..27c1be6e2 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java @@ -371,6 +371,11 @@ public void testGetAutoPopulatedJsonEditFormStringInjectsValuesCorrectlyInForm() PowerMockito.mockStatic(LocationHelper.class); PowerMockito.when(LocationHelper.getInstance()).thenReturn(locationHelper); + AncMetadata ancMetadata = new AncMetadata(); + ancMetadata.setFieldsWithLocationHierarchy(new HashSet<>(Arrays.asList("village"))); + Mockito.when(ancLibrary.getAncMetadata()).thenReturn(ancMetadata); + ReflectionHelpers.setStaticField(AncLibrary.class, "instance", ancLibrary); + ArrayList allLevels = new ArrayList<>(); allLevels.add("Country"); allLevels.add("Province"); @@ -388,7 +393,6 @@ public void testGetAutoPopulatedJsonEditFormStringInjectsValuesCorrectlyInForm() formLocation.name = details.get(DBConstantsUtils.KeyUtils.HOME_ADDRESS); formLocations.add(formLocation); - List locations = new ArrayList<>(); locations.add(details.get(Utils.HOME_ADDRESS)); PowerMockito.when(locationHelper.generateDefaultLocationHierarchy(ArgumentMatchers.eq(healthFacilities))).thenReturn(locations); From 1f300bf0c5903d6c56ce17ccb4da9bba0c277b54 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Mon, 29 Jun 2020 15:27:46 +0300 Subject: [PATCH 042/302] added tests --- gradle.properties | 2 +- .../smartregister/anc/library/util/Utils.java | 7 +- .../library/util/ANCJsonFormUtilsTest.java | 49 +++++++++ .../anc/library/util/UtilsTest.java | 103 +++++++++++++++++- 4 files changed, 155 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index bcac6f87f..3b5bec98d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1536m android.debug.obsoleteApi=true ## PUBLISHING VARS -VERSION_NAME=2.0.3.12-LOCAL-SNAPSHOT +VERSION_NAME=2.0.3.13-LOCAL-SNAPSHOT VERSION_CODE=1 GROUP=org.smartregister POM_SETTING_DESCRIPTION=OpenSRP Client ANC Library diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 9184b13f5..4168a3946 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -796,8 +796,7 @@ public static Event createContactVisitEvent(@NonNull List formSubmission contactVisitEvent.addDetails(ConstantsUtils.FORM_SUBMISSION_IDS, formSubmissionIDs.toString()); contactVisitEvent.addDetails(ConstantsUtils.OPEN_TEST_TASKS, openTasks); - ANCJsonFormUtils.tagSyncMetadata(AncLibrary.getInstance().getContext().userService().getAllSharedPreferences(), - contactVisitEvent); + ANCJsonFormUtils.tagSyncMetadata(getAllSharedPreferences(), contactVisitEvent); PatientRepository.updateContactVisitStartDate(baseEntityId, null);//reset contact visit date @@ -852,11 +851,11 @@ public static void createPreviousVisitFromGroup(@NonNull String strGroup, @NonNu } } - long lastSyncTimeStamp = Utils.getAllSharedPreferences().fetchLastUpdatedAtDate(0); + long lastSyncTimeStamp = getAllSharedPreferences().fetchLastUpdatedAtDate(0); Date lastSyncDate = new Date(lastSyncTimeStamp); try { AncLibrary.getInstance().getClientProcessorForJava().processClient(AncLibrary.getInstance().getEcSyncHelper().getEvents(currentFormSubmissionIds)); - Utils.getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); + getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); } catch (Exception e) { Timber.e(e); } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java index 27c1be6e2..2f9f3fbcb 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java @@ -20,6 +20,7 @@ import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; import org.powermock.reflect.internal.WhiteboxImpl; import org.robolectric.util.ReflectionHelpers; import org.skyscreamer.jsonassert.Customization; @@ -51,6 +52,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -653,4 +655,51 @@ public void testProcessContactFormEventShouldPopulateEventObjectAccordingly() th Assert.assertEquals(coJsonObject.optString(JsonFormConstants.ENCOUNTER_TYPE), resultEvent.getEventType()); Assert.assertEquals("demo", resultEvent.getProviderId()); } + + @Test + @PrepareForTest(Utils.class) + public void testInitializeFirstContactValuesForDefaultStrategy() throws Exception { + PowerMockito.mockStatic(Utils.class); + PowerMockito.when(Utils.class, "getDueCheckStrategy").thenReturn(""); + JSONArray fields = new JSONObject(registerFormJsonString).optJSONObject(JsonFormConstants.STEP1) + .optJSONArray(JsonFormConstants.FIELDS); + String result = Whitebox.invokeMethod(ANCJsonFormUtils.class, "initializeFirstContactValues", fields); + JSONObject nextContactJsonObject = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); + JSONObject nextContactDateJsonObject = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE); + Assert.assertEquals(String.valueOf(1), nextContactJsonObject.optString(JsonFormConstants.VALUE)); + Assert.assertTrue(nextContactDateJsonObject.optString(JsonFormConstants.VALUE).isEmpty()); + Assert.assertNull(result); + } + + @Test + @PrepareForTest(Utils.class) + public void testInitializeFirstContactValuesForIsFirstContactStrategy() throws Exception { + PowerMockito.mockStatic(Utils.class); + PowerMockito.when(Utils.class, "getDueCheckStrategy").thenReturn(ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT); + + JSONArray fields = new JSONObject(registerFormJsonString).optJSONObject(JsonFormConstants.STEP1) + .optJSONArray(JsonFormConstants.FIELDS); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put(JsonFormConstants.KEY, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); + fields.put(jsonObject); + + HashMap groupItem = new LinkedHashMap<>(); + groupItem.put("visit_date", "2020-04-04"); + HashMap> groupMap = new HashMap<>(); + groupMap.put("324-w3424", groupItem); + + PowerMockito.when(Utils.class, "buildRepeatingGroupValues", Mockito.any(JSONArray.class), Mockito.anyString()).thenReturn(groupMap); + + String result = Whitebox.invokeMethod(ANCJsonFormUtils.class, "initializeFirstContactValues", fields); + JSONObject nextContactJsonObject = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); + JSONObject nextContactDateJsonObject = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE); + JSONObject lastContactDateJsonObject = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); + + Assert.assertEquals(String.valueOf(2), nextContactJsonObject.optString(JsonFormConstants.VALUE)); + Assert.assertTrue(nextContactDateJsonObject.optString(JsonFormConstants.VALUE).isEmpty()); + Assert.assertEquals("2020-04-04", lastContactDateJsonObject.optString(JsonFormConstants.VALUE)); + Assert.assertNotNull(result); + } + } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/UtilsTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/UtilsTest.java index 8d8a56e8c..aa5142293 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/UtilsTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/UtilsTest.java @@ -4,15 +4,20 @@ import android.widget.Button; import android.widget.TextView; +import com.vijay.jsonwizard.constants.JsonFormConstants; + import org.apache.commons.lang3.StringUtils; import org.hamcrest.Matchers; import org.joda.time.DateTime; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.powermock.api.mockito.PowerMockito; @@ -23,15 +28,23 @@ import org.powermock.reflect.Whitebox; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.util.ReflectionHelpers; import org.smartregister.Context; import org.smartregister.CoreLibrary; +import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.BaseUnitTest; import org.smartregister.anc.library.domain.ButtonAlertStatus; +import org.smartregister.anc.library.helper.ECSyncHelper; +import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.repository.RegisterQueryProvider; +import org.smartregister.clientandeventmodel.Event; import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.util.Utils; +import org.smartregister.sync.ClientProcessorForJava; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,6 +52,9 @@ import edu.emory.mathcs.backport.java.util.Collections; import timber.log.Timber; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.smartregister.anc.library.util.Utils.getKeyByValue; import static org.smartregister.anc.library.util.Utils.getTodayContact; import static org.smartregister.anc.library.util.Utils.hasPendingRequiredFields; @@ -59,6 +75,18 @@ public class UtilsTest extends BaseUnitTest { @Rule public PowerMockRule rule = new PowerMockRule(); + @Mock + private CoreLibrary coreLibrary; + + @Mock + private Context opensrpContext; + + @Mock + private AllSharedPreferences allSharedPreferences; + + @Mock + private AncLibrary ancLibrary; + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -424,4 +452,77 @@ public void testGetDefaultDisplayTemplateOnProfile() { Timber.e(e, " --> testGetDisplayTemplate"); } } + + @Test + public void testBuildRepeatingGroupValuesShouldReturnCorrectGroupNo() throws JSONException { + String strStep1JsonObject = "{\"fields\":[{\"key\":\"previous_visits\",\"type\":\"repeating_group\",\"value\"" + + ":[{\"key\":\"visit_date\"}]}," + + "{\"key\":\"visit_date_128040f1b4034311b34b6ea65a81d3aa\",\"value\":\"2020-09-09\"}]}"; + JSONObject step1JsonObject = new JSONObject(strStep1JsonObject); + HashMap> repeatingGroupNum = Utils.buildRepeatingGroupValues(step1JsonObject.optJSONArray(JsonFormConstants.FIELDS), ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS); + assertEquals(1, repeatingGroupNum.size()); + } + + @Test + @PrepareForTest(PatientRepository.class) + public void testCreateContactVisitEventShouldCreateEvent() throws Exception { + Map womanDetails = new HashMap<>(); + womanDetails.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, "2"); + womanDetails.put(DBConstantsUtils.KeyUtils.VISIT_START_DATE, "2020-09-08"); + womanDetails.put(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, "232-sds-34"); + ReflectionHelpers.setStaticField(CoreLibrary.class, "instance", coreLibrary); + Mockito.when(coreLibrary.context()).thenReturn(opensrpContext); + Mockito.when(opensrpContext.allSharedPreferences()).thenReturn(allSharedPreferences); + + ReflectionHelpers.setStaticField(AncLibrary.class, "instance", ancLibrary); + Mockito.doReturn(new RegisterQueryProvider()).when(ancLibrary).getRegisterQueryProvider(); + PowerMockito.mockStatic(PatientRepository.class); + PowerMockito.doNothing().when(PatientRepository.class, "updateContactVisitStartDate", + Mockito.anyString(), Mockito.anyString()); + Event contactVisitEvent = Utils.createContactVisitEvent(new ArrayList<>(), womanDetails, null); + assertNotNull(contactVisitEvent); + assertNotNull(contactVisitEvent.getFormSubmissionId()); + assertEquals(womanDetails.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID), contactVisitEvent.getBaseEntityId()); + assertEquals(ConstantsUtils.EventTypeUtils.CONTACT_VISIT, contactVisitEvent.getEventType()); + assertFalse(contactVisitEvent.getDetails().isEmpty()); + assertEquals("Contact 2", contactVisitEvent.getDetails().get(ConstantsUtils.CONTACT)); + } + + @Test + @PrepareForTest(PatientRepository.class) + public void testCreatePreviousVisitFromGroupShouldPassCorrectArgs() throws Exception { + String baseEntityId = "089sd-342"; + String previous_visits_map = "{\"269b6b6d1ece4781b58bf91eb05a740e\":{\"visit_date\":\"26-10-2019\"},\"1cd33bfbf4594e619841472933e34c3f\":{\"visit_date\":\"26-02-2020\"}}"; + + ReflectionHelpers.setStaticField(CoreLibrary.class, "instance", coreLibrary); + Mockito.when(coreLibrary.context()).thenReturn(opensrpContext); + Mockito.when(opensrpContext.allSharedPreferences()).thenReturn(allSharedPreferences); + Date date = new Date(); + Mockito.when(allSharedPreferences.fetchLastUpdatedAtDate(0)).thenReturn(date.getTime()); + + ReflectionHelpers.setStaticField(AncLibrary.class, "instance", ancLibrary); + Mockito.doReturn(new RegisterQueryProvider()).when(ancLibrary).getRegisterQueryProvider(); + + ECSyncHelper ecSyncHelper = Mockito.mock(ECSyncHelper.class); + Mockito.doNothing().when(ecSyncHelper).addEvent(Mockito.anyString(), Mockito.any(JSONObject.class)); + + ClientProcessorForJava clientProcessorForJava = Mockito.mock(ClientProcessorForJava.class); + Mockito.when(ancLibrary.getClientProcessorForJava()).thenReturn(clientProcessorForJava); + + Mockito.doReturn(ecSyncHelper).when(ancLibrary).getEcSyncHelper(); + PowerMockito.mockStatic(PatientRepository.class); + PowerMockito.doNothing().when(PatientRepository.class, "updateContactVisitStartDate", + Mockito.anyString(), Mockito.anyString()); + Utils.createPreviousVisitFromGroup(previous_visits_map, baseEntityId); + + ArgumentCaptor> listArgumentCaptor = ArgumentCaptor.forClass(List.class); + Mockito.verify(ecSyncHelper, Mockito.times(1)).getEvents(listArgumentCaptor.capture()); + assertNotNull(listArgumentCaptor.getValue()); + assertEquals(2, listArgumentCaptor.getValue().size()); + + Mockito.verify(clientProcessorForJava, Mockito.times(1)).processClient(Mockito.anyList()); + Mockito.verify(allSharedPreferences).saveLastUpdatedAtDate(Mockito.eq(date.getTime())); + + } + } From 30c223bd12b59ead345a19ad451f201e91dc298b Mon Sep 17 00:00:00 2001 From: bennsimon Date: Wed, 1 Jul 2020 09:12:12 +0300 Subject: [PATCH 043/302] fix tests --- opensrp-anc/build.gradle | 2 +- .../anc/library/activity/BaseHomeRegisterActivityTest.java | 3 +-- .../anc/library/interactor/RegisterInteractorTest.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 605c6ac77..aa6b62d6d 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -143,7 +143,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.9.2-r116-OPTIMIZED-LOCAL-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.9.2-r117-OPTIMIZED-LOCAL-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java index 6fad7becf..109f211eb 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java @@ -18,7 +18,6 @@ import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; -import org.robolectric.util.ReflectionHelpers; import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.domain.AttentionFlag; @@ -33,7 +32,6 @@ import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.configurableviews.ConfigurableViewsLibrary; import org.smartregister.configurableviews.model.Field; import org.smartregister.domain.FetchStatus; @@ -58,6 +56,7 @@ public class BaseHomeRegisterActivityTest extends BaseActivityUnitTest { @Mock private List filterList; + @Mock private Field sortField; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java index 451cc4360..8ff42200a 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java @@ -68,7 +68,7 @@ public class RegisterInteractorTest extends BaseUnitTest { private ArgumentCaptor longArgumentCaptor; @Mock - AncLibrary ancLibrary; + private AncLibrary ancLibrary; @Before public void setUp() { From e6437b48498a33d36a90baee4e534c8a15bde20a Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 10 Jul 2020 12:10:23 +0300 Subject: [PATCH 044/302] :construction: move to androidx --- gradle.properties | 3 +- opensrp-anc/build.gradle | 40 ++++++----------- .../smartregister/anc/library/AncLibrary.java | 4 +- .../activity/ActivityConfiguration.java | 2 +- .../anc/library/activity/BaseActivity.java | 3 +- .../activity/BaseCharacteristicsActivity.java | 11 ++--- .../library/activity/BaseContactActivity.java | 5 ++- .../activity/BaseHomeRegisterActivity.java | 11 +++-- .../library/activity/BaseProfileActivity.java | 12 +++-- .../activity/ContactJsonFormActivity.java | 5 ++- .../activity/ContactSummarySendActivity.java | 8 ++-- .../activity/LibraryContentActivity.java | 4 +- .../PreviousContactsDetailsActivity.java | 11 ++--- .../PreviousContactsTestsActivity.java | 8 ++-- .../anc/library/activity/ProfileActivity.java | 11 +++-- .../adapter/CharacteristicsAdapter.java | 2 +- .../anc/library/adapter/ContactAdapter.java | 2 +- .../adapter/ContactScheduleAdapter.java | 6 +-- .../adapter/ContactSummaryAdapter.java | 4 +- .../adapter/ContactSummaryFinishAdapter.java | 2 +- .../adapter/ContactTasksDisplayAdapter.java | 4 +- .../library/adapter/LastContactAdapter.java | 6 +-- .../LastContactAllTestsDialogAdapter.java | 6 +-- ...stContactAllTestsResultsDialogAdapter.java | 4 +- .../adapter/LibraryContentAdapter.java | 4 +- .../adapter/PreviousContactsAdapter.java | 6 +-- .../adapter/ProfileOverviewAdapter.java | 8 ++-- .../adapter/ProfileViewPagerAdapter.java | 6 +-- .../library/contract/RegisterContract.java | 2 +- .../fragment/AdvancedSearchFragment.java | 7 ++- .../ContactWizardJsonFormFragment.java | 4 +- .../fragment/HomeRegisterFragment.java | 10 +++-- .../anc/library/fragment/LibraryFragment.java | 10 ++--- .../anc/library/fragment/MeFragment.java | 6 +-- .../fragment/NoMatchDialogFragment.java | 16 ++++--- .../fragment/ProfileContactsFragment.java | 6 +-- .../fragment/ProfileOverviewFragment.java | 4 +- .../fragment/ProfileTasksFragment.java | 4 +- .../library/fragment/SortFilterFragment.java | 12 ++--- .../interactor/AdvancedSearchInteractor.java | 2 +- .../library/interactor/ContactInteractor.java | 4 +- .../interactor/ContactSummaryInteractor.java | 2 +- .../interactor/RegisterInteractor.java | 5 ++- .../anc/library/model/RegisterModel.java | 2 +- .../library/presenter/ProfilePresenter.java | 2 +- .../library/presenter/RegisterPresenter.java | 2 +- .../provider/AdvancedSearchProvider.java | 2 +- .../library/provider/RegisterProvider.java | 2 +- .../sync/BaseAncClientProcessorForJava.java | 9 ++-- .../task/LoadContactSummaryDataTask.java | 5 ++- .../anc/library/util/ANCJsonFormUtils.java | 6 +-- .../anc/library/util/AppExecutors.java | 3 +- .../library/util/ImageLoaderRequestUtils.java | 4 +- .../util/SiteCharacteristicsFormUtils.java | 2 +- .../anc/library/util/TemplateUtils.java | 2 +- .../smartregister/anc/library/util/Utils.java | 4 +- .../library/view/CopyToClipboardDialog.java | 2 +- .../anc/library/view/RoundedImageView.java | 2 +- .../anc/library/view/SquareCardView.java | 4 +- .../viewholder/ContactTasksViewHolder.java | 4 +- .../viewholder/LibraryContentViewHolder.java | 4 +- .../main/res/layout/activity_base_profile.xml | 29 ++++++------ .../res/layout/activity_characteristics.xml | 2 +- .../src/main/res/layout/activity_contact.xml | 4 +- .../res/layout/activity_contact_summary.xml | 5 +-- .../activity_contact_summary_finish.xml | 19 ++++---- .../res/layout/activity_library_content.xml | 4 +- .../res/layout/activity_previous_contacts.xml | 20 ++++----- .../activity_previous_contacts_tests.xml | 6 +-- .../main/res/layout/advanced_search_form.xml | 4 +- .../main/res/layout/advanced_search_list.xml | 2 +- .../res/layout/all_tests_results_dialog.xml | 9 ++-- .../layout/all_tests_results_dialog_row.xml | 5 +-- .../all_tests_results_dialog_title_row.xml | 4 +- .../res/layout/balance_nutrition_content.xml | 5 +-- .../main/res/layout/contact_schedule_row.xml | 5 +-- .../src/main/res/layout/content_contact.xml | 11 +++-- .../src/main/res/layout/fragment_library.xml | 6 +-- .../res/layout/fragment_profile_contacts.xml | 10 ++--- .../res/layout/fragment_profile_overview.xml | 6 +-- .../res/layout/fragment_profile_tasks.xml | 2 +- .../main/res/layout/fragment_quick_check.xml | 10 ++--- .../main/res/layout/fragment_sort_filter.xml | 5 +-- .../src/main/res/layout/last_contact_row.xml | 5 +-- .../res/layout/physical_activity_content.xml | 4 +- .../main/res/layout/previous_contact_row.xml | 7 ++- .../layout/previous_contacts_preview_row.xml | 5 +-- .../main/res/layout/profile_overview_row.xml | 5 +-- .../res/layout/register_home_list_row.xml | 4 +- .../src/main/res/layout/tasks_tab_title.xml | 5 +-- .../res/layout/toolbar_advanced_search.xml | 44 ++++++++++--------- .../res/layout/toolbar_characteristics.xml | 10 ++--- .../src/main/res/layout/toolbar_contact.xml | 9 ++-- .../res/layout/toolbar_container_form.xml | 9 ++-- .../src/main/res/layout/toolbar_library.xml | 8 ++-- .../res/layout/toolbar_library_activity.xml | 8 ++-- .../res/layout/toolbar_previous_contacts.xml | 11 ++--- .../main/res/layout/toolbar_quick_check.xml | 9 ++-- .../main/res/layout/toolbar_sort_filter.xml | 10 ++--- .../BaseHomeRegisterActivityTest.java | 4 +- .../ContactSummaryFinishActivityTest.java | 4 +- .../library/activity/ProfileActivityTest.java | 4 +- .../adapter/ProfileViewPagerAdapterTest.java | 4 +- .../ContactWizardJsonFormFragmentTest.java | 2 +- .../fragment/ProfileContactsFragmentTest.java | 6 +-- .../fragment/ProfileOverviewFragmentTest.java | 6 +-- .../fragment/ProfileTasksFragmentTest.java | 6 +-- .../library/helper/ImageRenderHelperTest.java | 2 +- .../interactor/RegisterInteractorTest.java | 2 +- .../anc/library/job/TestAncJobCreator.java | 4 +- .../anc/library/model/RegisterModelTest.java | 2 +- .../presenter/RegisterPresenterTest.java | 2 +- .../library/util/ANCJsonFormUtilsTest.java | 2 +- reference-app/build.gradle | 41 ++++++----------- reference-app/src/main/AndroidManifest.xml | 2 +- .../anc/application/AncApplication.java | 2 +- .../anc/application/AncSyncConfiguration.java | 9 +--- .../smartregister/anc/job/AncJobCreator.java | 4 +- .../anc/job/ViewConfigurationsServiceJob.java | 2 +- sample/build.gradle | 10 ++--- .../sample/anc/MainActivity.java | 2 +- sample/src/main/res/layout/activity_main.xml | 4 +- 122 files changed, 393 insertions(+), 412 deletions(-) diff --git a/gradle.properties b/gradle.properties index df1f56e20..5eeaf0336 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,5 @@ POM_SETTING_DEVELOPER_ID=opensrp POM_SETTING_DEVELOPER_NAME=OpenSRP Onadev android.enableUnitTestBinaryResources=true android.enableSeparateAnnotationProcessing=true -android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true \ No newline at end of file +android.useAndroidX=true +android.enableJetifier=true \ No newline at end of file diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 24d9575c6..f21a92b83 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -58,7 +58,7 @@ android { versionCode 1 versionName "1.4.0" multiDexEnabled true - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' if (properties != null && properties.containsKey("store.file") && properties.containsKey("store.password") && properties.containsKey("key.password")) { signingConfig signingConfigs.release @@ -66,6 +66,7 @@ android { javaCompileOptions { annotationProcessorOptions { + includeCompileClasspath true arguments = [eventBusIndex: 'org.smartregister.anc.library.ANCEventBusIndex'] } } @@ -98,9 +99,9 @@ android { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE' - exclude 'META-INF/LICENSE' - exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/NOTICE.md' + exclude 'META-INF/LICENSE.md' + exclude 'META-INF/DEPENDENCIES.md' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' @@ -108,19 +109,6 @@ android { exclude 'LICENSE.txt' } - packagingOptions { - exclude 'META-INF/DEPENDENCIES.txt' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE' - exclude 'META-INF/LICENSE' - exclude 'META-INF/DEPENDENCIES' - exclude 'META-INF/notice.txt' - exclude 'META-INF/license.txt' - exclude 'META-INF/dependencies.txt' - exclude 'META-INF/LGPL2.1' - exclude 'LICENSE.txt' - } testOptions { unitTests { @@ -142,8 +130,8 @@ dependencies { def powerMockVersion = '2.0.4' implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation('org.smartregister:opensrp-client-native-form:1.8.6-SNAPSHOT@aar') { + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation('org.smartregister:opensrp-client-native-form:1.9.2-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -154,7 +142,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.5000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -194,15 +182,15 @@ dependencies { implementation 'com.evernote:android-job:1.2.6' implementation 'com.github.lecho:hellocharts-android:v1.5.8' implementation 'id.zelory:compressor:2.1.0' - implementation('com.android.support:design:28.0.0') { + implementation('com.google.android.material:material:1.1.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'cardview-v7' } - implementation 'com.android.support:recyclerview-v7:28.0.0' - implementation 'com.android.support:cardview-v7:28.0.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.25' implementation 'de.hdodenhof:circleimageview:3.0.1' implementation 'org.jeasy:easy-rules-core:3.3.0' @@ -224,8 +212,8 @@ dependencies { testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation 'org.skyscreamer:jsonassert:1.5.0' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2') { + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation('androidx.test.espresso:espresso-core:3.2.0') { exclude group: 'com.google.code.findbugs' } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index ebfbdfdc8..3c606ab5e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.gson.Gson; import com.vijay.jsonwizard.constants.JsonFormConstants; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java index 553cff683..74a591833 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.activity; import android.app.Activity; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; /** * Created by Ephraim Kigamba - ekigamba@ona.io on 2019-07-17 diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java index b7e8ba9ff..4cda4680b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java @@ -3,7 +3,7 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; @@ -30,6 +30,7 @@ protected void onCreate(Bundle savedInstanceState) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == RESULT_OK) { try { String jsonString = data.getStringExtra("json"); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java index 05119d58f..dd3e33814 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java @@ -2,11 +2,12 @@ import android.os.Build; import android.os.Bundle; -import android.support.v7.app.AlertDialog; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.widget.Toolbar; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import android.util.TypedValue; import android.view.View; import android.widget.TextView; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java index 98e2811cc..e70a9f0ba 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java @@ -4,8 +4,9 @@ import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; +//import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 52760f9d2..880996f74 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -3,10 +3,11 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.bottomnavigation.LabelVisibilityMode; -import android.support.v4.app.Fragment; -import android.support.v7.app.AlertDialog; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; + import android.view.LayoutInflater; import android.view.Menu; import android.view.View; @@ -16,6 +17,7 @@ import android.widget.TextView; import com.google.android.gms.vision.barcode.Barcode; +import com.google.android.material.bottomnavigation.LabelVisibilityMode; import com.vijay.jsonwizard.activities.JsonFormActivity; import com.vijay.jsonwizard.constants.JsonFormConstants; @@ -202,6 +204,7 @@ public void startFormActivity(JSONObject form) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { if (data != null) { Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java index 8bed74f1f..dbe08f7f7 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java @@ -4,12 +4,15 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; -import android.support.design.widget.AppBarLayout; -import android.support.design.widget.CollapsingToolbarLayout; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.Toolbar; +//com.google.android.material.appbar.AppBarLayout; +//import com.google.android.material.appbar.CollapsingToolbarLayout; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.Toolbar; import android.view.View; +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; + import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -71,6 +74,7 @@ public void onResume() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { mProfilePresenter.processFormDetailsSave(data, allSharedPreferences); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 97216d000..7e9bfd4a6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -3,10 +3,11 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.content.LocalBroadcastManager; import android.text.TextUtils; +import androidx.fragment.app.Fragment; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.vijay.jsonwizard.activities.JsonFormActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java index d251258ce..92f23c80c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java @@ -1,10 +1,10 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.ImageView; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java index 2e7eba2f2..53810b812 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.TextView; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 65f9d42c8..11d71fcbc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -1,11 +1,12 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import android.support.constraint.ConstraintLayout; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +//import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.util.Log; import android.view.MenuItem; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java index 58b62fb18..7047d8a5d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java @@ -1,10 +1,10 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index 080a1283d..3edc52b8f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -8,10 +8,12 @@ import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.constraint.ConstraintLayout; -import android.support.v4.app.Fragment; -import android.support.v4.view.ViewPager; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; +//import androidx.fragment.app.Fragment; +//import androidx.viewpager.widget.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -277,6 +279,7 @@ protected void onDestroy() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { ((ProfilePresenter) presenter).processFormDetailsSave(data, allSharedPreferences); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java index 407558f3e..694a28567 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java index 2878a46c4..c3202b9d7 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java index ea26fc760..deb19dd73 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java @@ -1,9 +1,9 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.constraint.ConstraintLayout; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java index 6db3c0395..d35298b78 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.adapter; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java index 1c63371d2..ffc1505a9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java index b8189bea2..447a8f87f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java index 9d0a1c169..773a9ba11 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java @@ -1,9 +1,9 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.constraint.ConstraintLayout; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java index a02f464cb..a28dd7ddd 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java @@ -1,9 +1,9 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java index ff84d11a3..1a6e0ffa2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java @@ -2,8 +2,8 @@ import android.content.Context; import android.graphics.Typeface; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java index 4228a2309..7fc5cd132 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java @@ -2,8 +2,8 @@ import android.app.Activity; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java index 07682db11..69d6b3e67 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java @@ -1,9 +1,9 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java index b8d358a33..c27cb58b0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java @@ -2,10 +2,10 @@ import android.app.Activity; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.app.AlertDialog; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapter.java index 468c74d7a..0f4b020df 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapter.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.adapter; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; import java.util.ArrayList; import java.util.List; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterContract.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterContract.java index 6f534d460..8ee26b415 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterContract.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterContract.java @@ -1,6 +1,6 @@ package org.smartregister.anc.library.contract; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java index 6812f10f4..34b55eab0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java @@ -7,8 +7,8 @@ import android.database.Cursor; import android.net.ConnectivityManager; import android.os.Bundle; -import android.support.v4.content.CursorLoader; -import android.support.v4.content.Loader; +//import androidx.loader.content.CursorLoader; +//mport androidx.loader.content.Loader; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -21,6 +21,9 @@ import android.widget.ImageButton; import android.widget.TextView; +import androidx.loader.content.CursorLoader; +import androidx.loader.content.Loader; + import com.rengwuxian.materialedittext.MaterialEditText; import com.vijay.jsonwizard.customviews.RadioButton; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index eceaeb7f6..92160cfc9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -3,8 +3,8 @@ import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.app.ActionBar; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java index fe8182ac9..ec1cfc61c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java @@ -3,8 +3,10 @@ import android.annotation.SuppressLint; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.content.CursorLoader; -import android.support.v4.content.Loader; + +import androidx.fragment.app.Fragment; +import androidx.loader.content.CursorLoader; +import androidx.loader.content.Loader; import android.text.TextUtils; import android.view.View; import android.widget.RelativeLayout; @@ -65,7 +67,7 @@ protected void initializePresenter() { public void setUniqueID(String qrCode) { BaseRegisterActivity baseRegisterActivity = (BaseRegisterActivity) getActivity(); if (baseRegisterActivity != null) { - android.support.v4.app.Fragment currentFragment = + Fragment currentFragment = baseRegisterActivity.findFragmentByPosition(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); if (currentFragment instanceof AdvancedSearchFragment) { ((AdvancedSearchFragment) currentFragment).getAncId().setText(qrCode); @@ -78,7 +80,7 @@ public void setUniqueID(String qrCode) { public void setAdvancedSearchFormData(HashMap formData) { BaseRegisterActivity baseRegisterActivity = (BaseRegisterActivity) getActivity(); if (baseRegisterActivity != null) { - android.support.v4.app.Fragment currentFragment = + Fragment currentFragment = baseRegisterActivity.findFragmentByPosition(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); ((AdvancedSearchFragment) currentFragment).setSearchFormData(formData); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java index fee74c143..f71ab08b2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java @@ -1,11 +1,11 @@ package org.smartregister.anc.library.fragment; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.Toolbar; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.appcompat.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 485497e0f..8884542de 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -2,9 +2,9 @@ import android.content.Intent; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.app.AlertDialog; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java index 50ac67120..19688674b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java @@ -1,12 +1,14 @@ package org.smartregister.anc.library.fragment; import android.annotation.SuppressLint; -import android.app.DialogFragment; -import android.app.Fragment; -import android.app.FragmentTransaction; +import androidx.fragment.app.Fragment; + +import androidx.fragment.app.FragmentTransaction; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; + import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -31,8 +33,8 @@ public NoMatchDialogFragment(BaseRegisterActivity baseRegisterActivity, String w public static NoMatchDialogFragment launchDialog(BaseRegisterActivity activity, String dialogTag, String whoAncId) { NoMatchDialogFragment noMatchDialogFragment = new NoMatchDialogFragment(activity, whoAncId); if (activity != null) { - FragmentTransaction fragmentTransaction = activity.getFragmentManager().beginTransaction(); - Fragment prev = activity.getFragmentManager().findFragmentByTag(dialogTag); + FragmentTransaction fragmentTransaction = activity.getSupportFragmentManager().beginTransaction(); + Fragment prev = activity.getSupportFragmentManager().findFragmentByTag(dialogTag); if (prev != null) { fragmentTransaction.remove(prev); } @@ -92,7 +94,7 @@ public void onClick(View view) { private void goToAdvancedSearch(String whoAncId) { ((BaseHomeRegisterActivity) baseRegisterActivity).startAdvancedSearch(); - android.support.v4.app.Fragment currentFragment = + Fragment currentFragment = baseRegisterActivity.findFragmentByPosition(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); ((AdvancedSearchFragment) currentFragment).getAncId().setText(whoAncId); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index aabcf28e2..f58568126 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -2,9 +2,9 @@ import android.content.Intent; import android.os.Bundle; -import android.support.constraint.ConstraintLayout; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java index 94b8e3950..61e5bbd7a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.fragment; import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java index 4713283d0..e36ad6ea1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java @@ -2,8 +2,8 @@ import android.content.Intent; import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java index 5c33c0a11..330fcf6b9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java @@ -4,12 +4,12 @@ import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v7.widget.DividerItemDecoration; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.text.Html; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java index 43b3dffc5..b5d71c6d9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java @@ -1,6 +1,6 @@ package org.smartregister.anc.library.interactor; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import org.apache.commons.lang3.StringUtils; import org.smartregister.DristhiConfiguration; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java index 7e604eb14..2daeda0ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.interactor; import android.content.Context; -import android.support.annotation.VisibleForTesting; -import android.support.v4.util.Pair; +import androidx.annotation.VisibleForTesting; +import androidx.core.util.Pair; import android.text.TextUtils; import org.jeasy.rules.api.Facts; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java index 3ff1b2ec5..f405cbf20 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactSummaryInteractor.java @@ -1,6 +1,6 @@ package org.smartregister.anc.library.interactor; -import android.support.annotation.VisibleForTesting; +import androidx.annotation.VisibleForTesting; import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index 0589407aa..136efde8f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -1,8 +1,9 @@ package org.smartregister.anc.library.interactor; import android.content.ContentValues; -import android.support.annotation.VisibleForTesting; -import android.support.v4.util.Pair; + +import androidx.annotation.VisibleForTesting; +import androidx.core.util.Pair; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java index 2d3b2d4fb..40b990293 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java @@ -1,6 +1,6 @@ package org.smartregister.anc.library.model; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import android.util.Log; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java index db1ab6823..3697321a5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java @@ -2,7 +2,7 @@ import android.content.Context; import android.content.Intent; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java index e9507dc5e..453903711 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java @@ -2,7 +2,7 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Triple; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java index 2d788b291..59382ad17 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java @@ -2,7 +2,7 @@ import android.content.Context; import android.database.Cursor; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java index 532384df6..d706c365e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java @@ -2,7 +2,7 @@ import android.content.Context; import android.database.Cursor; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index c1796b1f6..aed5d813e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -4,10 +4,11 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.text.TextUtils; +import androidx.annotation.NonNull; + import com.google.gson.reflect.TypeToken; import com.vijay.jsonwizard.constants.JsonFormConstants; @@ -25,8 +26,8 @@ import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.commonregistry.AllCommonsRepository; -import org.smartregister.domain.db.Client; -import org.smartregister.domain.db.Event; +import org.smartregister.domain.Client; +import org.smartregister.domain.Event; import org.smartregister.domain.db.EventClient; import org.smartregister.domain.jsonmapping.ClientClassification; import org.smartregister.domain.jsonmapping.ClientField; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java index 11c6e5ac1..716ada793 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/LoadContactSummaryDataTask.java @@ -3,8 +3,9 @@ import android.content.Context; import android.content.Intent; import android.os.AsyncTask; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 91b1263f4..97e466654 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -4,9 +4,9 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; -import android.support.annotation.NonNull; -import android.support.constraint.ConstraintLayout; -import android.support.v4.util.Pair; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.core.util.Pair; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/AppExecutors.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/AppExecutors.java index 1ea275070..d008f9bb3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/AppExecutors.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/AppExecutors.java @@ -6,7 +6,8 @@ import android.os.Handler; import android.os.Looper; -import android.support.annotation.NonNull; + +import androidx.annotation.NonNull; import java.util.concurrent.Executor; import java.util.concurrent.Executors; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java index e2ad14189..7bb0cbc50 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java @@ -2,7 +2,9 @@ import android.content.Context; import android.graphics.Bitmap; -import android.support.v4.util.LruCache; +//import androidx.collection.LruCache; + +import androidx.collection.LruCache; import com.android.volley.Cache; import com.android.volley.Network; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java index 452b6de74..31236f759 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.util; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java index 805ac47ae..c17965a13 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.util; import android.content.Context; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.json.JSONException; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index e97fe4302..d0d298f4f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -7,8 +7,8 @@ import android.content.res.Resources; import android.database.Cursor; import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.TypedValue; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java index 531c99868..27b3aa653 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java @@ -5,7 +5,7 @@ import android.content.ClipboardManager; import android.content.Context; import android.os.Bundle; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import android.view.View; import android.view.Window; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java index 69443beab..edb25d49d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java @@ -10,7 +10,7 @@ import android.graphics.PorterDuffXfermode; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import android.support.v7.widget.AppCompatImageView; +import androidx.appcompat.widget.AppCompatImageView; import android.util.AttributeSet; import android.view.ViewGroup; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java index 8aa94121f..5dbc52f38 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java @@ -1,9 +1,11 @@ package org.smartregister.anc.library.view; import android.content.Context; -import android.support.v7.widget.CardView; +//import androidx.cardview.widget.CardView; import android.util.AttributeSet; +import androidx.cardview.widget.CardView; + public class SquareCardView extends CardView { public SquareCardView(Context context) { super(context); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java index 384927df2..dae420f5b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.viewholder; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.ImageView; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java index 12578d0cd..0e9d41188 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java @@ -1,8 +1,8 @@ package org.smartregister.anc.library.viewholder; import android.app.Activity; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; diff --git a/opensrp-anc/src/main/res/layout/activity_base_profile.xml b/opensrp-anc/src/main/res/layout/activity_base_profile.xml index 88df3ff80..671f8e0be 100644 --- a/opensrp-anc/src/main/res/layout/activity_base_profile.xml +++ b/opensrp-anc/src/main/res/layout/activity_base_profile.xml @@ -1,11 +1,11 @@ - - - - - - + - - + - - + + > - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/activity_characteristics.xml b/opensrp-anc/src/main/res/layout/activity_characteristics.xml index 3727a0b2d..c68d4ce05 100644 --- a/opensrp-anc/src/main/res/layout/activity_characteristics.xml +++ b/opensrp-anc/src/main/res/layout/activity_characteristics.xml @@ -6,7 +6,7 @@ - diff --git a/opensrp-anc/src/main/res/layout/activity_contact.xml b/opensrp-anc/src/main/res/layout/activity_contact.xml index 5ad18ba4b..aa9ebfde8 100644 --- a/opensrp-anc/src/main/res/layout/activity_contact.xml +++ b/opensrp-anc/src/main/res/layout/activity_contact.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/activity_contact_summary.xml b/opensrp-anc/src/main/res/layout/activity_contact_summary.xml index 890840891..b8f7bb366 100644 --- a/opensrp-anc/src/main/res/layout/activity_contact_summary.xml +++ b/opensrp-anc/src/main/res/layout/activity_contact_summary.xml @@ -62,15 +62,14 @@ android:textColor="@color/text_color" android:textSize="16sp" /> - - - + diff --git a/opensrp-anc/src/main/res/layout/activity_contact_summary_finish.xml b/opensrp-anc/src/main/res/layout/activity_contact_summary_finish.xml index d85082d0d..d8a09cba1 100644 --- a/opensrp-anc/src/main/res/layout/activity_contact_summary_finish.xml +++ b/opensrp-anc/src/main/res/layout/activity_contact_summary_finish.xml @@ -1,18 +1,18 @@ - - - - - + - - - + - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/activity_library_content.xml b/opensrp-anc/src/main/res/layout/activity_library_content.xml index 82bf708f4..40a97efb7 100644 --- a/opensrp-anc/src/main/res/layout/activity_library_content.xml +++ b/opensrp-anc/src/main/res/layout/activity_library_content.xml @@ -1,5 +1,5 @@ - @@ -61,4 +61,4 @@ app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/activity_previous_contacts.xml b/opensrp-anc/src/main/res/layout/activity_previous_contacts.xml index 1c646d3a7..f582a53e6 100644 --- a/opensrp-anc/src/main/res/layout/activity_previous_contacts.xml +++ b/opensrp-anc/src/main/res/layout/activity_previous_contacts.xml @@ -7,13 +7,13 @@ android:fillViewport="true" android:scrollbars="none"> - - - - + - - - + - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/activity_previous_contacts_tests.xml b/opensrp-anc/src/main/res/layout/activity_previous_contacts_tests.xml index 874500dc1..ef1a3b6a2 100644 --- a/opensrp-anc/src/main/res/layout/activity_previous_contacts_tests.xml +++ b/opensrp-anc/src/main/res/layout/activity_previous_contacts_tests.xml @@ -1,11 +1,11 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/advanced_search_form.xml b/opensrp-anc/src/main/res/layout/advanced_search_form.xml index bb57bc528..c53e4c5ff 100644 --- a/opensrp-anc/src/main/res/layout/advanced_search_form.xml +++ b/opensrp-anc/src/main/res/layout/advanced_search_form.xml @@ -5,7 +5,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + diff --git a/opensrp-anc/src/main/res/layout/advanced_search_list.xml b/opensrp-anc/src/main/res/layout/advanced_search_list.xml index 7d588f654..5f5f6dd85 100644 --- a/opensrp-anc/src/main/res/layout/advanced_search_list.xml +++ b/opensrp-anc/src/main/res/layout/advanced_search_list.xml @@ -52,7 +52,7 @@ android:layout_height="match_parent" android:background="@drawable/listview_background_rounded"> - - @@ -38,7 +38,7 @@ app:layout_constraintLeft_toRightOf="@+id/txt_title_label" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + - - - + diff --git a/opensrp-anc/src/main/res/layout/all_tests_results_dialog_row.xml b/opensrp-anc/src/main/res/layout/all_tests_results_dialog_row.xml index a4bce91cc..dbdc86bd5 100644 --- a/opensrp-anc/src/main/res/layout/all_tests_results_dialog_row.xml +++ b/opensrp-anc/src/main/res/layout/all_tests_results_dialog_row.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/all_tests_results_dialog_title_row.xml b/opensrp-anc/src/main/res/layout/all_tests_results_dialog_title_row.xml index 9bd7821b9..5d06b2a2b 100644 --- a/opensrp-anc/src/main/res/layout/all_tests_results_dialog_title_row.xml +++ b/opensrp-anc/src/main/res/layout/all_tests_results_dialog_title_row.xml @@ -17,13 +17,13 @@ android:textSize="@dimen/referral_dialog_title_text_size" android:textStyle="bold" /> - - + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/balance_nutrition_content.xml b/opensrp-anc/src/main/res/layout/balance_nutrition_content.xml index 8a0723223..07182a64b 100644 --- a/opensrp-anc/src/main/res/layout/balance_nutrition_content.xml +++ b/opensrp-anc/src/main/res/layout/balance_nutrition_content.xml @@ -1,5 +1,5 @@ - - - + diff --git a/opensrp-anc/src/main/res/layout/contact_schedule_row.xml b/opensrp-anc/src/main/res/layout/contact_schedule_row.xml index c04cc5291..8255d35a7 100644 --- a/opensrp-anc/src/main/res/layout/contact_schedule_row.xml +++ b/opensrp-anc/src/main/res/layout/contact_schedule_row.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/content_contact.xml b/opensrp-anc/src/main/res/layout/content_contact.xml index c5c3f637d..abb016ff2 100644 --- a/opensrp-anc/src/main/res/layout/content_contact.xml +++ b/opensrp-anc/src/main/res/layout/content_contact.xml @@ -1,5 +1,5 @@ - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/fragment_library.xml b/opensrp-anc/src/main/res/layout/fragment_library.xml index 266b92aa3..d0bb54bfb 100644 --- a/opensrp-anc/src/main/res/layout/fragment_library.xml +++ b/opensrp-anc/src/main/res/layout/fragment_library.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/fragment_profile_contacts.xml b/opensrp-anc/src/main/res/layout/fragment_profile_contacts.xml index c2f518852..6161f1fe0 100644 --- a/opensrp-anc/src/main/res/layout/fragment_profile_contacts.xml +++ b/opensrp-anc/src/main/res/layout/fragment_profile_contacts.xml @@ -1,5 +1,5 @@ - - @@ -49,7 +49,7 @@ android:textColor="@color/white" app:layout_constraintTop_toTopOf="parent" /> - - + - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/fragment_profile_overview.xml b/opensrp-anc/src/main/res/layout/fragment_profile_overview.xml index c82573ba4..8ce0d25df 100644 --- a/opensrp-anc/src/main/res/layout/fragment_profile_overview.xml +++ b/opensrp-anc/src/main/res/layout/fragment_profile_overview.xml @@ -1,5 +1,5 @@ - @@ -8,7 +8,7 @@ android:id="@+id/no_health_data_recorded_profile_overview_layout" layout="@layout/no_health_data_record" /> - - + diff --git a/opensrp-anc/src/main/res/layout/fragment_profile_tasks.xml b/opensrp-anc/src/main/res/layout/fragment_profile_tasks.xml index df2d88033..3e29f6c34 100644 --- a/opensrp-anc/src/main/res/layout/fragment_profile_tasks.xml +++ b/opensrp-anc/src/main/res/layout/fragment_profile_tasks.xml @@ -28,7 +28,7 @@ android:textColor="@color/dark_grey" android:visibility="visible" /> - - @@ -27,7 +27,7 @@ android:textSize="@dimen/quick_check_text_size" android:textStyle="bold" /> - - - - + - - - + - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/physical_activity_content.xml b/opensrp-anc/src/main/res/layout/physical_activity_content.xml index c79347044..ca7a4a5a3 100644 --- a/opensrp-anc/src/main/res/layout/physical_activity_content.xml +++ b/opensrp-anc/src/main/res/layout/physical_activity_content.xml @@ -1,5 +1,5 @@ - - + diff --git a/opensrp-anc/src/main/res/layout/previous_contact_row.xml b/opensrp-anc/src/main/res/layout/previous_contact_row.xml index 90debe5f2..e0b21d0a4 100644 --- a/opensrp-anc/src/main/res/layout/previous_contact_row.xml +++ b/opensrp-anc/src/main/res/layout/previous_contact_row.xml @@ -1,10 +1,10 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/previous_contacts_preview_row.xml b/opensrp-anc/src/main/res/layout/previous_contacts_preview_row.xml index 7b0843061..cf063f677 100644 --- a/opensrp-anc/src/main/res/layout/previous_contacts_preview_row.xml +++ b/opensrp-anc/src/main/res/layout/previous_contacts_preview_row.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/profile_overview_row.xml b/opensrp-anc/src/main/res/layout/profile_overview_row.xml index 412e5d1b4..983a81e9f 100644 --- a/opensrp-anc/src/main/res/layout/profile_overview_row.xml +++ b/opensrp-anc/src/main/res/layout/profile_overview_row.xml @@ -1,5 +1,5 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/register_home_list_row.xml b/opensrp-anc/src/main/res/layout/register_home_list_row.xml index 3a67470bd..094cc41f4 100644 --- a/opensrp-anc/src/main/res/layout/register_home_list_row.xml +++ b/opensrp-anc/src/main/res/layout/register_home_list_row.xml @@ -10,7 +10,7 @@ android:paddingStart="@dimen/main_register_padding_start" android:paddingEnd="@dimen/main_register_padding_end"> - - + - - - \ No newline at end of file + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_advanced_search.xml b/opensrp-anc/src/main/res/layout/toolbar_advanced_search.xml index 063c001e3..ca42f607a 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_advanced_search.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_advanced_search.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - + + + + + @@ -73,8 +77,8 @@ android:textSize="@dimen/advanced_search_toolbar_text_size" /> - + - + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_characteristics.xml b/opensrp-anc/src/main/res/layout/toolbar_characteristics.xml index b7853f7f0..39012b89a 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_characteristics.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_characteristics.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_contact.xml b/opensrp-anc/src/main/res/layout/toolbar_contact.xml index 1458bacea..b79eab187 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_contact.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_contact.xml @@ -1,11 +1,11 @@ - - - - - + + diff --git a/opensrp-anc/src/main/res/layout/toolbar_container_form.xml b/opensrp-anc/src/main/res/layout/toolbar_container_form.xml index cc403a905..d7b28452c 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_container_form.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_container_form.xml @@ -1,11 +1,11 @@ - - - - - + + diff --git a/opensrp-anc/src/main/res/layout/toolbar_library.xml b/opensrp-anc/src/main/res/layout/toolbar_library.xml index 42987b148..f8a8c205b 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_library.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_library.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_library_activity.xml b/opensrp-anc/src/main/res/layout/toolbar_library_activity.xml index a3231d796..43c8647f3 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_library_activity.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_library_activity.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_previous_contacts.xml b/opensrp-anc/src/main/res/layout/toolbar_previous_contacts.xml index 40ba335d1..68aa02ec6 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_previous_contacts.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_previous_contacts.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_quick_check.xml b/opensrp-anc/src/main/res/layout/toolbar_quick_check.xml index 0b8c08073..06b5873ea 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_quick_check.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_quick_check.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/layout/toolbar_sort_filter.xml b/opensrp-anc/src/main/res/layout/toolbar_sort_filter.xml index 49f1e8a52..2a5307ff4 100644 --- a/opensrp-anc/src/main/res/layout/toolbar_sort_filter.xml +++ b/opensrp-anc/src/main/res/layout/toolbar_sort_filter.xml @@ -6,12 +6,12 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - - - - - - + + \ No newline at end of file diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java index 2e2992015..94cde5bed 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivityTest.java @@ -2,8 +2,8 @@ import android.app.Activity; import android.content.Context; -import android.support.v4.app.Fragment; -import android.support.v7.app.AlertDialog; +import androidx.fragment.app.Fragment; +import androidx.appcompat.app.AlertDialog; import com.google.common.collect.ImmutableMap; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java index 57ca928d8..53dfa3ba6 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java @@ -2,8 +2,8 @@ import android.app.Activity; import android.content.Intent; -import android.support.design.widget.AppBarLayout; -import android.support.design.widget.CollapsingToolbarLayout; +com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; import android.view.MenuItem; import android.widget.ImageView; import android.widget.TextView; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java index 520f7b5cc..953a1bccd 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java @@ -4,8 +4,8 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; -import android.support.design.widget.AppBarLayout; -import android.support.design.widget.CollapsingToolbarLayout; +com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; import android.widget.ImageView; import android.widget.TextView; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapterTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapterTest.java index 221d374b3..857317891 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapterTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/adapter/ProfileViewPagerAdapterTest.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.adapter; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import org.junit.Assert; import org.junit.Before; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragmentTest.java index 6bbc8c157..6552cbbe9 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragmentTest.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.fragment; import android.os.Bundle; -import android.support.v7.app.ActionBar; +import androidx.appcompat.app.ActionBar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileContactsFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileContactsFragmentTest.java index d76d0d7f4..84f6ceb13 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileContactsFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileContactsFragmentTest.java @@ -2,9 +2,9 @@ import android.app.Activity; import android.content.Intent; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import org.junit.After; import org.junit.Assert; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileOverviewFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileOverviewFragmentTest.java index 734a77fe9..a082329ee 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileOverviewFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileOverviewFragmentTest.java @@ -2,9 +2,9 @@ import android.app.Activity; import android.content.Intent; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import org.junit.After; import org.junit.Assert; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileTasksFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileTasksFragmentTest.java index 69edda6d2..db98c0c2d 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileTasksFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/ProfileTasksFragmentTest.java @@ -3,9 +3,9 @@ import android.app.Activity; import android.content.Intent; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentTransaction; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/ImageRenderHelperTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/ImageRenderHelperTest.java index c2f68df88..4113569d4 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/ImageRenderHelperTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/ImageRenderHelperTest.java @@ -4,7 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import android.widget.ImageView; import org.junit.Assert; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java index 802b660bc..bb42d1ab4 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.interactor; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/job/TestAncJobCreator.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/job/TestAncJobCreator.java index e08b65e28..4faca6fd3 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/job/TestAncJobCreator.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/job/TestAncJobCreator.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.job; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import android.util.Log; import com.evernote.android.job.Job; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java index 97efc2aa6..039b5f2d1 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java @@ -1,6 +1,6 @@ package org.smartregister.anc.library.model; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.time.DateUtils; import org.json.JSONArray; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterPresenterTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterPresenterTest.java index 5c78bcfce..3ef47c508 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterPresenterTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/presenter/RegisterPresenterTest.java @@ -1,7 +1,7 @@ package org.smartregister.anc.library.presenter; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import org.apache.commons.lang3.tuple.Triple; import org.json.JSONObject; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java index b76b9ab54..61299df2b 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/util/ANCJsonFormUtilsTest.java @@ -2,7 +2,7 @@ import android.content.ContentValues; import android.graphics.Bitmap; -import android.support.v4.util.Pair; +import androidx.core.util.Pair; import net.sqlcipher.database.SQLiteDatabase; diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8cacedb00..75f15cb82 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -74,9 +74,8 @@ android { buildConfigField "boolean", "IS_SYNC_SETTINGS", "true" buildConfigField "long", "EVENT_VERSION", System.currentTimeMillis() + "L" buildConfigField "boolean", "RESOLVE_SETTINGS", "true" - buildConfigField "boolean", "HAS_GLOBAL_SETTINGS", "true" - buildConfigField "boolean", "HAS_SETTINGS_SYNC", "true" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + buildConfigField "boolean", "HAS_EXTRA_SETTINGS_SYNC_FILTER", "true" + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' multiDexEnabled true if (properties != null && properties.containsKey("store.file") && properties.containsKey("store.password") && properties.containsKey("key.password")) { @@ -85,6 +84,7 @@ android { javaCompileOptions { annotationProcessorOptions { + includeCompileClasspath true arguments = [eventBusIndex: 'org.smartregister.anc.ANCEventBusIndex'] } } @@ -154,9 +154,9 @@ android { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE' - exclude 'META-INF/LICENSE' - exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/NOTICE.md' + exclude 'META-INF/LICENSE.md' + exclude 'META-INF/DEPENDENCIES.md' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' @@ -164,19 +164,6 @@ android { exclude 'LICENSE.txt' } - packagingOptions { - exclude 'META-INF/DEPENDENCIES.txt' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE' - exclude 'META-INF/LICENSE' - exclude 'META-INF/DEPENDENCIES' - exclude 'META-INF/notice.txt' - exclude 'META-INF/license.txt' - exclude 'META-INF/dependencies.txt' - exclude 'META-INF/LGPL2.1' - exclude 'LICENSE.txt' - } testOptions { unitTests { @@ -224,7 +211,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.8.6-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.9.2-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -235,7 +222,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.11.5000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -270,20 +257,20 @@ dependencies { implementation 'com.evernote:android-job:1.2.6' implementation 'com.github.lecho:hellocharts-android:v1.5.8' implementation 'id.zelory:compressor:2.1.0' - implementation('com.android.support:design:28.0.0') { + implementation('com.google.android.material:material:1.1.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'cardview-v7' } - implementation 'com.android.support:recyclerview-v7:28.0.0' - implementation 'com.android.support:cardview-v7:28.0.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.cardview:cardview:1.0.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.25' implementation 'de.hdodenhof:circleimageview:3.0.1' implementation 'org.jeasy:easy-rules-core:3.3.0' implementation 'org.jeasy:easy-rules-mvel:3.3.0' implementation 'com.flurry.android:analytics:11.6.0@aar' - implementation('com.google.firebase:firebase-analytics:16.5.0') { + implementation('com.google.firebase:firebase-analytics:17.4.3') { exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'support-media-compat' @@ -294,7 +281,7 @@ dependencies { transitive = true } implementation 'com.flurry.android:analytics:11.6.0@aar' - implementation 'com.android.support:multidex:1.0.3' + implementation 'androidx.multidex:multidex:2.0.1' testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/reference-app/src/main/AndroidManifest.xml b/reference-app/src/main/AndroidManifest.xml index 34150416b..5d539261f 100644 --- a/reference-app/src/main/AndroidManifest.xml +++ b/reference-app/src/main/AndroidManifest.xml @@ -123,7 +123,7 @@ android:screenOrientation="portrait" /> diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 4b21b20a7..40e7cdd8f 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -1,7 +1,7 @@ package org.smartregister.anc.application; import android.content.Intent; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.util.Log; import com.crashlytics.android.Crashlytics; diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index ecc55f6c5..e2ef2d8e0 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -35,14 +35,7 @@ public boolean resolveSettings() { } @Override - public boolean hasGlobalSettings() { - return BuildConfig.HAS_GLOBAL_SETTINGS; - } - - @Override - public boolean hasExtraSettingsSync() { - return BuildConfig.HAS_SETTINGS_SYNC; - } + public boolean hasExtraSettingsSync() { return BuildConfig.HAS_EXTRA_SETTINGS_SYNC_FILTER; } @Override public List getExtraSettingsParameters() { diff --git a/reference-app/src/main/java/org/smartregister/anc/job/AncJobCreator.java b/reference-app/src/main/java/org/smartregister/anc/job/AncJobCreator.java index 426413df3..a4c54ef54 100644 --- a/reference-app/src/main/java/org/smartregister/anc/job/AncJobCreator.java +++ b/reference-app/src/main/java/org/smartregister/anc/job/AncJobCreator.java @@ -1,7 +1,7 @@ package org.smartregister.anc.job; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.evernote.android.job.Job; import com.evernote.android.job.JobCreator; diff --git a/reference-app/src/main/java/org/smartregister/anc/job/ViewConfigurationsServiceJob.java b/reference-app/src/main/java/org/smartregister/anc/job/ViewConfigurationsServiceJob.java index 6d315442e..536c1c2f9 100644 --- a/reference-app/src/main/java/org/smartregister/anc/job/ViewConfigurationsServiceJob.java +++ b/reference-app/src/main/java/org/smartregister/anc/job/ViewConfigurationsServiceJob.java @@ -1,7 +1,7 @@ package org.smartregister.anc.job; import android.content.Intent; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.configurableviews.service.PullConfigurableViewsIntentService; diff --git a/sample/build.gradle b/sample/build.gradle index ce84a2c97..d33515499 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -15,7 +15,7 @@ android { versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' } @@ -31,9 +31,9 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' } diff --git a/sample/src/main/java/org/smartregister/sample/anc/MainActivity.java b/sample/src/main/java/org/smartregister/sample/anc/MainActivity.java index 2efb3f8fa..587accc92 100644 --- a/sample/src/main/java/org/smartregister/sample/anc/MainActivity.java +++ b/sample/src/main/java/org/smartregister/sample/anc/MainActivity.java @@ -1,7 +1,7 @@ package org.smartregister.sample.anc; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 84f19512d..a93027cef 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file From b7630164f0b815b8d8eeb7698bb0e22b5826f575 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 10 Jul 2020 12:33:40 +0300 Subject: [PATCH 045/302] :construction: Remove the `onActivityResult` super call --- .../anc/library/activity/BaseCharacteristicsActivity.java | 4 ---- .../anc/library/activity/BaseHomeRegisterActivity.java | 2 +- .../anc/library/activity/BaseProfileActivity.java | 2 +- .../smartregister/anc/library/activity/ProfileActivity.java | 2 +- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java index dd3e33814..fba8485df 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java @@ -39,7 +39,6 @@ protected void onCreate(Bundle savedInstanceState) { layoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(layoutManager); - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(), layoutManager.getOrientation()); recyclerView.addItemDecoration(dividerItemDecoration); @@ -56,7 +55,6 @@ protected void onCreate(Bundle savedInstanceState) { mToolbar.findViewById(R.id.characteristics_toolbar_edit) .setVisibility(title.equals(getString(R.string.population_characteristics)) ? View.GONE : View.VISIBLE); - } protected abstract BaseCharacteristicsContract.BasePresenter getPresenter(); @@ -66,7 +64,6 @@ protected void onCreate(Bundle savedInstanceState) { @Override public void onItemClick(View view, int position) { renderSubInfoAlertDialog(view.findViewById(R.id.info).getTag(R.id.CHARACTERISTIC_DESC).toString()); - } protected void renderSubInfoAlertDialog(String info) { @@ -87,7 +84,6 @@ protected void renderSubInfoAlertDialog(String info) { @Override public void renderSettings(List characteristics) { - CharacteristicsAdapter adapter = new CharacteristicsAdapter(this, characteristics); adapter.setClickListener(this); recyclerView.setAdapter(adapter); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 880996f74..d01085510 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -204,7 +204,7 @@ public void startFormActivity(JSONObject form) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); + //super.onActivityResult(requestCode, resultCode, data); if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { if (data != null) { Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java index dbe08f7f7..db426cb29 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java @@ -74,7 +74,7 @@ public void onResume() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); + //super.onActivityResult(requestCode, resultCode, data); AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { mProfilePresenter.processFormDetailsSave(data, allSharedPreferences); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index 3edc52b8f..5b4bdb72f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -279,7 +279,7 @@ protected void onDestroy() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); + //super.onActivityResult(requestCode, resultCode, data); AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { ((ProfilePresenter) presenter).processFormDetailsSave(data, allSharedPreferences); From 0a67f369f9483950246ae8a65059eeeff49bc450 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 13 Jul 2020 10:00:45 +0300 Subject: [PATCH 046/302] :construction: fix androidx move errors --- build.gradle | 2 +- opensrp-anc/build.gradle | 1 + .../java/org/smartregister/anc/library/util/ConstantsUtils.java | 2 +- opensrp-anc/src/test/AndroidTestManifest.xml | 2 +- reference-app/build.gradle | 1 + .../org/smartregister/anc/application/AncSyncConfiguration.java | 2 +- 6 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 621379c8a..45bdf1b88 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.3' - classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.2' + classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.palantir:jacoco-coverage:0.4.0' classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0" classpath 'com.google.gms:google-services:4.3.3' diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index f21a92b83..70f372ab5 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -195,6 +195,7 @@ dependencies { implementation 'de.hdodenhof:circleimageview:3.0.1' implementation 'org.jeasy:easy-rules-core:3.3.0' implementation 'org.jeasy:easy-rules-mvel:3.3.0' + implementation 'org.smartregister:opensrp-plan-evaluator:0.0.13-SNAPSHOT' testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index 9ff387d71..cbb1dc888 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -241,7 +241,7 @@ public static class ClientUtils { public static final String ANC_ID = "ANC_ID"; } - public static class SettingsSyncParams{ + public static class SettingsSyncParamsUtils { public static final String LOCATION_ID = "locationId"; } } diff --git a/opensrp-anc/src/test/AndroidTestManifest.xml b/opensrp-anc/src/test/AndroidTestManifest.xml index 01b8e0cb7..11abbba81 100644 --- a/opensrp-anc/src/test/AndroidTestManifest.xml +++ b/opensrp-anc/src/test/AndroidTestManifest.xml @@ -102,7 +102,7 @@ android:screenOrientation="portrait" /> diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 75f15cb82..62684e496 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -282,6 +282,7 @@ dependencies { } implementation 'com.flurry.android:analytics:11.6.0@aar' implementation 'androidx.multidex:multidex:2.0.1' + implementation 'org.smartregister:opensrp-plan-evaluator:0.0.13-SNAPSHOT' testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index e2ef2d8e0..630e65021 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -43,7 +43,7 @@ public List getExtraSettingsParameters() { String providerId = sharedPreferences.fetchRegisteredANM(); List params = new ArrayList<>(); - params.add(ConstantsUtils.SettingsSyncParams.LOCATION_ID + "=" + sharedPreferences.fetchDefaultLocalityId(providerId)); + params.add(ConstantsUtils.SettingsSyncParamsUtils.LOCATION_ID + "=" + sharedPreferences.fetchDefaultLocalityId(providerId)); return params; } From 15cc8710b3c36d5a3afb31d6fc5b69f806f46bca Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 13 Jul 2020 12:49:23 +0300 Subject: [PATCH 047/302] :construction: fix the form configuration work compatibility --- opensrp-anc/build.gradle | 4 ++-- .../activity/ActivityConfiguration.java | 1 + .../anc/library/activity/BaseActivity.java | 1 + .../activity/BaseCharacteristicsActivity.java | 8 +++---- .../library/activity/BaseContactActivity.java | 8 ++++--- .../activity/BaseHomeRegisterActivity.java | 13 ++++++------ .../library/activity/BaseProfileActivity.java | 8 ++++--- .../activity/ContactJsonFormActivity.java | 5 +++-- .../activity/ContactSummarySendActivity.java | 9 ++++---- .../activity/EditJsonFormActivity.java | 4 ++-- .../activity/LibraryContentActivity.java | 5 +++-- .../PreviousContactsDetailsActivity.java | 14 +++++++------ .../PreviousContactsTestsActivity.java | 7 ++++--- .../anc/library/activity/ProfileActivity.java | 14 +++++++------ .../adapter/CharacteristicsAdapter.java | 3 ++- .../anc/library/adapter/ContactAdapter.java | 3 ++- .../adapter/ContactScheduleAdapter.java | 7 ++++--- .../adapter/ContactSummaryAdapter.java | 5 +++-- .../adapter/ContactSummaryFinishAdapter.java | 3 ++- .../adapter/ContactTasksDisplayAdapter.java | 5 +++-- .../library/adapter/LastContactAdapter.java | 7 ++++--- .../LastContactAllTestsDialogAdapter.java | 7 ++++--- ...stContactAllTestsResultsDialogAdapter.java | 5 +++-- .../adapter/LibraryContentAdapter.java | 5 +++-- .../adapter/PreviousContactsAdapter.java | 7 ++++--- .../adapter/ProfileOverviewAdapter.java | 9 ++++---- .../fragment/AdvancedSearchFragment.java | 5 +++-- .../ContactWizardJsonFormFragment.java | 9 ++++---- .../fragment/HomeRegisterFragment.java | 21 ++++++++++++++++--- .../anc/library/fragment/LibraryFragment.java | 9 ++++---- .../anc/library/fragment/MeFragment.java | 7 ++++--- .../fragment/NoMatchDialogFragment.java | 11 +++++----- .../fragment/ProfileContactsFragment.java | 7 ++++--- .../fragment/ProfileOverviewFragment.java | 5 +++-- .../fragment/ProfileTasksFragment.java | 9 ++++---- .../library/fragment/SortFilterFragment.java | 13 ++++++------ .../library/interactor/ContactInteractor.java | 3 ++- .../anc/library/model/BaseContactModel.java | 2 +- .../anc/library/model/RegisterModel.java | 5 +++-- .../library/presenter/ProfilePresenter.java | 1 + .../library/presenter/RegisterPresenter.java | 1 + .../provider/AdvancedSearchProvider.java | 3 ++- .../library/provider/RegisterProvider.java | 3 ++- .../sync/BaseAncClientProcessorForJava.java | 2 +- .../anc/library/util/ANCJsonFormUtils.java | 17 ++++++++------- .../library/util/ImageLoaderRequestUtils.java | 3 ++- .../util/SiteCharacteristicsFormUtils.java | 1 + .../anc/library/util/TemplateUtils.java | 1 + .../smartregister/anc/library/util/Utils.java | 5 +++-- .../library/view/CopyToClipboardDialog.java | 3 ++- .../anc/library/view/RoundedImageView.java | 3 ++- .../anc/library/view/SquareCardView.java | 3 ++- .../viewholder/ContactTasksViewHolder.java | 5 +++-- .../viewholder/LibraryContentViewHolder.java | 5 +++-- opensrp-anc/src/test/AndroidTestManifest.xml | 2 +- reference-app/build.gradle | 4 ++-- reference-app/src/main/AndroidManifest.xml | 3 ++- .../anc/application/AncApplication.java | 5 ++++- .../anc/interactor/LoginInteractor.java | 5 +++++ .../smartregister/anc/job/AncJobCreator.java | 4 ++++ .../anc/repository/AncRepository.java | 4 ++++ 61 files changed, 218 insertions(+), 138 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 70f372ab5..718e29d06 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -56,7 +56,7 @@ android { minSdkVersion androidMinSdkVersion targetSdkVersion androidTargetSdkVersion versionCode 1 - versionName "1.4.0" + versionName "1.5.0" multiDexEnabled true testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' @@ -131,7 +131,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' - implementation('org.smartregister:opensrp-client-native-form:1.9.2-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java index 74a591833..da92caaa9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ActivityConfiguration.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.activity; import android.app.Activity; + import androidx.annotation.NonNull; /** diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java index 4cda4680b..9bc5b9f11 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java @@ -3,6 +3,7 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; + import androidx.appcompat.app.AppCompatActivity; import org.smartregister.anc.library.AncLibrary; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java index fba8485df..2d2161ede 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseCharacteristicsActivity.java @@ -2,16 +2,16 @@ import android.os.Build; import android.os.Bundle; +import android.util.TypedValue; +import android.view.View; +import android.widget.TextView; + import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import android.util.TypedValue; -import android.view.View; -import android.widget.TextView; - import org.smartregister.anc.library.R; import org.smartregister.anc.library.adapter.CharacteristicsAdapter; import org.smartregister.anc.library.contract.BaseCharacteristicsContract; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java index e70a9f0ba..45ecf71e8 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseContactActivity.java @@ -4,9 +4,6 @@ import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; -//import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -15,6 +12,9 @@ import android.widget.Button; import android.widget.TextView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.vijay.jsonwizard.constants.JsonFormConstants; import org.jetbrains.annotations.NotNull; @@ -40,6 +40,8 @@ import timber.log.Timber; +//import androidx.recyclerview.widget.GridLayoutManager; + public abstract class BaseContactActivity extends SecuredActivity { protected ContactAdapter contactAdapter; protected ContactActionHandler contactActionHandler = new ContactActionHandler(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index d01085510..4bfb1b4f5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -3,11 +3,6 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.Fragment; - import android.view.LayoutInflater; import android.view.Menu; import android.view.View; @@ -16,9 +11,13 @@ import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; + import com.google.android.gms.vision.barcode.Barcode; import com.google.android.material.bottomnavigation.LabelVisibilityMode; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import com.vijay.jsonwizard.constants.JsonFormConstants; import org.apache.commons.lang3.StringUtils; @@ -196,7 +195,7 @@ public void startFormActivity(String formName, String entityId, String metaData) @Override public void startFormActivity(JSONObject form) { - Intent intent = new Intent(this, JsonFormActivity.class); + Intent intent = new Intent(this, FormConfigurationJsonFormActivity.class); intent.putExtra(ConstantsUtils.JsonFormExtraUtils.JSON, form.toString()); intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java index db426cb29..4f8835166 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseProfileActivity.java @@ -4,11 +4,10 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; -//com.google.android.material.appbar.AppBarLayout; -//import com.google.android.material.appbar.CollapsingToolbarLayout; +import android.view.View; + import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.Toolbar; -import android.view.View; import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; @@ -30,6 +29,9 @@ import timber.log.Timber; +//com.google.android.material.appbar.AppBarLayout; +//import com.google.android.material.appbar.CollapsingToolbarLayout; + /** * Created by ndegwamartin on 16/07/2018. */ diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 7e9bfd4a6..3a49dd230 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -10,7 +10,7 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; @@ -36,7 +36,7 @@ * Created by ndegwamartin on 30/06/2018. */ -public class ContactJsonFormActivity extends JsonFormActivity { +public class ContactJsonFormActivity extends FormConfigurationJsonFormActivity { protected AncRulesEngineFactory rulesEngineFactory = null; private ProgressDialog progressDialog; private String formName; @@ -50,6 +50,7 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } + @Override public void init(String json) { try { setmJSONObject(new JSONObject(json)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java index 92f23c80c..59469366f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummarySendActivity.java @@ -1,16 +1,17 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.adapter.ContactSummaryAdapter; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java index b5e1307c9..4c8a27cac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java @@ -2,11 +2,11 @@ import android.os.Bundle; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import org.smartregister.anc.library.R; -public class EditJsonFormActivity extends JsonFormActivity { +public class EditJsonFormActivity extends FormConfigurationJsonFormActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java index 53810b812..18e6c382b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/LibraryContentActivity.java @@ -1,11 +1,12 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.TextView; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.R; import org.smartregister.anc.library.util.ConstantsUtils; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 11d71fcbc..5a1007f25 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -1,18 +1,18 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; -//import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.TextView; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.json.JSONException; import org.json.JSONObject; @@ -43,6 +43,8 @@ import java.util.Locale; import java.util.Map; +//import androidx.constraintlayout.widget.ConstraintLayout; + public class PreviousContactsDetailsActivity extends AppCompatActivity implements PreviousContactsDetails.View { private static final String TAG = PreviousContactsDetailsActivity.class.getCanonicalName(); protected PreviousContactsDetails.Presenter mProfilePresenter; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java index 7047d8a5d..8899d07ea 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsTestsActivity.java @@ -1,13 +1,14 @@ package org.smartregister.anc.library.activity; import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.widget.LinearLayout; + import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import android.view.MenuItem; -import android.view.View; -import android.widget.LinearLayout; import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index 5b4bdb72f..bc13a890f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -8,12 +8,6 @@ import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.net.Uri; -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; -//import androidx.fragment.app.Fragment; -//import androidx.viewpager.widget.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -24,6 +18,11 @@ import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + import org.apache.commons.lang3.StringUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -51,6 +50,9 @@ import timber.log.Timber; +//import androidx.fragment.app.Fragment; +//import androidx.viewpager.widget.ViewPager; + /** * Created by ndegwamartin on 10/07/2018. */ diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java index 694a28567..da4471a9b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/CharacteristicsAdapter.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.R; import org.smartregister.domain.ServerSetting; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java index c3202b9d7..531919ee9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactAdapter.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import org.jetbrains.annotations.NotNull; import org.smartregister.anc.library.R; import org.smartregister.anc.library.domain.Contact; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java index deb19dd73..1a8622da3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactScheduleAdapter.java @@ -1,14 +1,15 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.RecyclerView; + import org.joda.time.DateTime; import org.joda.time.Weeks; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java index d35298b78..7a31211a3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryAdapter.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.adapter; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.R; import org.smartregister.anc.library.model.ContactSummaryModel; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java index ffc1505a9..7e68df787 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactSummaryFinishAdapter.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java index 447a8f87f..b77df8c82 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ContactTasksDisplayAdapter.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.utils.Utils; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java index 773a9ba11..b41b3a376 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAdapter.java @@ -1,9 +1,6 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +8,10 @@ import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.RecyclerView; + import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java index a28dd7ddd..4e73f4bc3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsDialogAdapter.java @@ -1,14 +1,15 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.R; import org.smartregister.anc.library.domain.TestResults; import org.smartregister.anc.library.domain.TestResultsDialog; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java index 1a6e0ffa2..abc6be811 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LastContactAllTestsResultsDialogAdapter.java @@ -2,13 +2,14 @@ import android.content.Context; import android.graphics.Typeface; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import org.jetbrains.annotations.NotNull; import org.smartregister.anc.library.R; import org.smartregister.anc.library.domain.TestResults; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java index 7fc5cd132..b58cad71c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/LibraryContentAdapter.java @@ -2,12 +2,13 @@ import android.app.Activity; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.R; import org.smartregister.anc.library.model.LibraryContent; import org.smartregister.anc.library.viewholder.LibraryContentViewHolder; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java index 69d6b3e67..35979b173 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/PreviousContactsAdapter.java @@ -1,13 +1,14 @@ package org.smartregister.anc.library.adapter; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.json.JSONException; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java index c27cb58b0..9ee669421 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/adapter/ProfileOverviewAdapter.java @@ -2,10 +2,6 @@ import android.app.Activity; import android.content.Context; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; @@ -17,6 +13,11 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.json.JSONArray; import org.json.JSONException; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java index 34b55eab0..28f92ee48 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/AdvancedSearchFragment.java @@ -7,8 +7,6 @@ import android.database.Cursor; import android.net.ConnectivityManager; import android.os.Bundle; -//import androidx.loader.content.CursorLoader; -//mport androidx.loader.content.Loader; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -52,6 +50,9 @@ import timber.log.Timber; +//import androidx.loader.content.CursorLoader; +//mport androidx.loader.content.Loader; + public class AdvancedSearchFragment extends HomeRegisterFragment implements AdvancedSearchContract.View, RegisterFragmentContract.View { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java index 92160cfc9..b66e79747 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ContactWizardJsonFormFragment.java @@ -3,8 +3,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; @@ -21,7 +19,10 @@ import android.widget.TextView; import android.widget.Toast; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import androidx.annotation.Nullable; +import androidx.appcompat.app.ActionBar; + +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; import com.vijay.jsonwizard.interactors.JsonFormInteractor; @@ -88,7 +89,7 @@ private Contact getContact() { private void quickCheckClose() { AlertDialog dialog = new AlertDialog.Builder(getContext(), R.style.AppThemeAlertDialog) .setTitle(getJsonApi().getConfirmCloseTitle()).setMessage(getJsonApi().getConfirmCloseMessage()) - .setNegativeButton(R.string.yes, (dialog1, which) -> ((ContactJsonFormActivity) getActivity()).finishInitialQuickCheck()).setPositiveButton(R.string.no, (dialog12, which) -> Timber.d("No button on dialog in %s", JsonFormActivity.class.getCanonicalName())).create(); + .setNegativeButton(R.string.yes, (dialog1, which) -> ((ContactJsonFormActivity) getActivity()).finishInitialQuickCheck()).setPositiveButton(R.string.no, (dialog12, which) -> Timber.d("No button on dialog in %s", FormConfigurationJsonFormActivity.class.getCanonicalName())).create(); dialog.show(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java index ec1cfc61c..39dddf030 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java @@ -3,13 +3,14 @@ import android.annotation.SuppressLint; import android.database.Cursor; import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; +import android.widget.RelativeLayout; import androidx.fragment.app.Fragment; import androidx.loader.content.CursorLoader; import androidx.loader.content.Loader; -import android.text.TextUtils; -import android.view.View; -import android.widget.RelativeLayout; import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.AncLibrary; @@ -31,6 +32,8 @@ import org.smartregister.cursoradapter.RecyclerViewPaginatedAdapter; import org.smartregister.cursoradapter.SmartRegisterQueryBuilder; import org.smartregister.domain.FetchStatus; +import org.smartregister.job.DocumentConfigurationServiceJob; +import org.smartregister.job.SyncSettingsServiceJob; import org.smartregister.receiver.SyncStatusBroadcastReceiver; import org.smartregister.view.activity.BaseRegisterActivity; import org.smartregister.view.fragment.BaseRegisterFragment; @@ -113,6 +116,18 @@ public void setupViews(View view) { } } + @Override + protected void attachSyncButton(View view) { + //Sync + syncButton = view.findViewById(R.id.sync_refresh); + if (syncButton != null) { + syncButton.setOnClickListener(view1 -> { + SyncSettingsServiceJob.scheduleJobImmediately(SyncSettingsServiceJob.TAG); + DocumentConfigurationServiceJob.scheduleJobImmediately(DocumentConfigurationServiceJob.TAG); + }); + } + } + @Override protected String getMainCondition() { return DBQueryHelper.getHomePatientRegisterCondition(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java index f71ab08b2..b43dadd79 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/LibraryFragment.java @@ -1,14 +1,15 @@ package org.smartregister.anc.library.fragment; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import androidx.appcompat.widget.Toolbar; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 8884542de..c1f2f0046 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -2,15 +2,16 @@ import android.content.Intent; import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; + import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java index 19688674b..8d29a561f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/NoMatchDialogFragment.java @@ -1,19 +1,18 @@ package org.smartregister.anc.library.fragment; import android.annotation.SuppressLint; -import androidx.fragment.app.Fragment; - -import androidx.fragment.app.FragmentTransaction; import android.content.DialogInterface; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.fragment.app.DialogFragment; - import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import androidx.annotation.Nullable; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; + import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; import org.smartregister.view.activity.BaseRegisterActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index f58568126..f57d7ee74 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -2,9 +2,6 @@ import android.content.Intent; import android.os.Bundle; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -14,6 +11,10 @@ import android.widget.ScrollView; import android.widget.TextView; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java index 61e5bbd7a..35eaed0e0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java @@ -1,13 +1,14 @@ package org.smartregister.anc.library.fragment; import android.os.Bundle; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.jeasy.rules.api.Facts; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java index e36ad6ea1..a6be020ae 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileTasksFragment.java @@ -2,15 +2,16 @@ import android.content.Intent; import android.os.Bundle; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; @@ -165,7 +166,7 @@ private void toggleViews(List taskList) { public void startTaskForm(JSONObject jsonForm, Task task) { setCurrentTask(task); - Intent intent = new Intent(getActivity(), JsonFormActivity.class); + Intent intent = new Intent(getActivity(), FormConfigurationJsonFormActivity.class); intent.putExtra(ConstantsUtils.JsonFormExtraUtils.JSON, String.valueOf(jsonForm)); intent.putExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID, baseEntityId); intent.putExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP, clientDetails); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java index 330fcf6b9..97327bf36 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/SortFilterFragment.java @@ -4,12 +4,6 @@ import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.DividerItemDecoration; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.text.Html; import android.view.LayoutInflater; import android.view.View; @@ -18,6 +12,13 @@ import android.widget.CheckedTextView; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import org.apache.commons.lang3.StringUtils; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java index 2daeda0ac..fbbd1a8ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java @@ -1,9 +1,10 @@ package org.smartregister.anc.library.interactor; import android.content.Context; +import android.text.TextUtils; + import androidx.annotation.VisibleForTesting; import androidx.core.util.Pair; -import android.text.TextUtils; import org.jeasy.rules.api.Facts; import org.joda.time.LocalDate; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java index 8021bdc86..78fd0f04e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java @@ -39,7 +39,7 @@ private String extractValue(Map details, String key) { } protected JSONObject getFormAsJson(String formName, String entityId, String currentLocationId) throws Exception { - JSONObject form = getFormUtils().getFormJson(formName); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(AncLibrary.getInstance().getApplicationContext(), formName); if (form == null) { return null; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java index 40b990293..a5e32ccdf 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java @@ -1,8 +1,9 @@ package org.smartregister.anc.library.model; -import androidx.core.util.Pair; import android.util.Log; +import androidx.core.util.Pair; + import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.contract.RegisterContract; @@ -52,7 +53,7 @@ public Pair processRegistration(String jsonString) { @Override public JSONObject getFormAsJson(String formName, String entityId, String currentLocationId) throws Exception { - JSONObject form = getFormUtils().getFormJson(formName); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(AncLibrary.getInstance().getApplicationContext(), formName); if (form == null) { return null; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java index 3697321a5..3d729b828 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfilePresenter.java @@ -2,6 +2,7 @@ import android.content.Context; import android.content.Intent; + import androidx.core.util.Pair; import org.apache.commons.lang3.tuple.Triple; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java index 453903711..ce186b0cb 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java @@ -2,6 +2,7 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; + import androidx.core.util.Pair; import org.apache.commons.lang3.StringUtils; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java index 59382ad17..75733125a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/AdvancedSearchProvider.java @@ -2,13 +2,14 @@ import android.content.Context; import android.database.Cursor; -import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import org.apache.commons.lang3.text.WordUtils; import org.smartregister.anc.library.R; import org.smartregister.anc.library.fragment.HomeRegisterFragment; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java index d706c365e..b0ec08072 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java @@ -2,7 +2,6 @@ import android.content.Context; import android.database.Cursor; -import androidx.recyclerview.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -10,6 +9,8 @@ import android.widget.Button; import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; + import com.vijay.jsonwizard.views.CustomTextView; import org.apache.commons.lang3.StringUtils; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index aed5d813e..edfdc41cf 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -4,10 +4,10 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import androidx.annotation.Nullable; import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import com.google.gson.reflect.TypeToken; import com.vijay.jsonwizard.constants.JsonFormConstants; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 97e466654..ab04a9435 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -4,16 +4,17 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.core.util.Pair; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.core.util.Pair; + import com.google.common.reflect.TypeToken; -import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; import com.vijay.jsonwizard.constants.JsonFormConstants; import org.apache.commons.lang3.StringUtils; @@ -677,8 +678,8 @@ public static Triple saveRemovedFromANCRegister(AllShared public static void launchANCCloseForm(Activity activity) { try { - Intent intent = new Intent(activity, JsonFormActivity.class); - JSONObject form = FormUtils.getInstance(activity).getFormJson(ConstantsUtils.JsonFormUtils.ANC_CLOSE); + Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_CLOSE); if (form != null) { form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); @@ -692,8 +693,8 @@ public static void launchANCCloseForm(Activity activity) { public static void launchSiteCharacteristicsForm(Activity activity) { try { - Intent intent = new Intent(activity, JsonFormActivity.class); - JSONObject form = FormUtils.getInstance(activity).getFormJson(ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); + Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); if (form != null) { form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java index 7bb0cbc50..f0a2342f0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ImageLoaderRequestUtils.java @@ -2,7 +2,6 @@ import android.content.Context; import android.graphics.Bitmap; -//import androidx.collection.LruCache; import androidx.collection.LruCache; @@ -14,6 +13,8 @@ import com.android.volley.toolbox.HurlStack; import com.android.volley.toolbox.ImageLoader; +//import androidx.collection.LruCache; + /** * Created by samuelgithengi on 1/19/18. */ diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java index 31236f759..eefc6b537 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/SiteCharacteristicsFormUtils.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.util; import android.content.Context; + import androidx.annotation.NonNull; import org.json.JSONObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java index c17965a13..59c1a7a11 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/TemplateUtils.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.util; import android.content.Context; + import androidx.annotation.NonNull; import org.json.JSONException; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index d0d298f4f..2fc629c5c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -7,8 +7,6 @@ import android.content.res.Resources; import android.database.Cursor; import android.preference.PreferenceManager; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.TypedValue; @@ -16,6 +14,9 @@ import android.widget.Button; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java index 27b3aa653..49ad4f45b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/CopyToClipboardDialog.java @@ -5,12 +5,13 @@ import android.content.ClipboardManager; import android.content.Context; import android.os.Bundle; -import androidx.annotation.NonNull; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.TextView; +import androidx.annotation.NonNull; + import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java index edb25d49d..4e98b2ee2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/RoundedImageView.java @@ -10,10 +10,11 @@ import android.graphics.PorterDuffXfermode; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import androidx.appcompat.widget.AppCompatImageView; import android.util.AttributeSet; import android.view.ViewGroup; +import androidx.appcompat.widget.AppCompatImageView; + import org.smartregister.anc.library.R; /** diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java index 5dbc52f38..5f498646b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/view/SquareCardView.java @@ -1,11 +1,12 @@ package org.smartregister.anc.library.view; import android.content.Context; -//import androidx.cardview.widget.CardView; import android.util.AttributeSet; import androidx.cardview.widget.CardView; +//import androidx.cardview.widget.CardView; + public class SquareCardView extends CardView { public SquareCardView(Context context) { super(context); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java index dae420f5b..6adf08af8 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/ContactTasksViewHolder.java @@ -1,13 +1,14 @@ package org.smartregister.anc.library.viewholder; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import com.vijay.jsonwizard.views.CustomTextView; import org.smartregister.anc.library.R; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java index 0e9d41188..d28e198d3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/viewholder/LibraryContentViewHolder.java @@ -1,12 +1,13 @@ package org.smartregister.anc.library.viewholder; import android.app.Activity; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import org.smartregister.anc.library.R; import org.smartregister.anc.library.listener.LibraryContentClickListener; import org.smartregister.view.customcontrols.CustomFontTextView; diff --git a/opensrp-anc/src/test/AndroidTestManifest.xml b/opensrp-anc/src/test/AndroidTestManifest.xml index 11abbba81..0788805dd 100644 --- a/opensrp-anc/src/test/AndroidTestManifest.xml +++ b/opensrp-anc/src/test/AndroidTestManifest.xml @@ -16,7 +16,7 @@ android:theme="@style/AncAppTheme"> + Date: Mon, 13 Jul 2020 15:13:26 +0300 Subject: [PATCH 048/302] :zap: update min sdk and fix broken xml --- build.gradle | 2 +- sample/src/main/res/layout/activity_main.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 45bdf1b88..2df61f1c7 100644 --- a/build.gradle +++ b/build.gradle @@ -63,7 +63,7 @@ subprojects { ext.androidToolsBuildGradle = '29.0.2' ext.androidBuildToolsVersion = '29.0.2' - ext.androidMinSdkVersion = 18 + ext.androidMinSdkVersion = 26 ext.androidCompileSdkVersion = 29 ext.androidTargetSdkVersion = 29 ext.androidAnnotationsVersion = '3.0.1' diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index a93027cef..4fc244418 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -15,4 +15,4 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file + \ No newline at end of file From 5932f3dd9b96d55d482061a9ee40f633bbfe4a0f Mon Sep 17 00:00:00 2001 From: bennsimon Date: Tue, 14 Jul 2020 09:50:45 +0300 Subject: [PATCH 049/302] update opensrp url to anc add check got contact summar model to avoid duplicates --- .../anc/library/model/ContactSummaryModel.java | 11 +++++++++++ .../library/presenter/ContactSummaryPresenter.java | 7 ++++++- reference-app/build.gradle | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactSummaryModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactSummaryModel.java index de5561635..b77174a97 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactSummaryModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactSummaryModel.java @@ -1,5 +1,7 @@ package org.smartregister.anc.library.model; +import android.support.annotation.Nullable; + import org.json.JSONObject; import java.util.Date; @@ -68,4 +70,13 @@ public Date getLocalDate() { public void setLocalDate(Date localDate) { this.localDate = localDate; } + + @Override + public boolean equals(@Nullable Object obj) { + if (obj == null) { + return false; + } + String key = ((ContactSummaryModel) obj).getContactName(); + return this.getContactName().equals(key); + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactSummaryPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactSummaryPresenter.java index b45c7512c..38b981f48 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactSummaryPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ContactSummaryPresenter.java @@ -78,7 +78,12 @@ public void onUpcomingContactsFetched(List upcomingContacts if ((upcomingContacts == null || upcomingContacts.isEmpty()) && lastContact >= 0) { return; } - this.upcomingContacts.addAll(upcomingContacts); + this.upcomingContacts.clear(); + for (ContactSummaryModel contactSummaryModel : upcomingContacts) { + if (!this.upcomingContacts.contains(contactSummaryModel)) { + this.upcomingContacts.add(contactSummaryModel); + } + } addUpcomingContactsToView(); getView().updateRecordedContact(lastContact); } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 83a7e5ef3..1330a5c54 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -130,7 +130,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://opensrp-jembi-eregister.smartregister.org/opensrp/"' //TODO should be changed to anc staging url + resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' From ab1fa0013d603d1e8413c22467a57a10ec49484a Mon Sep 17 00:00:00 2001 From: Allan O Date: Fri, 17 Jul 2020 17:13:11 +0300 Subject: [PATCH 050/302] :arrow_up: Update native form dependency Update to version with MLS work --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 4797f43ad..9a440aae4 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -211,7 +211,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 64038f529c23e0e85080bdd085635346d4f2493e Mon Sep 17 00:00:00 2001 From: Allan O Date: Fri, 17 Jul 2020 17:14:27 +0300 Subject: [PATCH 051/302] :arrow_up: Update ANC's native form dependency --- opensrp-anc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 718e29d06..b995247eb 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -131,7 +131,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' - implementation('org.smartregister:opensrp-client-native-form:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 7cb51fcfa5e071d7ab5301675343c2f6a25d30ea Mon Sep 17 00:00:00 2001 From: Allan O Date: Fri, 17 Jul 2020 17:15:28 +0300 Subject: [PATCH 052/302] :construction: Load YAML translated with properties from DB --- .../src/main/java/org/smartregister/anc/library/AncLibrary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 3c606ab5e..c6d87dd64 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -316,7 +316,7 @@ public JSONObject getDefaultContactFormGlobals() { } public Iterable readYaml(String filename) { - return yaml.loadAll(com.vijay.jsonwizard.utils.Utils.getTranslatedYamlFile((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename), getApplicationContext())); + return yaml.loadAll(com.vijay.jsonwizard.utils.Utils.getTranslatedYamlFileWithDBProperties((FilePathUtils.FolderUtils.CONFIG_FOLDER_PATH + filename), getApplicationContext())); } public int getDatabaseVersion() { From 591e688373452356b8df827877df3074420003da Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 20 Jul 2020 13:26:53 +0300 Subject: [PATCH 053/302] :construction: display the form release manifest version --- opensrp-anc/build.gradle | 4 ++-- .../anc/library/fragment/MeFragment.java | 11 +++++++++++ .../org/smartregister/anc/library/util/Utils.java | 6 ++++++ opensrp-anc/src/main/res/layout/activity_login.xml | 10 ++++++++++ opensrp-anc/src/main/res/layout/fragment_me.xml | 10 ++++++++++ opensrp-anc/src/main/res/values/strings.xml | 1 + reference-app/build.gradle | 4 ++-- .../smartregister/anc/activity/LoginActivity.java | 13 +++++++++++++ .../smartregister/anc/repository/AncRepository.java | 8 +++++++- 9 files changed, 62 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 718e29d06..afac73a2c 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -131,7 +131,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' - implementation('org.smartregister:opensrp-client-native-form:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -142,7 +142,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index c1f2f0046..9a827105c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -60,6 +60,17 @@ protected void setUpViews(View view) { languageSwitcherText = languageSwitcherSection.findViewById(R.id.language_switcher_text); registerLanguageSwitcher(); } + + setManifestVersion(view); + } + + private void setManifestVersion(View view) { + TextView manifestVersionText = view.findViewById(R.id.form_manifest_version); + if (getActivity() != null) { + manifestVersionText.setText(new Utils().getManifestVersion(getActivity().getBaseContext())); + } else { + manifestVersionText.setVisibility(View.INVISIBLE); + } } protected void setClickListeners() { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 2fc629c5c..3ce6c5f26 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -35,6 +35,7 @@ import org.json.JSONException; import org.json.JSONObject; import org.smartregister.AllConstants; +import org.smartregister.CoreLibrary; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; @@ -696,4 +697,9 @@ private void createAndPersistPartialContact(String baseEntityId, int contactNo, public ContactTasksRepository getContactTasksRepositoryHelper() { return AncLibrary.getInstance().getContactTasksRepository(); } + + @Nullable + public String getManifestVersion(Context context) { + return context.getString(R.string.form_manifest_version, CoreLibrary.getInstance().context().allSharedPreferences().fetchManifestVersion()); + } } diff --git a/opensrp-anc/src/main/res/layout/activity_login.xml b/opensrp-anc/src/main/res/layout/activity_login.xml index 795826b63..dae688f92 100644 --- a/opensrp-anc/src/main/res/layout/activity_login.xml +++ b/opensrp-anc/src/main/res/layout/activity_login.xml @@ -57,6 +57,16 @@ android:textColor="#90c4dc" android:textSize="@dimen/login_build_text_view_textSize" /> + + diff --git a/opensrp-anc/src/main/res/layout/fragment_me.xml b/opensrp-anc/src/main/res/layout/fragment_me.xml index ca7138288..c0629622b 100644 --- a/opensrp-anc/src/main/res/layout/fragment_me.xml +++ b/opensrp-anc/src/main/res/layout/fragment_me.xml @@ -435,6 +435,16 @@ android:textSize="@dimen/login_build_text_view_textSize" android:typeface="sans" /> + + diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 6602242bf..de060c312 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -262,6 +262,7 @@ Section Icon Settings App version: %1$s (built on %2$s) + Form Release version: v%1$s Data synced: %1$s at %2$s QR Code diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 4797f43ad..dbac2d588 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -211,7 +211,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -222,7 +222,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.3-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java index 89d841ff6..39729e6e0 100644 --- a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java +++ b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java @@ -1,6 +1,8 @@ package org.smartregister.anc.activity; import android.content.Intent; +import android.os.Bundle; +import android.widget.TextView; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -31,6 +33,17 @@ protected void onResume() { } } + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setUpViews(); + } + + private void setUpViews() { + TextView formReleaseTextView = findViewById(R.id.manifest_text_view); + formReleaseTextView.setText(new Utils().getManifestVersion(this)); + } + @Override protected int getContentView() { return R.layout.activity_login; diff --git a/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java b/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java index 24d35df73..359637454 100644 --- a/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java +++ b/reference-app/src/main/java/org/smartregister/anc/repository/AncRepository.java @@ -60,7 +60,7 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { while (upgradeTo <= newVersion) { switch (upgradeTo) { case 2: - // upgradeToVersion2(db); + upgradeToVersion2(db); break; default: break; @@ -69,6 +69,12 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } + private void upgradeToVersion2(SQLiteDatabase db) { + if (!ManifestRepository.isVersionColumnExist(db)) { + ManifestRepository.addVersionColumn(db); + } + } + @Override public SQLiteDatabase getReadableDatabase() { return getReadableDatabase(DrishtiApplication.getInstance().getPassword()); From 4d5f21f408acef88d6e26a68a8d5057cb92f5214 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 20 Jul 2020 13:34:00 +0300 Subject: [PATCH 054/302] :ok_hand: fix some codacy requests --- .../fragment/HomeRegisterFragment.java | 1 - .../anc/library/model/BaseContactModel.java | 16 --------------- .../anc/library/model/RegisterModel.java | 20 ------------------- .../sync/BaseAncClientProcessorForJava.java | 1 - 4 files changed, 38 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java index 39dddf030..d3bf0b08f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.View; -import android.widget.ImageView; import android.widget.RelativeLayout; import androidx.fragment.app.Fragment; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java index 78fd0f04e..a518794ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/BaseContactModel.java @@ -1,19 +1,14 @@ package org.smartregister.anc.library.model; -import android.util.Log; - import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.util.FormUtils; import java.util.Map; public abstract class BaseContactModel { - private FormUtils formUtils; - protected String extractPatientName(Map womanDetails) { String firstName = extractValue(womanDetails, DBConstantsUtils.KeyUtils.FIRST_NAME); String lastName = extractValue(womanDetails, DBConstantsUtils.KeyUtils.LAST_NAME); @@ -45,15 +40,4 @@ protected JSONObject getFormAsJson(String formName, String entityId, String curr } return ANCJsonFormUtils.getFormAsJson(form, formName, entityId, currentLocationId); } - - private FormUtils getFormUtils() { - if (formUtils == null) { - try { - formUtils = FormUtils.getInstance(AncLibrary.getInstance().getApplicationContext()); - } catch (Exception e) { - Log.e(RegisterModel.class.getCanonicalName(), e.getMessage(), e); - } - } - return formUtils; - } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java index a5e32ccdf..316980c22 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterModel.java @@ -1,7 +1,5 @@ package org.smartregister.anc.library.model; -import android.util.Log; - import androidx.core.util.Pair; import org.json.JSONObject; @@ -13,13 +11,11 @@ import org.smartregister.clientandeventmodel.Event; import org.smartregister.configurableviews.ConfigurableViewsLibrary; import org.smartregister.location.helper.LocationHelper; -import org.smartregister.util.FormUtils; import java.util.List; import java.util.Map; public class RegisterModel implements RegisterContract.Model { - private FormUtils formUtils; @Override public void registerViewConfigurations(List viewIdentifiers) { @@ -60,22 +56,6 @@ public JSONObject getFormAsJson(String formName, String entityId, String current return ANCJsonFormUtils.getFormAsJson(form, formName, entityId, currentLocationId); } - private FormUtils getFormUtils() { - if (formUtils == null) { - try { - formUtils = FormUtils.getInstance(AncLibrary.getInstance().getApplicationContext()); - } catch (Exception e) { - Log.e(RegisterModel.class.getCanonicalName(), e.getMessage(), e); - } - } - return formUtils; - } - - public void setFormUtils(FormUtils formUtils) { - this.formUtils = formUtils; - } - - @Override public String getInitials() { return Utils.getUserInitials(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index edfdc41cf..faf95e39e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -191,7 +191,6 @@ private void processContactTasks(Event event) { String openTasks = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.OPEN_TEST_TASKS); if (StringUtils.isNotBlank(openTasks)) { JSONArray openTasksArray = new JSONArray(openTasks); - String contactNo = getContact(event); for (int i = 0; i < openTasksArray.length(); i++) { JSONObject tasks = new JSONObject(openTasksArray.getString(i)); From 156b7f0426f27127aa7c671c10608feedbcfbca8 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 20 Jul 2020 15:56:59 +0300 Subject: [PATCH 055/302] :arrow_up: bump native forms --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index afac73a2c..58e9cf095 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -131,7 +131,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' - implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index dbac2d588..893984de7 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -211,7 +211,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.13.3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From a1e72a54ec148d0444ad7802027b71d52683d130 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 20 Jul 2020 16:06:42 +0300 Subject: [PATCH 056/302] :arrow_up: bump up core version --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 58e9cf095..620c08ba8 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -142,7 +142,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 893984de7..98d298910 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -222,7 +222,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.13.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' From 8e138bda94d70bf9be6e2e444b18c25457330e02 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 22 Jul 2020 15:32:59 +0300 Subject: [PATCH 057/302] :arrow_up: bump up version --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 620c08ba8..34b88af7e 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -195,7 +195,7 @@ dependencies { implementation 'de.hdodenhof:circleimageview:3.0.1' implementation 'org.jeasy:easy-rules-core:3.3.0' implementation 'org.jeasy:easy-rules-mvel:3.3.0' - implementation 'org.smartregister:opensrp-plan-evaluator:0.0.13-SNAPSHOT' + implementation 'org.smartregister:opensrp-plan-evaluator:0.0.19-SNAPSHOT' testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 98d298910..67bcfef78 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -270,7 +270,7 @@ dependencies { implementation 'org.jeasy:easy-rules-core:3.3.0' implementation 'org.jeasy:easy-rules-mvel:3.3.0' implementation 'com.flurry.android:analytics:11.6.0@aar' - implementation('com.google.firebase:firebase-analytics:17.4.3') { + implementation('com.google.firebase:firebase-analytics:17.4.4') { exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'support-media-compat' @@ -282,7 +282,7 @@ dependencies { } implementation 'com.flurry.android:analytics:11.6.0@aar' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'org.smartregister:opensrp-plan-evaluator:0.0.13-SNAPSHOT' + implementation 'org.smartregister:opensrp-plan-evaluator:0.0.19-SNAPSHOT' testImplementation 'junit:junit:4.12' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' From 1196c50dde6d7119237942253b7baca7e00a8273 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 22 Jul 2020 16:07:15 +0300 Subject: [PATCH 058/302] :construction: update the repositories --- build.gradle | 1 + .../anc/library/fragment/MeFragmentTest.java | 28 +++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 2df61f1c7..6ffaf4701 100644 --- a/build.gradle +++ b/build.gradle @@ -51,6 +51,7 @@ allprojects { maven { url "https://repo.maven.apache.org/maven2" } maven { url "https://cloudant.github.io/cloudant-sync-eap/repository" } maven { url "https://s3.amazonaws.com/repo.commonsware.com" } + maven { url "https://dl.bintray.com/ibm-watson-health/ibm-fhir-server-releases"} google() jcenter() } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java index 0891e12eb..a9390e2e5 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java @@ -1,16 +1,22 @@ package org.smartregister.anc.library.fragment; +import android.app.Activity; + +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.android.controller.ActivityController; import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.activity.BaseUnitTest; +import org.smartregister.anc.library.activity.BaseActivityUnitTest; +import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; -public class MeFragmentTest extends BaseUnitTest { +public class MeFragmentTest extends BaseActivityUnitTest { @Mock private AncLibrary ancLibrary; - + private BaseHomeRegisterActivity activity; private MeFragment meFragment; @Before @@ -18,4 +24,20 @@ public void setUp() { MockitoAnnotations.initMocks(this); meFragment = Mockito.spy(MeFragment.class); } + + @Override + protected Activity getActivity() { + return null; + } + + @Override + protected ActivityController getActivityController() { + return null; + } + + @Test + public void testActivityIsInstantiatedCorrectly() { + Assert.assertNotNull(activity); + } + } From a50b9b01a27339892d4c9285198ef1cde7208515 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Tue, 28 Jul 2020 13:02:59 +0300 Subject: [PATCH 059/302] :construction: fix some breaking tests --- opensrp-anc/build.gradle | 6 ++-- .../ContactSummaryFinishActivityTest.java | 2 +- .../library/activity/ProfileActivityTest.java | 2 +- .../anc/library/fragment/MeFragmentTest.java | 29 +++++-------------- ...mNavigationHelperDisableShiftModeTest.java | 3 +- .../interactor/RegisterInteractorTest.java | 8 ++--- .../anc/library/model/RegisterModelTest.java | 1 - .../BaseAncClientProcessorForJavaTest.java | 4 +-- reference-app/build.gradle | 6 ++-- 9 files changed, 24 insertions(+), 37 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 34b88af7e..a4e38d0ee 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -131,7 +131,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' - implementation('org.smartregister:opensrp-client-native-form:1.13.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -142,7 +142,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.15.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -204,7 +204,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.3.1' testImplementation 'org.robolectric:shadows-multidex:4.3.1' - testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' + //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java index 53dfa3ba6..f2a894033 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivityTest.java @@ -2,7 +2,7 @@ import android.app.Activity; import android.content.Intent; -com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; import android.view.MenuItem; import android.widget.ImageView; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java index 953a1bccd..8a946bbf5 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/ProfileActivityTest.java @@ -4,7 +4,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; -com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; import android.widget.ImageView; import android.widget.TextView; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java index a9390e2e5..f0246e6a1 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/fragment/MeFragmentTest.java @@ -1,43 +1,30 @@ package org.smartregister.anc.library.fragment; -import android.app.Activity; - 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.android.controller.ActivityController; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.activity.BaseActivityUnitTest; import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; +import org.smartregister.anc.library.activity.BaseUnitTest; +import org.smartregister.view.activity.BaseRegisterActivity; -public class MeFragmentTest extends BaseActivityUnitTest { - @Mock - private AncLibrary ancLibrary; +public class MeFragmentTest extends BaseUnitTest { private BaseHomeRegisterActivity activity; private MeFragment meFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); - meFragment = Mockito.spy(MeFragment.class); - } - - @Override - protected Activity getActivity() { - return null; - } - - @Override - protected ActivityController getActivityController() { - return null; + activity = Mockito.mock(BaseHomeRegisterActivity.class); + meFragment = Mockito.mock(MeFragment.class); } @Test public void testActivityIsInstantiatedCorrectly() { - Assert.assertNotNull(activity); + Mockito.doReturn(meFragment).when(activity).findFragmentByPosition(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); + Assert.assertNotNull(meFragment); + Assert.assertTrue(meFragment instanceof MeFragment); } } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/BottomNavigationHelperDisableShiftModeTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/BottomNavigationHelperDisableShiftModeTest.java index 26ea6e3f3..c6f4cc23e 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/BottomNavigationHelperDisableShiftModeTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/BottomNavigationHelperDisableShiftModeTest.java @@ -1,7 +1,8 @@ package org.smartregister.anc.library.helper; import android.app.Activity; -import android.support.design.widget.BottomNavigationView; + +import com.google.android.material.bottomnavigation.BottomNavigationView; import org.junit.After; import org.junit.Assert; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java index bb42d1ab4..b65604e88 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/RegisterInteractorTest.java @@ -155,8 +155,8 @@ public void testSaveNewRegistration() throws Exception { long timestamp = new Date().getTime(); List eventClients = new ArrayList<>(); - EventClient eventClient = new EventClient(ANCJsonFormUtils.gson.fromJson(eventObject.toString(), org.smartregister.domain.db.Event.class), - ANCJsonFormUtils.gson.fromJson(clientObject.toString(), org.smartregister.domain.db.Client.class)); + EventClient eventClient = new EventClient(ANCJsonFormUtils.gson.fromJson(eventObject.toString(), org.smartregister.domain.Event.class), + ANCJsonFormUtils.gson.fromJson(clientObject.toString(), org.smartregister.domain.Client.class)); eventClients.add(eventClient); Mockito.doReturn(timestamp).when(allSharedPreferences).fetchLastUpdatedAtDate(0); @@ -230,8 +230,8 @@ public void testSaveEditRegistration() throws Exception { long timestamp = new Date().getTime(); List eventClients = new ArrayList<>(); - EventClient eventClient = new EventClient(ANCJsonFormUtils.gson.fromJson(eventObject.toString(), org.smartregister.domain.db.Event.class), - ANCJsonFormUtils.gson.fromJson(clientObject.toString(), org.smartregister.domain.db.Client.class)); + EventClient eventClient = new EventClient(ANCJsonFormUtils.gson.fromJson(eventObject.toString(), org.smartregister.domain.Event.class), + ANCJsonFormUtils.gson.fromJson(clientObject.toString(), org.smartregister.domain.Client.class)); eventClients.add(eventClient); JSONObject orginalClientObject = clientObject; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java index 039b5f2d1..2ca71bd3f 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/RegisterModelTest.java @@ -672,7 +672,6 @@ private void assertRegistrations(Client client, Event event) { public void testFormAsJson() throws Exception { FormUtils formUtils = Mockito.mock(FormUtils.class); RegisterModel registerModel = (RegisterModel) model; - registerModel.setFormUtils(formUtils); String formName = "anc_register"; String entityId = "ENTITY_ID"; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJavaTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJavaTest.java index 9124585af..acce66dc9 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJavaTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJavaTest.java @@ -17,8 +17,8 @@ import org.smartregister.anc.library.activity.BaseUnitTest; import org.smartregister.anc.library.repository.ContactTasksRepository; import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.domain.db.Client; -import org.smartregister.domain.db.Event; +import org.smartregister.domain.Client; +import org.smartregister.domain.Event; import org.smartregister.domain.db.EventClient; import org.smartregister.repository.DetailsRepository; diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 67bcfef78..1fd6f22e8 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -211,7 +211,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:1.13.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:1.13.5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -222,7 +222,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.13.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.15.1-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -291,7 +291,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.3.1' testImplementation 'org.robolectric:shadows-multidex:4.3.1' - testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' + //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" From ce3e1a6cef00dc492189f1883f60d10547efbb56 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Tue, 4 Aug 2020 10:26:40 +0300 Subject: [PATCH 060/302] :construction: fix the extra settings fetch --- opensrp-anc/build.gradle | 2 +- .../org/smartregister/anc/library/util/ConstantsUtils.java | 1 + reference-app/build.gradle | 2 +- .../anc/application/AncSyncConfiguration.java | 7 ++++++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index a4e38d0ee..70d7b17e9 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -142,7 +142,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.15.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.15.3000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index cbb1dc888..cfe53e2ee 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -243,5 +243,6 @@ public static class ClientUtils { public static class SettingsSyncParamsUtils { public static final String LOCATION_ID = "locationId"; + public static final String IDENTIFIER = "identifier"; } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 1fd6f22e8..610323d17 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -222,7 +222,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.15.1-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:1.15.3000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index 630e65021..136dc9b4f 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -14,6 +14,8 @@ * Created by samuelgithengi on 10/19/18. */ public class AncSyncConfiguration extends SyncConfiguration { + private static final String POPULATION_CHARACTERISTICS = "population_characteristics"; + @Override public int getSyncMaxRetries() { return BuildConfig.MAX_SYNC_RETRIES; @@ -35,7 +37,9 @@ public boolean resolveSettings() { } @Override - public boolean hasExtraSettingsSync() { return BuildConfig.HAS_EXTRA_SETTINGS_SYNC_FILTER; } + public boolean hasExtraSettingsSync() { + return BuildConfig.HAS_EXTRA_SETTINGS_SYNC_FILTER; + } @Override public List getExtraSettingsParameters() { @@ -44,6 +48,7 @@ public List getExtraSettingsParameters() { List params = new ArrayList<>(); params.add(ConstantsUtils.SettingsSyncParamsUtils.LOCATION_ID + "=" + sharedPreferences.fetchDefaultLocalityId(providerId)); + params.add(ConstantsUtils.SettingsSyncParamsUtils.IDENTIFIER + "=" + POPULATION_CHARACTERISTICS); return params; } From e5d0fe3f6de6f069d218469f0b8e1d1f4b22c8fb Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 7 Aug 2020 11:29:39 +0300 Subject: [PATCH 061/302] :construction: update the release url & fix login to not display a null release version --- reference-app/build.gradle | 2 +- .../java/org/smartregister/anc/activity/LoginActivity.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 610323d17..e900fd774 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -117,7 +117,7 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://anc-preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' diff --git a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java index 39729e6e0..010a083ef 100644 --- a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java +++ b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.widget.TextView; +import org.apache.commons.lang3.StringUtils; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import org.smartregister.anc.library.R; @@ -40,8 +41,10 @@ protected void onCreate(Bundle savedInstanceState) { } private void setUpViews() { - TextView formReleaseTextView = findViewById(R.id.manifest_text_view); - formReleaseTextView.setText(new Utils().getManifestVersion(this)); + if (StringUtils.isNotBlank(new Utils().getManifestVersion(this))) { + TextView formReleaseTextView = findViewById(R.id.manifest_text_view); + formReleaseTextView.setText(new Utils().getManifestVersion(this)); + } } @Override From 40694cfcd6ef94aaf5a8a9fb662d6a265801581b Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 7 Aug 2020 11:58:59 +0300 Subject: [PATCH 062/302] :construction: update the property files with the correct language keys --- .../main/assets/config/contact-summary.yml | 22 +++++++++---------- .../assets/json.form/anc_physical_exam.json | 8 +++---- .../resources/anc_physical_exam.properties | 8 +++---- .../main/resources/contact_summary.properties | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index d5309c430..0fac2c553 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -405,7 +405,7 @@ fields: - template: "{{contact_summary.blood_pressure.bp_10_min_rest}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" relevance: "bp_systolic_repeat != '' && bp_diastolic_repeat != ''" -- template: "{{contact_summary.blood_pressure.systptoms_pre_eclampsi}}: {symp_sev_preeclampsia_value}" +- template: "{{contact_summary.blood_pressure.systptoms_pre_eclampsia}}: {symp_sev_preeclampsia_value}" relevance: "symp_sev_preeclampsia != ''" - template: "{{contact_summary.blood_pressure.urine_dipstick_protein}}: {urine_protein_value}" @@ -948,34 +948,34 @@ fields: group: deworming_and_malaria_prophylaxis fields: -- template: "{{contact_summary.anaemia_prevention.single_dose_prescribed}}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.single_dose_prescribed}}" relevance: "deworm == 'done'" -- template: "{{contact_summary.anaemia_prevention.single_dose_not_prescribed}}: {deworm_notdone_value}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.single_dose_not_prescribed}}: {deworm_notdone_value}" relevance: "deworm == 'not_done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_1_given}}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_1_given}}" relevance: "iptp_sp1 == 'done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_1_given}}: {iptp_sp_notdone_value}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_1_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp1 == 'not_done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_2_given}}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_2_given}}" relevance: "iptp_sp2 == 'done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_2_given}}: {iptp_sp_notdone_value}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_2_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp2 == 'not_done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_3_given}}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_3_given}}" relevance: "iptp_sp3 == 'done'" -- template: "{{contact_summary.anaemia_prevention.iptp_sp_dose_3_given}}: {iptp_sp_notdone_value}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.iptp_sp_dose_3_given}}: {iptp_sp_notdone_value}" relevance: "iptp_sp3 == 'not_done'" -- template: "{{contact_summary.anaemia_prevention.malaria_prevention_counseling_done}}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.malaria_prevention_counseling_done}}" relevance: "malaria_counsel == 'done'" -- template: "{{contact_summary.anaemia_prevention.malaria_prevention_counseling_not_done}}: {malaria_counsel_notdone_value}" +- template: "{{contact_summary.deworming_and_malaria_prophylaxis.malaria_prevention_counseling_not_done}}: {malaria_counsel_notdone_value}" relevance: "malaria_counsel == 'not_done'" --- group: calcium_supplementation diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 400d31d8b..8aef49aed 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -914,7 +914,7 @@ }, { "key": "+", - "text": "{{anc_physical_exam.step2.urine_protein.options.+.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_one.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -922,7 +922,7 @@ }, { "key": "++", - "text": "{{anc_physical_exam.step2.urine_protein.options.++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_two.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -930,7 +930,7 @@ }, { "key": "+++", - "text": "{{anc_physical_exam.step2.urine_protein.options.+++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_three.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -938,7 +938,7 @@ }, { "key": "++++", - "text": "{{anc_physical_exam.step2.urine_protein.options.++++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_four.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index 7c249322e..54aa676d1 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -15,7 +15,7 @@ anc_physical_exam.step4.fetal_presentation.label = Fetal presentation anc_physical_exam.step3.toaster25.text = Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral. anc_physical_exam.step2.toaster11.toaster_info_text = Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management. anc_physical_exam.step3.pallor.options.yes.text = Yes -anc_physical_exam.step2.urine_protein.options.++++.text = ++++ +anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ anc_physical_exam.step3.cardiac_exam.label = Cardiac exam anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) @@ -32,7 +32,7 @@ anc_physical_exam.step3.breast_exam.options.1.text = Not done anc_physical_exam.step4.toaster27.text = No fetal heartbeat observed. Refer to hospital. anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg. anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) -anc_physical_exam.step2.urine_protein.options.+.text = + +anc_physical_exam.step2.urine_protein.options.plus_one.text = + anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Blurred vision @@ -60,7 +60,7 @@ anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation anc_physical_exam.step3.oedema.options.yes.text = Yes anc_physical_exam.step1.title = Height & Weight -anc_physical_exam.step2.urine_protein.options.++.text = ++ +anc_physical_exam.step2.urine_protein.options.plus_two.text = ++ anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Yes anc_physical_exam.step4.toaster30.text = Pre-eclampsia risk counseling anc_physical_exam.step3.pelvic_exam.label = Pelvic exam (visual) @@ -111,7 +111,7 @@ anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! anc_physical_exam.step1.pregest_weight.v_required.err = Pre-gestational weight is required -anc_physical_exam.step2.urine_protein.options.+++.text = +++ +anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ anc_physical_exam.step3.respiratory_exam.options.3.text = Abnormal anc_physical_exam.step3.oedema_severity.options.++.text = ++ anc_physical_exam.step1.pregest_weight_label.text = Pre-gestational weight (kg) diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties index 163f40b40..8103a428d 100644 --- a/opensrp-anc/src/main/resources/contact_summary.properties +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -146,7 +146,7 @@ contact_summary.urine_tests.urine_nitrites = Urine dipstick result - nitrites contact_summary.urine_tests.urine_leukocytes = Urine dipstick result - leukocytes contact_summary.urine_tests.urine_glucose = Urine dipstick result - glucose contact_summary.urine_tests.asb_given = Seven-day antibiotic regimen for ASB given -contact_summary.urine_tests.asb_not_give = Seven-day antibiotic regimen for ASB not given +contact_summary.urine_tests.asb_not_given = Seven-day antibiotic regimen for ASB not given contact_summary.urine_tests.intrapartum_antibiotic_counseling_done = Intrapartum antibiotic to prevent early neonatal GBS infection counseling done contact_summary.urine_tests.intrapartum_antibiotic_counseling_not_done = Intrapartum antibiotic to prevent early neonatal GBS infection counseling not done From 0338a4e8b76f35bd866cfbe7eb041eae789b6527 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 7 Aug 2020 12:05:52 +0300 Subject: [PATCH 063/302] :construction: Fix NPE on the manifest versions --- .../main/java/org/smartregister/anc/library/util/Utils.java | 6 +++++- .../java/org/smartregister/anc/activity/LoginActivity.java | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 3ce6c5f26..66a5e931d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -700,6 +700,10 @@ public ContactTasksRepository getContactTasksRepositoryHelper() { @Nullable public String getManifestVersion(Context context) { - return context.getString(R.string.form_manifest_version, CoreLibrary.getInstance().context().allSharedPreferences().fetchManifestVersion()); + if (StringUtils.isNotBlank(CoreLibrary.getInstance().context().allSharedPreferences().fetchManifestVersion())) { + return context.getString(R.string.form_manifest_version, CoreLibrary.getInstance().context().allSharedPreferences().fetchManifestVersion()); + } else { + return null; + } } } diff --git a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java index 010a083ef..c85cf4d14 100644 --- a/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java +++ b/reference-app/src/main/java/org/smartregister/anc/activity/LoginActivity.java @@ -2,6 +2,7 @@ import android.content.Intent; import android.os.Bundle; +import android.view.View; import android.widget.TextView; import org.apache.commons.lang3.StringUtils; @@ -41,9 +42,11 @@ protected void onCreate(Bundle savedInstanceState) { } private void setUpViews() { + TextView formReleaseTextView = findViewById(R.id.manifest_text_view); if (StringUtils.isNotBlank(new Utils().getManifestVersion(this))) { - TextView formReleaseTextView = findViewById(R.id.manifest_text_view); formReleaseTextView.setText(new Utils().getManifestVersion(this)); + } else { + formReleaseTextView.setVisibility(View.GONE); } } From 8e7de5e485409f907764443b45240003e2cebbe4 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 7 Aug 2020 12:20:04 +0300 Subject: [PATCH 064/302] :zap: fix the property keys for the physical exams container --- .../src/main/assets/json.form/anc_physical_exam.json | 8 ++++---- .../src/main/resources/anc_physical_exam.properties | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 8aef49aed..772cda625 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -1922,7 +1922,7 @@ "options": [ { "key": "+", - "text": "{{anc_physical_exam.step3.oedema_severity.options.+.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_one.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1930,7 +1930,7 @@ }, { "key": "++", - "text": "{{anc_physical_exam.step3.oedema_severity.options.++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_two.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1938,7 +1938,7 @@ }, { "key": "+++", - "text": "{{anc_physical_exam.step3.oedema_severity.options.+++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_three.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1946,7 +1946,7 @@ }, { "key": "++++", - "text": "{{anc_physical_exam.step3.oedema_severity.options.++++.text}}", + "text": "{{anc_physical_exam.step2.urine_protein.options.plus_four.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index 54aa676d1..a9165b2dc 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -48,7 +48,7 @@ anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to r anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = No. of fetuses unknown -anc_physical_exam.step3.oedema_severity.options.+++.text = +++ +anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ anc_physical_exam.step4.fetal_heartbeat.label = Fetal heartbeat present? anc_physical_exam.step1.toaster2.text = Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes rest. @@ -91,7 +91,7 @@ anc_physical_exam.step2.bp_systolic_repeat_label.text = SBP after 10-15 minutes anc_physical_exam.step3.oedema.label = Oedema present? anc_physical_exam.step3.toaster20.text = Woman has respiratory distress. Refer urgently to the hospital! anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseling. -anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ +anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling anc_physical_exam.step2.bp_systolic.v_numeric.err = @@ -113,7 +113,7 @@ anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently anc_physical_exam.step1.pregest_weight.v_required.err = Pre-gestational weight is required anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ anc_physical_exam.step3.respiratory_exam.options.3.text = Abnormal -anc_physical_exam.step3.oedema_severity.options.++.text = ++ +anc_physical_exam.step2.urine_protein.options.plus_two.text = ++ anc_physical_exam.step1.pregest_weight_label.text = Pre-gestational weight (kg) anc_physical_exam.step3.breast_exam.label = Breast exam anc_physical_exam.step3.toaster19.text = Anaemia diagnosis! Haemoglobin (Hb) test recommended. @@ -148,7 +148,7 @@ anc_physical_exam.step4.fetal_movement.options.no.text = No anc_physical_exam.step3.abdominal_exam.options.3.text = Abnormal anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk counseling anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache -anc_physical_exam.step3.oedema_severity.options.+.text = + +anc_physical_exam.step2.urine_protein.options.plus_one.text = + anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. anc_physical_exam.step3.pulse_rate.v_numeric.err = anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate From 6eb4038c9be7c2506911e06b30922b0d10ceb066 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Tue, 25 Aug 2020 12:19:55 +0300 Subject: [PATCH 065/302] :constructuion: update the native forms version --- reference-app/build.gradle | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 1330a5c54..c63fdd2ad 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -221,17 +221,18 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.4' implementation project(":opensrp-anc") -// implementation('org.smartregister:opensrp-client-native-form:1.7.30-OPTIMIZE_FORMS-SNAPSHOT@aar') { -// transitive = true -// exclude group: 'com.android.support', module: 'recyclerview-v7' -// exclude group: 'com.android.support', module: 'appcompat-v7' -// exclude group: 'com.android.support', module: 'cardview-v7' -// exclude group: 'com.android.support', module: 'support-media-compat' -// exclude group: 'com.android.support', module: 'support-v4' -// exclude group: 'com.android.support', module: 'design' -// exclude group: 'org.yaml', module: 'snakeyaml' -// exclude group: 'io.ona.rdt-capture', module: 'lib' -// } + implementation('org.smartregister:opensrp-client-native-form:2.0.0000-SNAPSHOT@aar') { + transitive = true + exclude group: 'com.android.support', module: 'recyclerview-v7' + exclude group: 'com.android.support', module: 'appcompat-v7' + exclude group: 'com.android.support', module: 'cardview-v7' + exclude group: 'com.android.support', module: 'support-media-compat' + exclude group: 'com.android.support', module: 'support-v4' + exclude group: 'com.android.support', module: 'design' + exclude group: 'org.yaml', module: 'snakeyaml' + exclude group: 'io.ona.rdt-capture', module: 'lib' + } + implementation('org.smartregister:opensrp-client-core:1.9.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' From 56cc0a1449fae7089b51491223175dbedcb86036 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 30 Oct 2020 12:35:42 +0300 Subject: [PATCH 066/302] :construction: update the gradle settings --- build.gradle | 6 ++-- opensrp-anc/build.gradle | 58 ++++++++++++++++++++------------------ reference-app/build.gradle | 46 +++++++++++++++--------------- sample/build.gradle | 10 +++---- 4 files changed, 61 insertions(+), 59 deletions(-) diff --git a/build.gradle b/build.gradle index 6ffaf4701..6da412593 100644 --- a/build.gradle +++ b/build.gradle @@ -62,9 +62,9 @@ project.ext.preDexLibs = !project.hasProperty('disablePreDex') subprojects { group = 'org.smartregister' - ext.androidToolsBuildGradle = '29.0.2' - ext.androidBuildToolsVersion = '29.0.2' - ext.androidMinSdkVersion = 26 + ext.androidToolsBuildGradle = '29.0.3' + ext.androidBuildToolsVersion = '29.0.3' + ext.androidMinSdkVersion = 18 ext.androidCompileSdkVersion = 29 ext.androidTargetSdkVersion = 29 ext.androidAnnotationsVersion = '3.0.1' diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 73f9d91f1..509d0d89a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -6,12 +6,14 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.3' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' - classpath 'com.google.gms:google-services:4.3.3' + classpath 'com.google.gms:google-services:4.3.4' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' } } apply plugin: 'com.android.library' apply plugin: 'jacoco' +apply plugin: 'com.google.firebase.crashlytics' jacoco { toolVersion = jacocoVersion @@ -142,7 +144,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.15.3002-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:3.0.1000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -164,52 +166,52 @@ dependencies { exclude group: 'com.android.support', module: 'cardview-v7' exclude group: 'com.android.support', module: 'support-v4' } - implementation group: 'org.apache.commons', name: 'commons-text', version: '1.8' - annotationProcessor 'com.jakewharton:butterknife:10.2.0' - implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar' - implementation 'commons-validator:commons-validator:1.6' - implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { + implementation group: 'org.apache.commons', name: 'commons-text', version: '1.9' + annotationProcessor 'com.jakewharton:butterknife:10.2.3' + implementation 'net.zetetic:android-database-sqlcipher:4.4.0@aar' + implementation 'commons-validator:commons-validator:1.7' + implementation('com.crashlytics.sdk.android:crashlytics:17.2.2@aar') { transitive = true } implementation 'com.google.code.gson:gson:2.8.6' - implementation 'org.greenrobot:eventbus:3.1.1' - annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.1.1' - implementation 'com.google.guava:guava:24.1-jre' + implementation 'org.greenrobot:eventbus:3.2.0' + annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.2.0' + implementation 'com.google.guava:guava:30.0-jre' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' // Because RxAndroid releases are few and far between, it is recommended you also // explicitly depend on RxJava's latest version for bug fixes and new features. - implementation 'io.reactivex.rxjava2:rxjava:2.2.15' - implementation 'com.evernote:android-job:1.2.6' + implementation 'io.reactivex.rxjava2:rxjava:2.2.20' + implementation 'com.evernote:android-job:1.4.2' implementation 'com.github.lecho:hellocharts-android:v1.5.8' implementation 'id.zelory:compressor:2.1.0' - implementation('com.google.android.material:material:1.2.0') { + implementation('com.google.android.material:material:1.2.1') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'cardview-v7' } implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' - implementation group: 'org.yaml', name: 'snakeyaml', version: '1.25' - implementation 'de.hdodenhof:circleimageview:3.0.1' - implementation 'org.jeasy:easy-rules-core:3.3.0' - implementation 'org.jeasy:easy-rules-mvel:3.3.0' - implementation 'org.smartregister:opensrp-plan-evaluator:0.0.19-SNAPSHOT' + implementation 'com.crashlytics.sdk.android:crashlytics:17.2.2' + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' + implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' + implementation 'de.hdodenhof:circleimageview:3.1.0' + implementation 'org.jeasy:easy-rules-core:4.0.0' + implementation 'org.jeasy:easy-rules-mvel:4.0.0' + implementation 'org.smartregister:opensrp-plan-evaluator:0.1.3-SNAPSHOT' - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation('com.squareup:fest-android:1.0.8') { exclude module: 'support-v4' } - testImplementation 'org.robolectric:robolectric:4.3.1' - testImplementation 'org.robolectric:shadows-multidex:4.3.1' + testImplementation 'org.robolectric:robolectric:4.4' + testImplementation 'org.robolectric:shadows-multidex:4.4' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' - testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" - testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" - testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" - testImplementation "org.powermock:powermock-classloading-xstream:$powerMockVersion" - testImplementation 'org.mockito:mockito-core:3.1.0' + testImplementation "org.powermock:powermock-module-junit4:2.0.7" + testImplementation "org.powermock:powermock-module-junit4-rule:2.0.7" + testImplementation "org.powermock:powermock-api-mockito2:2.0.7" + testImplementation "org.powermock:powermock-classloading-xstream:2.0.7" + testImplementation 'org.mockito:mockito-core:3.5.15' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation 'org.skyscreamer:jsonassert:1.5.0' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 5de46e04d..d872a07ea 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -7,12 +7,12 @@ buildscript { classpath 'com.android.tools.build:gradle:3.5.3' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.google.gms:google-services:4.3.3' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' } } apply plugin: 'com.android.application' apply plugin: 'jacoco' -apply plugin: 'io.fabric' jacoco { toolVersion = jacocoVersion @@ -209,7 +209,7 @@ tasks.withType(Test) { } dependencies { - def powerMockVersion = '2.0.4' + def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") implementation('org.smartregister:opensrp-client-native-form:2.0.0000-SNAPSHOT@aar') { transitive = true @@ -245,33 +245,33 @@ dependencies { exclude group: 'com.android.support', module: 'cardview-v7' exclude group: 'com.android.support', module: 'support-v4' } - implementation group: 'org.apache.commons', name: 'commons-text', version: '1.8' - annotationProcessor 'com.jakewharton:butterknife:10.2.0' - implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar' - implementation 'commons-validator:commons-validator:1.6' + implementation group: 'org.apache.commons', name: 'commons-text', version: '1.9' + annotationProcessor 'com.jakewharton:butterknife:10.2.3' + implementation 'net.zetetic:android-database-sqlcipher:4.4.0@aar' + implementation 'commons-validator:commons-validator:1.7' implementation 'com.google.code.gson:gson:2.8.6' - implementation 'org.greenrobot:eventbus:3.1.1' - annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.1.1' - implementation 'com.google.guava:guava:24.1-jre' + implementation 'org.greenrobot:eventbus:3.2.0' + annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.2.0' + implementation 'com.google.guava:guava:30.0-jre' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' - implementation 'io.reactivex.rxjava2:rxjava:2.2.15' - implementation 'com.evernote:android-job:1.2.6' + implementation 'io.reactivex.rxjava2:rxjava:2.2.20' + implementation 'com.evernote:android-job:1.4.2' implementation 'com.github.lecho:hellocharts-android:v1.5.8' implementation 'id.zelory:compressor:2.1.0' - implementation('com.google.android.material:material:1.2.0') { + implementation('com.google.android.material:material:1.2.1') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'cardview-v7' } implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1' - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' - implementation group: 'org.yaml', name: 'snakeyaml', version: '1.25' - implementation 'de.hdodenhof:circleimageview:3.0.1' - implementation 'org.jeasy:easy-rules-core:3.3.0' - implementation 'org.jeasy:easy-rules-mvel:3.3.0' + implementation 'com.crashlytics.sdk.android:crashlytics:17.2.2' + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' + implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' + implementation 'de.hdodenhof:circleimageview:3.1.0' + implementation 'org.jeasy:easy-rules-core:4.0.0' + implementation 'org.jeasy:easy-rules-mvel:4.0.0' implementation 'com.flurry.android:analytics:11.6.0@aar' - implementation('com.google.firebase:firebase-analytics:17.5.0') { + implementation('com.google.firebase:firebase-analytics:17.6.0') { exclude group: 'com.android.support', module: 'appcompat-v7' exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'support-media-compat' @@ -285,19 +285,19 @@ dependencies { implementation 'androidx.multidex:multidex:2.0.1' implementation 'org.smartregister:opensrp-plan-evaluator:0.0.19-SNAPSHOT' - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation('com.squareup:fest-android:1.0.8') { exclude module: 'support-v4' } - testImplementation 'org.robolectric:robolectric:4.3.1' - testImplementation 'org.robolectric:shadows-multidex:4.3.1' + testImplementation 'org.robolectric:robolectric:4.4' + testImplementation 'org.robolectric:shadows-multidex:4.4' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" testImplementation "org.powermock:powermock-classloading-xstream:$powerMockVersion" - testImplementation 'org.mockito:mockito-core:3.1.0' + testImplementation 'org.mockito:mockito-core:3.5.15' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' testImplementation 'org.skyscreamer:jsonassert:1.5.0' } diff --git a/sample/build.gradle b/sample/build.gradle index d33515499..0cb1ddd14 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -31,9 +31,9 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.2' + testImplementation 'junit:junit:4.13.1' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } From bff7235364bc665c945b2f4f390b46a4c67d3f94 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Sat, 7 Nov 2020 10:11:05 +0300 Subject: [PATCH 067/302] :construction: Upgrade to Oauth for authentication --- build.gradle | 11 +++-- opensrp-anc/build.gradle | 44 +++++++++++++++++-- .../activity/BaseHomeRegisterActivity.java | 10 ++++- .../fragment/HomeRegisterFragment.java | 3 +- .../library/helper/AncRulesEngineHelper.java | 4 +- reference-app/build.gradle | 32 ++++++++++++-- .../anc/application/AncApplication.java | 16 ++----- .../anc/application/AncSyncConfiguration.java | 17 +++++++ .../src/main/res/xml/authenticator.xml | 6 +++ sample/build.gradle | 32 ++++++++++++++ sample/src/main/res/xml/authenticator.xml | 6 +++ 11 files changed, 150 insertions(+), 31 deletions(-) create mode 100644 reference-app/src/main/res/xml/authenticator.xml create mode 100644 sample/src/main/res/xml/authenticator.xml diff --git a/build.gradle b/build.gradle index 6da412593..4e31f3aee 100644 --- a/build.gradle +++ b/build.gradle @@ -4,18 +4,17 @@ buildscript { repositories { google() jcenter() - maven { - url 'https://maven.fabric.io/public' - } + maven { url 'https://maven.fabric.io/public' } + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } - dependencies { classpath 'com.android.tools.build:gradle:3.5.3' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.palantir:jacoco-coverage:0.4.0' classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0" - classpath 'com.google.gms:google-services:4.3.3' + classpath 'com.google.gms:google-services:4.3.4' classpath 'io.fabric.tools:gradle:1.31.2' + classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -51,7 +50,7 @@ allprojects { maven { url "https://repo.maven.apache.org/maven2" } maven { url "https://cloudant.github.io/cloudant-sync-eap/repository" } maven { url "https://s3.amazonaws.com/repo.commonsware.com" } - maven { url "https://dl.bintray.com/ibm-watson-health/ibm-fhir-server-releases"} + maven { url "https://dl.bintray.com/ibm-watson-health/ibm-fhir-server-releases" } google() jcenter() } diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 509d0d89a..f267287ab 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -13,7 +13,7 @@ buildscript { apply plugin: 'com.android.library' apply plugin: 'jacoco' -apply plugin: 'com.google.firebase.crashlytics' +apply plugin: 'org.smartregister.gradle.jarjar' jacoco { toolVersion = jacocoVersion @@ -72,6 +72,38 @@ android { arguments = [eventBusIndex: 'org.smartregister.anc.library.ANCEventBusIndex'] } } + if (project.rootProject.file("local.properties").exists()) { + Properties properties = new Properties() + properties.load(project.rootProject.file("local.properties").newDataInputStream()) + if (properties != null && properties.containsKey("flurry.api.key")) { + buildConfigField "String", "FLURRY_API_KEY", properties["flurry.api.key"] + } else { + println("Flurry Analytics API key config variables is not set in your local.properties") + buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" + } + + if (properties != null && properties.containsKey("oauth.client.id")) { + buildConfigField "String", "OAUTH_CLIENT_ID", properties["oauth.client.id"] + + } else { + project.logger.error("oauth.client.id variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + } + + + if (properties != null && properties.containsKey("oauth.client.secret")) { + buildConfigField "String", "OAUTH_CLIENT_SECRET", properties["oauth.client.secret"] + + } else { + project.logger.error("oauth.client.secret variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" + } + } else { + println("local.properties does not exist") + buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" + } buildConfigField "String[]", "LOCATION_LEVELS", '{"Country", "Province", "District", "Facility", "Village"}' buildConfigField "String[]", "HEALTH_FACILITY_LEVELS", '{"Country", "Province", "District", "Health Facility", "Village"}' @@ -109,7 +141,8 @@ android { exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' exclude 'LICENSE.txt' - + exclude 'META-INF/LICENSE.md' + exclude 'META-INF/NOTICE.md' } testOptions { @@ -156,7 +189,11 @@ dependencies { exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'design' exclude group: 'com.rengwuxian.materialedittext', module: 'library' + exclude group: 'com.ibm.fhir', module: 'fhir-model' } + + jarJar 'com.ibm.fhir:fhir-model:4.2.3' + implementation fileTree(dir: "./build/libs", include: ['*.jar']) implementation('org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' @@ -170,7 +207,7 @@ dependencies { annotationProcessor 'com.jakewharton:butterknife:10.2.3' implementation 'net.zetetic:android-database-sqlcipher:4.4.0@aar' implementation 'commons-validator:commons-validator:1.7' - implementation('com.crashlytics.sdk.android:crashlytics:17.2.2@aar') { + implementation('com.crashlytics.sdk.android:crashlytics:2.10.1') { transitive = true } implementation 'com.google.code.gson:gson:2.8.6' @@ -191,7 +228,6 @@ dependencies { implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'com.crashlytics.sdk.android:crashlytics:17.2.2' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 4bfb1b4f5..cfb70dac6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -58,6 +58,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Map; import timber.log.Timber; @@ -179,6 +180,11 @@ protected Fragment[] getOtherFragments() { return fragments; } + @Override + public void startFormActivity(String s, String s1, Map map) { + + } + @Override public void startFormActivity(String formName, String entityId, String metaData) { try { @@ -203,7 +209,7 @@ public void startFormActivity(JSONObject form) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - //super.onActivityResult(requestCode, resultCode, data); + super.onActivityResult(requestCode, resultCode, data); if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { if (data != null) { Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); @@ -473,7 +479,7 @@ public void removePatientHandler(PatientRemovedEvent event) { @Override public void startRegistration() { - startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, null); + startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, ""); } public void showRecordBirthPopUp(CommonPersonObjectClient client) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java index d3bf0b08f..3e0e56ce6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java @@ -40,6 +40,7 @@ import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; @@ -139,7 +140,7 @@ protected String getDefaultSortQuery() { @Override protected void startRegistration() { - ((BaseHomeRegisterActivity) getActivity()).startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, null); + ((BaseHomeRegisterActivity) getActivity()).startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, ""); } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java index bc5e28e7e..0b2c5ef29 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java @@ -12,12 +12,12 @@ import org.jeasy.rules.api.Rule; import org.jeasy.rules.api.Rules; import org.jeasy.rules.api.RulesEngine; +import org.jeasy.rules.api.RulesEngineParameters; import org.jeasy.rules.core.DefaultRulesEngine; import org.jeasy.rules.core.InferenceRulesEngine; -import org.jeasy.rules.core.RulesEngineParameters; import org.jeasy.rules.mvel.MVELRule; import org.jeasy.rules.mvel.MVELRuleFactory; -import org.jeasy.rules.support.YamlRuleDefinitionReader; +import org.jeasy.rules.support.reader.YamlRuleDefinitionReader; import org.joda.time.LocalDate; import org.json.JSONArray; import org.json.JSONException; diff --git a/reference-app/build.gradle b/reference-app/build.gradle index d872a07ea..2b600abe2 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -6,13 +6,14 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.5.3' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' - classpath 'com.google.gms:google-services:4.3.3' + classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' } } apply plugin: 'com.android.application' apply plugin: 'jacoco' +apply plugin: 'org.smartregister.gradle.jarjar' jacoco { toolVersion = jacocoVersion @@ -98,9 +99,28 @@ android { println("Flurry Analytics API key config variables is not set in your local.properties") buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" } + + if (properties != null && properties.containsKey("oauth.client.id")) { + buildConfigField "String", "OAUTH_CLIENT_ID", properties["oauth.client.id"] + + } else { + project.logger.error("oauth.client.id variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + } + + + if (properties != null && properties.containsKey("oauth.client.secret")) { + buildConfigField "String", "OAUTH_CLIENT_SECRET", properties["oauth.client.secret"] + + } else { + project.logger.error("oauth.client.secret variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" + } } else { println("local.properties does not exist") buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" } } dexOptions { @@ -157,12 +177,14 @@ android { exclude 'META-INF/NOTICE.md' exclude 'META-INF/LICENSE.md' exclude 'META-INF/DEPENDENCIES.md' + exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' exclude 'LICENSE.txt' - + exclude 'META-INF/LICENSE.md' + exclude 'META-INF/NOTICE.md' } testOptions { @@ -235,7 +257,10 @@ dependencies { exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'design' exclude group: 'com.rengwuxian.materialedittext', module: 'library' + exclude group: 'com.ibm.fhir', module: 'fhir-model' } + jarJar 'com.ibm.fhir:fhir-model:4.2.3' + implementation fileTree(dir: "./build/libs", include: ['*.jar']) implementation('org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' @@ -264,7 +289,6 @@ dependencies { } implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'com.crashlytics.sdk.android:crashlytics:17.2.2' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' @@ -283,7 +307,7 @@ dependencies { } implementation 'com.flurry.android:analytics:11.6.0@aar' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'org.smartregister:opensrp-plan-evaluator:0.0.19-SNAPSHOT' + implementation 'org.smartregister:opensrp-plan-evaluator:0.1.3-SNAPSHOT' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index e1fde22bd..0f81a411e 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -1,9 +1,10 @@ package org.smartregister.anc.application; import android.content.Intent; -import androidx.annotation.NonNull; import android.util.Log; +import androidx.annotation.NonNull; + import com.crashlytics.android.Crashlytics; import com.crashlytics.android.core.CrashlyticsCore; import com.evernote.android.job.JobManager; @@ -161,14 +162,6 @@ public static synchronized AncApplication getInstance() { return (AncApplication) DrishtiApplication.mInstance; } - public String getPassword() { - if (password == null) { - String username = getContext().userService().getAllSharedPreferences().fetchRegisteredANM(); - password = getContext().userService().getGroupId(username); - } - return password; - } - @NonNull @Override public ClientProcessorForJava getClientProcessor() { @@ -199,15 +192,14 @@ public Context getContext() { @Override public void onTimeChanged() { Utils.showToast(this, this.getString(org.smartregister.anc.library.R.string.device_time_changed)); - context.userService().forceRemoteLogin(); + context.userService().forceRemoteLogin(context.allSharedPreferences().fetchRegisteredANM()); logoutCurrentUser(); } @Override public void onTimeZoneChanged() { Utils.showToast(this, this.getString(org.smartregister.anc.library.R.string.device_timezone_changed)); - context.userService().forceRemoteLogin(); - + context.userService().forceRemoteLogin(context.allSharedPreferences().fetchRegisteredANM()); logoutCurrentUser(); } } diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java index c20db0e35..b777b2ca3 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncSyncConfiguration.java @@ -3,9 +3,11 @@ import org.smartregister.SyncConfiguration; import org.smartregister.SyncFilter; import org.smartregister.anc.BuildConfig; +import org.smartregister.anc.activity.LoginActivity; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.view.activity.BaseLoginActivity; import java.util.ArrayList; import java.util.List; @@ -95,4 +97,19 @@ public List getSynchronizedLocationTags() { public String getTopAllowedLocationLevel() { return null; } + + @Override + public String getOauthClientId() { + return BuildConfig.OAUTH_CLIENT_ID; + } + + @Override + public String getOauthClientSecret() { + return BuildConfig.OAUTH_CLIENT_SECRET; + } + + @Override + public Class getAuthenticationActivity() { + return LoginActivity.class; + } } diff --git a/reference-app/src/main/res/xml/authenticator.xml b/reference-app/src/main/res/xml/authenticator.xml new file mode 100644 index 000000000..93cace321 --- /dev/null +++ b/reference-app/src/main/res/xml/authenticator.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/sample/build.gradle b/sample/build.gradle index 0cb1ddd14..dfcd56958 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -16,6 +16,38 @@ android { versionName "1.0" testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' + if (project.rootProject.file("local.properties").exists()) { + Properties properties = new Properties() + properties.load(project.rootProject.file("local.properties").newDataInputStream()) + if (properties != null && properties.containsKey("flurry.api.key")) { + buildConfigField "String", "FLURRY_API_KEY", properties["flurry.api.key"] + } else { + println("Flurry Analytics API key config variables is not set in your local.properties") + buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" + } + + if (properties != null && properties.containsKey("oauth.client.id")) { + buildConfigField "String", "OAUTH_CLIENT_ID", properties["oauth.client.id"] + + } else { + project.logger.error("oauth.client.id variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + } + + + if (properties != null && properties.containsKey("oauth.client.secret")) { + buildConfigField "String", "OAUTH_CLIENT_SECRET", properties["oauth.client.secret"] + + } else { + project.logger.error("oauth.client.secret variable is not set in your local.properties") + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" + } + } else { + println("local.properties does not exist") + buildConfigField "String", "FLURRY_API_KEY", "\"sample_key\"" + buildConfigField "String", "OAUTH_CLIENT_ID", "\"sample_client_id\"" + buildConfigField "String", "OAUTH_CLIENT_SECRET", "\"sample_client_secret\"" + } } diff --git a/sample/src/main/res/xml/authenticator.xml b/sample/src/main/res/xml/authenticator.xml new file mode 100644 index 000000000..3288ae4c3 --- /dev/null +++ b/sample/src/main/res/xml/authenticator.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file From aea67defe7a4f701f7cc8a19f251eefbde171507 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 26 Nov 2020 13:34:44 +0300 Subject: [PATCH 068/302] :construction: Adding translation files --- build.gradle | 3 +- opensrp-anc/build.gradle | 4 +- .../anc/library/fragment/MeFragment.java | 1 + .../src/main/res/values-pt_BR/strings.xml | 420 ++++++++++++ .../abdominal_exam_sub_form_pt_BR.properties | 8 + .../main/resources/anc_close_pt_BR.properties | 73 ++ ...anc_counselling_treatment_pt_BR.properties | 648 ++++++++++++++++++ .../anc_physical_exam_pt_BR.properties | 169 +++++ .../resources/anc_profile_pt_BR.properties | 317 +++++++++ .../anc_quick_check_pt_BR.properties | 65 ++ .../resources/anc_register_pt_BR.properties | 31 + .../anc_site_characteristics_pt_BR.properties | 19 + .../anc_symptoms_follow_up_pt_BR.properties | 188 +++++ .../main/resources/anc_test_pt_BR.properties | 57 ++ .../breast_exam_sub_form_pt_BR.properties | 10 + .../cardiac_exam_sub_form_pt_BR.properties | 11 + .../cervical_exam_sub_form_pt_BR.properties | 2 + .../fetal_heartbeat_sub_form_pt_BR.properties | 2 + .../oedema_present_sub_form_pt_BR.properties | 5 + .../pelvic_exam_sub_form_pt_BR.properties | 17 + ...respiratory_exam_sub_form_pt_BR.properties | 10 + ...ts_blood_glucose_sub_form_pt_BR.properties | 30 + ...lood_haemoglobin_sub_form_pt_BR.properties | 47 ++ ...tests_blood_type_sub_form_pt_BR.properties | 17 + ...ests_hepatitis_b_sub_form_pt_BR.properties | 33 + ...ests_hepatitis_c_sub_form_pt_BR.properties | 26 + .../tests_hiv_sub_form_pt_BR.properties | 19 + ...ests_other_tests_sub_form_pt_BR.properties | 4 + ...ests_partner_hiv_sub_form_pt_BR.properties | 12 + .../tests_syphilis_sub_form_pt_BR.properties | 30 + ...sts_tb_screening_sub_form_pt_BR.properties | 24 + ...tests_ultrasound_sub_form_pt_BR.properties | 37 + .../tests_urine_sub_form_pt_BR.properties | 61 ++ reference-app/build.gradle | 1 + sample/build.gradle | 1 + 35 files changed, 2398 insertions(+), 4 deletions(-) create mode 100644 opensrp-anc/src/main/res/values-pt_BR/strings.xml create mode 100644 opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_close_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_profile_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_register_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/anc_test_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties create mode 100644 opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties diff --git a/build.gradle b/build.gradle index 4e31f3aee..ea6495a39 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ buildscript { repositories { google() + mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } @@ -30,8 +31,8 @@ configure(allprojects) { project -> buildscript { repositories { google() - jcenter() mavenCentral() + jcenter() maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } mavenLocal() } diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index f267287ab..49a325922 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -207,9 +207,6 @@ dependencies { annotationProcessor 'com.jakewharton:butterknife:10.2.3' implementation 'net.zetetic:android-database-sqlcipher:4.4.0@aar' implementation 'commons-validator:commons-validator:1.7' - implementation('com.crashlytics.sdk.android:crashlytics:2.10.1') { - transitive = true - } implementation 'com.google.code.gson:gson:2.8.6' implementation 'org.greenrobot:eventbus:3.2.0' annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.2.0' @@ -242,6 +239,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.4' testImplementation 'org.robolectric:shadows-multidex:4.4' + testImplementation 'com.ibm.fhir:fhir-model:4.2.3' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:2.0.7" testImplementation "org.powermock:powermock-module-junit4-rule:2.0.7" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 9a827105c..1177be489 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -164,6 +164,7 @@ private void registerLanguageSwitcher() { private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); locales.put("French", Locale.FRENCH); + locales.put("") } } \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-pt_BR/strings.xml b/opensrp-anc/src/main/res/values-pt_BR/strings.xml new file mode 100644 index 000000000..3a9d794bd --- /dev/null +++ b/opensrp-anc/src/main/res/values-pt_BR/strings.xml @@ -0,0 +1,420 @@ + + + Sair + Idioma + + + WHO ANC + Salvando... + Removendo... + Por favor, espere + Escanear QR Code + Selecionar idioma + N° Registro não identificado. Clique em sincronizar para receber mais opções e se o erro persistir, contacte o administrador do sistema. + Ordem Alfabética (Nome) + Nome + Cancelar + Dose (D) + N° Registro + Localização: %1$s + Dose %1$s realizada%2$s + + + Favor, checar credenciais + Seu usuário não tem permissão para acessar esse dispositivo + Login falhou. Tente novamente mais tarde + Sem acesso a internet. Por favor, certifique-se sobre a conexão. + Login + Mostrar senha + Completo + Atualizando... + REMOVER DOS REGISTROS + / + clientes + eventos + Sincronizar + Rodada de sincronização concluída… + A hora do dispositivo mudou. Por favor faça login novamente. + A hora do dispositivo mudou. Por favor faça login novamente. + + + Sincronização falhou. Checar conexão de sua internet + Sincronizando... + Sincronização falhou + Tente novamente + Sincronização completa + Sincronizar%1$s + (último%1$s) + Sincronização manual acionada… + + + Nome do usuário + Senha (opcional) + Entrar ou Registrar-se + Entrar + Esse nome de usuário é inválido + Essa senha é muito curta + Essa senha está incorreta + Esse campo é obrigatório + Informações do registro + + + N° Registro no OpenSRP + WHO ANC + Um erro ocorreu ao iniciar o formulário + Procurar por usuário ou N° Registro + Filtro + LIMPAR FILTROS + Aplicar + Pronto + Há tarefas devidas + Gestação de risco + Sífilis na gestação + HIV na gestação + Hipertensão + Atualizado (Recentes primeiro) + IG (mais avançados primeiros) + IG (mais jovem primeiro) + N° Registro + Primeiro nome (A - Z) + Primeiro nome (Z - A) + Último nome (A - Z) + Último nome (Z - A) + Localização não selecionada + + + Busca Avançada + Dentro ou fora do meu centro de saúde + (requer conexão com a internet) + Apenas minha unidade de saúde + Primeiro nome + Último nome + N° Registro PN + N° Registro PN + DPP + Data Provável do Parto + DN + Data de nascimento + Número do celular + Número de telefone + Nome de um contato alternativo + Nome de um contato alternativo + Busca + Resultados da busca + Buscando... + Por favor, aguarde + %1$s combinações + + + Clientes do PN + Recursos de aconselhamento + Características da unidade + Resumo do contato + Sincronizar dados + Fechar caixa de navegação + Caixa de navegação aberta + Cuidado Pré-natal \n Módulo + N° Registro: %1$s + Idade: %1$s + IG: %1$d semanas + \u2022 + + VISÃO GERAL + CONTATOS + TAREFAS + + Novo registro salvo ! + Informação de registro atualizada ! + + Ligar + Inicie contato + Registro de fechamento do pré-natal + Copiar para área de transferência + Nenhuma mulher correspondente encontrada neste dispositivo. + Vá para a busca avançada + Cancele + AMARELO + VERMELHO + Registre o nascimento + Botão do QR Code + Filtro + %1$d clientes + cliente %1$d + Registrar + Biblioteca + Eu + clientes + 0 Clientes (Ordenado: atualizado) + + Razão para ter procurado o servico? * + + Primeiro contato + Visita agendada + Queixa específica + + Queixa(s) específica(s) * + + Corrimento vaginal anormal + Coloração da pele alterada + Alterações na pressão arterial + Constipação + Contrações + Tosse + Depressivo / ansioso + Tontura + Violência doméstica + Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) + Febre + Dor em todo abdomen + Sintomas de gripe + Perda de líquido + Cefaléia + Azia + Cãimbras nas pernas + Dor nas pernas + Vermelhidão nas pernas + Dor pélvica e lombar + Náusea / vômitos / diarreia + Sem movimentação fetal + Edema + Outro sangramento + Outra dor + Outros sintomas psicológicos + Outra alteração cutânea + Outros tipos de violência + Dor à micção (disúria) + Prurido + Movimento fetal reduzido ou discreto + Respiração encurtada + Cansaço + Trauma + Sangramento vaginal + Alteração visual + Outro + + Sinais de alerta* + + Nenhum + Sangramento vaginal + Cianose central + Convulsionando + Febre + Cefaléia e alteração visual + Parto iminente + Trabalho de parto + Parece muito doente + Vômitos intensos + Dor intensa + Dor abdominal intensa + Inconsciente + + Especifique + + Prossiguir para o contato normal + Referir e fechar o contato + + Selecione um motivo para vir à unidade de saúde + Selecione pelo menos uma queixa específica + Selecione Nenhum ou pelo menos um sinal de alerta + Selecione pelo menos um sinal de alerta diferente de Nenhum + incapaz de salvar o evento de verificação rápida + + Descoloração azulada ao redor das mucosas da boca, lábios e língua + + Algum tratamento realizado\nantes do encaminhamento? + Bom-vindo!\n\nPara iniciar, selecione as características da sua unidade. + Sim + Não + CONTATO 22/05/2018 + Espaço reservado para Biblioteca + Espaço reservado para minha página + Características da População + continue + CONTINUE PARA SUA LISTA DE CLIENTES + Suas características locais para %1$s estão todas configuradas. + As características da unidade são compartilhadas por todos os usuários do OpenSRP desta unidade. Você pode atualizar as características da unidade a qualquer momento. + Retornar às características da unidade + editar + + + Checagem rápida + Perfil + Sintomas e Seguimento + Exame Físico + Testes + Recomendação e Tratamento + Tarefas do Contato + + Finalizar + %1$d campos necessários + + Ver História PN + + Sair do contato com\n%1$s + Sair do contato? + Salvar Alterações\nContinuar continuar esse contato em\noutro momento + Salvar alterações + Ignorar alterações + Feche sem salvar\nPerca as atualizações feitas\nneste contato + + Localização: + Seta à direita + Ãcone da seção + Configurações + App versão: %1$s (construída em %2$s) + + Dados sincronizados: %1$s às %2$s + QR Code + Unidade do cliente + + Datas dos próximos contatos + IR PARA O PERFIL DA CLIENTE + ENVIAR RESUMO À CLIENTE + Carregando configurações da cliente… + Você deve permitir que o app WHO ANC gerencie ligações telefônicas para habilitar a chamada… + Quaisquer alterações que você fizer serão perdidas + Nome da mulher + INÃCIO\CONTATO%1$s\n%2$s + INICIAR · CONTATO %1$s · %2$s + CONTATO %1$s\n EM ANDAMENTO + CONTATO %1$s\n EM ANDAMENTO + PARTO\nESPERADO PARA + IG: %1$d semanas\nDPP: %2$s (%3$s atrás)\n\n%4$s deve comparecer imediatamente para o parto. + Contato %1$d + Contato %1$d gravado + exibição do ícone mais informações + exibição do ícone status + Salvar + Desfazer + SALVAR + ENCERRAR + RAZÃO DA VISITA + CONTATO %1$d\n REALIZADO HOJE + CONTATO %1$d · FEITO HOJE + Continuar Contato %1$d + Nome do usuário + Senha + Finalizando contato %1$d + Resumindo o contato %1$d + CONTATO %1$d\n VENCIDO \n %2$s + CONTATO %1$d\n VENCIDO \n %2$s + ÚLTIMO CONTATO + FIGURAS CHAVE + TESTE RECENTE: %1$s + CONTATOS PRÉVIOS + Todos os resultados de exames + %1$s Semanas · Contato %2$s + Contato %1$s + Desfazer o resultado %1$s ? + Um contato negativo significa que a paciente foi encaminhada, então seu agendamento não muda e permanece o mesmo de antes + Contatos Prévios + Todos os resultados de exames + Data Provável do Parto + %1$s semanas + %1$sw ausente + Todos os resultados + Testes não disponíveis + Encaminhamento ao Hospital + Nenhum agendamento dos contatos gerado ainda + Encaminhamento ao hospital registrado + Voltar + Imagem do botão Tab + Toque no botão abaixo para comeãr/completar um contato + Nenhum dado de saúde registrado + Testes + Imagem Ir para + Anexe arquivo + Plano de Parto e Emergência + Atividade Física + Nutrição Balanceada + + Fonte: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. + • + + Desenvolva um plano de parto e emergência + Parto na unidade de saúde + Explique porque é recomendado parto no hospital + Qualquer complicação pode se desenvolver durante o parto - elas não são sempre previsíveis. + Um hospital tem equipe, equipamentos, suprimentos e drogas disponíveis para prover o melhor cuidado necessário, e um sistema de referência. + Se infectada pelo HIV ela necessitará de tratamento ARV apropriado para ela mesma e seu filho durante o nascimento. + Complicações são mais frequentes em mulheres infectadas pelo HIV e seus recém-nascidos. Mulheres infectadas pelo HIV devem parir em uma unidade de saúde. + Aconselhe como preparar + Revisar os acertos para o parto: + Como ela vai chegar lá? Ela terá que pagar o transporte? + Quanto custará parir na unidade de saúde? Como ela pagará? + Ela pode começar a economizar logo? + Quem estará com ela para dar suporte durante o trabalho de parto e nascimento? + Quem ajudará a olhar sua casa e as outras crianças enquanto ela estiver fora? + Aconselhar quando ir + Se a mulher mora perto da unidade de saúde, ela deveria ir aos primeiros sinais de trabalho de parto. + Se morar longe da unidade de saúde, ela deveria ir 2-3 semanas antes da data provável e permanecer ou na casa de repouso da maternidade ou com membros da família ou amigos perto da unidade. + Aconselhe a solicitar ajuda da comunidade, se necessário. + Aconselhar sobre o que levar + Caderneta da Gestante + Roupas limpas para lavar, secar e agasalhar o bebê. + Roupas limpas adicionais para usar como forros sanitários após o parto. + Roupas para a mãe e o bebê. + Comida e água para a mulher e a pessoa a dar suporte. + Parto domiciliar com um profissional capacitado + Rever o seguinte com ela: + Quem será seu acompanhante durante o trabalho de parto e parto? + Quem estará junto por pelo menos 24 horas após o parto? + Quem ajudará a olhar sua casa e as outras crianças? + Aconselhe a chamar a parteira aos primeiros sinais de trabalho de parto. + Aconselhar para ter sua Caderneta da Gestante disponível. + Aconselhe a solicitar ajuda da comunidade, se necessário. + Informe sobre os suprimentos necessários para um parto domiciliar + Roupas limpas de diferentes tamanhos: para a cama, para enxugar e embrulhar o bebê, para limpar os olhos do bebê, para a parteira lavar e secar suas mãos, para uso como forros sanitários. + Cobertores. + Baldes de água limpa e alguma forma de esquentar essa água. + Sabão. + Tigelas: 2 para se lavar e 1 para a placenta + Plástico para acondicionar a placenta. + AVISO: a OMS não é responsável pelo conteúdo destes materiais adicionais. + Atividade física é qualquer movimento corporal produzido pelos músculos esqueléticos que gasta energia. Isso inclui esportes, exercícios e outras atividades como brincar, caminhar, trabalhos caseiros, jardinagem e dançar. Qualquer atividade, seja ela para trabalhar, caminhar ou pedalar para ir e vir dos lugares, ou como parte de lazer, tem um benefício à saúde. + Pessoas que são fisicamente ativas: + Melhora sua capacidade muscular e cardio respiratória + melhora sua saúde óssea e funcional; + tem taxas mais baixas de doenças coronarianas, hipertensão arterial, derrame, diabetes, câncer (incluindo câncer de cólon e de mama) e depressão; + tem um risco mais baixo de queda e de fraturas da bacia ou vertebral; e + têm maior probabilidade de manter seu peso. + O exercício pode ser qualquer atividade que exija esforço físico, realizado para manter ou melhorar a saúde ou o condicionamento físico, e estes podem ser prescritos / não supervisionados (por exemplo, 30 minutos de caminhada diária), supervisionados (por exemplo, uma aula semanal de exercícios em grupo supervisionada) ou ambos. A atividade física também é fundamental para o equilíbrio energético e o controle de peso. + Um estilo de vida saudável inclui atividade física aeróbica e exercícios de condicionamento de força, com o objetivo de manter um bom nível de condicionamento durante a gravidez, sem tentar atingir o nível máximo de condicionamento físico ou treinar para competições atléticas. As mulheres devem escolher atividades com risco mínimo de perda de equilíbrio e trauma fetal. Gestantes, puérperas e pessoas com eventos cardíacos podem precisar tomar precauções extras e procurar orientação médica antes de se esforçar para atingir os níveis recomendados de atividade física. + Para mais informações acesse: + https://apps.who.int/iris/bitstream/handle/10665/44399/9789241599979_eng.pdf?sequence=1 + https://extranet.who.int/rhl/pt-br/node/151040 + FONTE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. + Manter uma boa nutrição e uma dieta saudável durante a gravidez é fundamental para a saúde da mãe e do feto. Ao fornecer educação e aconselhamento nutricional para melhorar o estado nutricional das mulheres durante a gravidez, concentre-se principalmente em: + promover uma dieta saudável, aumentando a diversidade e a quantidade de alimentos consumidos + promover ganho de peso adequado através da ingestão suficiente e equilibrada de proteínas e energia + promover o uso consistente e contínuo de suplementos de micronutrientes, suplementos alimentares ou alimentos fortificados + Adaptações locais e culturais podem ser necessárias para atender às necessidades individuais e garantir o cumprimento das recomendações. + Para adultos, uma dieta saudável contem: + Frutas, vegetais, legumes (por exemplo, lentilhas, feijões), nozes e grãos integrais (por exemplo, milho não processado, milho, aveia, trigo, arroz integral). + Pelo menos 400 g (5 porções) de frutas e legumes por dia. Batatas, batatas doces, mandioca e outras raízes não são classificadas como frutas ou vegetais. + Menos de 10% da ingestão total de energia proveniente de açúcares livres, equivalente a 50 g (ou cerca de 12 colheres de chá) para uma pessoa com peso corporal saudável, consumindo aproximadamente 2000 calorias por dia, mas, idealmente, menos de 5% da ingestão total de energia para benefícios adicionais para a saúde. A maioria dos açúcares livres é adicionada a alimentos ou bebidas pelo fabricante, cozinheiro ou consumidor, e também pode ser encontrada em açúcares naturalmente presentes no mel, xaropes, sucos de frutas e concentrados de suco de frutas. + Menos de 30% da ingestão total de energia proveniente de gorduras. As gorduras insaturadas (por exemplo, encontradas em peixes, abacate, nozes, girassol, canola e azeite) são preferíveis às gorduras saturadas (por exemplo, encontradas em carne gordurosa, manteiga, óleo de palma e coco, creme, queijo, ghee e banha). As gorduras trans industriais (encontradas em alimentos processados, fast food, lanches, frituras, pizza congelada, tortas, biscoitos, margarinas e barrinhas) não fazem parte de uma dieta saudável. + Menos de 5 g de sal (equivalente a aproximadamente 1 colher de chá) por dia e use sal iodado. + http://www.who.int/en/news-room/fact-sheets/detail/healthy-diet + https://mediumredpotion.wordpress.com/2011/12/14/that-old-healthy-food-pyramid/ + Fonte + Exemplos de fontes de proteína: + Adicione à lista e modifique para os padrões locais sempre que possível. + http://www.bendifulblog.com/your-guide-to-protein-what-you-should-know/ + https://co.pinterest.com/pin/208291551498329651/ + Exemplos de fontes de cálcio: + Exemplos de fontes de energia: + Adicione à lista e modifique para os padrões locais sempre que possível. + + Exemplos de fontes de ferro: + https://www.wholesomebabyfoodguide.com/iron-and-iron-rich-baby-foods-what-iron-rich-foods-can-baby-eat/ + https://bit.ly/2RUH0VU + https://i.pinimg.com/originals/21/f2/e3/21f2e3fc203e6b475616e971f3c874f3.jpg + Exemplos de fontes de Vitamina A: + https://www.myfooddata.com/articles/food-sources-of-vitamin-A.php + https://www.medindia.net/patients/lifestyleandwellness/vitamin-a-rich-foods.htm + Exemplos de fontes de Vitamina C: + https://www.myfooddata.com/articles/vitamin-c-foods.php#printable + Consumo de cafeína + A dose diária máxima de ingestão de cafeína para uma mulher grávida é de 300 mg, equivalente a: + ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf + \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..56b54244b --- /dev/null +++ b/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties @@ -0,0 +1,8 @@ +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text = Descompressão dolorosa +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint = Especifique +abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err = Digite um valor válido +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text = Outro (especifique) +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text = Dor à palpação profunda +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text = Dor à palpação superficial +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text = Massa/tumoração +abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label = Exame abdominal: anormal diff --git a/opensrp-anc/src/main/resources/anc_close_pt_BR.properties b/opensrp-anc/src/main/resources/anc_close_pt_BR.properties new file mode 100644 index 000000000..258e40a93 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_close_pt_BR.properties @@ -0,0 +1,73 @@ +anc_close.step1.miscarriage_abortion_ga.v_numeric.err = O valor deve ser um número +anc_close.step1.ppfp_method.hint = Método de planejamento familiar pós-parto? +anc_close.step1.delivery_complications.options.Cord_prolapse.text = Prolapso de cordão +anc_close.step1.anc_close_reason.v_required.err = Selecionar uma opção +anc_close.step1.delivery_mode.options.normal.text = Normal +anc_close.step1.death_cause.options.pre_eclampsia.text = Pré-eclâmpsia +anc_close.step1.delivery_mode.hint = Tipo de parto +anc_close.step1.death_cause.v_required.err = Digite a data do óbito +anc_close.step1.death_date.duration.label = Anos +anc_close.step1.death_cause.options.normal.text = Desconhecido +anc_close.step1.death_cause.options.abortion_related_complications.text = Complicações relacionadas ao aborto +anc_close.step1.death_cause.options.placental_abruption.text = Descolamento Prematuro de Placenta +anc_close.step1.birthweight.v_numeric.err = Digite um peso válido entre 1 e 10 +anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text = Hemorragia anteparto +anc_close.step1.delivery_complications.options.Abnormal_presentation.text = Apresentação anômala +anc_close.step1.miscarriage_abortion_date.v_required.err = Digite a data do aborto +anc_close.step1.death_cause.options.antepartum_haemorrhage.text = Hemorragia anteparto +anc_close.step1.delivery_mode.options.c_section.text = Cesárea +anc_close.step1.anc_close_reason.options.other.text = Outro +anc_close.step1.miscarriage_abortion_date.hint = Data do aborto +anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Hemorragia pós parto +anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Perda de seguimento +anc_close.step1.ppfp_method.options.condom.text = Preservativo +anc_close.step1.ppfp_method.options.ocp.text = Pílula Anticoncepcional Oral  +anc_close.step1.death_cause.options.eclampsia.text = Eclâmpsia +anc_close.step1.anc_close_reason.options.abortion.text = Aborto +anc_close.step1.ppfp_method.options.normal.text = Nenhum +anc_close.step1.delivery_complications.hint = Alguma complicação do parto? +anc_close.step1.anc_close_reason.options.moved_away.text = Mudou-se +anc_close.step1.ppfp_method.options.male_sterilization.text = Esterilização masculina / vasectomia +anc_close.step1.delivery_place.options.home.text = Em casa +anc_close.step1.delivery_date.hint = Data do parto +anc_close.step1.delivery_place.options.other.text = Outro +anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Amamentação exclusiva +anc_close.step1.anc_close_reason.hint = Motivo? +anc_close.step1.delivery_place.options.health_facility.text = Unidade de saúde +anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Fórcipe ou vácuo extração +anc_close.step1.death_cause.options.infection.text = Infecção +anc_close.step1.delivery_complications.options.Other.text = Outro +anc_close.step1.birthweight.hint = Peso ao nascimento (Kg) +anc_close.step1.title = Registro de fechamento do pré-natal +anc_close.step1.death_date.hint = Data do óbito +anc_close.step1.anc_close_reason.options.wrong_entry.text = Erro de digitação +anc_close.step1.death_cause.options.other.text = Outro +anc_close.step1.delivery_complications.options.None.text = Nenhum +anc_close.step1.exclusive_bf.options.no.text = Não +anc_close.step1.delivery_complications.options.Obstructed_labour.text = Trabalho de parto obstruído +anc_close.step1.ppfp_method.options.female_sterilization.text = Esterilização feminina / laqueadura +anc_close.step1.death_cause.hint = Causa do óbito? +anc_close.step1.exclusive_bf.hint = Amamentação exclusiva? +anc_close.step1.anc_close_reason.options.stillbirth.text = Natimorto +anc_close.step1.delivery_complications.label = Alguma complicação do parto? +anc_close.step1.death_date.v_required.err = Digite a data do óbito +anc_close.step1.anc_close_reason.options.false_pregnancy.text = Falsa gestação +anc_close.step1.delivery_date.v_required.err = Digite a data do parto +anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Hemorragia pós parto +anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pré-eclâmpsia +anc_close.step1.delivery_place.v_required.err = Local do parto é necessário +anc_close.step1.delivery_complications.options.Eclampsia.text = Eclâmpsia +anc_close.step1.ppfp_method.options.iud.text = DIU +anc_close.step1.anc_close_reason.options.woman_died.text = A mulher morreu +anc_close.step1.delivery_place.hint = Local do parto? +anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta prévia +anc_close.step1.anc_close_reason.options.live_birth.text = Nascido vivo +anc_close.step1.anc_close_reason.options.miscarriage.text = Aborto +anc_close.step1.delivery_complications.options.Placental_abruption.text = Descolamento Prematuro de Placenta +anc_close.step1.ppfp_method.options.other.text = Outro +anc_close.step1.preterm.v_numeric.err = O valor deve ser um número +anc_close.step1.birthweight.v_required.err = Digite o peso da criança ao nascimento +anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Laceração perineal (2o., 3o. ou 4o. grau) +anc_close.step1.death_cause.options.obstructed_labour.text = Trabalho de parto obstruído +anc_close.step1.ppfp_method.options.abstinence.text = Abstinência +anc_close.step1.exclusive_bf.options.yes.text = Sim diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties new file mode 100644 index 000000000..578a8ba0b --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties @@ -0,0 +1,648 @@ +anc_counselling_treatment.step9.ifa_weekly.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Feito +anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Motivo +anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Motivo +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Aconselhamento sobre antibiótico intra parto para prevenir infecção neonatal precoce pelo Estreptococos do Grupo B (GBS) +anc_counselling_treatment.step11.tt3_date.label_info_title = Dose de Anti-Tetânica #3 +anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Outro +anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Não realizado +anc_counselling_treatment.step11.tt3_date_done.v_required.err = Data da Anti-Tetânica #3 é necessária +anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Motivo +anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Especifique +anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Não realizado +anc_counselling_treatment.step9.calcium.text = 0 +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Não forneça quimioprofilaxia para malária, pois a mulher está tomando Cotrimoxazol. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Diagnóstico de pré eclâmpsia grave +anc_counselling_treatment.step11.tt1_date.label = Dose de Anti-Tetânica #1 +anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Feito +anc_counselling_treatment.step3.heartburn_counsel.label = Mudanças de dieta e hábitos de vida para prevenção e controle de azia +anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Feito +anc_counselling_treatment.step6.gdm_risk_counsel.label = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) +anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step2.shs_counsel.label_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. +anc_counselling_treatment.step2.caffeine_counsel.options.done.text = Feito +anc_counselling_treatment.step2.condom_counsel.label = Aconselhar uso de preservativo +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Solicitar exame confirmatório NAT (Amplificação ácido nucleico)\n\n- Encaminhar para referência +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Motivo +anc_counselling_treatment.step3.nausea_counsel.label = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica +anc_counselling_treatment.step10.deworm_notdone_other.hint = Especifique +anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Especifique +anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Motivo +anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step5.hepc_positive_counsel.label = Aconselhamento sobre Hepatite C positivo +anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedimento:\n- manejo de acordo com o protocolo local para avaliação rápida e manejo\n- referir urgentemente ao hospital +anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.nausea_counsel_notdone.label = Motivo +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Motivo +anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Não realizado +anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Alergias +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = A mulher está doente +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedimento:\n- Referir urgentemente ao hospital +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedimento:\n- Se sífilis primária ou secundária, favor dar uma dose única de penicilina benzatina 2.400.00 UI.\n- Se sífilis tardia ou desconhecida, favor dar uma dose de penicilina benzatina 2.400.000 UI por semana em 3 semanas consecutivas\n- Aconselhar sobre o tratamento do seu parceiro\n- Aconselhar e recomendar testagem para HIV\n- Reforçar o uso de preservativos\n- Proceder a testes adicionais com um teste RPR +anc_counselling_treatment.step10.deworm_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Hospital (cesárea eletiva) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Feito +anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Feito +anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = Não disponível +anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) +anc_counselling_treatment.step10.deworm.options.done.text = Feito +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Motivo +anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Aconselhamento sobre a busca de cuidado quando sinais de perigo +anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = A mulher não aceitou +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risco de VIP (violência intra parceiros) inclui qualquer um dos seguintes:\n- Ferimento traumático, particularmente se repetido e com uma explicação vaga ou improvável;\n- Um marido ou parceiro intruso durante as consultas;\n- Múltiplas gestações não desejadas e/ou terminadas;\n- Demora na busca de cuidado pré-natal;\n- Resultados adversos do nascimento\n- DSTs repetidas;\n- Sintomas gênito-urinários repetidos ou inexplicados;\n- Sintomas de depressão e ansiedade;\n- Uso de álcool ou outras substâncias; ou\n- Auto-flagelo ou ideação suicida. +anc_counselling_treatment.step2.condom_counsel.label_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Motivo +anc_counselling_treatment.step3.constipation_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Feito +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito +anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Aconselhar sobre redução do consumo de cafeína +anc_counselling_treatment.step11.hepb2_date.v_required.err = #2 dose Hep B é necessária +anc_counselling_treatment.step11.tt3_date.label_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano.\nVacina com toxoide tetânico não recebida ou desconhecida\n-Esquema de 3 doses\n- 2 doses, 1 mês de intervalo\n- Segunda dose pelo menos 2 semanas antes do parto\n- Terceira dose 5 meses após a segunda dose +anc_counselling_treatment.step11.flu_date.options.not_done.text = Não realizado +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Motivo +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. +anc_counselling_treatment.step10.iptp_sp3.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 3 +anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica +anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Recomenda-se teste de HIV no parceiro +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step7.anc_contact_counsel.label = Orientação sobre rotina de consultas de PN +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. +anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Feito +anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Esquema de sete dias de antibiótico para bacteriúria assintomática (BA) +anc_counselling_treatment.step11.hepb1_date.v_required.err = 1 dose da vacina contra Hepatite B é necessária +anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Feito +anc_counselling_treatment.step10.iptp_sp1.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 1 +anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescrever dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para anemia +anc_counselling_treatment.step10.iptp_sp3.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step1.referred_hosp.options.no.text = Não +anc_counselling_treatment.step1.title = Encaminhada à referência +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step4.body_mass_toaster.text = Ãndice de massa corporal (IMC) = {bmi}\n\nA mulher está {weight_cat}. O ganho de peso durante a gestaçao deve ser de {exp_weight_gain} kg. +anc_counselling_treatment.step5.hypertension_counsel.label = Aconselhamento sobre hipertensão +anc_counselling_treatment.step10.deworm_notdone.hint = Motivo +anc_counselling_treatment.step1.referred_hosp.label = Encaminhada à referência? +anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Motivo +anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Aconselhamento sobre diabetes +anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Aconselhamento sobre sífilis e testes adicionais +anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Paciente recusou +anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = Aconselhamento sobre HIV positivo +anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedimento:\n\n- Pegar um acesso endovenoso\n\n- Administrar fluídos lentamente\n\n- Encaminhar urgentemente à referência! +anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Anel vaginal +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Aconselhar sobre procura imediata ao hospital se sinais de alerta +anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Não necessário +anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Feito +anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Freqüência cardíaca fetal anormal: {fetal_heart_rate_repeat}bpm +anc_counselling_treatment.step11.tt1_date.label_info_text = Recomenda-se vacinação com toxoide tetânico para todas as gestantes que não estejam completamente imunizadas contra o TT para prevenir mortalidade neonatal pelo tétano\n\n1-4 doses da vacina com toxoide tetânico no passado.\n\n- Esquema de 1 dose: a mulher deve receber uma dose da vacina TT durante cada gestação subsequente até um total de 5 doses (cinco doses protegem durante os anos reprodutivos)\n\nVacina TT não recebida ou desconhecido\n\n- Esquema de 3 doses\n\n- 2 doses, intervalo de 1 mês\n\n- Segunda dose pelo menos 2 semanas antes do parto\n\n- Terceira dose 5 meses depois da segunda dose +anc_counselling_treatment.step11.hepb3_date.label = Vacina contra Hep B dose #3 +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Feito +anc_counselling_treatment.step9.calcium_supp.label_info_text = Recomendação:\n\n- Dividir a dose total em três doses, preferentemente tomadas na hora da refeição\n\n- Ferro e cálcio devem preferentemente ser administradas com um intervalo de várias horas do que concomitantemente\n\n[arquivo das fontes de cálcio] +anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Motivo +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Motivo +anc_counselling_treatment.step3.nausea_counsel.options.done.text = Feito +anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injetável +anc_counselling_treatment.step9.ifa_high_prev.label = Prescrever dose diária de 60 mg de ferro e 0,4 mg de ácido fólico para a prevenção de anemia +anc_counselling_treatment.step11.tt2_date.label_info_title = Dose #2 do TT +anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Feito +anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Motivo +anc_counselling_treatment.step11.tt1_date.v_required.err = Dose #1 do TT é necessária +anc_counselling_treatment.step11.hepb1_date.label = Dose #1 da vacina contra Hep B +anc_counselling_treatment.step11.tt2_date.options.not_done.text = Não realizado +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Pulso anormal: {pulse_rate_repeat}bpm +anc_counselling_treatment.step7.delivery_place.options.facility.text = Unidade de saúde +anc_counselling_treatment.step10.iptp_sp1.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. +anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.deworm_notdone.label = Motivo +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step5.ifa_anaemia.label_info_text = Se uma mulher for diagnosticada com anemia durante a gestação, seu aporte de ferro elementar diário deve ser aumentado para 120 mg até sua concentração de hemoglobina (Hb) subir ao normal (Hb 110 g/L ou maior). Então ela pode voltar à dose diária de ferro antenatal padrão para prevenir a recorrência da anemia.\n\nO equivalente a 120 mg de fero elementar é igual a 600 mg de sulfato ferroso hepta hidratado, 360 mg de fumarato ferroso, ou 1000 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] +anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas +anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step10.malaria_counsel.options.done.text = Feito +anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Motivo +anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.tt2_date.v_required.err = Dose #2do TT é necessária +anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = Vacina não disponível +anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Feito +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = A mulher está doente +anc_counselling_treatment.step9.ifa_low_prev.label = Prescrever dose diária de 30 a 60 mg de ferro e 0,4 mg de ácido fólico para a prevenção de anemia +anc_counselling_treatment.step1.abn_breast_exam_toaster.text = Exame das mamas anormal: {breast_exam_abnormal} +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text = Gestante com colonização por Estreptococo do Grupo B deve receber antibiótico intraparto para prevenção de infecção neonatal precoce por EGB. +anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label = Aconselhamento sobre sífilis e tratamento +anc_counselling_treatment.step10.iptp_sp_notdone.hint = Motivo +anc_counselling_treatment.step9.ifa_low_prev.label_info_title = Prescrever dose diária de 30 a 60 mg de ferro e 0,4 mg de ácido fólico +anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Especificar +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa +anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Motivo +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Diagnóstico de pré eclâmpsia +anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Tratar de acordo com protocolo local e/ou encaminhar à referência para tratamento +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedimento:\n\n- Administrar sulfato de magnésio\n\n- Administrar anti-hipertensivo\n\n- Rever plano de parto\n\n- Encaminhar urgentemente ao hospital +anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Feito +anc_counselling_treatment.step2.shs_counsel_notdone.label = Motivo +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Aconselhamento sobre Fator Rh negativo +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Motivo +anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Sinais de grave perigo incluem:\n\n- Sangramento vaginal\n\n- Convulsões\n\n- Cefaleias intensas com borramento de visão\n\n- Febre e fraqueza que não permite levantar da cama\n\n- Dor abdominal intensa\n\n- Respiração rápida ou difícil +anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = Orientação sobre rotina de consultas de PN +anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar ao hospital +anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Especificar +anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Aconselhar novo teste e imunização se risco persiste ou exposição desconhecida +anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Motivo +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step9.vita_supp.options.done.text = Feito +anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Aconselhamento sobre mudanças de dieta e hábitos de vida para prevenção e controle de azia +anc_counselling_treatment.step5.hiv_positive_counsel.label = Aconselhamento sobre HIV positivo +anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step1.low_oximetry_toaster.text = Baixa oximetria: {oximetry}% +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Aconselhamento sobre opções não farmacológicas para varizes e edema +anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step5.hepb_positive_counsel.label = Aconselhamento sobre Hepatite B positivo +anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step10.malaria_counsel.label_info_title = Aconselhamento sobre prevenção da malária +anc_counselling_treatment.step7.family_planning_type.options.none.text = Nenhum +anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Feito +anc_counselling_treatment.step9.ifa_weekly.label_info_title = Mude a prescrição para dose diária de 120 mg de ferro e 2,8 mg de ácido fólico +anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para investigação adicional +anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step10.malaria_counsel.label_info_text = Dormir sob um mosquiteiro com inseticida e a importância de buscar cuidado e tratamento tão logo ela tenha quaisquer sintomas. +anc_counselling_treatment.step6.hiv_prep_notdone.label = Motivo +anc_counselling_treatment.step2.caffeine_counsel.label = Aconselhar sobre redução do consumo de cafeína +anc_counselling_treatment.step4.increase_energy_counsel.label_info_text = Aumentar o consumo diário de calorias e proteina para reduzir o risco de recém-nascidos de baixo peso.\n\n[Folder de Fontes de Energia e Proteína] +anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Motivo +anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Feito +anc_counselling_treatment.step11.tt1_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Especificar +anc_counselling_treatment.step1.resp_distress_toaster.text = Dificuldade respiratória: {respiratory_exam_abnormal} +anc_counselling_treatment.step12.prep_toaster.text = Suplementos dietéticos NÃO recomendados:\n\n- Suplementos com alta proteína\n\n- Suplemento de Zinco\n\n- Suplemento de múltiplos micronutrientes\n\n- Suplemento de vitamina B6\n\n- Suplemento de vitamina C e E\n\n- Suplemento de vitamina D +anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Razão para encaminhamento para hospital não foi preenchido +anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step8.ipv_enquiry_results.label = Resultados do inquérito sobre VIP +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Feito +anc_counselling_treatment.step4.increase_energy_counsel.label = Aconselhamento sobre aumento do consumo diário de calorias e proteínas +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Aconselhamento sobre Hepatite C positivo +anc_counselling_treatment.step11.tt1_date_done.v_required.err = É necessária data para dose #1 do Toxoide Tetânico +anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Exame cardíaco anormal: {cardiac_exam_abnormal} +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Motivo +anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reafirme intervenção dietética e encaminhamento para serviço de referência.\n\n[Folder Nutricional e Exercícios] +anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Feito +anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step9.calcium_supp.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.condom_counsel_notdone.hint = Motivo +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação +anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescrever suplementação diária de cálcio (1.5-2.0 g the cálcio elementar oral) +anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Feito +anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = Se a mulher apresentar risco de Violência de Parceiro Ãntimo (VPI), encaminhar para avaliação. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Motivo +anc_counselling_treatment.step3.nausea_counsel.label_info_title = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito +anc_counselling_treatment.step11.flu_date.label_info_title = Dose da vacina da gripe +anc_counselling_treatment.step11.woman_immunised_toaster.text = A mulher está completamente imunizada contra o tétano! +anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Não realizado +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Razão para Vacina Hep B não realizada é obrigatório +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Podem ser usados farelo de trigo ou outros suplementos com fibras para aliviar a constipação, se as modificações dietéticas não forem suficientes, e se estiverem disponíveis e forem apropriados. +anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.hepb3_date_done.v_required.err = É necessária a data para a dose #3 da Hep B +anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = Indisponível +anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step9.calcium_supp.options.done.text = Feito +anc_counselling_treatment.step9.vita_supp.options.not_done.text = Não realizado +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text = Exame abdominal anormal: {abdominal_exam_abnormal} +anc_counselling_treatment.step5.tb_positive_counseling.label_info_title = Aconselhamento sobre rastreamento positivo para TB +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title = Diagnóstico de pré eclâmpsia grave +anc_counselling_treatment.step7.encourage_facility_toaster.text = Encorajar o parto em uma unidade de saúde! +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Os tratamentos farmacológicos para náusea e vômitos como a doxilamina e metoclopramida deveriam ficar reservadas para as gestantes com sintomas persistentes que não são aliviados por opções não-farmacológicas, sob supervisão médica. +anc_counselling_treatment.step1.fever_toaster.text = Febre: {body_temp_repeat}ºC +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step8.ipv_refer_toaster.text = Se a mulher apresentar risco de Violência de Parceiro Ãntimo (VPI), encaminhar para avaliação. +anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = Vacina não disponível +anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Recomenda-se aconselhar sobre dieta e hábitos de vida para prevenir e aliviar a azia durante a gestação. Pode-se oferecer preparações antiácidas às mulheres com sintomas mais importantes que não melhoram com a modificação dos hábitos. +anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Por favor, seleciona uma opção +anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encoraje a mulher a descobrir o status de seu(s) parceiro(s) trazendo-o(s) na próxima visita para fazer o teste. +anc_counselling_treatment.step11.tt3_date.label = Dose #3 do TT +anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Feito +anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Mulheres que estão recebendo co-trimoxazol NÃO DEVEM receber concomitantemente sulfadoxina-pirimetamina como tratamento preventivo intermitente para malária. Isso pode potencializar efeitos colaterais, especialmente os hematológicos como anemia. +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Aconselhamento sobre tratamentos farmacológicos para náusea e vômito +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = Sem estoque +anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Motivo +anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Feito +anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = Nenhuma ação necessária +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Feito +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar ao hospital\n\n- Rever plano de parto +anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Não realizado +anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Especificar +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.hepb2_date.label = Dose #2 da Hep B +anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step9.calcium_supp.label = Prescrever suplementação diária de cálcio (1.5-2.0 g de cálcio elementar oral) +anc_counselling_treatment.step5.asb_positive_counsel.label = Esquema de sete dias de antibiótico para bacteriúria assintomática (BA) +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Paciente recusou +anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Paciente recusou +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedimento:\n\n- Se sífilis primária ou secundária, por favor, realizar dose única de 2.400.000 IU de penicilina benzatina \n\n- Se sífilis tardia ou de estágio desconhecido, por favor, realizar 3 doses semanais consecutivas de 2.400.000 IU de penicilina benzatina\n\n- Recomendar tratamento do parceiro\n\n- Encorajar realização de aconselhamento e teste de HIV\n\n- Reforçar uso de preservativos +anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Encaminhada +anc_counselling_treatment.step3.constipation_counsel.label = Aconselhamento sobre modificações da dieta para aliviar a constipação +anc_counselling_treatment.step10.iptp_sp2.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 2 +anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.condom_counsel.options.done.text = Feito +anc_counselling_treatment.step10.malaria_counsel_notdone.label = Motivo +anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Alergias +anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Feito +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas +anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Especificar +anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Especificar +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Feito +anc_counselling_treatment.step6.hiv_prep.label = Aconselhamento sobre Profilaxia Pré-Exposição na prevenção do HIV +anc_counselling_treatment.step7.emergency_hosp_counsel.label = Aconselhar sobre procura imediata do hospital se sinais de alerta +anc_counselling_treatment.step7.anc_contact_counsel.label_info_text = Recomenda-se que a mulher veja um profissional de saúde 8 vezes durante a gestação (isso pode ser modificado se a mulher tem alguma complicação). Esta agenda mostra quando a mulher deve vir para que tenha acesso a todos os cuidados e informações importantes. +anc_counselling_treatment.step5.title = Diagnósticos +anc_counselling_treatment.step9.calcium_supp_notdone.hint = Motivo +anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Especificar +anc_counselling_treatment.step7.gbs_agent_counsel.label = Aconselhamento sobre antibiótico intra parto para prevenir infecção neonatal precoce pelo Estreptococos do Grupo B (GBS) +anc_counselling_treatment.step8.ipv_enquiry.label = Inquérito clínico para violência de parceiro íntimo (VPI) +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Motivo +anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedimento:\n\n- Fornecer oxigênio\n\n- Encaminhar urgentemente ao hospital! +anc_counselling_treatment.step11.tt3_date.v_required.err = Dose #3 do TT é necessária +anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Esterilização (parceiro) +anc_counselling_treatment.step11.hepb2_date_done.hint = Foi fornecida a data para a dose #2 da Hep B +anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Não realizado +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Especificar +anc_counselling_treatment.step10.deworm.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.diabetes_counsel.label = Aconselhamento sobre diabetes +anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Não realizado +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescreva 75 mg de aspirina diária até o parto (começando às 12 semanas de gestação) e certifique-se de que ela continua tomando seu suplemento diário de cálcio de 1.5 a 2 g até o parto pelo risco de pré-eclâmpsia +anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para investigação adicional +anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Feito +anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.shs_counsel.label_info_title = Aconselhamento sobre fumo passivo +anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step9.vita_supp.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = Para possibilitar que as mães estabeleçam e mantenham o aleitamento exclusivo por 6 meses, a OMS e UNICEF recomendam:\n\n- Início do aleitamento dentro da primeira hora de vida\n\n- Aleitamento exclusivo - quando a criança recebe apenas leite materno sem qualquer comida ou bebida adicional, nem mesmo água\n\n- Aleitamento à livre demanda - que é tão frequente quanto a criança desejar, dia e noite\n\n- Sem uso de mamadeiras, bicos ou chupetas +anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.family_planning_type.options.iud.text = DIU +anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Não realizado +anc_counselling_treatment.step2.shs_counsel.label = Aconselhamento sobre fumo passivo +anc_counselling_treatment.step10.iptp_sp3.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 3 +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = Feito +anc_counselling_treatment.step10.iptp_sp2.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. +anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = Isso inclui:\n\n- Profissional treinado para atender o parto\n\n- Acompanhante durante trabalho de parto e parto\n\n- Identificação da unidade mais perto para o parto e no caso de complicações\n\n- Fundos para quaisquer gastos relacionados ao parto e em caso de complicações\n\n- Suprimentos e materiais necessários para levar à unidade de saúde\n\n- Suporte para o cuidado com a casa e as outras crianças enquanto ela estiver fora\n\n- Transporte para uma unidade para o parto ou no caso de complicações\n\n- Identificação de doadores de sangue compatíveis em caso de complicações +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Especificar +anc_counselling_treatment.step11.hepb3_date_done.hint = Foi fornecida a data para a dose #3 da Hep B +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Motivo +anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Aconselhamento sobre Hep B negativa e vacinação +anc_counselling_treatment.step3.varicose_vein_toaster.text = Investigar quaisquer possíveis complicações, incluindo trombose, relacionadas a veias varicosas e edema +anc_counselling_treatment.step7.birth_prep_counsel.label = Aconselhamento sobre o preparo para o parto e prontidão para complicações +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = Batimento cardíaco fetal não foi observado +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint = Motivo +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.flu_date.v_required.err = Dose da vacina da gripe é necessária +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Motivo +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Exame pélvico anormal: {pelvic_exam_abnormal} +anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Aconselhamento sobre o preparo para o parto e prontidão para complicações +anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Motivo +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step3.constipation_counsel.options.done.text = Feito +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Não realizado +anc_counselling_treatment.step9.ifa_weekly.label = Mude a prescrição para dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para a prevenção de anemia +anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.tt3_date_done.hint = Foi fornecida a data para a dose #3 do TT +anc_counselling_treatment.step3.nausea_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Recomendação:\n\n- Encaminhar para serviço especializado para HIV\n\n- Orientações sobre infecções oportunistas e necessidade de busca por ajuda médica\n\n- Realize rastreamento sistemático para TB ativa +anc_counselling_treatment.step11.flu_date.label_info_text = Mulheres grávidas devem ser vacinadas com a vacina trivalente inativada da influenza em qualquer estágio da gestação. +anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = A mulher está imunizada contra a gripe! +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = Batimento cardíaco fetal não foi observado +anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Informar motivo de não realização da vacina da Gripe +anc_counselling_treatment.step10.deworm_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Diagnóstico de pré eclâmpsia +anc_counselling_treatment.step5.tb_positive_counseling.label = Aconselhamento sobre rastreamento positivo para TB +anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.tt2_date.label = Dose #2 do TT +anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.hepb_negative_note.label = Aconselhamento sobre Hep B negativa e vacinação +anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implante +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = Aconselhamento sobre risco do HIV +anc_counselling_treatment.step2.shs_counsel.options.done.text = Feito +anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Não realizado +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text = Pode-se oferecer preparações antiácidas para as mulheres com sintomas importantes que não são aliviados pela modificação de hábitos. Preparações com carbonato de magnésio e hidróxido de alumínio provavelmente não causam prejuízos nas doses recomendadas. +anc_counselling_treatment.step9.ifa_weekly_notdone.label = Motivo +anc_counselling_treatment.step11.tt1_date.options.not_done.text = Não realizado +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label = Motivo +anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step9.vita_supp.label_info_text = Dê uma dose de até 10.000 UI de vitamina A por dia, ou uma dose semanal de até 25.000 UI.\n\nUma dose única de suplemento de vitamina A maior que 25.000 UI não se recomenda pela incerteza da segurança. Mais ainda, uma dose única de suplemento de vitamina A maior que 25.000 UI pode ser teratogênica se consumida entre os dias 15 e 60 desde a concepção.\n\n[Folder de fontes de Vitamina A] +anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Sinais de perigo incluem:\n\n- Cefaleia\n\n- Ausência de movimento fetal\n\n- Contrações\n\n- Corrimento vaginal anormal\n\n- Febre\n\n- Dor abdominal\n\n- Sente-se doente\n\n- Dedos, face ou pernas inchados +anc_counselling_treatment.step10.iptp_sp_toaster.text = Não forneça quimioprofilaxia para malária, pois a mulher está tomando Cotrimoxazol. +anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Recomendação:\n\n- Orientar repouso e redução da carga de trabalho - Avisar sobre sinais de alerta\n\n- Reavaliar no próximo contato ou em 1 semana se gravidez acima de 8 meses\n\n- Se persistência da hipertensão após 1 semana ou no próximo contato, encaminhar à referência ou discutir com o médico, se possível +anc_counselling_treatment.step1.referred_hosp_notdone.label = Motivo +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Feito +anc_counselling_treatment.step2.condom_counsel_notdone.label = Motivo +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text = Não realizado +anc_counselling_treatment.step3.leg_cramp_counsel.label = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text = Se as câimbras nas pernas não são aliviadas com medidas não farmacológicas, prescreva 300-360 mg de magnésio por dia dividido em duas ou três doses; e cálcio 1 g duas vezes por dia por duas semanas. +anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Devido à alta prevalência de anemia na população, uma dose diária de 60 mg de ferro elementar é preferível a uma dose mais baixa. Também se recomenda uma dose diária de 400 mcg (0.4 mg) de ácido fólico.\n\nO equivalente de 60 mg de ferro elementar é 300 mg de sulfato ferroso hepta hidratado, 180 mg de fumarato ferroso ou 500 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step9.ifa_weekly.options.done.text = Feito +anc_counselling_treatment.step11.flu_date.label = Dose da gripe +anc_counselling_treatment.step11.hepb2_date_done.v_required.err = É necessária a data para a dose #2 da Hep B +anc_counselling_treatment.step9.vita_supp.label = Prescreva uma dose diária de até 10.000 UI de vitamina A ou uma dose semanal de até 25.000 UI +anc_counselling_treatment.step11.hepb1_date_done.hint = Foi fornecida a data para a dose #1 da Hep B +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Motivo +anc_counselling_treatment.step6.hiv_prep.label_info_text = Profilaxia pré-exposição (PPE) oral contendo fumarato disoproxil tenofovir (TDF) deve ser oferecida como uma opção adicional de prevenção para gestantes com um risco substancial de infecção pelo HIV, como parte de uma abordagem de prevenção combinada\n\n{Quadro de oferta de PPE] +anc_counselling_treatment.step10.deworm.label_info_text = Em áreas com uma prevalência de infecção por quaisquer helmintos transmitidos pelo solo de 20% ou mais OU uma prevalência de anemia na população de 40% ou mais, recomenda-se tratamento anti-helmíntico preventivo para as gestantes depois do primeiro trimestre como parte dos programas de redução de infecção por vermes. +anc_counselling_treatment.step11.tt2_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step11.tt3_date.options.not_done.text = Não realizado +anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = A mulher está completamente imunizada contra a Hep B! +anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Tratada +anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Motivo +anc_counselling_treatment.step6.hiv_prep.options.done.text = Feito +anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Não realizado +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Motivo +anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step11.tt3_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text = Pode-se usar terapias não farmacológicas, incluindo alongamento muscular, relaxamento, calor local, dorsoflexão do pé e massagem para o alívio de câimbras nas pernas durante a gestação. +anc_counselling_treatment.step3.constipation_counsel.label_info_text = Modificações dietéticas para aliviar a constipação incluem a promoção de consumo adequado de água e fibras (encontradas em vegetais, frutas secas, frutas e grãos integrais). +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital para investigação adicional e cuidados! +anc_counselling_treatment.step1.referred_hosp.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step1.severe_hypertension_toaster.text = Hipertensão grave: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg +anc_counselling_treatment.step4.average_weight_toaster.text = Realizado Aconselhamento sobre dieta saudável e manter-se fisicamente ativo +anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Não realizado +anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Anticoncepcional oral +anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Ligadura de trompas +anc_counselling_treatment.step11.tt_dose_notdone.label = Motivo +anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Não realizado +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Alergia +anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.iptp_sp_notdone.label = Motivo +anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.delivery_place.options.home.text = Em casa +anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Motivo +anc_counselling_treatment.step4.eat_exercise_counsel.label = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa +anc_counselling_treatment.step10.iptp_sp3.options.done.text = Feito +anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital! +anc_counselling_treatment.step9.vita_supp_notdone.label = Motivo +anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.iptp_sp3.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. +anc_counselling_treatment.step11.hepb1_date_done.v_required.err = É necessária a data para a dose #1 da Hep B +anc_counselling_treatment.step11.flu_date_done.hint = Foi fornecida a data para a dose da Gripe +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Feito +anc_counselling_treatment.step9.ifa_low_prev.options.done.text = Feito +anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital para investigação adicional e cuidados! +anc_counselling_treatment.step7.breastfeed_counsel.label_info_title = Aconselhamento sobre amamentação +anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step2.shs_counsel_notdone.hint = Motivo +anc_counselling_treatment.step8.title = Violência de Parceiro Ãntimo (VPI) +anc_counselling_treatment.step10.iptp_sp1.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step2.shs_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.varicose_oedema_counsel.label = Aconselhamento sobre opções não farmacológicas para varizes e edema +anc_counselling_treatment.step7.delivery_place.options.other.text = Outro +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step9.ifa_high_prev.label_info_title = Prescrever dose diária de 60 mg de ferro e 0,4 mg de ácido fólico +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text = Efeitos colaterais +anc_counselling_treatment.step7.danger_signs_counsel.label = Aconselhamento sobre a busca de cuidado para sinais de perigo +anc_counselling_treatment.step4.increase_energy_counsel.label_info_title = Aconselhamento sobre aumento do consumo diário de calorias e proteínas +anc_counselling_treatment.step10.iptp_sp1.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 1 +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text = Efeitos colaterais +anc_counselling_treatment.step7.family_planning_type.label = Método de Planejamento Familiar aceito +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step11.tt3_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step6.pe_risk_aspirin.label = Prescreva 75 mg de aspirina diária até o parto (começando às 12 semanas de gestação) pelo risco de pré-eclâmpsia +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title = Aconselhamento sobre o uso de álcool/substâncias +anc_counselling_treatment.step3.constipation_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.malaria_counsel.label = Aconselhamento sobre prevenção da malária +anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step10.deworm.options.not_done.text = Não realizado +anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Não realizado +anc_counselling_treatment.step11.title = Imunizações +anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Motivo +anc_counselling_treatment.step7.breastfeed_counsel.label = Aconselhamento sobre amamentação +anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Fora da validade +anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para avaliação adicional +anc_counselling_treatment.step3.nausea_counsel.label_info_text = Recomenda-se o uso de gengibre, camomila, vitamina B6 e/ou acupuntura para o alívio da náusea no início da gestação, com base na preferências da mulher e opções disponíveis. As mulheres devem ser informadas que os sintomas de náusea e vômitos normalmente melhoram na segunda metade da gestação. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Feito +anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Feito +anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step10.iptp_sp2.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step7.rh_negative_counsel.label = Aconselhamento sobre Fator Rh negativo +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Aconselhamento sobre sífilis e testes adicionais +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Sem estoque +anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Recomenda-se suplementação dietética equilibrada em energia e proteína para mulheres grávidas, a fim de reduzir o risco de natimortos e recém-nascidos pequenos para a idade gestacional. +anc_counselling_treatment.step5.ifa_anaemia.label = Prescrever dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para anemia +anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Aconselhamento:\n\n- Mulher está sob risco de aloimunização Rh se pai do bebê for Rh positivo ou Rh desconhecido.\n\n- Realizar investigação sobre aloimunização e necessidade de encaminhamento.\n\n- Se Rh negativo e não sensibilizada, a mulher deve receber imunoglobulina Anti-D no pós-parto imediato se o bebê for Rh positivo. +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Alergia +anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = Vacina não disponível +anc_counselling_treatment.step10.iptp_sp2.options.done.text = Feito +anc_counselling_treatment.step11.flu_dose_notdone.label = Motivo +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Orientar sobre as opções de prevenção do HIV: \n\n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n\n- Promoção do uso do preservativo\n\n- Aconselhamento de redução de risco\n\n- PPE com ênfase na aderência\n\n- Enfatizar importância do seguimento nas consultas de pré-natal +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step2.title = Aconselhamento sobre comportamento +anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step11.tt2_date_done.v_required.err = É necessária data para dose #2 do Toxoide Tetânico +anc_counselling_treatment.step2.tobacco_counsel.label = Aconselhamento sobre parar de fumar. +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Recomenda-se uma suplementação com dose diária de 30 a 60 mg de ferro elementar e 400 mcg (0.4 mg) de ácido fólico para prevenir a anemia materna, sepse puerperal, baixo peso ao nascimento e parto prematuro.\n\nO equivalente de 60 mg de ferro elementar é 300 mg de sulfato ferroso hepta hidratado, 180 mg de fumarato ferroso ou 500 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] +anc_counselling_treatment.step6.hiv_risk_counsel.label = Aconselhamento sobre risco do HIV +anc_counselling_treatment.step11.hepb3_date.v_required.err = Dose #3 do Hep B é necessária +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step2.condom_counsel.label_info_title = Aconselhar uso de preservativo +anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Feito +anc_counselling_treatment.step10.deworm.label = Prescreva dose única de albendazol 400 mg ou mebendazol 500 mg +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedimento:\n\n- Informar à mulher que não foi possível identificar os batimentos cardíacos fetais e que será necessário encaminhá-la à referência para avaliação adicional.\n\n- Encaminhar ao hospital. +anc_counselling_treatment.step9.vita_supp.label_info_title = Prescreva uma dose diária de até 10.000 UI de vitamina A ou uma dose semanal de até 25.000 UI +anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Alergias +anc_counselling_treatment.step11.flu_date.options.done_today.text = Realizado hoje +anc_counselling_treatment.step11.tt1_date_done.hint = Foi fornecida a data para a dose #1 do TT +anc_counselling_treatment.step3.title = Aconselhamento sobre sintomas fisiológicos +anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Aconselhamento sobre hipertensão +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Solicitar exame confirmatório NAT (Amplificação ácido nucleico)\n\n- Encaminhar para referência +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step9.title = Suplementação nutricional +anc_counselling_treatment.step2.alcohol_substance_counsel.label = Aconselhamento sobre o uso de álcool/substâncias +anc_counselling_treatment.step7.birth_plan_toaster.text = A mulher deve planejar o parto em uma unidade de saúde pelos fatores de risco +anc_counselling_treatment.step10.malaria_counsel_notdone.hint = Motivo +anc_counselling_treatment.step7.anc_contact_counsel.options.done.text = Feito +anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Especificar +anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step3.constipation_counsel_notdone.label = Motivo +anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Febre: {body_temp_repeat}ºC +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Aconselhar o uso de preparações antiácidas para aliviar a azia +anc_counselling_treatment.step11.hepb_dose_notdone.label = Motivo +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Efeitos colaterais impedem a mulher de tomá-lo +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Motivo +anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Aconselhar o uso de preparações antiácidas para aliviar a azia +anc_counselling_treatment.step4.title = Aconselhamento sobre dieta +anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Sem estoque +anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = A mulher está doente +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Motivo +anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Favor selecionar uma opção +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Motivo +anc_counselling_treatment.step9.calcium_supp_notdone.label = Motivo +anc_counselling_treatment.step11.tt2_date.label_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano.\n\nVacina com toxoide tetânico não recebida ou desconhecida\n- Esquema de 3 doses\n\n- 2 doses, 1 mês de intervalo\n\n- Segunda dose pelo menos 2 semanas antes do parto\n\n- Terceira dose 5 meses após a segunda dose +anc_counselling_treatment.step12.title = Não recomendado +anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Feito +anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Não realizado +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Motivo +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Aconselhamento sobre Hepatite B positivo +anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Razão para Anti-tetânica não realizada é obrigatório +anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Feito +anc_counselling_treatment.step7.title = Aconselhamento +anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Recomenda-se que a gestante tenha alimentação saudável e mantenha-se fisicamente ativa para que permaneça saudável e para prevenir o ganho de peso excessivo durante a gestação.\n\n[Folder Nutrição e Exercício] +anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Não realizado +anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step9.ifa_weekly.label_info_text = Se o ferro não for aceitável todo dia por seus efeitos colaterais, dê então uma suplementação intermitente de ferro e ácido fólico (120 mg de ferro elementar e 2.8 mg de ácido fólico uma vez por semana) \n\nO equivalente de 120 mg de ferro elementar é 600 mg de sulfato ferroso hepta hidratado, 360 mg de fumarato ferroso ou 1000 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] +anc_counselling_treatment.step2.tobacco_counsel.options.done.text = Feito +anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text = Feito +anc_counselling_treatment.step10.iptp_sp1.options.done.text = Feito +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text = Hipertensão e sintomas de pré eclampsia grave: {symp_sev_preeclampsia} +anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step6.hiv_prep_notdone_other.hint = Especificar +anc_counselling_treatment.step5.ifa_anaemia.options.done.text = Feito +anc_counselling_treatment.step10.iptp_sp2.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 2 +anc_counselling_treatment.step5.asb_positive_counsel.label_info_text = Setes dias de antibiótico é recomendado para todas mulheres com bacteriúria assintomática para prevenir bacteriúria persistente, parto prematuro ou baixo peso. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint = Motivo +anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text = Paciente recusou +anc_counselling_treatment.step9.vita_supp_notdone.hint = Motivo +anc_counselling_treatment.step6.title = Riscos +anc_counselling_treatment.step6.hiv_prep.label_info_title = Aconselhamento sobre Profilaxia Pré-Exposição na prevenção do HIV +anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Feito +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Motivo +anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint = Especificar +anc_counselling_treatment.step3.constipation_counsel.label_info_title = Aconselhamento sobre modificações da dieta para aliviar a constipação +anc_counselling_treatment.step1.danger_signs_toaster.text = Sinal(is) de alerta: {danger_signs} +anc_counselling_treatment.step6.prep_toaster.text = Recomenda-se teste de HIV no parceiro +anc_counselling_treatment.step1.referred_hosp_notdone.hint = Motivo +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step11.tt2_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step3.nausea_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text = Não realizado +anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text = Fatores de risco que requerem parto hospitalar:\n- Idade 17 ou menos\n- Primigesta\n- Paridade 6 ou mais\n- Cesariana prévia\n- História de complicações na gestação: hemorragia, parto com fórcipe ou vacuo extrator, convulsões, laceração de 3° ou 4° grau\n- Sangramento vaginal\n- Gestação múltipla\n- Apresentação fetal anômala\n- HIV+\n- Deseja DIU ou laqueadura durante ou pós-parto +anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step10.title = Profilaxia de Malária e parasitose intestinal +anc_counselling_treatment.step3.nausea_counsel_notdone.hint = Motivo +anc_counselling_treatment.step11.flu_date.options.done_earlier.text = Realizado anteriormente +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint = Motivo +anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint = Especificar +anc_counselling_treatment.step10.iptp_sp_notdone_other.hint = Especificar +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Aconselhamento sobre suplementação dietética balanceada em energia e proteína +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida +anc_counselling_treatment.step4.balanced_energy_counsel.label = Aconselhamento sobre suplementação dietética balanceada em energia e proteína +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamina B6: evidência moderado grau de certeza mostra que a vitamina B6 (piridoxina) provavelmente fornece algum alívio para náusea durante a gravidez.\n\nVitamina C: A vitamina C é importante para melhorar a biodisponibilidade do ferro oral. Evidências de baixo grau de certeza sobre a vitamina C sozinha sugerem que ela pode prevenir a ruptura pré-parto das membranas (PROM). No entanto, é relativamente fácil consumir quantidades suficientes de vitamina C de fontes alimentares.\n\n[Vitamin C folder]\n\nVitamina D: mulheres grávidas devem ser avisadas de que a luz solar é a fonte mais importante de vitamina D. Para mulheres grávidas com deficiência documentada de vitamina D, suplementos de vitamina D podem ser administrados com a ingestão atual recomendada de nutrientes (RNI) de 200 UI (5 μg) por dia. +anc_counselling_treatment.step1.referred_hosp.options.yes.text = Sim +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Aconselhamento sobre sífilis e tratamento +anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Motivo +anc_counselling_treatment.step7.delivery_place.label = Local de parto planejado +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text = Feito +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label = Motivo +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = Procedimento:\n\n- Checar se há febre, sinais de infecção, problemas respiratórios e arritmia\n\n- Encaminhar para avaliação adicional +anc_counselling_treatment.step7.family_planning_counsel.label = Aconselhamento de planejamento familiar pós parto +anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Aconselhamento sobre parar de fumar. +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Outro (especifique) +anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Especificar +anc_counselling_treatment.step11.tt2_date_done.hint = Foi fornecida a data para a dose #2 do TT diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties b/opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties new file mode 100644 index 000000000..bd4b4b956 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties @@ -0,0 +1,169 @@ +anc_physical_exam.step3.respiratory_exam.label = Exame respiratório +anc_physical_exam.step3.body_temp_repeat.v_required.err = Digite a segunda medida de temperatura +anc_physical_exam.step3.cardiac_exam.options.1.text = Não realizado +anc_physical_exam.step3.cervical_exam.label = Exame do colo do útero realizado? +anc_physical_exam.step4.toaster29.text = Frrequência cardíaca fetal anormal. Encaminhe ao hospital +anc_physical_exam.step1.height_label.text = Altura (cm) +anc_physical_exam.step3.pelvic_exam.options.2.text = Normal +anc_physical_exam.step3.oedema_severity.v_required.err = Digite o resultado da fita urinária +anc_physical_exam.step1.toaster6.toaster_info_text = Recomenda-se suplementação dietética equilibrada em energia e proteína para mulheres grávidas, a fim de reduzir o risco de natimortos e recém-nascidos pequenos para a idade gestacional. +anc_physical_exam.step3.pelvic_exam.options.1.text = Não realizado +anc_physical_exam.step1.pregest_weight_label.v_required.err = Digite o peso pré-gestacional +anc_physical_exam.step3.cardiac_exam.options.2.text = Normal +anc_physical_exam.step3.pulse_rate_label.text = Pulso (bpm) +anc_physical_exam.step4.fetal_presentation.label = Apresentação fetal +anc_physical_exam.step3.toaster25.text = Exame pélvico anormal. Considere avaliação em local de maior complexidade, tratamento sindrômico específico ou encaminhamento. +anc_physical_exam.step2.toaster11.toaster_info_text = A Mulher tem hipertensão. Se ela apresentar um sintoma de pré-eclâmpsia grave, encaminhe urgentemente o hospital para investigação e tratamento. +anc_physical_exam.step3.pallor.options.yes.text = Sim +anc_physical_exam.step2.urine_protein.options.++++.text = ++++ +anc_physical_exam.step3.cardiac_exam.label = Exame cardiológico +anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Nova pressão sistólica é necessária +anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Segunda frequência cardíaca fetal (bpm) +anc_physical_exam.step3.toaster24.text = Exame abdominal anormal. Considere avaliação em local de maior complexidade ou encaminhamento. +anc_physical_exam.step3.body_temp_repeat.v_numeric.err = +anc_physical_exam.step1.height.v_required.err = Digite a altura +anc_physical_exam.step3.toaster21.toaster_info_text = Procedimento:\n- Forneça oxigênio\n- Encaminhar urgentemente para o hospital! +anc_physical_exam.step3.body_temp.v_required.err = Digite a temperatura corporal +anc_physical_exam.step3.pelvic_exam.options.3.text = Anormal +anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverso +anc_physical_exam.step2.bp_diastolic.v_required.err = Pressão diastólica é necessária +anc_physical_exam.step2.toaster13.toaster_info_text = A mulher tem pré-eclâmpsia grave - PAS de 160 mmHg ou mais e/ou PAD de 110 mmHg ou mais e proteinúria 3+ OU a mulher tem PAS de 140 mmHg ou mais e/ou PAD de 90 mmHg ou mais e proteinúria 2+ com pelo menos um sintoma de pré-eclâmpsia grave.\n\nProcedimento:\n- Dar sulfato de magnésio\n- Dar anti-hipertensivos apropriados\n- Revisar o plano de parto\n- Transferir para o hospital com urgência! +anc_physical_exam.step3.breast_exam.options.1.text = Não realizado +anc_physical_exam.step4.toaster27.text = Frrequência cardíaca fetal não observada. Encaminhe ao hospital +anc_physical_exam.step1.toaster1.text = Ãndice de massa corporal (IMC) = {bmi}\n\nA mulher está {weight_cat}. O ganho de peso durante a gestaçao deve ser de {exp_weight_gain} kg. +anc_physical_exam.step3.body_temp_repeat_label.text = Segunda temperatura (ºC) +anc_physical_exam.step2.urine_protein.options.+.text = + +anc_physical_exam.step4.sfh.v_required.err = Digite a altura uterina +anc_physical_exam.step2.toaster9.toaster_info_text = A mulher tem hipertensão - PAS de 140 mmHg ou maior e/ou PAD de 90 mmHg ou maior e sem proteinúria.\n\nAconselhamento:\n- Aconselhar a redução de trabalho e repouso\n- Orientar sobre os sinais de perigo\n- Reavaliar no próximo contato ou em 1 semana se no oitavo mês de gestação\n- Se a hipertensão persiste após 1 semana ou no próximo contato, encaminhar para o hospital ou discutir os caso com o médico, se disponível. +anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Visão embaçada +anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vômito +anc_physical_exam.step1.toaster4.toaster_info_text = Recomenda-se que a gestante tenha alimentação saudável e mantenha-se fisicamente ativa para que permaneça saudável e para prevenir o ganho de peso excessivo durante a gestação. +anc_physical_exam.step3.respiratory_exam.options.2.text = Normal +anc_physical_exam.step3.breast_exam.options.3.text = Anormal +anc_physical_exam.step2.cant_record_bp_reason.v_required.err = É necessário informar a razão pela qual a PAS e PAD não podem ser medidas. +anc_physical_exam.step3.abdominal_exam.options.2.text = Normal +anc_physical_exam.step4.no_of_fetuses_label.text = Número de fetos +anc_physical_exam.step1.pregest_weight.v_numeric.err = +anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Impossibilidade de registrar a PA +anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = É necessário informar a segunda medida da PA diastólica +anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Outro +anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = Número de fetos desconhecido +anc_physical_exam.step3.oedema_severity.options.+++.text = +++ +anc_physical_exam.step4.fetal_heartbeat.label = Batimento cardíaco fetal presente? +anc_physical_exam.step1.toaster2.text = Ganho de peso médio por semana desde o último contato: {weight_gain} kg\n\nGanho de peso total na gestação até agora; {tot_weight_gain} kg +anc_physical_exam.step2.toaster7.text = Medir a PA novamente após 10-15 minutos de repouso. +anc_physical_exam.step3.cervical_exam.options.1.text = Feito +anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Registre os batimentos cardíacos fetais do segundo feto +anc_physical_exam.step3.toaster22.text = Exame cardíaco anormal. Encaminhar urgentemente ao hospital +anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = +anc_physical_exam.step3.pulse_rate_repeat_label.text = Segunda frequência cardíaca (bpm) +anc_physical_exam.step3.toaster18.toaster_info_text = Procedimento:\n\n- Checar se há febre, sinais de infecção, problemas respiratórios e arritmia\n\n- Encaminhar para avaliação adicional +anc_physical_exam.step3.oedema.options.yes.text = Sim +anc_physical_exam.step1.title = Altura e Peso +anc_physical_exam.step2.urine_protein.options.++.text = ++ +anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Sim +anc_physical_exam.step4.toaster30.text = Aconselhamento sobre risco de pré-eclâmpsia +anc_physical_exam.step3.pelvic_exam.label = Exame pélvico (visual) +anc_physical_exam.step4.fetal_presentation.options.other.text = Outro +anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text = Nenhum +anc_physical_exam.step1.toaster6.toaster_info_title = Aconselhamento sobre suplementação dietética balanceada em energia e proteína +anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text = Dor epigástrica +anc_physical_exam.step4.sfh_label.text = Altura uterina (AU) em centímetros (cm) +anc_physical_exam.step1.toaster5.toaster_info_title = Aconselhamento sobre aumento do consumo diário de calorias e proteínas +anc_physical_exam.step2.toaster10.toaster_info_text = A mulher tem hipertensão grave. Se PAS for 160 mmHg ou maior e/ou a PAD for 110 mmHg ou maior, então referir com urgência para o hospital para investigação adicional e conduta. +anc_physical_exam.step2.toaster10.text = Hipertensão grave! Referir com urgência ao hospital +anc_physical_exam.step1.toaster4.toaster_info_title = Folder sobre orientação nutricional e exercícios +anc_physical_exam.step3.pallor.options.no.text = Não +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text = Manguito para PA (esfigmomanômetro) não disponível +anc_physical_exam.step4.fetal_heart_rate_label.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes +anc_physical_exam.step3.toaster18.text = Frequência cardíaca anormal. Encaminhe para investigação adicional. +anc_physical_exam.step3.toaster15.text = Temperatura de 38ºC ou maior. Meça a temperatura novamente. +anc_physical_exam.step4.fetal_heartbeat.options.no.text = Não +anc_physical_exam.step4.fetal_presentation.options.unknown.text = Desconhecido +anc_physical_exam.step4.fetal_heartbeat.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes +anc_physical_exam.step1.current_weight.v_required.err = Digite o peso atual +anc_physical_exam.step2.bp_systolic_label.text = Pressão arterial sistólica (PAS) (mmHg) +anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = +anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = Manguito para PA (esfigmomanômetro) está quebrado +anc_physical_exam.step3.abdominal_exam.label = Exame abdominal +anc_physical_exam.step4.fetal_presentation.v_required.err = É necessário informar a apresentação fetal +anc_physical_exam.step2.bp_systolic_repeat_label.text = PAS após 10-15 minutos de repouso. +anc_physical_exam.step3.oedema.label = Edema presente? +anc_physical_exam.step3.toaster20.text = A mulher tem dificuldade respiratória. Referir com urgência ao hospital. +anc_physical_exam.step2.toaster9.text = Diagnóstico de hipertensão! Faça aconselhamento. +anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ +anc_physical_exam.step3.toaster17.text = Frequência cardíaca anormal. Medir novamente após 10 minutos de repouso. +anc_physical_exam.step1.toaster5.text = Aconselhamento sobre aumento do consumo diário de calorias e proteínas +anc_physical_exam.step2.bp_systolic.v_numeric.err = +anc_physical_exam.step2.urine_protein.options.none.text = Nenhum +anc_physical_exam.step2.cant_record_bp_reason.label = Motivo +anc_physical_exam.step2.toaster13.text = Diagnóstico de pré-eclâmpsia grave! Faça o tratamento de urgência e refira ao hospital +anc_physical_exam.step3.pallor.label = Palidez presente? +anc_physical_exam.step4.fetal_movement.v_required.err = Esse campo é obrigatório +anc_physical_exam.step4.title = Avaliação fetal +anc_physical_exam.step4.fetal_movement.label = Sente movimento fetal? +anc_physical_exam.step2.toaster8.text = Faça teste urinário de fita para proteína +anc_physical_exam.step4.fetal_heart_rate.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes +anc_physical_exam.step1.toaster6.text = Aconselhamento sobre suplementação dietética balanceada em energia e proteína +anc_physical_exam.step2.toaster14.toaster_info_title = Diagnóstico de pré-eclâmpsia! Referir ao hospital e revisar o plano de parto. +anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = +anc_physical_exam.step2.symp_sev_preeclampsia.label = Algum sintoma de pré-eclâmpsia grave? +anc_physical_exam.step3.toaster16.text = A mulher tem febre. Faça o tratamento e refira com urgência ao hospital. +anc_physical_exam.step3.toaster21.text = A mulher tem uma oximetria baixa. Referir com urgência ao hospital. +anc_physical_exam.step1.pregest_weight.v_required.err = É necessário o peso pré-gestacional. +anc_physical_exam.step2.urine_protein.options.+++.text = +++ +anc_physical_exam.step3.respiratory_exam.options.3.text = Anormal +anc_physical_exam.step3.oedema_severity.options.++.text = ++ +anc_physical_exam.step1.pregest_weight_label.text = Peso pré-gestacional (kg) +anc_physical_exam.step3.breast_exam.label = Exame das mamas +anc_physical_exam.step3.toaster19.text = Diagnóstico de anemia! Recomenda-se o teste de hemoglobina (Hb) +anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text = Tontura +anc_physical_exam.step1.current_weight_label.text = Peso atual (Kg) +anc_physical_exam.step4.fetal_presentation.options.cephalic.text = Cefálico +anc_physical_exam.step3.body_temp_label.text = Temperatura (ºC) +anc_physical_exam.step3.abdominal_exam.options.1.text = Não realizado +anc_physical_exam.step2.bp_diastolic_repeat_label.text = PAD após 10-15 minutos de repouso. +anc_physical_exam.step3.oedema_severity.label = Intensidade do edema +anc_physical_exam.step1.toaster4.text = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa +anc_physical_exam.step4.fetal_presentation.options.pelvic.text = Pélvico +anc_physical_exam.step3.toaster16.toaster_info_text = Procedimento:\n\n- Pegar um acesso endovenoso\n\n- Administrar fluídos lentamente\n\n- Encaminhar urgentemente à referência! +anc_physical_exam.step2.toaster11.text = Sintoma(s) de ´pré-eclâmpsia grave! Referir com urgência ao hospital +anc_physical_exam.step2.toaster14.text = Diagnóstico de pré-eclâmpsia! Referir ao hospital e revisar o plano de parto. +anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Especificar quaisquer outros sintomas ou selecione nenhum +anc_physical_exam.step3.body_temp.v_numeric.err = +anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Peso pré-gestacional desconhecido +anc_physical_exam.step2.title = Pressão arterial +anc_physical_exam.step2.urine_protein.v_required.err = Digite o resultado da fita urinária +anc_physical_exam.step4.toaster30.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. +anc_physical_exam.step2.toaster14.toaster_info_text = A mulher tem pré-eclâmpsia - PAS de 140 mmHg ou mais e/ou PAD de 90 mmHg ou mais e proteinúria 2+ e sem sintomas de pré-eclâmpsia grave.\n\nProcedimento:\n- Encaminhar ao hospital\n- Revisar o plano de parto +anc_physical_exam.step3.cervical_exam.options.2.text = Não realizado +anc_physical_exam.step1.height.v_numeric.err = +anc_physical_exam.step3.oximetry_label.text = Oximetria (%) +anc_physical_exam.step2.bp_diastolic_label.text = Pressão arterial diastólica (PAD) (mmHg) +anc_physical_exam.step2.urine_protein.label = Resultado de fita urinária - proteína +anc_physical_exam.step3.respiratory_exam.options.1.text = Não realizado +anc_physical_exam.step4.fetal_heart_rate_label.text = Batimento cardíaco fetal (BCF) +anc_physical_exam.step1.toaster5.toaster_info_text = Aumente o consumo diário de calorias e proteínas para reduzir o risco de recém-nascido de baixo peso. +anc_physical_exam.step4.fetal_movement.options.no.text = Não +anc_physical_exam.step3.abdominal_exam.options.3.text = Anormal +anc_physical_exam.step1.toaster3.text = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) +anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Cefaléia grave +anc_physical_exam.step3.oedema_severity.options.+.text = + +anc_physical_exam.step4.toaster28.text = Batimentos cardíacos fetais fora da variação normal (110-160). Favor manter a mulher deitada sobre seu lado esquerdo por 15 minutos e verifique novamente. +anc_physical_exam.step3.pulse_rate.v_numeric.err = +anc_physical_exam.step3.pulse_rate.v_required.err = Digite a frequência cardíaca +anc_physical_exam.step2.bp_diastolic.v_numeric.err = +anc_physical_exam.step1.current_weight.v_numeric.err = +anc_physical_exam.step3.title = Exame materno +anc_physical_exam.step3.toaster19.toaster_info_text = Anemia - nível de Hb menor que 11 no primeiro ou terceiro trimestre ou menor que 10,5 no segundo trimestre.\n\nOU\n\nSem registro de resultado de teste de Hb, mas a mulher tem palidez. +anc_physical_exam.step4.fetal_movement.options.yes.text = Sim +anc_physical_exam.step1.toaster3.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez +anc_physical_exam.step4.fetal_presentation.label_info_text = Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. +anc_physical_exam.step3.pulse_rate_repeat.v_required.err = Digite a frequência cardíaca repetida +anc_physical_exam.step3.cardiac_exam.options.3.text = Anormal +anc_physical_exam.step3.toaster23.text = Exame de mamas anormal. Encaminhe para investigação adicional. +anc_physical_exam.step3.toaster26.text = Colo está dilatado mais que 2 cm. Checar outros sinais e sintomas de trabalho de parto (se IG for 37 semanas ou mais) ou trabalho de parto prematuro e outras complicações relacionadas (se IG for menor que 37 semanas). +anc_physical_exam.step3.breast_exam.options.2.text = Normal +anc_physical_exam.step2.bp_systolic.v_required.err = Pressão diastólica é necessária +anc_physical_exam.step3.oedema.options.no.text = Não +anc_physical_exam.step4.toaster27.toaster_info_text = Procedimento:\n- Informar à mulher que não foi possível identificar os batimentos cardíacos fetais e que será necessário encaminhá-la à referência para avaliar se há algum problema.\n- Encaminhar ao hospital. diff --git a/opensrp-anc/src/main/resources/anc_profile_pt_BR.properties b/opensrp-anc/src/main/resources/anc_profile_pt_BR.properties new file mode 100644 index 000000000..e12909cbe --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_profile_pt_BR.properties @@ -0,0 +1,317 @@ +anc_profile.step1.occupation.options.other.text = Outro (especifique) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = Mais que 48 pedaços (quadradinhos) de chocolate +anc_profile.step2.ultrasound_done.label_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) +anc_profile.step2.ultrasound_done.options.no.text = Não +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step7.tobacco_user.options.recently_quit.text = Deixou recentemente +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Recomenda-se teste para Hep B +anc_profile.step4.surgeries.options.removal_of_the_tube.text = Remoção da trompa (salpingectomia) +anc_profile.step2.lmp_known.v_required.err = Informar se DUM desconhecida +anc_profile.step3.prev_preg_comps_other.hint = Especifique +anc_profile.step6.medications.options.antibiotics.text = Outros antibióticos +anc_profile.step6.medications.options.aspirin.text = Aspirina +anc_profile.step8.bring_partners_toaster.toaster_info_title = Aconselhe a mulher a trazer o parceiro(s) para teste de HIV. +anc_profile.step3.last_live_birth_preterm.label = O último nascido vivo era pré-termo (menor que 37 semanas)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Hidróxido de alumínio +anc_profile.step2.sfh_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaína/crack +anc_profile.step5.hepb_immun_status.v_required.err = Favor selecionar o estado de imunização para Hep B +anc_profile.step8.partner_hiv_status.label = Estado de HIV do parceiro +anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Recomenda-se imunização contra gripe +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step4.surgeries.options.removal_of_ovary.text = Remoção do ovário (ooforectomia) +anc_profile.step1.occupation.options.formal_employment.text = Emprego formal +anc_profile.step3.substances_used.options.marijuana.text = Maconha +anc_profile.step2.lmp_gest_age_selection.label = +anc_profile.step2.lmp_known.options.no.text = Não +anc_profile.step3.gestational_diabetes_toaster.text = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) +anc_profile.step7.other_substance_use.hint = Especifique +anc_profile.step3.prev_preg_comps_other.v_required.err = Especifique outros problemas em gestações anteriores +anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrossomia +anc_profile.step2.select_gest_age_edd_label.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step1.educ_level.options.secondary.text = Secundária +anc_profile.step5.title = Estado de imunização +anc_profile.step3.gravida.v_required.err = É necessário número de gestações +anc_profile.step3.prev_preg_comps.label = Quaisquer problemas em gestações anteriores? +anc_profile.step4.allergies.options.malaria_medication.text = Medicação para malária (sulfadoxina-pirimetamina) +anc_profile.step4.allergies.label = Quaisquer alergias? +anc_profile.step6.medications.options.folic_acid.text = Ãcido fólico +anc_profile.step6.medications.options.anti_convulsive.text = Anticonvulsivante +anc_profile.step2.ultrasound_gest_age_selection.label = +anc_profile.step7.condom_counseling_toaster.text = Aconselhar uso de preservativo +anc_profile.step3.substances_used_other.v_required.err = Especifique outras drogas usadas +anc_profile.step6.medications_other.hint = Especifique +anc_profile.step3.previous_pregnancies.v_required.err = É necessário incluir gestações anteriores +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP com fumarato disoproxil tenofovir (TDF) +anc_profile.step3.prev_preg_comps.v_required.err = Selecione pelo menos um problema em gestações anteriores +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito +anc_profile.step3.miscarriages_abortions_label.text = Número de gestações perdidas/terminadas (antes de 22 semanas / 5 meses) +anc_profile.step8.partner_hiv_status.options.negative.text = Negativo +anc_profile.step7.caffeine_intake.options.none.text = Nenhum dos acima +anc_profile.step4.title = História médica +anc_profile.step4.health_conditions_other.v_required.err = Especifique condições de saúde crônicas ou passadas +anc_profile.step2.ultrasound_gest_age_days.hint = IG pelo ultrassom - dias +anc_profile.step3.substances_used.label = Especifique o uso de substâncias ilícitas +anc_profile.step7.condom_counseling_toaster.toaster_info_title = Aconselhar uso de preservativo +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor realizar aconselhamento apropriado. +anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilatação e curetagem +anc_profile.step7.substance_use_toaster.text = Aconselhamento sobre o uso de álcool/substâncias +anc_profile.step7.other_substance_use.v_required.err = Especifique outras drogas usadas +anc_profile.step3.c_sections.v_required.err = É necessário fazer uma cesárea +anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Especifique outros procedimentos ginecológicos +anc_profile.step3.gravida_label.v_required.err = É necessário número de gestações +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Rotura de 3o. ou 4o. grau +anc_profile.step4.allergies.options.folic_acid.text = Ãcido fólico +anc_profile.step6.medications.options.other.text = Outro (especifique) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Drogas injetáveis +anc_profile.step6.medications.options.anti_malarials.text = Antimaláricos +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = Mais que 2 xícaras pequenas (50 ml) de expresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) +anc_profile.step2.ultrasound_gest_age_days.v_required.err = Dê a IG pelo ultrassom - dias +anc_profile.step2.ultrasound_done.options.yes.text = Sim +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Aconselhamento sobre parar de fumar. +anc_profile.step1.occupation.hint = Trabalho +anc_profile.step3.live_births_label.text = Número de nascidos vivos (depois de 22 semanas) +anc_profile.step7.caffeine_intake.label = Aporte diário de cafeina +anc_profile.step6.medications.options.metoclopramide.text = Metoclopramida +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV +anc_profile.step4.surgeries.options.cervical_cone.text = Remoção parcial do colo (cone cervical) +anc_profile.step5.flu_immun_status.label = Estado de imunização pela gripe +anc_profile.step2.sfh_ultrasound_gest_age_selection.label = +anc_profile.step7.alcohol_substance_use.label = Uso de álcool e/ou outras substâncias? +anc_profile.step1.occupation_other.v_required.err = Especifique seu trabalho +anc_profile.step7.alcohol_substance_use.options.other.text = Outro (especifique) +anc_profile.step1.educ_level.options.higher.text = Mais alto +anc_profile.step3.substances_used.v_required.err = Selecione pelo menos um uso de álcool ou substância ilícita +anc_profile.step6.medications.label = Medicações em uso +anc_profile.step6.medications.options.magnesium.text = Magnésio +anc_profile.step6.medications.options.anthelmintic.text = Antihelmíntico +anc_profile.step3.stillbirths_label.text = Número de natimortos (depois de 22 semanas) +anc_profile.step1.educ_level.v_required.err = Especifique seu grau de estudo +anc_profile.step4.health_conditions.options.hiv.text = HIV +anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses +anc_profile.step1.hiv_risk_counseling_toaster.text = Aconselhamento sobre risco do HIV +anc_profile.step7.tobacco_user.v_required.err = Especifique se a mulher usa algum produto de tabaco +anc_profile.step3.substances_used.options.other.text = Outro (especifique) +anc_profile.step6.medications.options.calcium.text = Cálcio +anc_profile.step5.flu_immunisation_toaster.toaster_info_text = As gestantes devem ser vacinadas com a vacina trivalente inativada para Gripe em qualquer momento da gestação. +anc_profile.step6.title = Medicações +anc_profile.step6.medications.options.hemorrhoidal.text = Medicação antihemorroidal +anc_profile.step8.hiv_risk_counselling_toaster.text = Aconselhamento sobre risco do HIV +anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Medir AU ou fazer palpação abdominal +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PrEP com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal +anc_profile.step4.surgeries.options.dont_know.text = Não sabe +anc_profile.step6.medications.v_required.err = Selecione pelo menos uma medicação +anc_profile.step1.occupation.options.student.text = Estudante +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) +anc_profile.step3.substances_used.options.injectable_drugs.text = Drogas injetáveis +anc_profile.step5.flu_immun_status.options.unknown.text = Desconhecido +anc_profile.step7.alcohol_substance_enquiry.options.no.text = Não +anc_profile.step4.surgeries.label = Quaisquer cirurgias? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Dose sazonal da vacina da gripe dada +anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hipertensivo +anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Não sabe +anc_profile.step5.tt_immun_status.options.unknown.text = Desconhecido +anc_profile.step5.flu_immun_status.v_required.err = Favor selecionar o estado de imunização para Hep B +anc_profile.step3.last_live_birth_preterm.options.yes.text = Sim +anc_profile.step2.ultrasound_toaster.text = Recomenda-se exame de ultrassom +anc_profile.step7.substance_use_toaster.toaster_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. +anc_profile.step1.marital_status.options.divorced.text = Divorciada / separada +anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses de TTCV nos últimos 5 anos +anc_profile.step8.title = Estado de HIV do parceiro +anc_profile.step4.allergies.options.iron.text = Ferro +anc_profile.step6.medications.options.arvs.text = Antiretrovirais (ARV) +anc_profile.step6.medications.options.multivitamin.text = Multivitamínico +anc_profile.step7.shs_exposure.options.no.text = Não +anc_profile.step1.educ_level.options.dont_know.text = Não sabe +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Aconselhar sobre redução do consumo de cafeína +anc_profile.step7.caffeine_reduction_toaster.text = Aconselhar sobre redução do consumo de cafeína +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. +anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsia +anc_profile.step3.miscarriages_abortions.v_required.err = É necessário o número de abortos espontâneos +anc_profile.step4.allergies.v_required.err = Selecione pelo menos uma alergia +anc_profile.step4.surgeries.options.none.text = Nenhum +anc_profile.step2.sfh_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV não foi feita +anc_profile.step5.hepb_immun_status.options.unknown.text = Desconhecido +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Parto por fórcipe ou vácuo extração +anc_profile.step5.flu_immunisation_toaster.text = Recomenda-se imunização contra gripe +anc_profile.step5.hepb_immun_status.options.not_received.text = Não realizado +anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Uso de álcool +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom +anc_profile.step3.substances_used_other.hint = Especifique +anc_profile.step7.condom_use.v_required.err = Especifique se você usa algum produto de tabaco +anc_profile.step6.medications.options.antitussive.text = Antitussígeno +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia +anc_profile.step4.health_conditions.options.blood_disorder.text = Problema sanguíneo (ex: anemia falciforme, talassemia) +anc_profile.step5.tt_immun_status.label = Estado de imunização com TT +anc_profile.step5.tt_immunisation_toaster.toaster_info_title = Recomenda-se imunização com TT +anc_profile.step7.alcohol_substance_use.options.marijuana.text = Maconha +anc_profile.step4.allergies.options.calcium.text = Cálcio +anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Dê a IG pelo ultrassom - semanas +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = Mais que 3 xícaras (300 ml) de café instantâneo +anc_profile.step5.tt_immun_status.v_required.err = Favor selecionar o estado de imunização por TT +anc_profile.step4.surgeries.options.other.text = Outras cirurgias (especifique) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Uso de substâncias +anc_profile.step2.lmp_known.options.yes.text = Sim +anc_profile.step2.lmp_known.label_info_title = A DUM é conhecida? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Outros procedimentos ginecológicos (especifique) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. +anc_profile.step4.allergies.options.chamomile.text = Camomila +anc_profile.step2.lmp_known.label = A DUM é conhecida? +anc_profile.step3.live_births.v_required.err = É necessário o número de nascidos vivos +anc_profile.step7.condom_use.options.no.text = Não +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = O bebê morreu em até 24 horas depois do parto +anc_profile.step4.surgeries_other_gyn_proced.hint = Outros procedimentos ginecológicos +anc_profile.step1.occupation_other.v_regex.err = Especifique seu trabalho +anc_profile.step1.marital_status.label = Estado marital +anc_profile.step7.title = Comportamento da mulher +anc_profile.step4.surgeries_other.hint = Outras cirurgias +anc_profile.step3.substances_used.options.cocaine.text = Cocaína/crack +anc_profile.step1.educ_level.options.primary.text = Primário +anc_profile.step4.health_conditions.options.other.text = Outro (especifique) +anc_profile.step6.medications_other.v_required.err = Especifique outros medicamentos +anc_profile.step7.second_hand_smoke_toaster.text = Aconselhamento sobre fumo passivo +anc_profile.step1.educ_level.options.none.text = Nenhum +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pré-eclâmpsia +anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Recomenda-se testar para Hep B as mulheres de risco que ainda não foram completamente imunizadas contra a Hep B. +anc_profile.step7.condom_counseling_toaster.toaster_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. +anc_profile.step4.health_conditions.v_required.err = Selecione pelo menos uma condição crônica ou prévia +anc_profile.step7.alcohol_substance_use.options.none.text = Nenhum +anc_profile.step7.tobacco_user.options.yes.text = Sim +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = Mais que 2 xícaras (200 ml) de café coado ou preparado comercialmente +anc_profile.step2.ultrasound_toaster.toaster_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) +anc_profile.step3.prev_preg_comps.options.other.text = Outro (especifique) +anc_profile.step2.facility_in_us_toaster.toaster_info_title = Encaminhar para fazer ultrassom em uma unidade de saúde com equipamento de US. +anc_profile.step6.medications.options.none.text = Nenhum +anc_profile.step2.ultrasound_done.label = O exame de ultrassom foi feito? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. +anc_profile.step6.medications.options.iron.text = Ferro +anc_profile.step2.sfh_gest_age.hint = IG obtida com AU ou palpação - semanas +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV +anc_profile.step4.health_conditions.options.kidney_disease.text = Doença renal +anc_profile.step7.tobacco_cessation_toaster.text = Aconselhamento sobre parar de fumar. +anc_profile.step4.health_conditions.options.diabetes.text = Diabetes +anc_profile.step1.occupation_other.hint = Especifique +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Medir AU ou fazer palpação abdominal +anc_profile.step8.bring_partners_toaster.text = Aconselhe a mulher a trazer o parceiro(s) para teste de HIV. +anc_profile.step1.marital_status.v_required.err = Especifique seu estado marital +anc_profile.step8.partner_hiv_status.v_required.err = Selecionar uma opção +anc_profile.step7.alcohol_substance_use.v_required.err = Especifique se a mulher usa álcool ou outras substâncias +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PPE com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal +anc_profile.step3.prev_preg_comps.options.none.text = Nenhum +anc_profile.step4.allergies.options.dont_know.text = Não sabe +anc_profile.step3.pre_eclampsia_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia +anc_profile.step4.allergies.hint = Quaisquer alergias? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Diabetes Gestacional +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Selecione data do HIV desconhecida +anc_profile.step2.facility_in_us_toaster.text = Encaminhar para fazer ultrassom em uma unidade de saúde com equipamento de US. +anc_profile.step4.surgeries.hint = Quaisquer cirurgias? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Remoção de cistos do ovário +anc_profile.step4.health_conditions.hint = Alguma condição de saúde crônica ou passada? +anc_profile.step7.tobacco_user.label = Usa algum produto com tabaco? +anc_profile.step1.occupation.label = Trabalho +anc_profile.step7.alcohol_substance_enquiry.v_required.err = Especifique se você usa algum produto de tabaco +anc_profile.step3.prev_preg_comps.options.dont_know.text = Não sabe +anc_profile.step6.medications.options.hematinic.text = Hemático +anc_profile.step3.c_sections_label.text = Número de cesáreas +anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsões +anc_profile.step5.hepb_immun_status.options.incomplete.text = Incompleto +anc_profile.step7.alcohol_substance_use.options.alcohol.text = Ãlcool +anc_profile.step7.caffeine_intake.v_required.err = É necessário o aporte diário de cafeina +anc_profile.step4.allergies.options.albendazole.text = Albendazol +anc_profile.step5.tt_immunisation_toaster.text = Recomenda-se imunização com TT +anc_profile.step1.educ_level.label = Maior grau de escolaridade +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Aconselhamento sobre fumo passivo +anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Sim +anc_profile.step4.allergies.options.penicillin.text = Penicilina +anc_profile.step1.occupation.options.unemployed.text = Desempregada +anc_profile.step2.ultrasound_done.v_required.err = É necessário o exame de ultrassom feito +anc_profile.step1.marital_status.options.single.text = Nunca foi casada e nunca morou junto (solteira) +anc_profile.step5.hepb_immun_status.label = Estado de imunização para Hep B +anc_profile.step1.marital_status.options.widowed.text = Viúva +anc_profile.step7.shs_exposure.label = Alguém na casa fuma algum produto de tabaco? +anc_profile.step4.health_conditions_other.hint = Especifique +anc_profile.step6.medications.options.antivirals.text = Antivirais +anc_profile.step6.medications.options.antacids.text = Antiácidos +anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Usando a DUM +anc_profile.step7.hiv_counselling_toaster.text = Aconselhamento sobre risco do HIV +anc_profile.step3.title = História obstétrica +anc_profile.step5.fully_immunised_toaster.text = A mulher está completamente imunizada contra o tétano! +anc_profile.step4.pre_eclampsia_two_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia +anc_profile.step3.substances_used_other.v_regex.err = Especifique outras drogas usadas +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Sangramento intenso (durante ou após o parto) +anc_profile.step4.health_conditions.label = Alguma condição de saúde crônica ou prévia? +anc_profile.step4.surgeries.v_required.err = Selecione pelo menos uma cirurgia +anc_profile.step8.partner_hiv_status.options.dont_know.text = Não sabe +anc_profile.step3.last_live_birth_preterm.v_required.err = É necessário o último nascido vivo pré-termo +anc_profile.step4.health_conditions.options.dont_know.text = Não sabe +anc_profile.step7.alcohol_substance_enquiry.label = Foi feito um inquérito clínico sobre uso de álcool e/ou outras substâncias? +anc_profile.step4.health_conditions.options.autoimmune_disease.text = Doença autoimune +anc_profile.step6.medications.options.vitamina.text = Vitamina A +anc_profile.step6.medications.options.dont_know.text = Não sabe +anc_profile.step7.condom_use.options.yes.text = Sim +anc_profile.step4.health_conditions.options.cancer.text = Câncer +anc_profile.step7.substance_use_toaster.toaster_info_title = Aconselhamento sobre o uso de álcool/substâncias +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Faltou dose sazonal da vacina da gripe +anc_profile.step4.allergies_other.hint = Especifique +anc_profile.step7.hiv_counselling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV +anc_profile.step7.caffeine_intake.hint = Consumo diário de cafeina +anc_profile.step2.ultrasound_gest_age_wks.hint = IG pelo ultrassom - semanas +anc_profile.step4.allergies.options.other.text = Outro (especifique) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia +anc_profile.step4.surgeries_other.v_required.err = Especifique outras cirurgias +anc_profile.step2.sfh_gest_age.v_required.err = Dê a IG obtida com AU ou palpação abdominal - semanas +anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Usando a DUM +anc_profile.step4.allergies.options.none.text = Nenhum +anc_profile.step3.stillbirths.v_required.err = É necessário o número de nascidos mortos +anc_profile.step7.tobacco_user.options.no.text = Não +anc_profile.step3.prev_preg_comps_other.v_regex.err = Especifique outros problemas em gestações anteriores +anc_profile.step1.marital_status.options.married.text = Casada ou morando junto +anc_profile.step4.hiv_diagnosis_date.v_required.err = Digite a data do diagnóstico do HIV +anc_profile.step7.shs_exposure.options.yes.text = Sim +anc_profile.step5.hep_b_testing_recommended_toaster.text = Recomenda-se teste para Hep B +anc_profile.step8.bring_partners_toaster.toaster_info_text = Encoraje a mulher a descobrir o status de seu(s) parceiro(s) trazendo-o(s) na próxima visita para fazer o teste. +anc_profile.step4.surgeries.options.removal_of_fibroid.text = Remoção de fibroides (miomectomia) +anc_profile.step4.hiv_diagnosis_date.hint = Data do diagnóstico do HIV +anc_profile.step7.shs_exposure.v_required.err = Selecione se você usa algum produto de tabaco +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Emprego informal (trabalhadora do sexo) +anc_profile.step4.allergies.options.mebendazole.text = Mebendazol +anc_profile.step7.condom_use.label = Usa preservativo durante o sexo? +anc_profile.step1.occupation.v_required.err = Selecione pelo menos um trabalho +anc_profile.step6.medications.options.analgesic.text = Analgésico +anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PPE com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal +anc_profile.step5.fully_hep_b_immunised_toaster.text = A mulher está completamente imunizada contra a Hep B! +anc_profile.step2.lmp_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida +anc_profile.step3.gravida_label.text = Número de gestações (incluindo a atual) +anc_profile.step8.partner_hiv_status.options.positive.text = Positivo +anc_profile.step4.allergies.options.ginger.text = Gengibre +anc_profile.step2.title = Gestação atual +anc_profile.step2.select_gest_age_edd_label.text = Favor selecionar idade gestacional preferida +anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses de TTCV no passado +anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclâmpsia +anc_profile.step5.immunised_against_flu_toaster.text = A mulher está imunizada contra a gripe! +anc_profile.step1.occupation.options.informal_employment_other.text = Emprego informal (outro) +anc_profile.step4.allergies.options.magnesium_carbonate.text = Carbonato de Magnésio +anc_profile.step4.health_conditions.options.none.text = Nenhum +anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabéticos +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom +anc_profile.step6.medications.options.asthma.text = Asma +anc_profile.step6.medications.options.doxylamine.text = Doxilamina +anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Fumo +anc_profile.step7.alcohol_substance_enquiry.label_info_text = Isso refere-se à aplicação de um inquérito específico para avaliar o uso de álcool ou outras substâncias. +anc_profile.step3.last_live_birth_preterm.options.no.text = Não +anc_profile.step3.stillbirths_label.v_required.err = É necessário o número de nascidos mortos +anc_profile.step4.health_conditions.options.hypertension.text = Hipertensão +anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano. +anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazol +anc_profile.step6.medications.options.thyroid.text = Medicação tireoidiana +anc_profile.step1.title = Informações demográficas +anc_profile.step2.lmp_ultrasound_gest_age_selection.label = +anc_profile.step2.ultrasound_done.label_info_title = O exame de ultrassom foi feito? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = Data do diagnóstico do HIV desconhecida? +anc_profile.step2.lmp_known.label_info_text = DUM = primeiro dia da Data da Última Menstruação. Se a data exata não é conhecida, mas sim o período do mês, use o dia 5 para o início do mês, dia 15 para o meio e dia 25 para o final do mês. Se completamente desconhecido, selecione "Não" e calcule a IG pelo ultrassom (ou pela AU ou palpação abdominal como um último recurso) +anc_profile.step2.ultrasound_toaster.toaster_info_title = Recomenda-se exame de ultrassom diff --git a/opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties b/opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties new file mode 100644 index 000000000..e341aec86 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties @@ -0,0 +1,65 @@ +anc_quick_check.step1.specific_complaint.options.dizziness.text = Tontura +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Violência doméstica +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Outro sangramento +anc_quick_check.step1.specific_complaint.options.depression.text = Depressão +anc_quick_check.step1.specific_complaint.options.heartburn.text = Azia +anc_quick_check.step1.specific_complaint.options.other_specify.text = Outro (especifique) +anc_quick_check.step1.specific_complaint.options.oedema.text = Edema +anc_quick_check.step1.specific_complaint.options.contractions.text = Contrações +anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Cãimbras nas pernas +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Outros sintomas psicológicos +anc_quick_check.step1.specific_complaint.options.fever.text = Febre +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Visita agendada +anc_quick_check.step1.danger_signs.options.severe_headache.text = Cefaléia grave +anc_quick_check.step1.danger_signs.options.danger_fever.text = Febre +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Parece muito doente +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Alteração visual +anc_quick_check.step1.specific_complaint.options.leg_redness.text = Vermelhidão nas pernas +anc_quick_check.step1.specific_complaint_other.hint = Especifique +anc_quick_check.step1.specific_complaint.options.tiredness.text = Cansaço +anc_quick_check.step1.danger_signs.options.severe_pain.text = Dor intensa +anc_quick_check.step1.specific_complaint.options.constipation.text = Constipação +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Cianose central +anc_quick_check.step1.specific_complaint_other.v_regex.err = Por favor, digite um valor válido +anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Outra alteração cutânea +anc_quick_check.step1.danger_signs.options.danger_none.text = Nenhum +anc_quick_check.step1.specific_complaint.label = Queixa(s) específica(s) +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Dor nas pernas +anc_quick_check.step1.title = Checagem rápida +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Movimento fetal reduzido ou discreto +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Sangramento vaginal +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Dor em todo abdomen +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Corrimento vaginal anormal +anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Outros tipos de violência +anc_quick_check.step1.specific_complaint.options.other_pain.text = Outra dor +anc_quick_check.step1.specific_complaint.options.anxiety.text = Ansiedade +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Dor pélvica +anc_quick_check.step1.specific_complaint.options.bleeding.text = Sangramento vaginal +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Alterações na pressão arterial +anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Respiração encurtada +anc_quick_check.step1.specific_complaint.v_required.err = Inclua queixa específica +anc_quick_check.step1.contact_reason.v_required.err = Informe o motivo para vir à unidade de saúde +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Perda de líquido +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Dor abdominal intensa +anc_quick_check.step1.contact_reason.label = Motivo para vir à unidade de saúde +anc_quick_check.step1.danger_signs.label = Sinais de perigo +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Dor lombar +anc_quick_check.step1.specific_complaint.options.trauma.text = Trauma +anc_quick_check.step1.danger_signs.options.unconscious.text = Inconsciente +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Icterícia +anc_quick_check.step1.danger_signs.options.labour.text = Trabalho de parto +anc_quick_check.step1.specific_complaint.options.headache.text = Cefaléia +anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Alteração visual +anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Parto iminente +anc_quick_check.step1.specific_complaint.options.pruritus.text = Prurido +anc_quick_check.step1.specific_complaint.options.cough.text = Tosse +anc_quick_check.step1.specific_complaint.options.dysuria.text = Dor à micção (disúria) +anc_quick_check.step1.contact_reason.options.first_contact.text = Primeiro contato +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Sintomas de gripe +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Náusea / vômitos / diarreia +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Sem movimentação fetal +anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsionando +anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Vômitos intensos +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Queixa específica +anc_quick_check.step1.danger_signs.v_required.err = Incluir sinais de perigo diff --git a/opensrp-anc/src/main/resources/anc_register_pt_BR.properties b/opensrp-anc/src/main/resources/anc_register_pt_BR.properties new file mode 100644 index 000000000..eb45e6dc4 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_register_pt_BR.properties @@ -0,0 +1,31 @@ +anc_register.step1.dob_unknown.options.dob_unknown.text = Data de Nascimento desconhecida? +anc_register.step1.reminders.options.no.text = Não +anc_register.step1.reminders.label = A mulher quer receber lembretes ao longo da gestação +anc_register.step1.dob_entered.v_required.err = Digite a data de nascimento +anc_register.step1.home_address.hint = Endereço residencial +anc_register.step1.alt_name.v_regex.err = Favor, digite um nome válido +anc_register.step1.anc_id.hint = N° Registro PN +anc_register.step1.alt_phone_number.v_numeric.err = Número de telefone deve ser numérico +anc_register.step1.age_entered.v_numeric.err = Idade deve ser numérica +anc_register.step1.phone_number.hint = Celular deve ser numérico +anc_register.step1.last_name.v_required.err = Favor, digite o sobrenome +anc_register.step1.last_name.v_regex.err = Favor, digite um nome válido +anc_register.step1.first_name.v_required.err = Favor, digite o primeiro nome +anc_register.step1.dob_entered.hint = Data de nascimento (DN) +anc_register.step1.age_entered.hint = Idade +anc_register.step1.reminders.label_info_text = A mulher quer receber lembretes sobre seus cuidados e saúde ao longo da gestação? +anc_register.step1.title = Registro Pré-Natal +anc_register.step1.anc_id.v_numeric.err = Digite um Nº Registro Pré-Natal válido +anc_register.step1.alt_name.hint = Nome de um contato alternativo +anc_register.step1.home_address.v_required.err = Digite o endereço residencial da mulher +anc_register.step1.first_name.hint = Primeiro nome +anc_register.step1.alt_phone_number.hint = Número de celular de um contato alternativo +anc_register.step1.reminders.v_required.err = Selecione se a mulher concordou em receber lembretes e notificações +anc_register.step1.first_name.v_regex.err = Digite um nome válido +anc_register.step1.reminders.options.yes.text = Sim +anc_register.step1.phone_number.v_numeric.err = Número de telefone deve ser numérico +anc_register.step1.anc_id.v_required.err = Digite o Nº Registro Pré-Natal da mulher +anc_register.step1.last_name.hint = Sobrenome +anc_register.step1.age_entered.v_required.err = Digite a idade da mulher +anc_register.step1.phone_number.v_required.err = Especifique o número de telefone da mulher +anc_register.step1.dob_entered.duration.label = Idade diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties b/opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties new file mode 100644 index 000000000..ee75b86ee --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties @@ -0,0 +1,19 @@ +anc_site_characteristics.step1.title = Características da unidade +anc_site_characteristics.step1.site_ultrasound.options.0.text = Não +anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Todas as seguintes estão disponíveis na sua unidade de saúde: +anc_site_characteristics.step1.site_ultrasound.label = 3. Há um aparelho de ultrasom disponível e funcionando na sua unidade e um profissional treinado para usá-lo? +anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Selecione onde o estoque foi armazenado +anc_site_characteristics.step1.site_bp_tool.options.0.text = Não +anc_site_characteristics.step1.site_ultrasound.options.1.text = Sim +anc_site_characteristics.step1.site_bp_tool.v_required.err = Selecione onde o estoque foi armazenado +anc_site_characteristics.step1.site_anc_hiv.options.1.text = Sim +anc_site_characteristics.step1.site_bp_tool.options.1.text = Sim +anc_site_characteristics.step1.site_ipv_assess.v_required.err = Selecione onde o estoque foi armazenado +anc_site_characteristics.step1.site_ipv_assess.label = a. Um protocolo ou procedimento operacional padrão para Violência Intra Parceiros (VIP)

b. Um profissional de saúde treinado sobre como perguntar sobre VIP e como fornecer uma resposta mínima ou maior

c. Um local privado

d. Uma forma de garantir confidencialidade

e. Tempo que permita uma revelação apropriada

f. Um sistema para referência no local. +anc_site_characteristics.step1.site_anc_hiv.options.0.text = Não +anc_site_characteristics.step1.site_anc_hiv.label = 2. A prevalência de HIV é consistentemente maior que 1% nas gestantes que frequentam o pré-natal na sua unidade? +anc_site_characteristics.step1.site_ipv_assess.options.0.text = Não +anc_site_characteristics.step1.site_ipv_assess.options.1.text = Sim +anc_site_characteristics.step1.site_anc_hiv.v_required.err = Selecione onde o estoque foi armazenado +anc_site_characteristics.step1.site_ultrasound.v_required.err = Selecione onde o estoque foi armazenado +anc_site_characteristics.step1.site_bp_tool.label = Sua unidade de saúde usa um aparelho automático para medida da pressão arterial (PA)? diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties new file mode 100644 index 000000000..02b7c2cb6 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties @@ -0,0 +1,188 @@ +anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contrações +anc_symptoms_follow_up.step4.other_symptoms_other.hint = Especifique +anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Edema +anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Especificar quaisquer outros sintomas relacionados a edema de varizes venosas ou selecione nenhum +anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. +anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. +anc_symptoms_follow_up.step2.toaster0.text = Aconselhar sobre redução do consumo de cafeína +anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Especificar quaisquer outros sintomas relacionados a edema de varizes venosas ou selecione nenhum +anc_symptoms_follow_up.step2.title = Comportamento prévio +anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Dor lombar +anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anticonvulsivante +anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = Nenhum +anc_symptoms_follow_up.step4.toaster18.text = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica +anc_symptoms_follow_up.step3.other_sym_vvo.label = Quaisquer outros sintomas relacionados a varizes venosas ou edema? +anc_symptoms_follow_up.step3.toaster5.text = Aconselhamento sobre tratamentos não farmacológicos para náusea e vômito +anc_symptoms_follow_up.step3.toaster11.toaster_info_text = A mulher tem disúria. Investigar infecção do trato urinário e trate se positivo. +anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussígeno +anc_symptoms_follow_up.step1.medications.options.dont_know.text = Não sabe +anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Podem ser usados farelo de trigo ou outros suplementos com fibras para aliviar a constipação, se as modificações dietéticas não forem suficientes, e se estiverem disponíveis e forem apropriados. +anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. +anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = Nenhum +anc_symptoms_follow_up.step1.calcium_effects.options.no.text = Não +anc_symptoms_follow_up.step3.toaster13.text = Investigar quaisquer possíveis complicações, incluindo trombose, relacionadas a veias varicosas e edema +anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Medicação antihemorroidal +anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Sim +anc_symptoms_follow_up.step2.toaster1.text = Aconselhamento sobre parar de fumar +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Cãimbras nas pernas +anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Cefaléia +anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. +anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = Nenhum +anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabéticos +anc_symptoms_follow_up.step4.toaster19.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica +anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Outros antibióticos +anc_symptoms_follow_up.step4.title = Sintomas fisiológicos +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Edema +anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Outro (especifique) +anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. +anc_symptoms_follow_up.step1.medications.options.calcium.text = Cálcio +anc_symptoms_follow_up.step1.medications_other.hint = Especifique +anc_symptoms_follow_up.step3.toaster7.toaster_info_text = Se as câimbras nas pernas não são aliviadas com medidas não farmacológicas, prescreva 300-360 mg de magnésio por dia dividido em duas ou três doses; e cálcio 1 g duas vezes por dia por duas semanas. +anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Febre +anc_symptoms_follow_up.step2.behaviour_persist.label = Quais dos seguintes comportamentos persistem? +anc_symptoms_follow_up.step4.toaster16.text = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas +anc_symptoms_follow_up.step4.toaster21.text = Aconselhamento sobre opções não farmacológicas para veias varicosas e edema +anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = Não +anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Uso de substâncias +anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Febre +anc_symptoms_follow_up.step4.phys_symptoms.label = Algum sintoma fisiológico? +anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Atualmente fumante ou recentemente deixou de fumar +anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Por favor, digite um valor válido +anc_symptoms_follow_up.step1.medications.options.iron.text = Ferro +anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamina A +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = Sem movimentação fetal +anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Sim +anc_symptoms_follow_up.step4.toaster15.text = Aconselhamento sobre mudanças de dieta e hábitos de vida para prevenção e controle de azia +anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazol +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Dor pélvica +anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamínico +anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = Alto consumo de cafeína +anc_symptoms_follow_up.step2.toaster3.text = Aconselhar uso de preservativo +anc_symptoms_follow_up.step3.toaster11.text = Exame de urina é obrigatório +anc_symptoms_follow_up.step1.vita_comply.label = Ela está tomando suplementos com Vitamina A? +anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Favor especificar quaisquer outros sintomas relacionados a dor lombar e pélvica, ou selecione nenhum +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Dor nas pernas +anc_symptoms_follow_up.step1.medications.v_required.err = Especifique a medicação(ões) que a mulher ainda está tomando +anc_symptoms_follow_up.step1.medications.options.antacids.text = Antiácidos +anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnésio +anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Cãimbras nas pernas +anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Sim +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Sem movimentação fetal +anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirais +anc_symptoms_follow_up.step4.toaster22.text = Favor investigar quaisquer possíveis complicações, incluindo trombose, ou relacionadas a veias varicosas e edema +anc_symptoms_follow_up.step1.ifa_comply.label = Ela está tomando comprimidos de ferro e ácido fólico? +anc_symptoms_follow_up.step1.penicillin_comply.label = Ela está fazendo o tratamento com penicilina para sífilis? +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = Nenhum +anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Náusea e vômitos +anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Recomenda-se o uso de gengibre, camomila, vitamina B6 e/ou acupuntura para o alívio da náusea no início da gestação, com base na preferências da mulher e opções disponíveis. As mulheres devem ser informadas que os sintomas de náusea e vômitos normalmente melhoram na segunda metade da gestação. +anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Quais dos seguintes sintomas fisiológicos persistem? +anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = É necessário informar persistência do comportamento prévio +anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Azia +anc_symptoms_follow_up.step1.medications.label = Quais medicamentos (incluindo suplementos e vitaminas) ela está tomando ainda? +anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = Nenhum +anc_symptoms_follow_up.step3.toaster6.text = Aconselhar o uso de preparações antiácidas para aliviar a azia +anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Dor pélvica +anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = A mulher sente o bebê mexer? +anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = Não +anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito +anc_symptoms_follow_up.step4.other_sym_vvo.label = Quaisquer outros sintomas relacionados a varizes venosas ou edema? +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Azia +anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) +anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Se cansa facilmente +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Dificuldade para respirar +anc_symptoms_follow_up.step1.ifa_comply.options.no.text = Não +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Corrimento vaginal +anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Favor especificar quaisquer outros sintomas relacionados a dor lombar, ou selecione nenhum +anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hipertensivo +anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirina +anc_symptoms_follow_up.step1.calcium_comply.label = Ela está tomando suplementos de cálcio? +anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Pode-se usar terapias não farmacológicas, incluindo alongamento muscular, relaxamento, calor local, dorsoflexão do pé e massagem para o alívio de câimbras nas pernas durante a gestação. +anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Antimaláricos +anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Dor à micção (disúria) +anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramida +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Náusea e vômitos +anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Tosse há mais de 3 semanas +anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Cefaléia +anc_symptoms_follow_up.step3.title = Sintomas prévios +anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Recomenda-se aconselhar sobre dieta e hábitos de vida para prevenir e aliviar a azia durante a gestação. Pode-se oferecer preparações antiácidas às mulheres com sintomas mais importantes que não melhoram com a modificação dos hábitos. +anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Ãcido fólico +anc_symptoms_follow_up.step3.toaster9.text = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica +anc_symptoms_follow_up.step3.toaster10.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica +anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Alteração visual +anc_symptoms_follow_up.step4.other_symptoms.options.none.text = Nenhum +anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Falta de ar durante atividades rotineiras +anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Os tratamentos farmacológicos para náusea e vômitos como a doxilamina e metoclopramida deveriam ficar reservadas para as gestantes com sintomas intensos que não são aliviados por opções não-farmacológicas, sob supervisão médica. +anc_symptoms_follow_up.step3.other_symptoms_persist.label = Quais dos seguintes sintomas persistem? +anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Favor especificar quaisquer outros sintomas ou selecione nenhum +anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipação +anc_symptoms_follow_up.step1.ifa_effects.options.no.text = Não +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Dor lombar +anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Modificações dietéticas para aliviar a constipação incluem a promoção de consumo adequado de água e fibras (encontradas em vegetais, frutas secas, frutas e grãos integrais). +anc_symptoms_follow_up.step1.medications.options.none.text = Nenhum +anc_symptoms_follow_up.step2.toaster4.text = Aconselhamento sobre o uso de álcool/substâncias +anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposição ao fumo passivo na casa +anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Dor à micção (disúria) +anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Tosse há mais de 3 semanas +anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirais (ARV) +anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hemático +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Dor nas pernas +anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Pode-se oferecer preparações antiácidas para as mulheres com sintomas importantes que não são aliviadas pela modificação de hábitos. Preparações com carbonato de magnésio e hidróxido de alumínio provavelmente não causam prejuízos nas doses recomendadas. +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Movimento fetal reduzido ou pobre +anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgésico +anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = Sexo sem uso de preservativo +anc_symptoms_follow_up.step1.title = Seguimento da medicação +anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = É necessário preencher o campo sobre se a mulher sente o bebê se mexer. +anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = Nenhum +anc_symptoms_follow_up.step1.medications.options.other.text = Outro (especifique) +anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Sim +anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxilamina +anc_symptoms_follow_up.step3.toaster7.text = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas +anc_symptoms_follow_up.step1.calcium_effects.label = Algum efeito colateral do suplemento de cálcio? +anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Alteração visual +anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = Nenhum +anc_symptoms_follow_up.step4.toaster20.toaster_info_text = A mulher tem disuria. Favor investigar infecção do trato urinário e trate se positivo. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipação +anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Antihelmíntico +anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Tratamento de sífilis adequado +anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Uso de álcool +anc_symptoms_follow_up.step4.other_sym_lbpp.label = Algum outro sintoma relacionado a dor lombar e pélvica? +anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. +anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Dificuldade para respirar +anc_symptoms_follow_up.step4.other_symptoms.label = Algum outro sintoma? +anc_symptoms_follow_up.step1.medications.options.asthma.text = Asma +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Sangramento vaginal +anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Favor especificar quaisquer outros sintomas fisiológicos ou selecione nenhum +anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contrações +anc_symptoms_follow_up.step1.vita_comply.options.no.text = Não +anc_symptoms_follow_up.step1.calcium_comply.options.no.text = Não +anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varizes +anc_symptoms_follow_up.step4.toaster14.text = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito +anc_symptoms_follow_up.step1.ifa_effects.label = Algum efeito colateral do ferro e ácido fólico? +anc_symptoms_follow_up.step4.toaster17.text = Aconselhamento sobre modificações da dieta para aliviar a constipação +anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Folder sobre consumo de cafeína +anc_symptoms_follow_up.step1.medications_other.v_regex.err = Por favor, digite um valor válido +anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes tipo-cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. +anc_symptoms_follow_up.step3.toaster8.text = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Falta de ar durante atividades rotineiras +anc_symptoms_follow_up.step4.toaster20.text = Exame de urina é obrigatório +anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = Nenhum +anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Sim +anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Sim +anc_symptoms_follow_up.step3.other_sym_lbpp.label = Algum outro sintoma relacionado a dor lombar e pélvica? +anc_symptoms_follow_up.step1.aspirin_comply.label = Ela está tomando comprimidos de aspirina? +anc_symptoms_follow_up.step1.medications.options.thyroid.text = Medicação tireoidiana +anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = É necessário informar sintomas fisiológicos prévios persistentes. +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Vermelhidão nas pernas +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Sangramento vaginal +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Corrimento vaginal +anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Sim +anc_symptoms_follow_up.step2.toaster2.text = Aconselhamento sobre fumo passivo +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Vermelhidão nas pernas +anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varizes +anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) +anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = Um máximo de até 3 doses semanais pode ser necessário. +anc_symptoms_follow_up.step3.toaster12.text = Aconselhamento sobre opções não farmacológicas para varizes e edema +anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Se cansa facilmente diff --git a/opensrp-anc/src/main/resources/anc_test_pt_BR.properties b/opensrp-anc/src/main/resources/anc_test_pt_BR.properties new file mode 100644 index 000000000..f1ff039b1 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_test_pt_BR.properties @@ -0,0 +1,57 @@ +anc_test.step1.accordion_hepatitis_b.accordion_info_title = Exame de Hepatite B +anc_test.step1.accordion_urine.accordion_info_title = Exame de urina +anc_test.step1.accordion_hiv.accordion_info_title = Exame de HIV +anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Teste de hemoglobina sanguínea +anc_test.step2.accordion_hepatitis_c.accordion_info_title = Exame de Hepatite C +anc_test.step1.accordion_ultrasound.accordion_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) +anc_test.step2.accordion_hepatitis_b.accordion_info_title = Exame de Hepatite B +anc_test.step2.accordion_blood_glucose.text = Exame de glicemia +anc_test.step1.accordion_blood_type.text = Tipagem sanguínea +anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Teste de hemoglobina sanguínea +anc_test.step1.accordion_tb_screening.accordion_info_text = Em locais onde a prevalência de tuberculose (TB) na população geral é de 100/100.000 pessoas ou maior ou em locais com sub-populações que tem um acesso muito pobre aos cuidados em saúde, ou se a mulher é HIV positiva, recomenda-se o rastreamento da TB. +anc_test.step2.accordion_urine.accordion_info_text = É necessário um exame de urina no primeiro contato, no último contato no 2o. trimestre, e no 2o. contato do 3o. trimestre OU a qualquer momento em que a mulher refira dor à micção (disúria). É necessário um teste de fita urinária se a mulher tem uma leitura repetida de pressão arterial elevada (140/90 ou maior). Caso contrário, o exame de urina é opcional. O exame de urina controla bactérias ou outras infecções que podem levar a efeitos adversos no recém-nascido. O teste da fita urinária pode avaliar a presença de proteínas na urina, o que pode ser um sinal de pré-eclâmpsia. +anc_test.step2.accordion_tb_screening.accordion_info_text = Em locais onde a prevalência de tuberculose (TB) na população geral é de 100/100.000 pessoas ou maior ou em locais com sub-populações que tem um acesso muito pobre aos cuidados em saúde, ou se a mulher é HIV positiva, recomenda-se o rastreamento da TB. +anc_test.step2.title = Outro +anc_test.step2.accordion_hiv.accordion_info_title = Exame de HIV +anc_test.step2.accordion_blood_type.text = Tipagem sanguínea +anc_test.step1.accordion_hepatitis_b.accordion_info_text = Em locais onde a proporção de soroprevalência de HBsAg na população geral é 2% ou maior ou em locais onde existe um programa nacional de rastreamento antenatal de rotina para Hep B, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então recomenda-se o o exame da Hep B se a mulher não for completametne vacinada contra a Hep B. +anc_test.step2.accordion_hepatitis_b.accordion_info_text = Em locais onde a proporção de soroprevalência de HBsAg na população geral é 2% ou maior ou em locais onde existe um programa nacional de rastreamento antenatal de rotina para Hep B, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então recomenda-se o o exame da Hep B se a mulher não for completametne vacinada contra a Hep B. +anc_test.step2.accordion_tb_screening.text = Rastreamento de TB +anc_test.step1.accordion_hepatitis_c.accordion_info_title = Exame de Hepatite C +anc_test.step2.accordion_other_tests.accordion_info_text = Se houver qualquer outro exame realizado que não esteja incluído aqui, digite aqui. +anc_test.step2.accordion_partner_hiv.text = Exame de HIV do parceiro +anc_test.step1.accordion_syphilis.text = Exame de Sífilis +anc_test.step1.accordion_blood_haemoglobin.text = Teste de hemoglobina sanguínea +anc_test.step2.accordion_hepatitis_c.accordion_info_text = Em locais onde a proporção de soroprevalência para o anticorpo HCV na população geral é 2% ou maior, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então é necessário um exame de Hep C. +anc_test.step1.accordion_ultrasound.text = Exame de Ultrassom +anc_test.step1.accordion_hepatitis_c.accordion_info_text = Em locais onde a proporção de soroprevalência para o anticorpo HCV na população geral é 2% ou maior, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então é necessário um exame de Hep C. +anc_test.step1.title = Expirado +anc_test.step2.accordion_hepatitis_c.text = Exame de Hepatite C +anc_test.step2.accordion_urine.text = Exame de urina +anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = É necessário um exame de hemoglobina para o diagnóstico de anemia na gestação. +anc_test.step2.accordion_ultrasound.accordion_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) +anc_test.step2.accordion_other_tests.accordion_info_title = Outro exame +anc_test.step2.accordion_ultrasound.text = Exame de Ultrassom +anc_test.step2.accordion_tb_screening.accordion_info_title = Rastreamento de TB +anc_test.step2.accordion_urine.accordion_info_title = Exame de urina +anc_test.step1.accordion_tb_screening.text = Rastreamento de TB +anc_test.step1.accordion_hepatitis_c.text = Exame de Hepatite C +anc_test.step1.accordion_hepatitis_b.text = Exame de Hepatite B +anc_test.step2.accordion_hiv.accordion_info_text = É necessário um exame de HIV para toda gestante no primeiro contato na gestação e ainda no primeiro contato do 3o. trimestre (28 semanas), se a prevalência de HIV na população de gestantes for 5% ou mais alta. Não é necessário um exame se a mulher for já confirmada como HIV+. +anc_test.step2.accordion_syphilis.accordion_info_title = Exame de Sífilis +anc_test.step1.accordion_urine.text = Exame de urina +anc_test.step1.accordion_hiv.accordion_info_text = É necessário um exame de HIV para toda gestante no primeiro contato na gestação e ainda no primeiro contato do 3o. trimestre (28 semanas), se a prevalência de HIV na população de gestantes for 5% ou mais alta. Não é necessário um exame se a mulher for já confirmada como HIV+. +anc_test.step1.accordion_syphilis.accordion_info_text = É necessário um exame de sífilis para toda gestante no primeiro contato na gestação e de novo no primeiro contato do 3o. trimestre (28 semanas). Mulheres que já foram confirmadas como positivas para sífilis não precisam ser testadas. +anc_test.step2.accordion_syphilis.accordion_info_text = É necessário um exame de sífilis para toda gestante no primeiro contato na gestação e de novo no primeiro contato do 3o. trimestre (28 semanas). Mulheres que já foram confirmadas como positivas para sífilis não precisam ser testadas. +anc_test.step1.accordion_hiv.text = Exame de HIV +anc_test.step1.accordion_tb_screening.accordion_info_title = Rastreamento de TB +anc_test.step2.accordion_hiv.text = Exame de HIV +anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = É necessário um exame de hemoglobina para o diagnóstico de anemia na gestação. +anc_test.step2.accordion_other_tests.text = Outros exames +anc_test.step2.accordion_ultrasound.accordion_info_title = Exame de Ultrassom +anc_test.step1.accordion_ultrasound.accordion_info_title = Exame de Ultrassom +anc_test.step2.accordion_hepatitis_b.text = Exame de Hepatite B +anc_test.step1.accordion_syphilis.accordion_info_title = Exame de Sífilis +anc_test.step2.accordion_blood_haemoglobin.text = Teste de hemoglobina sanguínea +anc_test.step1.accordion_urine.accordion_info_text = É necessário um exame de urina no primeiro contato, no último contato no 2o. trimestre, e no 2o. contato do 3o. trimestre OU a qualquer momento em que a mulher refira dor à micção (disúria). É necessário um teste de fita urinária se a mulher tem uma leitura repetida de pressão arterial elevada (140/90 ou maior). Caso contrário, o exame de urina é opcional. O exame de urina controla infecções bacterianas ou outras que podem levar a efeitos adversos no recém-nascido. O teste da fita urinária pode avaliar a presença de proteínas na urina, o que pode ser um sinal de pré-eclâmpsia. +anc_test.step2.accordion_syphilis.text = Exame de Sífilis diff --git a/opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..179a2f225 --- /dev/null +++ b/opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties @@ -0,0 +1,10 @@ +breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text = Temperatura aumentada +breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err = Digite um conteúdo válido +breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text = Sangramento +breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text = Outro (Especifique) +breast_exam_sub_form.step1.breast_exam_abnormal.label = Exame das mamas: anormal +breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text = Descarga papilar +breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text = Dor local +breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text = Rubor +breast_exam_sub_form.step1.breast_exam_abnormal_other.hint = Especifique +breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text = Nódulo diff --git a/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..0b6b544d8 --- /dev/null +++ b/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties @@ -0,0 +1,11 @@ +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text = Cianose +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label = Exame cardíaco: anormal +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text = Outro (Especifique) +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text = Suor frio +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err = Digite um conteúdo válido +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text = Sopro cardíaco +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text = Taquicardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text = Pulso fino +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text = Bradicardia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text = Arritmia +cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint = Especifique diff --git a/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..7c6024386 --- /dev/null +++ b/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties @@ -0,0 +1,2 @@ +cervical_exam_sub_form.step1.dilation_cm.v_required.err = Campo de dilatação cervical é obrigatório +cervical_exam_sub_form.step1.dilation_cm_label.text = Quantos centímetros (cm) de dilatação? diff --git a/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties new file mode 100644 index 000000000..bbf16dac0 --- /dev/null +++ b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties @@ -0,0 +1,2 @@ +fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err = Registre os batimentos cardíacos fetais +fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text = Batimento cardíaco fetal (BCF) diff --git a/opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties new file mode 100644 index 000000000..7c48f9027 --- /dev/null +++ b/opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties @@ -0,0 +1,5 @@ +oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text = Inchaço nas pernas +oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text = Edema de mãos e pés +oedema_present_sub_form.step1.oedema_type.label = Tipo do edema +oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text = Edema de tornozelo +oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text = Edema de dorso inferior diff --git a/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..35e51af4c --- /dev/null +++ b/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties @@ -0,0 +1,17 @@ +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text = Cervicite mucopurulenta +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text = Pápulas eritematosas agrupadas +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text = Úlcera genital +pelvic_exam_sub_form.step1.evaluate_labour_toaster.text = Avaliar se trabalho de parto. Encaminhar urgente se IG for menor que 37 semanas +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label = Exame pélvico: anormal +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text = Outro (Especifique) +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text = Conteúdo vaginal grumoso (coalhado) +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesículas +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Conteúdo vaginal com odor fétido +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Especifique +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Linfadenopatia inguinal e femoral bilateral dolorosa +pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Digite um conteúdo válido +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidência de líquido amniótico +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Dor genital +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Colo do útero friável +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Linfadenopatia unilateral dolorosa diff --git a/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties new file mode 100644 index 000000000..39f83d11a --- /dev/null +++ b/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties @@ -0,0 +1,10 @@ +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text = Dispnéia +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label = Exame respiratório: anormal +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err = Digite um conteúdo válido +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text = Estertores +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text = Tosse +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text = Respiração acelerada +respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint = Especifique +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text = Chiado +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text = Respiração lenta +respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text = Outro (Especifique) diff --git a/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties new file mode 100644 index 000000000..75590cb50 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties @@ -0,0 +1,30 @@ +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err = Digite um valor numérico +tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err = Digite um valor numérico +tests_blood_glucose_sub_form.step1.random_plasma.v_required.err = Digite o resultado do exame de glicemia aleatória. +tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text = TOTG 75g +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text = Uma mulher tem Diabetes Mellitus (DM) na gestação se sua glicemia de jejum for igual ou maior a 126 mg/dL.\n\nOU\n\n- TOTG 75g - igual ou maior que 126 mg/dL na glicemia de jejum\n- TOTG 75g - igual ou maior que 200mg/dL na primeira hora\n- TOTG 75g - igual ou maior que 200mg/dL na segunda hora\n- Glicemia plasmática aleatória igual ou maior que 200 mg/dL +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title = Diagnóstico de Diabetes Mellitus (DM) na gestação! +tests_blood_glucose_sub_form.step1.glucose_test_date.hint = Data do exame de glicemia +tests_blood_glucose_sub_form.step1.ogtt_1.hint = Resultado do TOTG 75g - 1h (mg/dL) +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text = Recomenda-se intervenção dietética e encaminhamento para serviço de referência. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text = Diagnóstico de Diabetes Mellitus Gestacional (DMG)! +tests_blood_glucose_sub_form.step1.glucose_test_type.label = Tipo de exame de glicemia +tests_blood_glucose_sub_form.step1.ogtt_2.hint = Resultado do TOTG 75g - 2hrs (mg/dL) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err = Digite o resultado para a glicemia em jejum +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err = Digite um valor numérico +tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err = Selecione a data do exame de glicemia. +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text = Uma mulher tem Diabetes Mellitus Gestacional (DMG) se sua glicemia de jejum for entre 92 e 125 mg/dL.\n\nOU\n\n- TOTG 75g - entre 92 e 125 mg/dL a glicemia de jejum\n- TOTG 75g - entre 180 e 199 mg/dL na primeira hora\n- TOTG 75g - entre 153 e 199 mg/dL na segunda hora +tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err = Digite o resultado da 2h do TOTG 75g. +tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err = Digite um valor numérico +tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err = Digite o resultado da glicemia de jejum do TOTG 75g. +tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text = Diagnóstico de Diabetes Mellitus (DM) na gestação! +tests_blood_glucose_sub_form.step1.glucose_test_status.label = Exame de glicemia +tests_blood_glucose_sub_form.step1.random_plasma.hint = Resultado da glicemia aleatória (mg/dL) +tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint = Resultado da glicemia de jejum (mg/dL) +tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err = Digite o valor numérico +tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err = Digite o resultado da 1h do TOTG 75g. +tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text = Glicemia plasmática em jejum +tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title = Diagnóstico de Diabetes Mellitus Gestacional (DMG)! +tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text = Mulher com hiperglicemia - Intervenção dietética é recomendada, assim como encaminhamento ao serviço de referência. +tests_blood_glucose_sub_form.step1.ogtt_fasting.hint = Resultado da glicemia de jejum do TOTG 75g (mg/dL) +tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text = Resultado da glicemia aleatória diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties new file mode 100644 index 000000000..9a6a782ff --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties @@ -0,0 +1,47 @@ +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text = Hemograma completo (recomendado) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text = Anemia - nível de Hb < 11 no primeiro ou terceiro trimestre ou < 10,5 no segundo trimestre.\n\nOU\n\nSem registro de resultado de teste de Hb, mas a mulher tem palidez. +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text = Diagnóstico de anemia! +tests_blood_haemoglobin_sub_form.step1.ht.hint = Hematócrito (Ht) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Especifique qualquer outro motivo para o teste de hemoglobina +tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Resultado do hemograma completo (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Teste de hemoglobina (escala de cor de hemoglobina) +tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Diagnóstico de anemia! +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Contagem de plaquetas abaixo de 100.000. +tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Resultado do teste de Hb - escala de cor de hemoglobina (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Outro (especifique) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = Número de leucócitos muito alto +tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title = Tipo de teste de hemoglobina sanguínea +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Fora da validade +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Valor do hematócrito muito baixo +tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Digite o número de leucócitos +tests_blood_haemoglobin_sub_form.step1.platelets.hint = Contagem de plaquetas +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = Número de leucócitos acima de 16.000. +tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = É necessário o tipo de teste de Hb +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Valor do hematócrito abaixo de 10,5. +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = Motivo para não ter realizado o teste de Hb é obrigatório +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Motivo +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Hemograma completo é o método preferido para pesquisar anemia na gestação. Se o hemograma completo não estiver disponível, recomenda-se o hemoglobinômetro antes da escala de cor de hemoglobina. +tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint = Resultado do teste de Hb - hemoglobinômetro (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint = Data do teste de hemoglobina sanguínea +tests_blood_haemoglobin_sub_form.step1.hb_test_status.label = Teste de hemoglobina sanguínea +tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err = Digite o valor da contagem de plaquetas +tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.hb_test_type.label = Tipo de teste de hemoglobina sanguínea +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title = Contagem de plaquetas muito baixa! +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text = Sem suprimentos +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.ht.v_required.err = Digite o valor do hematócrito +tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint = Especifique +tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err = É necessária a data do teste de hemoglobina sanguínea +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text = Contagem de plaquetas muito baixa! +tests_blood_haemoglobin_sub_form.step1.wbc.hint = Número de leucócitos +tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err = Digite um valor numérico +tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err = Digite o resultado do teste de Hb - hemoglobinômetro (g/dl) +tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err = Digite o resultado do teste de Hb - escala de cor de hemoglobina (g/dl) +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Valor do hematócrito muito baixo! +tests_blood_haemoglobin_sub_form.step1.cbc.hint = Resultado do hemograma completo (g/dl) (recomendado) +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = Número de leucócitos muito alto! +tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Teste de Hb (hemoglobinômetro) diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties new file mode 100644 index 000000000..f1b615a1d --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties @@ -0,0 +1,17 @@ +tests_blood_type_sub_form.step1.blood_type.options.b.text = B +tests_blood_type_sub_form.step1.blood_type_test_date.hint = Data do exame de tipagem sanguínea +tests_blood_type_sub_form.step1.blood_type.options.o.text = O +tests_blood_type_sub_form.step1.blood_type.v_required.err = Favor, especifique o tipo de sangue +tests_blood_type_sub_form.step1.blood_type.label = Tipagem sanguínea +tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - Mulher está sob risco de aloimunização Rh se pai do bebê for Rh positivo ou Rh desconhecido.\n\n- Realizar investigação sobre aloimunização e necessidade de encaminhamento.\n\n- Se Rh negativo e não sensibilizada, a mulher deve receber imunoglobulina Anti-D no pós-parto imediato se o bebê for Rh positivo. +tests_blood_type_sub_form.step1.rh_factor.label = Fator Rh +tests_blood_type_sub_form.step1.blood_type.options.a.text = A +tests_blood_type_sub_form.step1.rh_factor_toaster.text = Aconselhamento sobre Fator Rh negativo +tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Negativo +tests_blood_type_sub_form.step1.rh_factor.v_required.err = Fator Rh é obrigatório +tests_blood_type_sub_form.step1.blood_type_test_status.label = Tipagem sanguínea +tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Data quando exame de sangue foi realizado. +tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positivo +tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Status da tipagem sanguínea é obrigatório +tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Aconselhamento sobre Fator Rh negativo diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties new file mode 100644 index 000000000..2a0be344b --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties @@ -0,0 +1,33 @@ +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Sem estoque +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Disgnóstico positivo para Hep B! +tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Exame de Hepatite B é obrigatório +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Vacinação para Hep B é recomendada em qualquer momento após 12 semanas de gestação. +tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Tipo de exame de Hep B é obrigatório +tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = Teste rápido de HBsAg é obrigatório +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = Exame de imunoensaio de HBsAg (recomendado) +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positivo +tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = Teste rápido de HBsAg +tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negativo +tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Teste de HBsAg é obrigatório +tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Data do exame de Hep B +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Exame de Hep B em amostra de sangue seco +tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Tipo de exame de Hep B +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Diagnóstico positivo para Hep B! +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Sem estoque +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Vacinação para Hep B é obrigatório. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Outro (Especifique) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Exame de Hep B em amostra de sangue seco +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Motivo para não ter realizado exame de Hep B é obrigatório +tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = Data do exame de Hep B é obrigatória +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = Exame de imunoensaio para HBsAg é obrigatório +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = Exame de imunoensaio de HBsAg (recomendado) +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positivo +tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Exame de Hepatite B +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negativo +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Vacinação de Hep B é obrigatória. +tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Motivo +tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positivo +tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Especifique +tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = Teste rápido de HBsAg +tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negativo +tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = É necessário aconselhamento e encaminhamento. diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties new file mode 100644 index 000000000..706bf0930 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties @@ -0,0 +1,26 @@ +tests_hepatitis_c_sub_form.step1.hcv_dbs.label = Teste de HCV em amostra de sangue seco +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text = Diagnóstico positivo para Hep C! +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text = Sem estoque +tests_hepatitis_c_sub_form.step1.hepc_test_date.hint = Data do exame de Hep C +tests_hepatitis_c_sub_form.step1.hepc_test_type.label = Tipo de exame de Hep C +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text = Positivo +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text = O exame Anti-HCV por teste de imunoensaio é o método de preferência para testagem durante a gestação. Se o imunoensaio não estiver disponível, o teste preferível para Anti-HCV será o teste rápido em amostra de sangue seco em papel filtro. +tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint = Especifique +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label = Teste de imunoensaio Anti-HCV (recomendado) +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title = Disnóstico positivo para Hep C! +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text = Teste de imunoensaio Anti-HCV (recomendado) +tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title = Tipo de exame de Hep C +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text = Negativo +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text = Sem estoque +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text = Positivo +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text = Teste Anti-HCV em amostra de sangue seco +tests_hepatitis_c_sub_form.step1.hcv_rdt.label = Teste rápido de Anti-HCV +tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text = Teste rápido de Anti-HCV +tests_hepatitis_c_sub_form.step1.hepc_test_status.label = Exame de Hepatite C +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text = Outro (Especifique) +tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text = Positivo +tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label = Motivo +tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text = É necessário aconselhamento e encaminhamento. +tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text = Negativo +tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text = Negativo +tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err = Selecione a data do exame de Hepatite C. diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties new file mode 100644 index 000000000..e1ac9c3a4 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties @@ -0,0 +1,19 @@ +tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Registre resultado do exame de HIV +tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positivo +tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Negativo +tests_hiv_sub_form.step1.hiv_positive_toaster.text = Aconselhamento para HIV positivo +tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Outro (Especifique) +tests_hiv_sub_form.step1.hiv_test_status.v_required.err = Status do exame de HIV é obrigatório +tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = Teste para HIV inconclusivo, encaminhar para testagem adicional +tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = Motivo para não realização do exame de HIV é obrigatório +tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Sem estoque +tests_hiv_sub_form.step1.hiv_test_result.label = Registrar resultado +tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Especifique +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Encaminhar para testagem adicional e confirmação\n- Encaminhar para serviço especializado para HIV\n- Orientações sobre infecções oportunistas e sobre necessidade de procurar cuidados em saúde\n- Realize rastreamento para TB ativa +tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Inconclusivo +tests_hiv_sub_form.step1.hiv_test_status.label = Exame de HIV +tests_hiv_sub_form.step1.hiv_test_date.hint = Data do exame de HIV +tests_hiv_sub_form.step1.hiv_test_date.v_required.err = Data do exame de HIV é obrigatório +tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Sem estoque +tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = Aconselhamento de teste positivo para HIV +tests_hiv_sub_form.step1.hiv_test_notdone.label = Motivo diff --git a/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties new file mode 100644 index 000000000..7505d9979 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties @@ -0,0 +1,4 @@ +tests_other_tests_sub_form.step1.other_test.label = Outro exame +tests_other_tests_sub_form.step1.other_test_date.hint = Data do exame +tests_other_tests_sub_form.step1.other_test_result.hint = Resultado do exame? +tests_other_tests_sub_form.step1.other_test_name.hint = Qual exame? diff --git a/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties new file mode 100644 index 000000000..568f7c06d --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties @@ -0,0 +1,12 @@ +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text = Inconclusivo +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err = Resultado do exame é obrigatório +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint = Data do exame de HIV do parceiro +tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err = Data do exame de HIV do parceiro é obrigatório +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title = Aconselhamento sobre risco do HIV +tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label = Exame de HIV do parceiro +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text = Positivo +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PrEP com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal +tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text = Aconselhamento sobre risco do HIV +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text = Negativo +tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text = Exame de HIV do parceiro inconclusivo, encaminhar parceiro para investigação adicional +tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label = Registrar resultado diff --git a/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties new file mode 100644 index 000000000..2823d3b49 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties @@ -0,0 +1,30 @@ +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text = Ãrea com alta prevalência de sífilis (5% ou mais) +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title = Exame de sífilis positivo +tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text = Sem estoque +tests_syphilis_sub_form.step1.syph_test_type.label = Tipo de exame de Sífilis +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text = Realize um teste rápido de sífilis (RST) e, se possível, administre a primeira dose do tratamento. Após, encaminhe a mulher para realizar teste não treponêmico (RPR). Se RPR positivo, administre o tratamento de acordo com o estágio clínico da doença. +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title = Ãrea com baixa prevalência de sífilis (abaixo de 5%) +tests_syphilis_sub_form.step1.lab_syphilis_test.label = Exame para sífilis em laboratório externo +tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text = Negativo +tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text = Outro (Especifique) +tests_syphilis_sub_form.step1.syph_test_notdone_other.hint = Especifique +tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title = Ãrea com alta prevalência de sífilis (5% ou mais) +tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text = Positivo +tests_syphilis_sub_form.step1.rpr_syphilis_test.label = Teste de reagina plasmática rápido (RPR) +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text = Positivo +tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text = Negativo +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text = Ãrea com baixa prevalência de sífilis (abaixo de 5%) +tests_syphilis_sub_form.step1.syphilis_test_date.hint = Data do exame de Sífilis +tests_syphilis_sub_form.step1.syph_test_notdone.label = Motivo +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text = Positivo +tests_syphilis_sub_form.step1.rapid_syphilis_test.label = Teste rápido de Sífilis (RTS) +tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text = Sem estoque +tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text = Negativo +tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text = Exame para sífilis em laboratório externo +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text = Teste de reagina plasmática rápido +tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text = Um teste rápido para Sífilis deve ser realizado no local +tests_syphilis_sub_form.step1.syphilis_danger_toaster.text = Teste para Sífilis positivo +tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err = Selecione a data do exame de Sífilis +tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text = Teste rápido de Sífilis +tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text = Ofereça aconselhamento e tratamento de acordo com o protocolo +tests_syphilis_sub_form.step1.syph_test_status.label = Exame de Sífilis diff --git a/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties new file mode 100644 index 000000000..3f5e2b912 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties @@ -0,0 +1,24 @@ +tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err = Rastreamento para TB é obrigatório +tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text = Negativo +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text = Material para exame de escarro indisponível +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text = Equipamento não está funcionando +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text = Profissionais indisponíveis +tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint = Especifique +tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err = Status do rastreamento de TB é obrigatório +tests_tb_screening_sub_form.step1.tb_screening_notdone.label = Motivo +tests_tb_screening_sub_form.step1.tb_screening_status.label = Rastreamento de TB +tests_tb_screening_sub_form.step1.tb_screening_result.label = Registrar resultado +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text = Rastreamento positivo para TB +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text = Cultura de escarro indisponível +tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err = Favor, registre a data de realização do rastreamento de TB +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text = Tratar de acordo com protocolo local e/ou encaminhar à referência +tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title = Rastreamento positivo para TB +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text = Método GeneXpert indisponível +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text = Outro (Especifique) +tests_tb_screening_sub_form.step1.tb_screening_date.hint = Data do rastreamento para TB +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text = Esfregaço de escarro indisponível +tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text = Inconclusivo +tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text = Incompleto (apenas sintomas) +tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text = Equipamento de Raio-X indisponível +tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err = Motivos pelo qual o rastreamento de TB não foi realizado é obrigatório +tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text = Positivo diff --git a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties new file mode 100644 index 000000000..1ae18c26a --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties @@ -0,0 +1,37 @@ +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Especifique +tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Data em que o Ultrassom foi realizado. +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Especifique se outro motivo. +tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fúndica +tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Lateral direita +tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Lateral Esquerda +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Indisponível +tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Baixa +tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pélvico +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Outro (Especifique) +tests_ultrasound_sub_form.step1.ultrasound_date.hint = Data do Ultrassom +tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverso +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia +tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = Se for necessário atualizar IG, favor retorne ao Perfil, na página de Gestação Atual +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Exame precoce de Ultrassom realizado! +tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduzido +tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior +tests_ultrasound_sub_form.step1.ultrasound.label = Exame de Ultrassom +tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cefálico +tests_ultrasound_sub_form.step1.placenta_location.label = Localização da placenta +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. +tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Outro +tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior +tests_ultrasound_sub_form.step1.no_of_fetuses.label = N° de fetos +tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = N° de fetos +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Postergado para próxima consulta +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia +tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Aumentado +tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal +tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Favor, especificar não realização do Ultrassom +tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Prévia +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = Um Ultrassom precoce é essencial para estimar a idade gestacional, melhorar a detecção de anomalias fetais e de gestação múltipla, reduzir indução de parto em gestações prolongadas e melhorar a experiência que a mulher tem com sua gestação. +tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Motivo +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Exame precoce de Ultrassom realizado! +tests_ultrasound_sub_form.step1.fetal_presentation.label = Apresentação fetal +tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. +tests_ultrasound_sub_form.step1.amniotic_fluid.label = Líquido Amniótico diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties new file mode 100644 index 000000000..376a55a31 --- /dev/null +++ b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties @@ -0,0 +1,61 @@ +tests_urine_sub_form.step1.urine_test_notdone_other.hint = Especifique +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Cultura de jato médio de urina (recomendado) +tests_urine_sub_form.step1.urine_test_type.label = Tipo de exame de urina +tests_urine_sub_form.step1.urine_glucose.v_required.err = Campo de glicose na urina é obrigatório +tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ +tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Registrar o resultado de fita urinária - leucócitos +tests_urine_sub_form.step1.urine_nitrites.options.+.text = + +tests_urine_sub_form.step1.urine_test_type.v_required.err = Tipo de exame urinário +tests_urine_sub_form.step1.urine_culture.label = Cultura de jato médio de urina (recomendado) +tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positivo +tests_urine_sub_form.step1.urine_glucose.label = Resultado de fita urinária - glicose +tests_urine_sub_form.step1.urine_protein.label = Resultado de fita urinária - proteína +tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Fita Urinária +tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ +tests_urine_sub_form.step1.urine_culture.options.negative.text = Negativo +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = Uma mulher é considerada com Bacteriúria Assintomática se tiver um dos seguintes resultados:\n\n- Urocultura positiva (> 100,000 bactérias/mL)\n- Coloração de Gram positiva\n- Fita urinária positiva (nitritos ou leucócitos)\n\nSetes dias de antibiótico é recomendado para todas mulheres com bacteriúria assintomática para prevenir bacteriúria persistente, parto prematuro ou baixo peso. +tests_urine_sub_form.step1.urine_gram_stain.label = Coloração de Gram de jato médio de urina positiva +tests_urine_sub_form.step1.urine_culture.v_required.err = Cultura de urina é obrigatório +tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text = Positivo - Estreptococo do Grupo B (GBS) +tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text = Sem estoque +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Aconselhamento sobre risco de Diabetes mellitus gestacional (DMG) +tests_urine_sub_form.step1.urine_test_date.v_required.err = Selecione a data do exame de urina. +tests_urine_sub_form.step1.urine_nitrites.label = Resultado de fita urinária - nitrito +tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Outro (Especifique) +tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.options.none.text = Nenhum +tests_urine_sub_form.step1.gbs_agent_note.text = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal por Estreptococo do Grupo B (GBS) +tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ +tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negativo +tests_urine_sub_form.step1.urine_protein.v_required.err = Campo de proteinúria é obrigatório +tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Coloração de Gram de jato médio de urina +tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + +tests_urine_sub_form.step1.urine_test_status.v_required.err = Status do exame de urina é obrigatório +tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Sem estoque +tests_urine_sub_form.step1.urine_test_status.label = Exame de urina +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal precoce por Estreptococo do Grupo B (GBS) +tests_urine_sub_form.step1.gdm_risk_toaster.text = Aconselhamento sobre risco de Diabetes mellitus gestacional (DMG) +tests_urine_sub_form.step1.urine_protein.options.+.text = + +tests_urine_sub_form.step1.urine_protein.options.none.text = Nenhum +tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) +tests_urine_sub_form.step1.urine_test_notdone.label = Motivo +tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ +tests_urine_sub_form.step1.urine_leukocytes.label = Resultado de fita urinária - leucócitos +tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez +tests_urine_sub_form.step1.urine_nitrites.options.none.text = Nenhum +tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ +tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Gestante com colonização por Estreptococo do Grupo B (GBS) deve receber antibiótico intraparto para prevenção de infecção neonatal precoce por GBS. +tests_urine_sub_form.step1.urine_glucose.options.none.text = Nenhum +tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_nitrites.v_required.err = Resultado de exame de fita urinária é obrigatório +tests_urine_sub_form.step1.urine_test_date.hint = Data do exame de urina +tests_urine_sub_form.step1.asb_positive_toaster.text = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) +tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positivo - qualquer agente +tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Coloração de Gram de urina é obrigatório +tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ +tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Informar razão por não ter realizado exame de urina +tests_urine_sub_form.step1.urine_glucose.options.+.text = + diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 2b600abe2..006b9a0c9 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -316,6 +316,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.4' testImplementation 'org.robolectric:shadows-multidex:4.4' + testImplementation 'com.ibm.fhir:fhir-model:4.2.3' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" diff --git a/sample/build.gradle b/sample/build.gradle index dfcd56958..2741242d5 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -66,6 +66,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' testImplementation 'junit:junit:4.13.1' + testImplementation 'com.ibm.fhir:fhir-model:4.2.3' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } From 6e41e104ced4bab57b24a1c26a987e07771da905 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 2 Dec 2020 16:10:53 +0300 Subject: [PATCH 069/302] :constrution: Adding the pt translation files --- dependancies.txt | 13302 ++++++++++++++++ opensrp-anc/build.gradle | 10 +- .../anc/library/fragment/MeFragment.java | 12 +- .../library/helper/AncRulesEngineHelper.java | 16 +- .../strings.xml | 2 +- opensrp-anc/src/main/res/values/strings.xml | 2 + ... => abdominal_exam_sub_form_pt.properties} | 0 ..._BR.properties => anc_close_pt.properties} | 0 ...> anc_counselling_treatment_pt.properties} | 0 ...erties => anc_physical_exam_pt.properties} | 0 ...R.properties => anc_profile_pt.properties} | 0 ...operties => anc_quick_check_pt.properties} | 0 ....properties => anc_register_pt.properties} | 0 ...=> anc_site_characteristics_pt.properties} | 0 ...s => anc_symptoms_follow_up_pt.properties} | 0 ...t_BR.properties => anc_test_pt.properties} | 0 ...ies => breast_exam_sub_form_pt.properties} | 0 ...es => cardiac_exam_sub_form_pt.properties} | 0 ...s => cervical_exam_sub_form_pt.properties} | 0 ...=> fetal_heartbeat_sub_form_pt.properties} | 0 ... => oedema_present_sub_form_pt.properties} | 0 ...ies => pelvic_exam_sub_form_pt.properties} | 0 ...> respiratory_exam_sub_form_pt.properties} | 0 ...ests_blood_glucose_sub_form_pt.properties} | 0 ..._blood_haemoglobin_sub_form_pt.properties} | 0 ...> tests_blood_type_sub_form_pt.properties} | 0 ... tests_hepatitis_b_sub_form_pt.properties} | 0 ... tests_hepatitis_c_sub_form_pt.properties} | 0 ...rties => tests_hiv_sub_form_pt.properties} | 0 ... tests_other_tests_sub_form_pt.properties} | 0 ... tests_partner_hiv_sub_form_pt.properties} | 0 ... => tests_syphilis_sub_form_pt.properties} | 0 ...tests_tb_screening_sub_form_pt.properties} | 0 ...> tests_ultrasound_sub_form_pt.properties} | 0 ...ies => tests_urine_sub_form_pt.properties} | 0 reference-app/build.gradle | 10 +- .../anc/application/AncApplication.java | 4 +- 37 files changed, 13334 insertions(+), 24 deletions(-) create mode 100644 dependancies.txt rename opensrp-anc/src/main/res/{values-pt_BR => values-pt-rBR}/strings.xml (99%) rename opensrp-anc/src/main/resources/{abdominal_exam_sub_form_pt_BR.properties => abdominal_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_close_pt_BR.properties => anc_close_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_counselling_treatment_pt_BR.properties => anc_counselling_treatment_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_physical_exam_pt_BR.properties => anc_physical_exam_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_profile_pt_BR.properties => anc_profile_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_quick_check_pt_BR.properties => anc_quick_check_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_register_pt_BR.properties => anc_register_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_site_characteristics_pt_BR.properties => anc_site_characteristics_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_symptoms_follow_up_pt_BR.properties => anc_symptoms_follow_up_pt.properties} (100%) rename opensrp-anc/src/main/resources/{anc_test_pt_BR.properties => anc_test_pt.properties} (100%) rename opensrp-anc/src/main/resources/{breast_exam_sub_form_pt_BR.properties => breast_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{cardiac_exam_sub_form_pt_BR.properties => cardiac_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{cervical_exam_sub_form_pt_BR.properties => cervical_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{fetal_heartbeat_sub_form_pt_BR.properties => fetal_heartbeat_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{oedema_present_sub_form_pt_BR.properties => oedema_present_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{pelvic_exam_sub_form_pt_BR.properties => pelvic_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{respiratory_exam_sub_form_pt_BR.properties => respiratory_exam_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_blood_glucose_sub_form_pt_BR.properties => tests_blood_glucose_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_blood_haemoglobin_sub_form_pt_BR.properties => tests_blood_haemoglobin_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_blood_type_sub_form_pt_BR.properties => tests_blood_type_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_hepatitis_b_sub_form_pt_BR.properties => tests_hepatitis_b_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_hepatitis_c_sub_form_pt_BR.properties => tests_hepatitis_c_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_hiv_sub_form_pt_BR.properties => tests_hiv_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_other_tests_sub_form_pt_BR.properties => tests_other_tests_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_partner_hiv_sub_form_pt_BR.properties => tests_partner_hiv_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_syphilis_sub_form_pt_BR.properties => tests_syphilis_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_tb_screening_sub_form_pt_BR.properties => tests_tb_screening_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_ultrasound_sub_form_pt_BR.properties => tests_ultrasound_sub_form_pt.properties} (100%) rename opensrp-anc/src/main/resources/{tests_urine_sub_form_pt_BR.properties => tests_urine_sub_form_pt.properties} (100%) diff --git a/dependancies.txt b/dependancies.txt new file mode 100644 index 000000000..76146c065 --- /dev/null +++ b/dependancies.txt @@ -0,0 +1,13302 @@ + +> Configure project :opensrp-anc +WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. +The current default is 'false'. + +PROJECT TASKS +SIZE : 1 +task ':opensrp-anc:jacocoTestReport' +PROCESSING MAVEN LOCAL SNAPSHOT BUILD VERSION 2.1.0-SNAPSHOT at 2020-12-01 17:10:35... + +> Task :opensrp-anc:dependencies + +------------------------------------------------------------ +Project :opensrp-anc +------------------------------------------------------------ + +_internal_aapt2_binary - The AAPT2 binary to use for processing resources. +\--- com.android.tools.build:aapt2:3.5.3-5435860 + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJacocoAnt - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.ant:0.7.9 + +--- org.jacoco:org.jacoco.core:0.7.9 + | \--- org.ow2.asm:asm-debug-all:5.2 + +--- org.jacoco:org.jacoco.report:0.7.9 + | +--- org.jacoco:org.jacoco.core:0.7.9 (*) + | \--- org.ow2.asm:asm-debug-all:5.2 + \--- org.jacoco:org.jacoco.agent:0.7.9 + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi - API dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestCompile - Compile dependencies for 'androidTest' sources (deprecated: use 'androidTestImplementation' instead). (n) +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi - API dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugCompile - Compile dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugImplementation' instead). (n) +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugProvided - Provided dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugCompileOnly' instead). (n) +No dependencies + +androidTestDebugPublish - Publish dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugRuntimeOnly' instead). (n) +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) ++--- androidx.test.ext:junit:1.1.2 (n) +\--- androidx.test.espresso:espresso-core:3.3.0 (n) + +androidTestProvided - Provided dependencies for 'androidTest' sources (deprecated: use 'androidTestCompileOnly' instead). (n) +No dependencies + +androidTestPublish - Publish dependencies for 'androidTest' sources (deprecated: use 'androidTestRuntimeOnly' instead). (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) ++--- com.jakewharton:butterknife:10.2.3 (n) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 (n) + +api - API dependencies for 'main' sources. (n) +No dependencies + +archives - Configuration for archive artifacts. ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead). +No dependencies + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestCompileClasspath - Resolved configuration for compilation for variant: debugAndroidTest ++--- androidx.test.ext:junit:1.1.2 +| +--- junit:junit:4.12 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.test:monitor:1.3.0 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 ++--- androidx.test.espresso:espresso-core:3.3.0 +| +--- androidx.test:runner:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 (*) +| | \--- junit:junit:4.12 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.3.0 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| \--- org.hamcrest:hamcrest-integration:1.3 +| \--- org.hamcrest:hamcrest-library:1.3 (*) ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.test.ext:junit:{strictly 1.1.2} -> 1.1.2 (c) ++--- androidx.test.espresso:espresso-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- androidx.multidex:multidex-instrumentation:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:{strictly 4.12} -> 4.12 (c) ++--- androidx.test:core:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.test:monitor:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.test:runner:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.test.espresso:espresso-idling-resource:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.squareup:javawriter:{strictly 2.1.1} -> 2.1.1 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- org.hamcrest:hamcrest-library:{strictly 1.3} -> 1.3 (c) ++--- org.hamcrest:hamcrest-integration:{strictly 1.3} -> 1.3 (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugAndroidTestRuntimeClasspath - Resolved configuration for runtime for variant: debugAndroidTest ++--- androidx.test.ext:junit:1.1.2 +| +--- junit:junit:4.12 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.test:monitor:1.3.0 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 ++--- androidx.test.espresso:espresso-core:3.3.0 +| +--- androidx.test:runner:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 (*) +| | \--- junit:junit:4.12 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.3.0 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| \--- org.hamcrest:hamcrest-integration:1.3 +| \--- org.hamcrest:hamcrest-library:1.3 (*) ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +debugApi - API dependencies for 'debug' sources. (n) +No dependencies + +debugApiElements - API elements for debug (n) +No dependencies + +debugCompile - Compile dependencies for 'debug' sources (deprecated: use 'debugImplementation' instead). (n) +No dependencies + +debugCompileClasspath - Resolved configuration for compilation for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugCompileOnly - Compile only dependencies for 'debug' sources. (n) +No dependencies + +debugImplementation - Implementation only dependencies for 'debug' sources. (n) +No dependencies + +debugProvided - Provided dependencies for 'debug' sources (deprecated: use 'debugCompileOnly' instead). (n) +No dependencies + +debugPublish - Publish dependencies for 'debug' sources (deprecated: use 'debugRuntimeOnly' instead). (n) +No dependencies + +debugRuntimeClasspath - Resolved configuration for runtime for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for 'debug' sources. (n) +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestCompileClasspath - Resolved configuration for compilation for variant: debugUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.2} -> 1.6.2 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +debugUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: debugUnitTest ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +default - Configuration for default artifacts. +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- unspecified (n) ++--- androidx.appcompat:appcompat:1.2.0 (n) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (n) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (n) ++--- unspecified (n) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (n) ++--- org.apache.commons:commons-text:1.9 (n) ++--- net.zetetic:android-database-sqlcipher:4.4.0 (n) ++--- commons-validator:commons-validator:1.7 (n) ++--- com.google.code.gson:gson:2.8.6 (n) ++--- org.greenrobot:eventbus:3.2.0 (n) ++--- com.google.guava:guava:30.0-jre (n) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (n) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (n) ++--- com.evernote:android-job:1.4.2 (n) ++--- com.github.lecho:hellocharts-android:v1.5.8 (n) ++--- id.zelory:compressor:2.1.0 (n) ++--- com.google.android.material:material:1.2.1 (n) ++--- androidx.recyclerview:recyclerview:1.1.0 (n) ++--- androidx.cardview:cardview:1.0.0 (n) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (n) ++--- org.yaml:snakeyaml:1.27 (n) ++--- de.hdodenhof:circleimageview:3.1.0 (n) ++--- org.jeasy:easy-rules-core:3.3.0 (n) ++--- org.jeasy:easy-rules-mvel:3.3.0 (n) +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (n) + +jacocoAgent - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.agent:0.8.5 + +jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. +\--- org.jacoco:org.jacoco.ant:0.8.5 + +--- org.jacoco:org.jacoco.core:0.8.5 + | +--- org.ow2.asm:asm:7.2 + | +--- org.ow2.asm:asm-commons:7.2 + | | +--- org.ow2.asm:asm:7.2 + | | +--- org.ow2.asm:asm-tree:7.2 + | | | \--- org.ow2.asm:asm:7.2 + | | \--- org.ow2.asm:asm-analysis:7.2 + | | \--- org.ow2.asm:asm-tree:7.2 (*) + | \--- org.ow2.asm:asm-tree:7.2 (*) + +--- org.jacoco:org.jacoco.report:0.8.5 + | \--- org.jacoco:org.jacoco.core:0.8.5 (*) + \--- org.jacoco:org.jacoco.agent:0.8.5 + +jarJar ++--- com.googlecode.jarjar:jarjar:1.3 +\--- com.ibm.fhir:fhir-model:4.2.3 + +--- org.antlr:antlr4-runtime:4.7.2 + +--- net.jcip:jcip-annotations:1.0 + +--- com.ibm.fhir:fhir-core:4.2.3 + +--- org.glassfish:jakarta.json:1.1.5 + \--- jakarta.annotation:jakarta.annotation-api:1.3.5 + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintClassPath - The lint embedded classpath +\--- com.android.tools.lint:lint-gradle:26.5.3 + +--- com.android.tools:sdk-common:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 + | | +--- com.android.tools.layoutlib:layoutlib-api:26.5.3 + | | | +--- com.android.tools:common:26.5.3 + | | | | +--- com.android.tools:annotations:26.5.3 + | | | | +--- com.google.guava:guava:27.0.1-jre + | | | | | +--- com.google.guava:failureaccess:1.0.1 + | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 + | | | | | +--- org.checkerframework:checker-qual:2.5.2 + | | | | | +--- com.google.errorprone:error_prone_annotations:2.2.0 + | | | | | +--- com.google.j2objc:j2objc-annotations:1.1 + | | | | | \--- org.codehaus.mojo:animal-sniffer-annotations:1.17 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 + | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 + | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 + | | | | | \--- org.jetbrains:annotations:13.0 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | | | +--- net.sf.kxml:kxml2:2.3.0 + | | | +--- com.android.tools:annotations:26.5.3 + | | | \--- org.jetbrains:annotations:13.0 + | | +--- com.android.tools:dvlib:26.5.3 + | | | \--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:repository:26.5.3 + | | | +--- com.android.tools:common:26.5.3 (*) + | | | +--- com.sun.activation:javax.activation:1.2.0 + | | | +--- org.apache.commons:commons-compress:1.12 + | | | +--- org.glassfish.jaxb:jaxb-runtime:2.2.11 + | | | | +--- org.glassfish.jaxb:jaxb-core:2.2.11 + | | | | | +--- javax.xml.bind:jaxb-api:2.2.12-b140109.1041 + | | | | | +--- org.glassfish.jaxb:txw2:2.2.11 + | | | | | \--- com.sun.istack:istack-commons-runtime:2.21 + | | | | +--- org.jvnet.staxex:stax-ex:1.7.7 + | | | | \--- com.sun.xml.fastinfoset:FastInfoset:1.2.13 + | | | +--- com.google.jimfs:jimfs:1.1 + | | | | \--- com.google.guava:guava:18.0 -> 27.0.1-jre (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.apache.commons:commons-compress:1.12 + | | +--- org.apache.httpcomponents:httpmime:4.5.6 + | | | \--- org.apache.httpcomponents:httpclient:4.5.6 + | | | +--- org.apache.httpcomponents:httpcore:4.4.10 + | | | +--- commons-logging:commons-logging:1.2 + | | | \--- commons-codec:commons-codec:1.10 + | | \--- org.apache.httpcomponents:httpcore:4.4.10 + | +--- com.android.tools.build:builder-test-api:3.5.3 + | | \--- com.android.tools.ddms:ddmlib:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.build:builder-model:3.5.3 + | | \--- com.android.tools:annotations:26.5.3 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 + | | +--- com.android.tools.analytics-library:protos:26.5.3 + | | | \--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 + | | \--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | +--- com.google.protobuf:protobuf-java:3.4.0 + | +--- javax.inject:javax.inject:1 + | +--- org.jetbrains.trove4j:trove4j:20160824 + | \--- com.android.tools.build:aapt2-proto:0.4.0 + | \--- com.google.protobuf:protobuf-java:3.4.0 + +--- com.android.tools.build:builder:3.5.3 + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools:sdk-common:26.5.3 (*) + | +--- com.android.tools:common:26.5.3 (*) + | +--- com.android.tools.build:manifest-merger:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:sdklib:26.5.3 (*) + | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | | +--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.android.tools.build:apksig:3.5.3 + | +--- com.android.tools.build:apkzlib:3.5.3 + | | +--- com.google.code.findbugs:jsr305:1.3.9 + | | +--- com.google.guava:guava:23.0 -> 27.0.1-jre (*) + | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | | \--- com.android.tools.build:apksig:3.5.3 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.squareup:javawriter:2.5.0 + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.ow2.asm:asm:6.0 + | +--- org.ow2.asm:asm-tree:6.0 + | | \--- org.ow2.asm:asm:6.0 + | +--- javax.inject:javax.inject:1 + | +--- org.ow2.asm:asm-commons:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- org.ow2.asm:asm-util:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- it.unimi.dsi:fastutil:7.2.0 + | +--- net.sf.jopt-simple:jopt-simple:4.9 + | \--- com.googlecode.json-simple:json-simple:1.1 + +--- com.android.tools.build:builder-model:3.5.3 (*) + +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 + | \--- org.jetbrains.trove4j:trove4j:20160824 + +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + +--- com.android.tools.build:manifest-merger:26.5.3 (*) + +--- com.android.tools.lint:lint:26.5.3 + | +--- com.android.tools.lint:lint-checks:26.5.3 + | | +--- com.android.tools.lint:lint-api:26.5.3 + | | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | | +--- com.google.guava:guava:27.0.1-jre (*) + | | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | | | +--- org.ow2.asm:asm:6.0 + | | | +--- org.ow2.asm:asm-tree:6.0 (*) + | | | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | \--- org.ow2.asm:asm-analysis:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- com.google.guava:guava:27.0.1-jre (*) + | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +--- com.android.tools.lint:lint-gradle-api:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:gradle-api:3.5.3 + | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | \--- com.google.guava:guava:27.0.1-jre (*) + +--- org.codehaus.groovy:groovy-all:2.4.15 + +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +lintPublish - Configuration to publish external lint check jar +No dependencies + +provided - Provided dependencies for 'main' sources (deprecated: use 'compileOnly' instead). (n) +No dependencies + +publish - Publish dependencies for 'main' sources (deprecated: use 'runtimeOnly' instead). (n) +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +releaseApi - API dependencies for 'release' sources. (n) +No dependencies + +releaseApiElements - API elements for release (n) +No dependencies + +releaseCompile - Compile dependencies for 'release' sources (deprecated: use 'releaseImplementation' instead). (n) +No dependencies + +releaseCompileClasspath - Resolved configuration for compilation for variant: release ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +releaseCompileOnly - Compile only dependencies for 'release' sources. (n) +No dependencies + +releaseImplementation - Implementation only dependencies for 'release' sources. (n) +No dependencies + +releaseProvided - Provided dependencies for 'release' sources (deprecated: use 'releaseCompileOnly' instead). (n) +No dependencies + +releasePublish - Publish dependencies for 'release' sources (deprecated: use 'releaseRuntimeOnly' instead). (n) +No dependencies + +releaseRuntimeClasspath - Resolved configuration for runtime for variant: release ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for 'release' sources. (n) +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestCompileClasspath - Resolved configuration for compilation for variant: releaseUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.2} -> 1.6.2 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +releaseUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: releaseUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +signatures +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi - API dependencies for 'test' sources. (n) +No dependencies + +testCompile - Compile dependencies for 'test' sources (deprecated: use 'testImplementation' instead). +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi - API dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugCompile - Compile dependencies for 'testDebug' sources (deprecated: use 'testDebugImplementation' instead). (n) +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugProvided - Provided dependencies for 'testDebug' sources (deprecated: use 'testDebugCompileOnly' instead). (n) +No dependencies + +testDebugPublish - Publish dependencies for 'testDebug' sources (deprecated: use 'testDebugRuntimeOnly' instead). (n) +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) ++--- junit:junit:4.13.1 (n) ++--- org.apache.maven:maven-ant-tasks:2.1.3 (n) ++--- com.squareup:fest-android:1.0.8 (n) ++--- org.robolectric:robolectric:4.4 (n) ++--- org.robolectric:shadows-multidex:4.4 (n) ++--- com.ibm.fhir:fhir-model:4.2.3 (n) ++--- org.powermock:powermock-module-junit4:2.0.7 (n) ++--- org.powermock:powermock-module-junit4-rule:2.0.7 (n) ++--- org.powermock:powermock-api-mockito2:2.0.7 (n) ++--- org.powermock:powermock-classloading-xstream:2.0.7 (n) ++--- org.mockito:mockito-core:3.5.15 (n) +\--- org.skyscreamer:jsonassert:1.5.0 (n) + +testProvided - Provided dependencies for 'test' sources (deprecated: use 'testCompileOnly' instead). (n) +No dependencies + +testPublish - Publish dependencies for 'test' sources (deprecated: use 'testRuntimeOnly' instead). (n) +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi - API dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseCompile - Compile dependencies for 'testRelease' sources (deprecated: use 'testReleaseImplementation' instead). (n) +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseProvided - Provided dependencies for 'testRelease' sources (deprecated: use 'testReleaseCompileOnly' instead). (n) +No dependencies + +testReleasePublish - Publish dependencies for 'testRelease' sources (deprecated: use 'testReleaseRuntimeOnly' instead). (n) +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - dependency constraint +(*) - dependencies omitted (listed previously) + +(n) - Not resolved (configuration is not meant to be resolved) + +A web-based, searchable dependency report is available by adding the --scan option. + +Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. +Use '--warning-mode all' to show the individual deprecation warnings. +See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings + +BUILD SUCCESSFUL in 1s +1 actionable task: 1 executed + +> Configure project :opensrp-anc +WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. +The current default is 'false'. + +PROJECT TASKS +SIZE : 1 +task ':opensrp-anc:jacocoTestReport' +PROCESSING MAVEN LOCAL SNAPSHOT BUILD VERSION 2.1.0-SNAPSHOT at 2020-12-01 17:12:00... + +> Task :reference-app:dependencies + +------------------------------------------------------------ +Project :reference-app +------------------------------------------------------------ + +_internal_aapt2_binary - The AAPT2 binary to use for processing resources. +\--- com.android.tools.build:aapt2:3.5.3-5435860 + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJacocoAnt - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.ant:0.7.9 + +--- org.jacoco:org.jacoco.core:0.7.9 + | \--- org.ow2.asm:asm-debug-all:5.2 + +--- org.jacoco:org.jacoco.report:0.7.9 + | +--- org.jacoco:org.jacoco.core:0.7.9 (*) + | \--- org.ow2.asm:asm-debug-all:5.2 + \--- org.jacoco:org.jacoco.agent:0.7.9 + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi - API dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestApk - Apk dependencies for 'androidTest' sources (deprecated: use 'androidTestRuntimeOnly' instead). (n) +No dependencies + +androidTestCompile - Compile dependencies for 'androidTest' sources (deprecated: use 'androidTestImplementation' instead). (n) +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi - API dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugApk - Apk dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugRuntimeOnly' instead). (n) +No dependencies + +androidTestDebugCompile - Compile dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugImplementation' instead). (n) +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugProvided - Provided dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugCompileOnly' instead). (n) +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestProvided - Provided dependencies for 'androidTest' sources (deprecated: use 'androidTestCompileOnly' instead). (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) ++--- com.jakewharton:butterknife:10.2.3 (n) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 (n) + +api - API dependencies for 'main' sources. (n) +No dependencies + +apk - Apk dependencies for 'main' sources (deprecated: use 'runtimeOnly' instead). (n) +No dependencies + +archives - Configuration for archive artifacts. +No dependencies + +compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead). +No dependencies + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestCompileClasspath - Resolved configuration for compilation for variant: debugAndroidTest ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex-instrumentation:{strictly 2.0.0} -> 2.0.0 (c) ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugAndroidTestRuntimeClasspath - Resolved configuration for runtime for variant: debugAndroidTest ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | | +--- net.jcip:jcip-annotations:1.0 +| | | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| \--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +debugApi - API dependencies for 'debug' sources. (n) +No dependencies + +debugApiElements - API elements for debug (n) +No dependencies + +debugApk - Apk dependencies for 'debug' sources (deprecated: use 'debugRuntimeOnly' instead). (n) +No dependencies + +debugBundleElements - Bundle elements for debug (n) +No dependencies + +debugCompile - Compile dependencies for 'debug' sources (deprecated: use 'debugImplementation' instead). (n) +No dependencies + +debugCompileClasspath - Resolved configuration for compilation for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugCompileOnly - Compile only dependencies for 'debug' sources. (n) +No dependencies + +debugImplementation - Implementation only dependencies for 'debug' sources. (n) +No dependencies + +debugMetadataElements (n) +No dependencies + +debugMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +debugProvided - Provided dependencies for 'debug' sources (deprecated: use 'debugCompileOnly' instead). (n) +No dependencies + +debugRuntimeClasspath - Resolved configuration for runtime for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | | +--- net.jcip:jcip-annotations:1.0 +| | | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| \--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for 'debug' sources. (n) +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestCompileClasspath - Resolved configuration for compilation for variant: debugUnitTest ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +debugUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: debugUnitTest ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | | +--- net.jcip:jcip-annotations:1.0 +| | | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| \--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +debugWearBundling - Resolved Configuration for wear app bundling for variant: debug +No dependencies + +default - Configuration for default artifacts. +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- project opensrp-anc (n) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (n) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (n) ++--- unspecified (n) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (n) ++--- org.apache.commons:commons-text:1.9 (n) ++--- net.zetetic:android-database-sqlcipher:4.4.0 (n) ++--- commons-validator:commons-validator:1.7 (n) ++--- com.google.code.gson:gson:2.8.6 (n) ++--- org.greenrobot:eventbus:3.2.0 (n) ++--- com.google.guava:guava:30.0-jre (n) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (n) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (n) ++--- com.evernote:android-job:1.4.2 (n) ++--- com.github.lecho:hellocharts-android:v1.5.8 (n) ++--- id.zelory:compressor:2.1.0 (n) ++--- com.google.android.material:material:1.2.1 (n) ++--- androidx.recyclerview:recyclerview:1.1.0 (n) ++--- androidx.cardview:cardview:1.0.0 (n) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (n) ++--- org.yaml:snakeyaml:1.27 (n) ++--- de.hdodenhof:circleimageview:3.1.0 (n) ++--- org.jeasy:easy-rules-core:3.3.0 (n) ++--- org.jeasy:easy-rules-mvel:3.3.0 (n) ++--- com.flurry.android:analytics:11.6.0 (n) ++--- com.google.firebase:firebase-analytics:17.6.0 (n) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (n) ++--- androidx.multidex:multidex:2.0.1 (n) +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (n) + +jacocoAgent - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.agent:0.8.5 + +jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. +\--- org.jacoco:org.jacoco.ant:0.8.5 + +--- org.jacoco:org.jacoco.core:0.8.5 + | +--- org.ow2.asm:asm:7.2 + | +--- org.ow2.asm:asm-commons:7.2 + | | +--- org.ow2.asm:asm:7.2 + | | +--- org.ow2.asm:asm-tree:7.2 + | | | \--- org.ow2.asm:asm:7.2 + | | \--- org.ow2.asm:asm-analysis:7.2 + | | \--- org.ow2.asm:asm-tree:7.2 (*) + | \--- org.ow2.asm:asm-tree:7.2 (*) + +--- org.jacoco:org.jacoco.report:0.8.5 + | \--- org.jacoco:org.jacoco.core:0.8.5 (*) + \--- org.jacoco:org.jacoco.agent:0.8.5 + +jarJar ++--- com.googlecode.jarjar:jarjar:1.3 +\--- com.ibm.fhir:fhir-model:4.2.3 + +--- org.antlr:antlr4-runtime:4.7.2 + +--- net.jcip:jcip-annotations:1.0 + +--- com.ibm.fhir:fhir-core:4.2.3 + +--- org.glassfish:jakarta.json:1.1.5 + \--- jakarta.annotation:jakarta.annotation-api:1.3.5 + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintClassPath - The lint embedded classpath +\--- com.android.tools.lint:lint-gradle:26.5.3 + +--- com.android.tools:sdk-common:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 + | | +--- com.android.tools.layoutlib:layoutlib-api:26.5.3 + | | | +--- com.android.tools:common:26.5.3 + | | | | +--- com.android.tools:annotations:26.5.3 + | | | | +--- com.google.guava:guava:27.0.1-jre + | | | | | +--- com.google.guava:failureaccess:1.0.1 + | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 + | | | | | +--- org.checkerframework:checker-qual:2.5.2 + | | | | | +--- com.google.errorprone:error_prone_annotations:2.2.0 + | | | | | +--- com.google.j2objc:j2objc-annotations:1.1 + | | | | | \--- org.codehaus.mojo:animal-sniffer-annotations:1.17 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 + | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 + | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 + | | | | | \--- org.jetbrains:annotations:13.0 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | | | +--- net.sf.kxml:kxml2:2.3.0 + | | | +--- com.android.tools:annotations:26.5.3 + | | | \--- org.jetbrains:annotations:13.0 + | | +--- com.android.tools:dvlib:26.5.3 + | | | \--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:repository:26.5.3 + | | | +--- com.android.tools:common:26.5.3 (*) + | | | +--- com.sun.activation:javax.activation:1.2.0 + | | | +--- org.apache.commons:commons-compress:1.12 + | | | +--- org.glassfish.jaxb:jaxb-runtime:2.2.11 + | | | | +--- org.glassfish.jaxb:jaxb-core:2.2.11 + | | | | | +--- javax.xml.bind:jaxb-api:2.2.12-b140109.1041 + | | | | | +--- org.glassfish.jaxb:txw2:2.2.11 + | | | | | \--- com.sun.istack:istack-commons-runtime:2.21 + | | | | +--- org.jvnet.staxex:stax-ex:1.7.7 + | | | | \--- com.sun.xml.fastinfoset:FastInfoset:1.2.13 + | | | +--- com.google.jimfs:jimfs:1.1 + | | | | \--- com.google.guava:guava:18.0 -> 27.0.1-jre (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.apache.commons:commons-compress:1.12 + | | +--- org.apache.httpcomponents:httpmime:4.5.6 + | | | \--- org.apache.httpcomponents:httpclient:4.5.6 + | | | +--- org.apache.httpcomponents:httpcore:4.4.10 + | | | +--- commons-logging:commons-logging:1.2 + | | | \--- commons-codec:commons-codec:1.10 + | | \--- org.apache.httpcomponents:httpcore:4.4.10 + | +--- com.android.tools.build:builder-test-api:3.5.3 + | | \--- com.android.tools.ddms:ddmlib:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.build:builder-model:3.5.3 + | | \--- com.android.tools:annotations:26.5.3 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 + | | +--- com.android.tools.analytics-library:protos:26.5.3 + | | | \--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 + | | \--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | +--- com.google.protobuf:protobuf-java:3.4.0 + | +--- javax.inject:javax.inject:1 + | +--- org.jetbrains.trove4j:trove4j:20160824 + | \--- com.android.tools.build:aapt2-proto:0.4.0 + | \--- com.google.protobuf:protobuf-java:3.4.0 + +--- com.android.tools.build:builder:3.5.3 + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools:sdk-common:26.5.3 (*) + | +--- com.android.tools:common:26.5.3 (*) + | +--- com.android.tools.build:manifest-merger:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:sdklib:26.5.3 (*) + | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | | +--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.android.tools.build:apksig:3.5.3 + | +--- com.android.tools.build:apkzlib:3.5.3 + | | +--- com.google.code.findbugs:jsr305:1.3.9 + | | +--- com.google.guava:guava:23.0 -> 27.0.1-jre (*) + | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | | \--- com.android.tools.build:apksig:3.5.3 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.squareup:javawriter:2.5.0 + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.ow2.asm:asm:6.0 + | +--- org.ow2.asm:asm-tree:6.0 + | | \--- org.ow2.asm:asm:6.0 + | +--- javax.inject:javax.inject:1 + | +--- org.ow2.asm:asm-commons:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- org.ow2.asm:asm-util:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- it.unimi.dsi:fastutil:7.2.0 + | +--- net.sf.jopt-simple:jopt-simple:4.9 + | \--- com.googlecode.json-simple:json-simple:1.1 + +--- com.android.tools.build:builder-model:3.5.3 (*) + +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 + | \--- org.jetbrains.trove4j:trove4j:20160824 + +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + +--- com.android.tools.build:manifest-merger:26.5.3 (*) + +--- com.android.tools.lint:lint:26.5.3 + | +--- com.android.tools.lint:lint-checks:26.5.3 + | | +--- com.android.tools.lint:lint-api:26.5.3 + | | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | | +--- com.google.guava:guava:27.0.1-jre (*) + | | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | | | +--- org.ow2.asm:asm:6.0 + | | | +--- org.ow2.asm:asm-tree:6.0 (*) + | | | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | \--- org.ow2.asm:asm-analysis:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- com.google.guava:guava:27.0.1-jre (*) + | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +--- com.android.tools.lint:lint-gradle-api:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:gradle-api:3.5.3 + | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | \--- com.google.guava:guava:27.0.1-jre (*) + +--- org.codehaus.groovy:groovy-all:2.4.15 + +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +lintPublish - Configuration to publish external lint check jar +No dependencies + +provided - Provided dependencies for 'main' sources (deprecated: use 'compileOnly' instead). (n) +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +releaseApi - API dependencies for 'release' sources. (n) +No dependencies + +releaseApiElements - API elements for release (n) +No dependencies + +releaseApk - Apk dependencies for 'release' sources (deprecated: use 'releaseRuntimeOnly' instead). (n) +No dependencies + +releaseBundleElements - Bundle elements for release (n) +No dependencies + +releaseCompile - Compile dependencies for 'release' sources (deprecated: use 'releaseImplementation' instead). (n) +No dependencies + +releaseCompileClasspath - Resolved configuration for compilation for variant: release ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +releaseCompileOnly - Compile only dependencies for 'release' sources. (n) +No dependencies + +releaseImplementation - Implementation only dependencies for 'release' sources. (n) +No dependencies + +releaseMetadataElements (n) +No dependencies + +releaseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +releaseProvided - Provided dependencies for 'release' sources (deprecated: use 'releaseCompileOnly' instead). (n) +No dependencies + +releaseRuntimeClasspath - Resolved configuration for runtime for variant: release ++--- project :opensrp-anc +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | | +--- net.jcip:jcip-annotations:1.0 +| | | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for 'release' sources. (n) +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestCompileClasspath - Resolved configuration for compilation for variant: releaseUnitTest ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +releaseUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: releaseUnitTest ++--- project :opensrp-anc +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | | +--- net.jcip:jcip-annotations:1.0 +| | | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +releaseWearBundling - Resolved Configuration for wear app bundling for variant: release +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi - API dependencies for 'test' sources. (n) +No dependencies + +testApk - Apk dependencies for 'test' sources (deprecated: use 'testRuntimeOnly' instead). (n) +No dependencies + +testCompile - Compile dependencies for 'test' sources (deprecated: use 'testImplementation' instead). +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi - API dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugApk - Apk dependencies for 'testDebug' sources (deprecated: use 'testDebugRuntimeOnly' instead). (n) +No dependencies + +testDebugCompile - Compile dependencies for 'testDebug' sources (deprecated: use 'testDebugImplementation' instead). (n) +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugProvided - Provided dependencies for 'testDebug' sources (deprecated: use 'testDebugCompileOnly' instead). (n) +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) ++--- junit:junit:4.13.1 (n) ++--- org.apache.maven:maven-ant-tasks:2.1.3 (n) ++--- com.squareup:fest-android:1.0.8 (n) ++--- org.robolectric:robolectric:4.4 (n) ++--- org.robolectric:shadows-multidex:4.4 (n) ++--- com.ibm.fhir:fhir-model:4.2.3 (n) ++--- org.powermock:powermock-module-junit4:2.0.7 (n) ++--- org.powermock:powermock-module-junit4-rule:2.0.7 (n) ++--- org.powermock:powermock-api-mockito2:2.0.7 (n) ++--- org.powermock:powermock-classloading-xstream:2.0.7 (n) ++--- org.mockito:mockito-core:3.5.15 (n) +\--- org.skyscreamer:jsonassert:1.5.0 (n) + +testProvided - Provided dependencies for 'test' sources (deprecated: use 'testCompileOnly' instead). (n) +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi - API dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseApk - Apk dependencies for 'testRelease' sources (deprecated: use 'testReleaseRuntimeOnly' instead). (n) +No dependencies + +testReleaseCompile - Compile dependencies for 'testRelease' sources (deprecated: use 'testReleaseImplementation' instead). (n) +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseProvided - Provided dependencies for 'testRelease' sources (deprecated: use 'testReleaseCompileOnly' instead). (n) +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - dependency constraint +(*) - dependencies omitted (listed previously) + +(n) - Not resolved (configuration is not meant to be resolved) + +A web-based, searchable dependency report is available by adding the --scan option. + +Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. +Use '--warning-mode all' to show the individual deprecation warnings. +See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings + +BUILD SUCCESSFUL in 1s +1 actionable task: 1 executed diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 49a325922..9134997c3 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -166,7 +166,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.0000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -177,7 +177,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:3.0.1000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -228,9 +228,9 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' - implementation 'org.jeasy:easy-rules-core:4.0.0' - implementation 'org.jeasy:easy-rules-mvel:4.0.0' - implementation 'org.smartregister:opensrp-plan-evaluator:0.1.3-SNAPSHOT' + implementation 'org.jeasy:easy-rules-core:3.3.0' + implementation 'org.jeasy:easy-rules-mvel:3.3.0' + implementation 'org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 1177be489..28a842420 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -128,7 +128,7 @@ private void saveLanguage(String selectedLanguage) { if (MeFragment.this.getActivity() != null && StringUtils.isNotBlank(selectedLanguage)) { Locale selectedLanguageLocale = locales.get(selectedLanguage); if (selectedLanguageLocale != null) { - LangUtils.saveLanguage(MeFragment.this.getActivity().getApplication(), selectedLanguageLocale.getLanguage()); + LangUtils.saveLanguage(MeFragment.this.getActivity().getApplication(), getFullLanguage(selectedLanguageLocale)); } else { Timber.i("Language could not be set"); } @@ -154,17 +154,21 @@ private void registerLanguageSwitcher() { languages[x] = language.getKey(); //Update the languages strings array with the languages to be displayed on the alert dialog x++; - if (current.getLanguage().equals(language.getValue().getLanguage())) { + if (getFullLanguage(current).equals(getFullLanguage(language.getValue()).toLowerCase())) { languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), language.getKey())); } } } } + private String getFullLanguage(Locale locale) { + return StringUtils.isNotEmpty(locale.getCountry()) ? locale.getLanguage() + "_" + locale.getCountry() : locale.getLanguage(); + } + private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); - locales.put("French", Locale.FRENCH); - locales.put("") + locales.put(getString(R.string.french_language), Locale.FRENCH); + locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); } } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java index 0b2c5ef29..b39cd5b15 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineHelper.java @@ -12,12 +12,12 @@ import org.jeasy.rules.api.Rule; import org.jeasy.rules.api.Rules; import org.jeasy.rules.api.RulesEngine; -import org.jeasy.rules.api.RulesEngineParameters; import org.jeasy.rules.core.DefaultRulesEngine; import org.jeasy.rules.core.InferenceRulesEngine; +import org.jeasy.rules.core.RulesEngineParameters; import org.jeasy.rules.mvel.MVELRule; import org.jeasy.rules.mvel.MVELRuleFactory; -import org.jeasy.rules.support.reader.YamlRuleDefinitionReader; +import org.jeasy.rules.support.YamlRuleDefinitionReader; import org.joda.time.LocalDate; import org.json.JSONArray; import org.json.JSONException; @@ -46,13 +46,13 @@ public class AncRulesEngineHelper extends RulesEngineHelper { private final String RULE_FOLDER_PATH = "rule/"; - private Context context; - private RulesEngine inferentialRulesEngine; - private RulesEngine defaultRulesEngine; - private Map ruleMap; + private final Context context; + private final RulesEngine inferentialRulesEngine; + private final RulesEngine defaultRulesEngine; + private final Map ruleMap; private JSONObject mJsonObject = new JSONObject(); - private YamlRuleDefinitionReader yamlRuleDefinitionReader = new YamlRuleDefinitionReader(); - private MVELRuleFactory mvelRuleFactory = new MVELRuleFactory(yamlRuleDefinitionReader); + private final YamlRuleDefinitionReader yamlRuleDefinitionReader = new YamlRuleDefinitionReader(); + private final MVELRuleFactory mvelRuleFactory = new MVELRuleFactory(yamlRuleDefinitionReader); public AncRulesEngineHelper(Context context) { this.context = context; diff --git a/opensrp-anc/src/main/res/values-pt_BR/strings.xml b/opensrp-anc/src/main/res/values-pt-rBR/strings.xml similarity index 99% rename from opensrp-anc/src/main/res/values-pt_BR/strings.xml rename to opensrp-anc/src/main/res/values-pt-rBR/strings.xml index 3a9d794bd..56fecd5b4 100644 --- a/opensrp-anc/src/main/res/values-pt_BR/strings.xml +++ b/opensrp-anc/src/main/res/values-pt-rBR/strings.xml @@ -192,7 +192,7 @@ Alteração visual Outro - Sinais de alerta* + Sinais de alerta* Nenhum Sangramento vaginal diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index de060c312..df4065f55 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -422,4 +422,6 @@ Choose language English + French + Portuguese (Brazil) \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_close_pt_BR.properties b/opensrp-anc/src/main/resources/anc_close_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_close_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_close_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_counselling_treatment_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_physical_exam_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_physical_exam_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_profile_pt_BR.properties b/opensrp-anc/src/main/resources/anc_profile_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_profile_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_profile_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties b/opensrp-anc/src/main/resources/anc_quick_check_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_quick_check_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_quick_check_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_register_pt_BR.properties b/opensrp-anc/src/main/resources/anc_register_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_register_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_register_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties b/opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_site_characteristics_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties diff --git a/opensrp-anc/src/main/resources/anc_test_pt_BR.properties b/opensrp-anc/src/main/resources/anc_test_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/anc_test_pt_BR.properties rename to opensrp-anc/src/main/resources/anc_test_pt.properties diff --git a/opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/breast_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/cervical_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/oedema_present_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_hiv_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties similarity index 100% rename from opensrp-anc/src/main/resources/tests_urine_sub_form_pt_BR.properties rename to opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 006b9a0c9..a235d3254 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -233,7 +233,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.0000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -245,7 +245,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:1.15.3002-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -292,8 +292,8 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' - implementation 'org.jeasy:easy-rules-core:4.0.0' - implementation 'org.jeasy:easy-rules-mvel:4.0.0' + implementation 'org.jeasy:easy-rules-core:3.3.0' + implementation 'org.jeasy:easy-rules-mvel:3.3.0' implementation 'com.flurry.android:analytics:11.6.0@aar' implementation('com.google.firebase:firebase-analytics:17.6.0') { exclude group: 'com.android.support', module: 'appcompat-v7' @@ -307,7 +307,7 @@ dependencies { } implementation 'com.flurry.android:analytics:11.6.0@aar' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'org.smartregister:opensrp-plan-evaluator:0.1.3-SNAPSHOT' + implementation 'org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 0f81a411e..4b97f2f80 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -32,6 +32,8 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.receiver.TimeChangedBroadcastReceiver; +import java.util.Locale; + import io.fabric.sdk.android.Fabric; import timber.log.Timber; @@ -86,7 +88,7 @@ public void onCreate() { private void setDefaultLanguage() { try { - Utils.saveLanguage("en"); + Utils.saveLanguage(Locale.ENGLISH.getLanguage()); } catch (Exception e) { Timber.e(e, " --> saveLanguage"); } From 0ef288b540b6d3b8af03066ee1c6cd02ce73c0e3 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 4 Dec 2020 15:22:55 +0300 Subject: [PATCH 070/302] :ok_hand: update the languages --- dependancies.txt | 6468 +++++++++++++++++ opensrp-anc/build.gradle | 10 +- .../activity/BaseHomeRegisterActivity.java | 21 +- .../anc/library/fragment/MeFragment.java | 4 +- reference-app/build.gradle | 7 +- .../anc/application/AncApplication.java | 2 +- 6 files changed, 6503 insertions(+), 9 deletions(-) diff --git a/dependancies.txt b/dependancies.txt index 76146c065..213233739 100644 --- a/dependancies.txt +++ b/dependancies.txt @@ -13300,3 +13300,6471 @@ See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:comm BUILD SUCCESSFUL in 1s 1 actionable task: 1 executed +Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details + +> Configure project :opensrp-anc +WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. +The current default is 'false'. + +PROJECT TASKS +SIZE : 1 +task ':opensrp-anc:jacocoTestReport' +PROCESSING MAVEN LOCAL SNAPSHOT BUILD VERSION 2.1.0-SNAPSHOT at 2020-12-04 13:00:41... + +> Task :opensrp-anc:dependencies + +------------------------------------------------------------ +Project :opensrp-anc +------------------------------------------------------------ + +_internal_aapt2_binary - The AAPT2 binary to use for processing resources. +\--- com.android.tools.build:aapt2:3.5.3-5435860 + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJacocoAnt - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.ant:0.7.9 + +--- org.jacoco:org.jacoco.core:0.7.9 + | \--- org.ow2.asm:asm-debug-all:5.2 + +--- org.jacoco:org.jacoco.report:0.7.9 + | +--- org.jacoco:org.jacoco.core:0.7.9 (*) + | \--- org.ow2.asm:asm-debug-all:5.2 + \--- org.jacoco:org.jacoco.agent:0.7.9 + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi - API dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestCompile - Compile dependencies for 'androidTest' sources (deprecated: use 'androidTestImplementation' instead). (n) +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi - API dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugCompile - Compile dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugImplementation' instead). (n) +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugProvided - Provided dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugCompileOnly' instead). (n) +No dependencies + +androidTestDebugPublish - Publish dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugRuntimeOnly' instead). (n) +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) ++--- androidx.test.ext:junit:1.1.2 (n) +\--- androidx.test.espresso:espresso-core:3.3.0 (n) + +androidTestProvided - Provided dependencies for 'androidTest' sources (deprecated: use 'androidTestCompileOnly' instead). (n) +No dependencies + +androidTestPublish - Publish dependencies for 'androidTest' sources (deprecated: use 'androidTestRuntimeOnly' instead). (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) ++--- com.jakewharton:butterknife:10.2.3 (n) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 (n) + +api - API dependencies for 'main' sources. (n) +No dependencies + +archives - Configuration for archive artifacts. ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead). +No dependencies + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestCompileClasspath - Resolved configuration for compilation for variant: debugAndroidTest ++--- androidx.test.ext:junit:1.1.2 +| +--- junit:junit:4.12 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.test:monitor:1.3.0 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 ++--- androidx.test.espresso:espresso-core:3.3.0 +| +--- androidx.test:runner:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 (*) +| | \--- junit:junit:4.12 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.3.0 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| \--- org.hamcrest:hamcrest-integration:1.3 +| \--- org.hamcrest:hamcrest-library:1.3 (*) ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.test.ext:junit:{strictly 1.1.2} -> 1.1.2 (c) ++--- androidx.test.espresso:espresso-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- androidx.multidex:multidex-instrumentation:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:{strictly 4.12} -> 4.12 (c) ++--- androidx.test:core:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.test:monitor:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.test:runner:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.test.espresso:espresso-idling-resource:{strictly 3.3.0} -> 3.3.0 (c) ++--- com.squareup:javawriter:{strictly 2.1.1} -> 2.1.1 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- org.hamcrest:hamcrest-library:{strictly 1.3} -> 1.3 (c) ++--- org.hamcrest:hamcrest-integration:{strictly 1.3} -> 1.3 (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugAndroidTestRuntimeClasspath - Resolved configuration for runtime for variant: debugAndroidTest ++--- androidx.test.ext:junit:1.1.2 +| +--- junit:junit:4.12 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.test:monitor:1.3.0 (*) +| \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 ++--- androidx.test.espresso:espresso-core:3.3.0 +| +--- androidx.test:runner:1.3.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.test:monitor:1.3.0 (*) +| | \--- junit:junit:4.12 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.3.0 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| \--- org.hamcrest:hamcrest-integration:1.3 +| \--- org.hamcrest:hamcrest-library:1.3 (*) ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +debugApi - API dependencies for 'debug' sources. (n) +No dependencies + +debugApiElements - API elements for debug (n) +No dependencies + +debugCompile - Compile dependencies for 'debug' sources (deprecated: use 'debugImplementation' instead). (n) +No dependencies + +debugCompileClasspath - Resolved configuration for compilation for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +debugCompileOnly - Compile only dependencies for 'debug' sources. (n) +No dependencies + +debugImplementation - Implementation only dependencies for 'debug' sources. (n) +No dependencies + +debugProvided - Provided dependencies for 'debug' sources (deprecated: use 'debugCompileOnly' instead). (n) +No dependencies + +debugPublish - Publish dependencies for 'debug' sources (deprecated: use 'debugRuntimeOnly' instead). (n) +No dependencies + +debugRuntimeClasspath - Resolved configuration for runtime for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for 'debug' sources. (n) +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestCompileClasspath - Resolved configuration for compilation for variant: debugUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.2} -> 1.6.2 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +debugUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: debugUnitTest ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +default - Configuration for default artifacts. +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- androidx.appcompat:appcompat:1.2.0 (n) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT (n) ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT (n) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (n) ++--- org.apache.commons:commons-text:1.9 (n) ++--- net.zetetic:android-database-sqlcipher:4.4.0 (n) ++--- commons-validator:commons-validator:1.7 (n) ++--- com.google.code.gson:gson:2.8.6 (n) ++--- org.greenrobot:eventbus:3.2.0 (n) ++--- com.google.guava:guava:30.0-jre (n) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (n) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (n) ++--- com.evernote:android-job:1.4.2 (n) ++--- com.github.lecho:hellocharts-android:v1.5.8 (n) ++--- id.zelory:compressor:2.1.0 (n) ++--- com.google.android.material:material:1.2.1 (n) ++--- androidx.recyclerview:recyclerview:1.1.0 (n) ++--- androidx.cardview:cardview:1.0.0 (n) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (n) ++--- org.yaml:snakeyaml:1.27 (n) ++--- de.hdodenhof:circleimageview:3.1.0 (n) ++--- org.jeasy:easy-rules-core:3.3.0 (n) ++--- org.jeasy:easy-rules-mvel:3.3.0 (n) +\--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (n) + +jacocoAgent - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.agent:0.8.5 + +jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. +\--- org.jacoco:org.jacoco.ant:0.8.5 + +--- org.jacoco:org.jacoco.core:0.8.5 + | +--- org.ow2.asm:asm:7.2 + | +--- org.ow2.asm:asm-commons:7.2 + | | +--- org.ow2.asm:asm:7.2 + | | +--- org.ow2.asm:asm-tree:7.2 + | | | \--- org.ow2.asm:asm:7.2 + | | \--- org.ow2.asm:asm-analysis:7.2 + | | \--- org.ow2.asm:asm-tree:7.2 (*) + | \--- org.ow2.asm:asm-tree:7.2 (*) + +--- org.jacoco:org.jacoco.report:0.8.5 + | \--- org.jacoco:org.jacoco.core:0.8.5 (*) + \--- org.jacoco:org.jacoco.agent:0.8.5 + +jarJar +\--- com.googlecode.jarjar:jarjar:1.3 + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintClassPath - The lint embedded classpath +\--- com.android.tools.lint:lint-gradle:26.5.3 + +--- com.android.tools:sdk-common:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 + | | +--- com.android.tools.layoutlib:layoutlib-api:26.5.3 + | | | +--- com.android.tools:common:26.5.3 + | | | | +--- com.android.tools:annotations:26.5.3 + | | | | +--- com.google.guava:guava:27.0.1-jre + | | | | | +--- com.google.guava:failureaccess:1.0.1 + | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 + | | | | | +--- org.checkerframework:checker-qual:2.5.2 + | | | | | +--- com.google.errorprone:error_prone_annotations:2.2.0 + | | | | | +--- com.google.j2objc:j2objc-annotations:1.1 + | | | | | \--- org.codehaus.mojo:animal-sniffer-annotations:1.17 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 + | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 + | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 + | | | | | \--- org.jetbrains:annotations:13.0 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | | | +--- net.sf.kxml:kxml2:2.3.0 + | | | +--- com.android.tools:annotations:26.5.3 + | | | \--- org.jetbrains:annotations:13.0 + | | +--- com.android.tools:dvlib:26.5.3 + | | | \--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:repository:26.5.3 + | | | +--- com.android.tools:common:26.5.3 (*) + | | | +--- com.sun.activation:javax.activation:1.2.0 + | | | +--- org.apache.commons:commons-compress:1.12 + | | | +--- org.glassfish.jaxb:jaxb-runtime:2.2.11 + | | | | +--- org.glassfish.jaxb:jaxb-core:2.2.11 + | | | | | +--- javax.xml.bind:jaxb-api:2.2.12-b140109.1041 + | | | | | +--- org.glassfish.jaxb:txw2:2.2.11 + | | | | | \--- com.sun.istack:istack-commons-runtime:2.21 + | | | | +--- org.jvnet.staxex:stax-ex:1.7.7 + | | | | \--- com.sun.xml.fastinfoset:FastInfoset:1.2.13 + | | | +--- com.google.jimfs:jimfs:1.1 + | | | | \--- com.google.guava:guava:18.0 -> 27.0.1-jre (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.apache.commons:commons-compress:1.12 + | | +--- org.apache.httpcomponents:httpmime:4.5.6 + | | | \--- org.apache.httpcomponents:httpclient:4.5.6 + | | | +--- org.apache.httpcomponents:httpcore:4.4.10 + | | | +--- commons-logging:commons-logging:1.2 + | | | \--- commons-codec:commons-codec:1.10 + | | \--- org.apache.httpcomponents:httpcore:4.4.10 + | +--- com.android.tools.build:builder-test-api:3.5.3 + | | \--- com.android.tools.ddms:ddmlib:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.build:builder-model:3.5.3 + | | \--- com.android.tools:annotations:26.5.3 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 + | | +--- com.android.tools.analytics-library:protos:26.5.3 + | | | \--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 + | | \--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | +--- com.google.protobuf:protobuf-java:3.4.0 + | +--- javax.inject:javax.inject:1 + | +--- org.jetbrains.trove4j:trove4j:20160824 + | \--- com.android.tools.build:aapt2-proto:0.4.0 + | \--- com.google.protobuf:protobuf-java:3.4.0 + +--- com.android.tools.build:builder:3.5.3 + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools:sdk-common:26.5.3 (*) + | +--- com.android.tools:common:26.5.3 (*) + | +--- com.android.tools.build:manifest-merger:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:sdklib:26.5.3 (*) + | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | | +--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.android.tools.build:apksig:3.5.3 + | +--- com.android.tools.build:apkzlib:3.5.3 + | | +--- com.google.code.findbugs:jsr305:1.3.9 + | | +--- com.google.guava:guava:23.0 -> 27.0.1-jre (*) + | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | | \--- com.android.tools.build:apksig:3.5.3 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.squareup:javawriter:2.5.0 + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.ow2.asm:asm:6.0 + | +--- org.ow2.asm:asm-tree:6.0 + | | \--- org.ow2.asm:asm:6.0 + | +--- javax.inject:javax.inject:1 + | +--- org.ow2.asm:asm-commons:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- org.ow2.asm:asm-util:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- it.unimi.dsi:fastutil:7.2.0 + | +--- net.sf.jopt-simple:jopt-simple:4.9 + | \--- com.googlecode.json-simple:json-simple:1.1 + +--- com.android.tools.build:builder-model:3.5.3 (*) + +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 + | \--- org.jetbrains.trove4j:trove4j:20160824 + +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + +--- com.android.tools.build:manifest-merger:26.5.3 (*) + +--- com.android.tools.lint:lint:26.5.3 + | +--- com.android.tools.lint:lint-checks:26.5.3 + | | +--- com.android.tools.lint:lint-api:26.5.3 + | | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | | +--- com.google.guava:guava:27.0.1-jre (*) + | | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | | | +--- org.ow2.asm:asm:6.0 + | | | +--- org.ow2.asm:asm-tree:6.0 (*) + | | | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | \--- org.ow2.asm:asm-analysis:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- com.google.guava:guava:27.0.1-jre (*) + | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +--- com.android.tools.lint:lint-gradle-api:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:gradle-api:3.5.3 + | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | \--- com.google.guava:guava:27.0.1-jre (*) + +--- org.codehaus.groovy:groovy-all:2.4.15 + +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +lintPublish - Configuration to publish external lint check jar +No dependencies + +provided - Provided dependencies for 'main' sources (deprecated: use 'compileOnly' instead). (n) +No dependencies + +publish - Publish dependencies for 'main' sources (deprecated: use 'runtimeOnly' instead). (n) +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +releaseApi - API dependencies for 'release' sources. (n) +No dependencies + +releaseApiElements - API elements for release (n) +No dependencies + +releaseCompile - Compile dependencies for 'release' sources (deprecated: use 'releaseImplementation' instead). (n) +No dependencies + +releaseCompileClasspath - Resolved configuration for compilation for variant: release ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) +\--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) + +releaseCompileOnly - Compile only dependencies for 'release' sources. (n) +No dependencies + +releaseImplementation - Implementation only dependencies for 'release' sources. (n) +No dependencies + +releaseProvided - Provided dependencies for 'release' sources (deprecated: use 'releaseCompileOnly' instead). (n) +No dependencies + +releasePublish - Publish dependencies for 'release' sources (deprecated: use 'releaseRuntimeOnly' instead). (n) +No dependencies + +releaseRuntimeClasspath - Resolved configuration for runtime for variant: release ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for 'release' sources. (n) +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestCompileClasspath - Resolved configuration for compilation for variant: releaseUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | +--- androidx.interpolator:interpolator:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.collection:collection:1.1.0 (*) +| \--- androidx.drawerlayout:drawerlayout:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| \--- androidx.customview:customview:1.0.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.2000-SNAPSHOT} -> 2.0.2000-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.0.2000-SNAPSHOT} -> 4.0.2000-SNAPSHOT (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.0.0-SNAPSHOT} -> 1.0.0-SNAPSHOT (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 16.0.1} -> 16.0.1 (c) ++--- com.google.android.gms:play-services-basement:{strictly 16.1.0} -> 16.1.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.2} -> 1.6.2 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) +\--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) + +releaseUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: releaseUnitTest ++--- androidx.appcompat:appcompat:1.2.0 +| +--- androidx.annotation:annotation:1.1.0 +| +--- androidx.core:core:1.3.0 -> 1.3.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.viewpager:viewpager:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.activity:activity:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 (*) +| +--- androidx.appcompat:appcompat-resources:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.media:media:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.cardview:cardview:1.0.0 (*) +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 16.1.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-model:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | +--- com.ibm.fhir:fhir-model:4.2.3 (*) +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 (*) +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT (*) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 (*) ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +signatures +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi - API dependencies for 'test' sources. (n) +No dependencies + +testCompile - Compile dependencies for 'test' sources (deprecated: use 'testImplementation' instead). +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi - API dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugCompile - Compile dependencies for 'testDebug' sources (deprecated: use 'testDebugImplementation' instead). (n) +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugProvided - Provided dependencies for 'testDebug' sources (deprecated: use 'testDebugCompileOnly' instead). (n) +No dependencies + +testDebugPublish - Publish dependencies for 'testDebug' sources (deprecated: use 'testDebugRuntimeOnly' instead). (n) +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) ++--- junit:junit:4.13.1 (n) ++--- org.apache.maven:maven-ant-tasks:2.1.3 (n) ++--- com.squareup:fest-android:1.0.8 (n) ++--- org.robolectric:robolectric:4.4 (n) ++--- org.robolectric:shadows-multidex:4.4 (n) ++--- com.ibm.fhir:fhir-model:4.2.3 (n) ++--- org.powermock:powermock-module-junit4:2.0.7 (n) ++--- org.powermock:powermock-module-junit4-rule:2.0.7 (n) ++--- org.powermock:powermock-api-mockito2:2.0.7 (n) ++--- org.powermock:powermock-classloading-xstream:2.0.7 (n) ++--- org.mockito:mockito-core:3.5.15 (n) +\--- org.skyscreamer:jsonassert:1.5.0 (n) + +testProvided - Provided dependencies for 'test' sources (deprecated: use 'testCompileOnly' instead). (n) +No dependencies + +testPublish - Publish dependencies for 'test' sources (deprecated: use 'testRuntimeOnly' instead). (n) +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi - API dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseCompile - Compile dependencies for 'testRelease' sources (deprecated: use 'testReleaseImplementation' instead). (n) +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseProvided - Provided dependencies for 'testRelease' sources (deprecated: use 'testReleaseCompileOnly' instead). (n) +No dependencies + +testReleasePublish - Publish dependencies for 'testRelease' sources (deprecated: use 'testReleaseRuntimeOnly' instead). (n) +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - dependency constraint +(*) - dependencies omitted (listed previously) + +(n) - Not resolved (configuration is not meant to be resolved) + +A web-based, searchable dependency report is available by adding the --scan option. + +Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. +Use '--warning-mode all' to show the individual deprecation warnings. +See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings + +BUILD SUCCESSFUL in 17s +1 actionable task: 1 executed diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 9134997c3..e57a582b7 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -162,11 +162,8 @@ tasks.withType(Test) { } dependencies { - def powerMockVersion = '2.0.4' - - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2002-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -297,4 +294,9 @@ task javadoc(type: Javadoc) { classpath += configurations.compile } +jarJar { + // Dependencies and related JarJar rules + remove = ['fhir-model-4.2.3.jar':'*'] +} + apply from: '../maven.gradle' \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index cfb70dac6..628cb5f1c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -24,6 +24,8 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.anc.library.AncLibrary; @@ -76,6 +78,7 @@ public class BaseHomeRegisterActivity extends BaseRegisterActivity implements Re private boolean isLibrary = false; private String advancedSearchQrText = ""; private HashMap advancedSearchFormData = new HashMap<>(); + private String globalAncId = null; @Override protected void onCreate(Bundle savedInstanceState) { @@ -242,7 +245,11 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent JSONObject form = new JSONObject(jsonString); switch (form.getString(ANCJsonFormUtils.ENCOUNTER_TYPE)) { case ConstantsUtils.EventTypeUtils.REGISTRATION: - ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); + String ancId = getAncId(jsonString); + if (StringUtils.isAllEmpty(globalAncId) || !ancId.equalsIgnoreCase(globalAncId)) { + ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); + globalAncId = ancId; + } break; case ConstantsUtils.EventTypeUtils.CLOSE: ((RegisterContract.Presenter) presenter).closeAncRecord(jsonString); @@ -267,6 +274,18 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } } + private String getAncId(String jsonString) { + String ancId = null; + try { + JSONArray array = ANCJsonFormUtils.getSingleStepFormfields(new JSONObject(jsonString)); + JSONObject jsonObject = ANCJsonFormUtils.getFieldJSONObject(array, "anc_id"); + ancId = jsonObject.optString("value"); + } catch (JSONException jsonException) { + Timber.e(jsonException); + } + return ancId; + } + @Override public void onResume() { super.onResume(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 28a842420..fd3e52d6e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -165,9 +165,9 @@ private String getFullLanguage(Locale locale) { return StringUtils.isNotEmpty(locale.getCountry()) ? locale.getLanguage() + "_" + locale.getCountry() : locale.getLanguage(); } - private void addLanguages() { + private void addLanguages() {/* locales.put(getString(R.string.english_language), Locale.ENGLISH); - locales.put(getString(R.string.french_language), Locale.FRENCH); + locales.put(getString(R.string.french_language), Locale.FRENCH);*/ locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index a235d3254..091eeed08 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -233,7 +233,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.2000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2002-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -345,4 +345,9 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea executionData = fileTree(dir: project.buildDir, includes: [ 'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec' ]) +} + +jarJar { + // Dependencies and related JarJar rules + remove = ['fhir-model-4.2.3.jar': '*'] } \ No newline at end of file diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 4b97f2f80..55103868e 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -88,7 +88,7 @@ public void onCreate() { private void setDefaultLanguage() { try { - Utils.saveLanguage(Locale.ENGLISH.getLanguage()); + Utils.saveLanguage(new Locale("pt").getLanguage()); } catch (Exception e) { Timber.e(e, " --> saveLanguage"); } From 928695f2719f9a1a7269b08c77962c555b93e97e Mon Sep 17 00:00:00 2001 From: Samuel Githengi Date: Fri, 4 Dec 2020 17:54:42 +0300 Subject: [PATCH 071/302] Fix build, duplicate imports --- build.gradle | 1 - opensrp-anc/build.gradle | 23 ++--------------------- reference-app/build.gradle | 19 ++++--------------- 3 files changed, 6 insertions(+), 37 deletions(-) diff --git a/build.gradle b/build.gradle index ea6495a39..3a6d81575 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,6 @@ buildscript { classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0" classpath 'com.google.gms:google-services:4.3.4' classpath 'io.fabric.tools:gradle:1.31.2' - classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index e57a582b7..20c79f93b 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -8,12 +8,12 @@ buildscript { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' + classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' } } apply plugin: 'com.android.library' apply plugin: 'jacoco' -apply plugin: 'org.smartregister.gradle.jarjar' jacoco { toolVersion = jacocoVersion @@ -130,19 +130,8 @@ android { } packagingOptions { - exclude 'META-INF/DEPENDENCIES.txt' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE.md' - exclude 'META-INF/LICENSE.md' - exclude 'META-INF/DEPENDENCIES.md' - exclude 'META-INF/notice.txt' - exclude 'META-INF/license.txt' - exclude 'META-INF/dependencies.txt' - exclude 'META-INF/LGPL2.1' + exclude 'META-INF/*' exclude 'LICENSE.txt' - exclude 'META-INF/LICENSE.md' - exclude 'META-INF/NOTICE.md' } testOptions { @@ -189,8 +178,6 @@ dependencies { exclude group: 'com.ibm.fhir', module: 'fhir-model' } - jarJar 'com.ibm.fhir:fhir-model:4.2.3' - implementation fileTree(dir: "./build/libs", include: ['*.jar']) implementation('org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT@aar') { transitive = true exclude group: 'org.smartregister', module: 'opensrp-client-core' @@ -227,7 +214,6 @@ dependencies { implementation 'de.hdodenhof:circleimageview:3.1.0' implementation 'org.jeasy:easy-rules-core:3.3.0' implementation 'org.jeasy:easy-rules-mvel:3.3.0' - implementation 'org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' @@ -294,9 +280,4 @@ task javadoc(type: Javadoc) { classpath += configurations.compile } -jarJar { - // Dependencies and related JarJar rules - remove = ['fhir-model-4.2.3.jar':'*'] -} - apply from: '../maven.gradle' \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 091eeed08..02a25c99a 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -8,6 +8,7 @@ buildscript { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' + classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' } } @@ -171,20 +172,8 @@ android { } packagingOptions { - exclude 'META-INF/DEPENDENCIES.txt' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE.md' - exclude 'META-INF/LICENSE.md' - exclude 'META-INF/DEPENDENCIES.md' - exclude 'META-INF/DEPENDENCIES' - exclude 'META-INF/notice.txt' - exclude 'META-INF/license.txt' - exclude 'META-INF/dependencies.txt' - exclude 'META-INF/LGPL2.1' + exclude 'META-INF/*' exclude 'LICENSE.txt' - exclude 'META-INF/LICENSE.md' - exclude 'META-INF/NOTICE.md' } testOptions { @@ -307,7 +296,6 @@ dependencies { } implementation 'com.flurry.android:analytics:11.6.0@aar' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'org.smartregister:opensrp-plan-evaluator:1.0.0-SNAPSHOT' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' @@ -347,7 +335,8 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea ]) } + jarJar { // Dependencies and related JarJar rules - remove = ['fhir-model-4.2.3.jar': '*'] + remove = ['fhir-model-4.2.3.jar': 'com.ibm.fhir.model.visitor.CopyingVisitor*'] } \ No newline at end of file From 36075bdf7e5c7c4c67e7f93b92ba7f957c2e66ca Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 9 Dec 2020 15:02:50 +0300 Subject: [PATCH 072/302] :construction: Updating the language --- opensrp-anc/build.gradle | 2 +- .../activity/BaseHomeRegisterActivity.java | 21 +------------------ .../anc/library/fragment/MeFragment.java | 4 ++-- reference-app/build.gradle | 4 ++-- .../anc/application/AncApplication.java | 5 ++--- 5 files changed, 8 insertions(+), 28 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 20c79f93b..8eb9ebddb 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.2002-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2005-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 628cb5f1c..cfb70dac6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -24,8 +24,6 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; -import org.json.JSONArray; -import org.json.JSONException; import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.anc.library.AncLibrary; @@ -78,7 +76,6 @@ public class BaseHomeRegisterActivity extends BaseRegisterActivity implements Re private boolean isLibrary = false; private String advancedSearchQrText = ""; private HashMap advancedSearchFormData = new HashMap<>(); - private String globalAncId = null; @Override protected void onCreate(Bundle savedInstanceState) { @@ -245,11 +242,7 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent JSONObject form = new JSONObject(jsonString); switch (form.getString(ANCJsonFormUtils.ENCOUNTER_TYPE)) { case ConstantsUtils.EventTypeUtils.REGISTRATION: - String ancId = getAncId(jsonString); - if (StringUtils.isAllEmpty(globalAncId) || !ancId.equalsIgnoreCase(globalAncId)) { - ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); - globalAncId = ancId; - } + ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); break; case ConstantsUtils.EventTypeUtils.CLOSE: ((RegisterContract.Presenter) presenter).closeAncRecord(jsonString); @@ -274,18 +267,6 @@ protected void onActivityResultExtended(int requestCode, int resultCode, Intent } } - private String getAncId(String jsonString) { - String ancId = null; - try { - JSONArray array = ANCJsonFormUtils.getSingleStepFormfields(new JSONObject(jsonString)); - JSONObject jsonObject = ANCJsonFormUtils.getFieldJSONObject(array, "anc_id"); - ancId = jsonObject.optString("value"); - } catch (JSONException jsonException) { - Timber.e(jsonException); - } - return ancId; - } - @Override public void onResume() { super.onResume(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index fd3e52d6e..28a842420 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -165,9 +165,9 @@ private String getFullLanguage(Locale locale) { return StringUtils.isNotEmpty(locale.getCountry()) ? locale.getLanguage() + "_" + locale.getCountry() : locale.getLanguage(); } - private void addLanguages() {/* + private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); - locales.put(getString(R.string.french_language), Locale.FRENCH);*/ + locales.put(getString(R.string.french_language), Locale.FRENCH); locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 02a25c99a..999be11c0 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -144,7 +144,7 @@ android { buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '2' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" - buildConfigField "boolean", "TIME_CHECK", "true" + buildConfigField "boolean", "TIME_CHECK", "false" buildConfigField "int", "DATA_SYNC_DURATION_MINUTES", '15' buildConfigField "int", "VACCINE_SYNC_PROCESSING_MINUTES", '30' buildConfigField "int", "IMAGE_UPLOAD_MINUTES", '180' @@ -222,7 +222,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.2002-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.2005-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 55103868e..c7ca1b1f8 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -60,6 +60,7 @@ public void onCreate() { CoreLibrary.init(context, new AncSyncConfiguration(), BuildConfig.BUILD_TIMESTAMP); AncLibrary.init(context, BuildConfig.DATABASE_VERSION, new ANCEventBusIndex()); ConfigurableViewsLibrary.init(context); + setDefaultLanguage(); SyncStatusBroadcastReceiver.init(this); TimeChangedBroadcastReceiver.init(this); @@ -67,8 +68,6 @@ public void onCreate() { LocationHelper.init(Utils.ALLOWED_LEVELS, Utils.DEFAULT_LOCATION_LEVEL); Fabric.with(this, new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build()); - setDefaultLanguage(); - //init Job Manager JobManager.create(this).addJobCreator(new AncJobCreator()); @@ -88,7 +87,7 @@ public void onCreate() { private void setDefaultLanguage() { try { - Utils.saveLanguage(new Locale("pt").getLanguage()); + Utils.saveLanguage("en"); } catch (Exception e) { Timber.e(e, " --> saveLanguage"); } From 4f8812a6ea9b678349ba616f295b0d3e77215371 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 9 Dec 2020 15:09:43 +0300 Subject: [PATCH 073/302] :construction: update to remove dublicating of clients records --- .../anc/library/activity/BaseHomeRegisterActivity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index cfb70dac6..5c603169d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -209,7 +209,6 @@ public void startFormActivity(JSONObject form) { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { if (data != null) { Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); From f738b927e3eda3c38dcb62e753716b9434009eec Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 11 Feb 2021 12:03:41 +0300 Subject: [PATCH 074/302] :construction: Updating the assets i.e json files, property files, yaml files --- opensrp-anc/build.gradle | 2 +- .../json.form/anc_counselling_treatment.json | 1421 +++++++---------- .../assets/json.form/anc_physical_exam.json | 310 +++- .../main/assets/json.form/anc_profile.json | 263 +-- .../main/assets/json.form/anc_register.json | 97 ++ .../activity/ContactJsonFormActivity.java | 2 +- .../activity/EditJsonFormActivity.java | 2 +- .../src/main/resources/anc_profile.properties | 67 +- .../main/resources/anc_register.properties | 5 + reference-app/build.gradle | 4 +- .../anc/application/AncApplication.java | 6 +- 11 files changed, 1193 insertions(+), 986 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 8eb9ebddb..35eaf7912 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -163,7 +163,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.1.4001-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json index 1b0b25592..4bb9d105f 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json +++ b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json @@ -18,11 +18,6 @@ "tt3_date", "tt1_date_done", "tt2_date_done", - "hepb1_date", - "hepb2_date", - "hepb3_date", - "hepb1_date_done", - "hepb2_date_done", "deworm", "flu_date", "hepb_positive" @@ -3495,60 +3490,130 @@ "label_text_style": "bold", "options": [ { - "key": "oral_contraceptive", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text}}", + "key": "none", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.none.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "cu_iud", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.cu_iud.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "injectable", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.injectable.text}}", + "key": "lng_iud", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.lng_iud.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "implant", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.implant.text}}", + "key": "etg_implant", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.etg_implant.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "159589AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "iud", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.iud.text}}", + "key": "lng_implant", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.lng_implant.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "vaginal_ring", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text}}", + "key": "dmpa_im", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.dmpa_im.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "162473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "tubal_ligation", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text}}", + "key": "dmpa_sc", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.dmpa_sc.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1472AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "sterilization", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.sterilization.text}}", + "key": "net_en", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.net_en.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "none", - "text": "{{anc_counselling_treatment.step7.family_planning_type.options.none.text}}", + "key": "pop", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.pop.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "coc", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.coc.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "combined_patch", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.combined_patch.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "combined_ring", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.combined_ring.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "pvr", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.pvr.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "lam", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.lam.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "male_condoms", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.male_condoms.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "female_condoms", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.female_condoms.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "male_sterilization", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.male_sterilization.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" + }, + { + "key": "female_sterilization", + "text": "{{anc_counselling_treatment.step7.family_planning_type.options.female_sterilization.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" } ], "relevance": { @@ -3599,248 +3664,478 @@ "next": "step9", "fields": [ { - "key": "ipv_enquiry", + "key": "ipv_support", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165352AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "", "type": "native_radio", - "label": "{{anc_counselling_treatment.step8.ipv_enquiry.label}}", + "label": "{{anc_counselling_treatment.step8.ipv_support.label}}", + "label_info_text": "{{anc_counselling_treatment.step8.ipv_support.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step8.ipv_support.label_info_title}}", "label_text_style": "bold", "options": [ { - "key": "done", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry.options.done.text}}", + "key": "yes", + "text": "{{anc_counselling_treatment.step8.ipv_support.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "not_done", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text}}", + "key": "no", + "text": "{{anc_counselling_treatment.step8.ipv_support.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" } ], "v_required": { "value": true, - "err": "{{anc_counselling_treatment.step8.ipv_enquiry.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } + "err": "{{anc_counselling_treatment.step8.ipv_support.v_required.err}}" } }, { - "key": "ipv_enquiry_notdone", + "key": "ipv_support_notdone", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165353AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "", + "openmrs_entity_id": "", "type": "native_radio", - "label": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.label}}", - "hint": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.hint}}", + "label": "{{anc_counselling_treatment.step8.ipv_support_notdone.label}}", "label_text_style": "bold", "options": [ { - "key": "referred_instead", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text}}", + "key": "referred", + "text": "{{anc_counselling_treatment.step8.ipv_support_notdone.options.referred.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" + }, + { + "key": "provider_unavailable", + "text": "{{anc_counselling_treatment.step8.ipv_support_notdone.options.provider_unavailable.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "space_unavailable", + "text": "{{anc_counselling_treatment.step8.ipv_support_notdone.options.space_unavailable.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "confidentiality", + "text": "{{anc_counselling_treatment.step8.ipv_support_notdone.options.confidentiality.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" }, { "key": "other", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text}}", + "text": "{{anc_counselling_treatment.step8.ipv_support_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "relevance": { - "step8:ipv_enquiry": { - "type": "string", - "ex": "equalTo(., \"not_done\")" + "openmrs_entity_id": "" } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err}}" - } + ] }, { - "key": "ipv_enquiry_notdone_other", - "openmrs_entity_parent": "165353AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "ipv_support_notdone_other", + "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "", "type": "edit_text", - "hint": "{{anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint}}", + "hint": "{{anc_counselling_treatment.step8.ipv_support_notdone_other.hint}}", "edit_type": "name", "relevance": { - "step8:ipv_enquiry_notdone": { - "type": "string", - "ex": "equalTo(., \"other\")" + "step8:ipv_support_notdone": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] } } }, { - "key": "ipv_enquiry_results", + "key": "ipv_care", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165354AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step8.ipv_enquiry_results.label}}", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "type": "check_box", + "label": "{{anc_counselling_treatment.step8.ipv_care.label}}", "label_text_style": "bold", + "exclusive": [ + "no_action" + ], "options": [ { - "key": "treated", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text}}", + "key": "no_action", + "text": "{{anc_counselling_treatment.step8.ipv_care.options.no_action.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1185AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "referred", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text}}", + "key": "safety_assessment", + "text": "{{anc_counselling_treatment.step8.ipv_care.options.safety_assessment.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "no_action", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text}}", + "key": "mental_health_care", + "text": "{{anc_counselling_treatment.step8.ipv_care.options.mental_health_care.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "other", - "text": "{{anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text}}", + "key": "care_other_symptoms", + "text": "{{anc_counselling_treatment.step8.ipv_care.options.care_other_symptoms.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err}}" - }, - "relevance": { - "step8:ipv_enquiry": { - "type": "string", - "ex": "equalTo(., \"done\")" + "openmrs_entity_id": "" + }, + { + "key": "referred", + "text": "{{anc_counselling_treatment.step8.ipv_care.options.referred.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" } - } + ] }, { - "key": "ipv_refer_toaster", + "key": "phys_violence_worse", "openmrs_entity_parent": "", - "openmrs_entity": "", + "openmrs_entity": "concept", "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_counselling_treatment.step8.ipv_refer_toaster.text}}", - "toaster_info_text": "{{anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } + "type": "native_radio", + "label": "{{anc_counselling_treatment.step8.phys_violence_worse.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_counselling_treatment.step8.phys_violence_worse.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_counselling_treatment.step8.phys_violence_worse.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" } - } - } - ] - }, - "step9": { - "title": "{{anc_counselling_treatment.step9.title}}", - "next": "step10", - "fields": [ + ] + }, { - "key": "ifa_high_prev", - "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "used_weapon", + "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "", "type": "native_radio", - "label": "{{anc_counselling_treatment.step9.ifa_high_prev.label}}", - "label_info_text": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_text}}", - "label_info_title": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_title}}", + "label": "{{anc_counselling_treatment.step8.used_weapon.label}}", "label_text_style": "bold", "options": [ { - "key": "done", - "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.done.text}}", + "key": "yes", + "text": "{{anc_counselling_treatment.step8.used_weapon.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "not_done", - "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text}}", + "key": "no", + "text": "{{anc_counselling_treatment.step8.used_weapon.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step9.ifa_high_prev.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } + "openmrs_entity_id": "" } - } + ] }, { - "key": "ifa_high_prev_notdone", - "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "strangle", + "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "", - "type": "check_box", - "label": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.label}}", - "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.hint}}", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_counselling_treatment.step8.strangle.label}}", "label_text_style": "bold", "options": [ { - "key": "referred_instead", - "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text}}", + "key": "yes", + "text": "{{anc_counselling_treatment.step8.strangle.options.yes.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "other", - "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text}}", + "key": "no", + "text": "{{anc_counselling_treatment.step8.strangle.options.no.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "relevance": { - "step9:ifa_high_prev": { - "type": "string", - "ex": "equalTo(., \"not_done\")" + "openmrs_entity_id": "" } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err}}" - } + ] }, { - "key": "ifa_high_prev_notdone_other", - "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "beaten", + "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint}}", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_counselling_treatment.step8.beaten.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_counselling_treatment.step8.beaten.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_counselling_treatment.step8.beaten.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + } + ] + }, + { + "key": "jealous", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_counselling_treatment.step8.jealous.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_counselling_treatment.step8.jealous.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_counselling_treatment.step8.jealous.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + } + ] + }, + { + "key": "believe_kill", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_counselling_treatment.step8.believe_kill.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_counselling_treatment.step8.believe_kill.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_counselling_treatment.step8.believe_kill.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + } + ] + }, + { + "key": "ipv_referrals", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "type": "check_box", + "label": "{{anc_counselling_treatment.step8.ipv_referrals.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "care_health_facility", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.care_health_facility.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "crisis_intervention", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.crisis_intervention.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "police", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.police.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "shelter", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.shelter.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "legal_aid", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.legal_aid.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "child_protection", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.child_protection.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "livelihood_support", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.livelihood_support.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "other", + "text": "{{anc_counselling_treatment.step8.ipv_referrals.options.other.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + } + ] + }, + { + "key": "ipv_referrals_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_counselling_treatment.step8.ipv_referrals_other.hint}}", + "edit_type": "name", + "relevance": { + "step8:ipv_referrals": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + } + ] + }, + "step9": { + "title": "{{anc_counselling_treatment.step9.title}}", + "next": "step10", + "fields": [ + { + "key": "ifa_high_prev", + "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "165345AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_counselling_treatment.step9.ifa_high_prev.label}}", + "label_info_text": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step9.ifa_high_prev.label_info_title}}", + "label_text_style": "bold", + "options": [ + { + "key": "done", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.done.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "not_done", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_counselling_treatment.step9.ifa_high_prev.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } + }, + { + "key": "ifa_high_prev_notdone", + "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "165346AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "", + "type": "check_box", + "label": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.label}}", + "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.hint}}", + "label_text_style": "bold", + "options": [ + { + "key": "referred_instead", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "other", + "text": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "relevance": { + "step9:ifa_high_prev": { + "type": "string", + "ex": "equalTo(., \"not_done\")" + } + }, + "v_required": { + "value": true, + "err": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err}}" + } + }, + { + "key": "ifa_high_prev_notdone_other", + "openmrs_entity_parent": "165355AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "165427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint}}", "edit_type": "name", "relevance": { "step9:ifa_high_prev_notdone": { @@ -4529,470 +4824,17 @@ "relevance": { "rules-engine": { "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "iptp_sp3_dose_number", - "openmrs_entity_parent": "1591AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "165358AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "iptp_sp_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.text}}", - "toaster_info_text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "iptp_sp_notdone", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165359AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "check_box", - "label": "{{anc_counselling_treatment.step10.iptp_sp_notdone.label}}", - "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone.hint}}", - "label_text_style": "bold", - "options": [ - { - "key": "referred_instead", - "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "stock_out", - "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "expired", - "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other", - "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "iptp_sp_notdone_other", - "openmrs_entity_parent": "165359AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone_other.hint}}", - "edit_type": "name", - "relevance": { - "step10:iptp_sp_notdone": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - }, - { - "key": "sp", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "malaria_counsel", - "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step10.malaria_counsel.label}}", - "label_info_text": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_text}}", - "label_info_title": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_title}}", - "label_text_style": "bold", - "options": [ - { - "key": "done", - "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.done.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "not_done", - "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.not_done.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "malaria_counsel_notdone", - "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.label}}", - "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.hint}}", - "label_text_style": "bold", - "options": [ - { - "key": "referred_instead", - "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other", - "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "relevance": { - "step10:malaria_counsel": { - "type": "string", - "ex": "equalTo(., \"not_done\")" - } - } - }, - { - "key": "malaria_counsel_notdone_other", - "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint}}", - "edit_type": "name", - "relevance": { - "step10:malaria_counsel_notdone": { - "type": "string", - "ex": "equalTo(., \"other\")" - } - } - } - ] - }, - "step11": { - "title": "{{anc_counselling_treatment.step11.title}}", - "next": "step12", - "fields": [ - { - "key": "tt1_date", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.tt1_date.label}}", - "label_info_text": "{{anc_counselling_treatment.step11.tt1_date.label_info_text}}", - "label_text_style": "bold", - "options": [ - { - "key": "done_today", - "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_today.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_earlier.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "not_done", - "text": "{{anc_counselling_treatment.step11.tt1_date.options.not_done.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt1_date.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "tt1_dose_number", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "tt1_date_done_date_today_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#000000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "tt1_date_done", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.tt1_date_done.hint}}", - "expanded": "false", - "max_date": "today", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt1_date_done.v_required.err}}" - } - }, - { - "key": "tt2_date", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.tt2_date.label}}", - "label_info_text": "{{anc_counselling_treatment.step11.tt2_date.label_info_text}}", - "label_info_title": "{{anc_counselling_treatment.step11.tt2_date.label_info_title}}", - "label_text_style": "bold", - "options": [ - { - "key": "done_today", - "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_today.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_earlier.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "not_done", - "text": "{{anc_counselling_treatment.step11.tt2_date.options.not_done.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt2_date.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "tt2_dose_number", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "tt2_date_done_date_today_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#000000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "tt2_date_done", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.tt2_date_done.hint}}", - "expanded": "false", - "max_date": "today", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt2_date_done.v_required.err}}" - } - }, - { - "key": "tt3_date", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.tt3_date.label}}", - "label_info_text": "{{anc_counselling_treatment.step11.tt3_date.label_info_text}}", - "label_info_title": "{{anc_counselling_treatment.step11.tt3_date.label_info_title}}", - "label_text_style": "bold", - "options": [ - { - "key": "done_today", - "text": "{{anc_counselling_treatment.step11.tt3_date.options.done_today.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.tt3_date.options.done_earlier.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "not_done", - "text": "{{anc_counselling_treatment.step11.tt3_date.options.not_done.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt3_date.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "tt3_dose_number", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" + "rules-file": "ct_relevance_rules.yml" } } } }, { - "key": "tt3_date_done_date_today_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "key": "iptp_sp3_dose_number", + "openmrs_entity_parent": "1591AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "165358AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "hidden", - "label_text_style": "bold", - "text_color": "#000000", "calculation": { "rules-engine": { "ex-rules": { @@ -5002,75 +4844,62 @@ } }, { - "key": "tt3_date_done", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.tt3_date_done.hint}}", - "expanded": "false", - "max_date": "today", + "key": "iptp_sp_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.text}}", + "toaster_info_text": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title}}", + "toaster_type": "info", "relevance": { "rules-engine": { "ex-rules": { "rules-file": "ct_relevance_rules.yml" } } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt3_date_done.v_required.err}}" } }, { - "key": "tt_dose_notdone", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "iptp_sp_notdone", + "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.tt_dose_notdone.label}}", + "openmrs_entity_id": "165359AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "check_box", + "label": "{{anc_counselling_treatment.step10.iptp_sp_notdone.label}}", + "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone.hint}}", "label_text_style": "bold", "options": [ { - "key": "vaccine_available", - "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "woman_is_ill", - "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text}}", + "key": "referred_instead", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "160585AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "woman_refused", - "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text}}", + "key": "stock_out", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "allergies", - "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text}}", + "key": "expired", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.other.text}}", + "text": "{{anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.tt_dose_notdone.v_required.err}}" - }, "relevance": { "rules-engine": { "ex-rules": { @@ -5080,57 +4909,60 @@ } }, { - "key": "tt_dose_notdone_other", - "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "iptp_sp_notdone_other", + "openmrs_entity_parent": "165359AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", - "openmrs_entity_id": "165440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "{{anc_counselling_treatment.step11.tt_dose_notdone_other.hint}}", + "hint": "{{anc_counselling_treatment.step10.iptp_sp_notdone_other.hint}}", "edit_type": "name", "relevance": { - "step11:tt_dose_notdone": { - "type": "string", - "ex": "equalTo(., \"other\")" + "step10:iptp_sp_notdone": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] } } }, { - "key": "woman_immunised_toaster", + "key": "sp", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_counselling_treatment.step11.woman_immunised_toaster.text}}", - "toaster_type": "positive", - "relevance": { + "type": "hidden", + "calculation": { "rules-engine": { "ex-rules": { - "rules-file": "ct_relevance_rules.yml" + "rules-file": "ct_calculation_rules.yml" } } } }, { - "key": "hepb_negative_note", - "openmrs_entity_parent": "165363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "malaria_counsel", + "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "165310AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.hepb_negative_note.label}}", - "label_info_text": "{{anc_counselling_treatment.step11.hepb_negative_note.label_info_text}}", - "label_info_title": "{{anc_counselling_treatment.step11.hepb_negative_note.label_info_title}}", + "label": "{{anc_counselling_treatment.step10.malaria_counsel.label}}", + "label_info_text": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step10.malaria_counsel.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done", - "text": "{{anc_counselling_treatment.step11.hepb_negative_note.options.done.text}}", + "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "{{anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text}}", + "text": "{{anc_counselling_treatment.step10.malaria_counsel.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5145,125 +4977,86 @@ } }, { - "key": "hepb1_date", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "malaria_counsel_notdone", + "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", - "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_id": "165342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "", "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.hepb1_date.label}}", + "label": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.label}}", + "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.hint}}", "label_text_style": "bold", "options": [ { - "key": "done_today", - "text": "{{anc_counselling_treatment.step11.hepb1_date.options.done_today.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text}}", + "key": "referred_instead", + "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "1648AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "not_done", - "text": "{{anc_counselling_treatment.step11.hepb1_date.options.not_done.text}}", + "key": "other", + "text": "{{anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.hepb1_date.v_required.err}}" - }, "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, - { - "key": "hepb1_dose_number", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } - } - } - }, - { - "key": "hepb1_date_done_date_today_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#000000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_calculation_rules.yml" - } + "step10:malaria_counsel": { + "type": "string", + "ex": "equalTo(., \"not_done\")" } } }, { - "key": "hepb1_date_done", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "malaria_counsel_notdone_other", + "openmrs_entity_parent": "164884AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", - "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.hepb1_date_done.hint}}", - "expanded": "false", - "max_date": "today", + "openmrs_entity_id": "165426AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint}}", + "edit_type": "name", "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } + "step10:malaria_counsel_notdone": { + "type": "string", + "ex": "equalTo(., \"other\")" } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.hepb1_date_done.v_required.err}}" } - }, + } + ] + }, + "step11": { + "title": "{{anc_counselling_treatment.step11.title}}", + "next": "step12", + "fields": [ { - "key": "hepb2_date", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt1_date", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.hepb2_date.label}}", + "label": "{{anc_counselling_treatment.step11.tt1_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.tt1_date.label_info_text}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "{{anc_counselling_treatment.step11.hepb2_date.options.done_today.text}}", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text}}", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "{{anc_counselling_treatment.step11.hepb2_date.options.not_done.text}}", + "text": "{{anc_counselling_treatment.step11.tt1_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5271,7 +5064,7 @@ ], "v_required": { "value": true, - "err": "{{anc_counselling_treatment.step11.hepb2_date.v_required.err}}" + "err": "{{anc_counselling_treatment.step11.tt1_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5282,8 +5075,8 @@ } }, { - "key": "hepb2_dose_number", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt1_dose_number", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "hidden", @@ -5296,7 +5089,7 @@ } }, { - "key": "hepb2_date_done_date_today_hidden", + "key": "tt1_date_done_date_today_hidden", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", @@ -5312,12 +5105,12 @@ } }, { - "key": "hepb2_date_done", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt1_date_done", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.hepb2_date_done.hint}}", + "hint": "{{anc_counselling_treatment.step11.tt1_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5329,35 +5122,37 @@ }, "v_required": { "value": true, - "err": "{{anc_counselling_treatment.step11.hepb2_date_done.v_required.err}}" + "err": "{{anc_counselling_treatment.step11.tt1_date_done.v_required.err}}" } }, { - "key": "hepb3_date", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt2_date", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "164464AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.hepb3_date.label}}", + "label": "{{anc_counselling_treatment.step11.tt2_date.label}}", + "label_info_text": "{{anc_counselling_treatment.step11.tt2_date.label_info_text}}", + "label_info_title": "{{anc_counselling_treatment.step11.tt2_date.label_info_title}}", "label_text_style": "bold", "options": [ { "key": "done_today", - "text": "{{anc_counselling_treatment.step11.hepb3_date.options.done_today.text}}", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_today.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "done_earlier", - "text": "{{anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text}}", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.done_earlier.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160699AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "not_done", - "text": "{{anc_counselling_treatment.step11.hepb3_date.options.not_done.text}}", + "text": "{{anc_counselling_treatment.step11.tt2_date.options.not_done.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -5365,7 +5160,7 @@ ], "v_required": { "value": true, - "err": "{{anc_counselling_treatment.step11.hepb3_date.v_required.err}}" + "err": "{{anc_counselling_treatment.step11.tt2_date.v_required.err}}" }, "relevance": { "rules-engine": { @@ -5376,8 +5171,8 @@ } }, { - "key": "hepb3_dose_number", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt2_dose_number", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1418AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "hidden", @@ -5390,7 +5185,7 @@ } }, { - "key": "hepb3_date_done_date_today_hidden", + "key": "tt2_date_done_date_today_hidden", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", @@ -5406,12 +5201,12 @@ } }, { - "key": "hepb3_date_done", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt2_date_done", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "1410AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "date_picker", - "hint": "{{anc_counselling_treatment.step11.hepb3_date_done.hint}}", + "hint": "{{anc_counselling_treatment.step11.tt2_date_done.hint}}", "expanded": "false", "max_date": "today", "relevance": { @@ -5423,97 +5218,81 @@ }, "v_required": { "value": true, - "err": "{{anc_counselling_treatment.step11.hepb3_date_done.v_required.err}}" + "err": "{{anc_counselling_treatment.step11.tt2_date_done.v_required.err}}" } }, { - "key": "hepb_dose_notdone", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt_dose_notdone", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "165362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_counselling_treatment.step11.hepb_dose_notdone.label}}", + "label": "{{anc_counselling_treatment.step11.tt_dose_notdone.label}}", "label_text_style": "bold", "options": [ { "key": "vaccine_available", - "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text}}", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1754AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_is_ill", - "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text}}", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "160585AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "woman_refused", - "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text}}", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "127750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "allergies", - "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text}}", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "141760AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other", - "text": "{{anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text}}", + "text": "{{anc_counselling_treatment.step11.tt_dose_notdone.options.other.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ], + "v_required": { + "value": true, + "err": "{{anc_counselling_treatment.step11.tt_dose_notdone.v_required.err}}" + }, "relevance": { "rules-engine": { "ex-rules": { "rules-file": "ct_relevance_rules.yml" } } - }, - "v_required": { - "value": true, - "err": "{{anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err}}" } }, { - "key": "hepb_dose_notdone_other", - "openmrs_entity_parent": "782AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tt_dose_notdone_other", + "openmrs_entity_parent": "84879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "165440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "hint": "{{anc_counselling_treatment.step11.hepb_dose_notdone_other.hint}}", + "hint": "{{anc_counselling_treatment.step11.tt_dose_notdone_other.hint}}", "edit_type": "name", "relevance": { - "step11:hepb_dose_notdone": { + "step11:tt_dose_notdone": { "type": "string", "ex": "equalTo(., \"other\")" } } }, - { - "key": "woman_immunised_hep_b_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text}}", - "toaster_type": "positive", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "ct_relevance_rules.yml" - } - } - } - }, { "key": "flu_date", "openmrs_entity_parent": "78032AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 772cda625..9b5f18d72 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -1963,6 +1963,314 @@ "ex": "equalTo(., \"yes\")" } } + }, + { + "key": "ipv_physical_signs_symptoms", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "check_box", + "label": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.label}}", + "label_info_text": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.label_info_text}}", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "none" + ], + "options": [ + { + "key": "none", + "text": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.options.none.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "abdomen_injury", + "text": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.options.abdomen_injury.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "other_injury", + "text": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.options.other_injury.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "other", + "text": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms.options.other.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + } + ] + }, + { + "key": "ipv_physical_signs_symptoms_injury_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms_injury_other.hint}}", + "edit_type": "name", + "relevance": { + "step3:ipv_physical_signs_symptoms": { + "ex-checkbox": [ + { + "or": [ + "other_injury" + ] + } + ] + } + } + }, + { + "key": "ipv_physical_signs_symptoms_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_physical_exam.step3.ipv_physical_signs_symptoms_other.hint}}", + "edit_type": "name", + "relevance": { + "step3:ipv_physical_signs_symptoms": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "key": "toaster31", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_physical_exam.step3.toaster31.text}}", + "text_color": "#D56900", + "toaster_type": "warning", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, + { + "key": "ipv_clinical_enquiry", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_physical_exam.step3.ipv_clinical_enquiry.label}}", + "label_info_text": "{{anc_physical_exam.step3.ipv_clinical_enquiry.label_info_text}}", + "label_text_style": "bold", + "text_color": "#000000", + "options": [ + { + "key": "yes", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry.options.yes.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "no", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry.options.no.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + } + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, + { + "key": "ipv_clinical_enquiry_not_done_reason", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.label}}", + "label_text_style": "bold", + "text_color": "#000000", + "options": [ + { + "key": "referred", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.referred.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "provider_unavailable", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.provider_unavailable.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "space_unavailable", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.space_unavailable.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "confidentiality", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.confidentiality.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "other", + "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.other.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + } + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, + { + "key": "ipv_clinical_enquiry_not_done_reason_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason_other.hint}}", + "edit_type": "name", + "relevance": { + "step3:ipv_clinical_enquiry_not_done_reason": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "key": "ipv_subject", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_physical_exam.step3.ipv_subject.label}}", + "label_info_text": "{{anc_physical_exam.step3.ipv_subject.label_info_text}}", + "label_text_style": "bold", + "text_color": "#000000", + "options": [ + { + "key": "yes", + "text": "{{anc_physical_exam.step3.ipv_subject.options.yes.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "no", + "text": "{{anc_physical_exam.step3.ipv_subject.options.no.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + } + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + }, + "v_required": { + "value": "true", + "err": "{{anc_physical_exam.step3.ipv_subject.v_required.err}}" + } + }, + { + "key": "ipv_subject_violence_types", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "check_box", + "label": "{{anc_physical_exam.step3.ipv_subject_violence_types.label}}", + "label_info_text": "{{anc_physical_exam.step3.ipv_subject_violence_types.label_info_text}}", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "none" + ], + "options": [ + { + "key": "phys_violence", + "text": "{{anc_physical_exam.step3.ipv_subject_violence_types.options.phys_violence.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "sexual_violence", + "text": "{{anc_physical_exam.step3.ipv_subject_violence_types.options.sexual_violence.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "emotional_abuse", + "text": "{{anc_physical_exam.step3.ipv_subject_violence_types.options.emotional_abuse.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "family_member_violence", + "text": "{{anc_physical_exam.step3.ipv_subject_violence_types.options.family_member_violence.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + } + ] } ] }, @@ -2118,7 +2426,7 @@ }, "v_numeric_integer": { "value": "true", - "err": "Enter a valid sfh" + "err": "Enter a valid number" }, "relevance": { "step4:fetal_heartbeat": { diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index f945b95fc..b598a6493 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -5,7 +5,7 @@ "encounter_type": "Profile", "entity_id": "", "relational_id": "", - "form_version": "0.0.1", + "form_version": "0.0.15", "metadata": { "start": { "openmrs_entity_parent": "", @@ -48,7 +48,7 @@ "openmrs_data_type": "phonenumber", "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - "encounter_location": "", + "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", "look_up": { "entity_id": "", "value": "" @@ -83,9 +83,7 @@ "health_conditions_other", "hiv_diagnosis_date", "tt_immun_status", - "hepb_immun_status", "flu_immun_status", - "hepb_immun_status", "medications", "medications_other", "caffeine_intake", @@ -126,7 +124,6 @@ "health_conditions_other", "hiv_diagnosis_date", "tt_immun_status", - "hepb_immun_status", "flu_immun_status", "medications", "medications_other", @@ -148,6 +145,18 @@ "title": "{{anc_profile.step1.title}}", "next": "step2", "fields": [ + { + "key": "headss_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "toaster_notes", + "type": "toaster_notes", + "text": "{{anc_profile.step1.headss_toaster.text}}", + "text_color": "#1199F9", + "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", + "toaster_type": "info" + }, { "key": "educ_level", "openmrs_entity_parent": "", @@ -673,7 +682,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_text": "If LMP is unknown and ultrasound wasn't done or it wasn't done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", "label_info_title": "GA from SFH or abdominal palpation - weeks", "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", "v_required": { @@ -760,7 +769,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" } ], "v_required": { @@ -796,7 +805,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" } ], "v_required": { @@ -832,7 +841,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" } ], "v_required": { @@ -868,7 +877,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" }, { "key": "ultrasound", @@ -876,7 +885,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" } ], "v_required": { @@ -912,7 +921,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" }, { "key": "sfh", @@ -920,7 +929,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" } ], "v_required": { @@ -1535,6 +1544,13 @@ "key": "vacuum_delivery", "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text}}" }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "vacuum", + "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum.text}}" + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2092,6 +2108,27 @@ "key": "cancer", "text": "{{anc_profile.step4.health_conditions.options.cancer.text}}" }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "cancer_other", + "text": "{{anc_profile.step4.health_conditions.options.cancer_other.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "gest_diabetes", + "text": "{{anc_profile.step4.health_conditions.options.gest_diabetes.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "diabetes_other", + "text": "{{anc_profile.step4.health_conditions.options.diabetes_other.text}}" + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2099,6 +2136,13 @@ "key": "diabetes", "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}" }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "diabetes_type2", + "text": "{{anc_profile.step4.health_conditions.options.diabetes_type2.text}}" + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2140,6 +2184,30 @@ "err": "{{anc_profile.step4.health_conditions.v_required.err}}" } }, + { + "key": "health_conditions_cancer_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_profile.step4.health_conditions_cancer_other.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step4.health_conditions_cancer_other.v_required.err}}" + }, + "relevance": { + "step4:health_conditions": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, { "key": "health_conditions_other", "openmrs_entity_parent": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2290,6 +2358,7 @@ "type": "native_radio", "label": "{{anc_profile.step5.tt_immun_status.label}}", "label_text_style": "bold", + "label_info_text": "{{anc_profile.step6.tt_immun_status.label_info_text}}", "multi_relevance": true, "options": [ { @@ -2328,7 +2397,7 @@ }, { "key": "tt_immunisation_toaster", - "openmrs_entity_parent": "", + "openers_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "", "type": "toaster_notes", @@ -2372,103 +2441,6 @@ } } }, - { - "key": "hepb_immun_status", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step5.hepb_immun_status.label}}", - "label_text_style": "bold", - "multi_relevance": true, - "options": [ - { - "key": "3_doses", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "{{anc_profile.step5.hepb_immun_status.options.3_doses.text}}" - }, - { - "key": "incomplete", - "text": "{{anc_profile.step5.hepb_immun_status.options.incomplete.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "not_received", - "text": "{{anc_profile.step5.hepb_immun_status.options.not_received.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "unknown", - "text": "{{anc_profile.step5.hepb_immun_status.options.unknown.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step5.hepb_immun_status.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "hep_b_testing_recommended_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.hep_b_testing_recommended_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "step5:hepb_immun_status": { - "ex-checkbox": [ - { - "or": [ - "incomplete", - "not_received", - "unknown" - ] - } - ] - } - } - }, - { - "key": "fully_hep_b_immunised_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.fully_hep_b_immunised_toaster.text}}", - "text_color": "#000000", - "toaster_type": "positive", - "relevance": { - "step5:hepb_immun_status": { - "ex-checkbox": [ - { - "or": [ - "3_doses" - ] - } - ] - } - } - }, { "key": "flu_immun_status", "openmrs_entity_parent": "", @@ -2723,6 +2695,14 @@ "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" }, + { + "key": "prep_hiv", + "text": "{{anc_profile.step6.medications.options.prep_hiv.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, { "key": "antitussive", "text": "{{anc_profile.step6.medications.options.antitussive.text}}", @@ -2841,7 +2821,7 @@ "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- 2 cups (200 ml) of filtered or commercially brewed coffee\n- 2 small cups (50 ml) of espresso\n- 3 cups (300 ml) of instant coffee\n- 48 pieces (squares) of chocolate\n\nPlease indicate if the woman consumes more than these amounts per day.", + "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", "exclusive": [ "none" ], @@ -2856,23 +2836,23 @@ { "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "more_than_2_small_cups_50_ml_of_espresso", - "text": "{{anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text}}" + "openmrs_entity_id": "", + "key": "tea", + "text": "{{anc_profile.step7.caffeine_intake.options.tea.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165241AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "more_than_3_cups_300ml_of_instant_coffee", - "text": "{{anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text}}" + "openmrs_entity_id": "165242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "more_than_48_pieces_squares_of_chocolate", + "text": "{{anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text}}" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "more_than_48_pieces_squares_of_chocolate", - "text": "{{anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text}}" + "openmrs_entity_id": "", + "key": "soda", + "text": "{{anc_profile.step7.caffeine_intake.options.soda.text}}" }, { "openmrs_entity_parent": "", @@ -2904,8 +2884,8 @@ { "or": [ "commercially_brewed_coffee", - "more_than_2_small_cups_50_ml_of_espresso", - "more_than_3_cups_300ml_of_instant_coffee", + "tea", + "soda", "more_than_48_pieces_squares_of_chocolate" ] } @@ -3365,5 +3345,40 @@ } ] }, - "properties_file_name": "anc_profile" + "properties_file_name": "anc_profile", + "is_new": true, + "client_form_id": 33, + "global": { + "site_ipv_assess": false, + "site_ultrasound": true, + "site_bp_tool": false, + "site_anc_hiv": true, + "pop_hepc": false, + "pop_anaemia_20": true, + "pop_malaria": true, + "pop_syphilis": false, + "pop_hiv_incidence": false, + "pop_low_calcium": false, + "pop_helminth": false, + "pop_vita": true, + "pop_undernourish": true, + "pop_hepb_screening": true, + "pop_anaemia_40": false, + "pop_hepb": false, + "pop_tb": false, + "pop_hiv_prevalence": false, + "gest_age_openmrs": "4", + "urine_glucose": "", + "previous_contact_no": "0", + "hiv_positive": "", + "hiv_test_result": "", + "gdm": "", + "last_contact_date": "", + "hiv_test_partner_result": "", + "contact_no": "1", + "no_of_fetuses": "", + "dm_in_preg": "", + "age": "25", + "bmi": "" + } } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 56de7fd38..ca1523c90 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -98,6 +98,23 @@ "err": "{{anc_register.step1.first_name.v_regex.err}}" } }, + { + "key": "middle_name", + "openmrs_entity_parent": "", + "openmrs_entity": "person", + "openmrs_entity_id": "middle_name", + "type": "edit_text", + "hint": "{{anc_register.step1.middle_name.hint}}", + "edit_type": "name", + "v_required": { + "value": "true", + "err": "{{anc_register.step1.first_name.v_required.err}}" + }, + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_register.step1.first_name.v_regex.err}}" + } + }, { "key": "last_name", "openmrs_entity_parent": "", @@ -278,6 +295,19 @@ "err": "{{anc_register.step1.home_address.v_required.err}}" } }, + { + "key": "village_address", + "openmrs_entity_parent": "", + "openmrs_entity": "person_address", + "openmrs_entity_id": "address2", + "type": "edit_text", + "hint": "{{anc_register.step1.village_address.hint}}", + "edit_type": "name", + "v_required": { + "value": "true", + "err": "{{anc_register.step1.home_address.v_required.err}}" + } + }, { "key": "phone_number", "openmrs_entity_parent": "", @@ -350,6 +380,73 @@ "err": "{{anc_register.step1.alt_phone_number.v_numeric.err}}" } }, + { + "key": "cohabitants", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "label": "{{anc_register.step1.cohabitants.text}}", + "type": "check_box", + "exclusive": [ + "no_one" + ], + "options": [ + { + "key": "parents", + "text": "{{anc_register.step1.cohabitants.options.parents.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "siblings", + "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "dob_unknown", + "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "dob_unknown", + "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "dob_unknown", + "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "no_one", + "text": "{{anc_register.step1.cohabitants.options.no_one.text}}", + "text_size": "18px", + "value": "false", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + } + ] + }, { "key": "next_contact", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index e87f22aee..5566f0a26 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -40,7 +40,7 @@ public class ContactJsonFormActivity extends FormConfigurationJsonFormActivity { protected AncRulesEngineFactory rulesEngineFactory = null; private ProgressDialog progressDialog; private String formName; - private ANCFormUtils ancFormUtils = new ANCFormUtils(); + private final ANCFormUtils ancFormUtils = new ANCFormUtils(); @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java index 4c8a27cac..790e7f0de 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/EditJsonFormActivity.java @@ -9,7 +9,7 @@ public class EditJsonFormActivity extends FormConfigurationJsonFormActivity { @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); setConfirmCloseMessage(getString(R.string.any_changes_you_make)); + super.onCreate(savedInstanceState); } } diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 7668959a4..e1304baba 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -1,11 +1,10 @@ anc_profile.step1.occupation.options.other.text = Other (specify) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 48 pieces (squares) of chocolate +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 12 bars (50 g) of chocolate anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). anc_profile.step2.ultrasound_done.options.no.text = No anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Hep B testing recommended anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required anc_profile.step3.prev_preg_comps_other.hint = Specify @@ -15,8 +14,7 @@ anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to br anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide anc_profile.step2.sfh_gest_age_selection.label = -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine / Crack -anc_profile.step5.hepb_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine anc_profile.step8.partner_hiv_status.label = Partner HIV status anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age @@ -61,7 +59,7 @@ anc_profile.step7.other_substance_use.v_required.err = Please specify other subs anc_profile.step3.c_sections.v_required.err = C-sections is required anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = 3rd or 4th degree tear +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Perineal tear (3rd or 4th degree) anc_profile.step4.allergies.options.folic_acid.text = Folic acid anc_profile.step6.medications.options.other.text = Other (specify) anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs @@ -90,7 +88,6 @@ anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) anc_profile.step1.educ_level.v_required.err = Please specify your education level anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products anc_profile.step3.substances_used.options.other.text = Other (specify) @@ -109,16 +106,16 @@ anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable dru anc_profile.step5.flu_immun_status.options.unknown.text = Unknown anc_profile.step7.alcohol_substance_enquiry.options.no.text = No anc_profile.step4.surgeries.label = Any surgeries? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Seasonal flu dose given +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Fully immunized anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know anc_profile.step5.tt_immun_status.options.unknown.text = Unknown -anc_profile.step5.flu_immun_status.v_required.err = Please select Hep B immunisation status +anc_profile.step5.flu_immun_status.v_required.err = Please select flu immunisation status anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. anc_profile.step1.marital_status.options.divorced.text = Divorced / separated -anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses of TTCV in past 5 years +anc_profile.step5.tt_immun_status.options.3_doses.text = Fully immunized anc_profile.step8.title = Partner's HIV Status anc_profile.step4.allergies.options.iron.text = Iron anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) @@ -134,11 +131,9 @@ anc_profile.step4.allergies.v_required.err = Please select at least one allergy anc_profile.step4.surgeries.options.none.text = None anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV not received -anc_profile.step5.hepb_immun_status.options.unknown.text = Unknown -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps or vacuum delivery +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = No doses +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended -anc_profile.step5.hepb_immun_status.options.not_received.text = Not received anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound anc_profile.step3.substances_used_other.hint = Specify @@ -146,8 +141,8 @@ anc_profile.step7.condom_use.v_required.err = Please select if you use any tobac anc_profile.step6.medications.options.antitussive.text = Antitussive anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) -anc_profile.step5.tt_immun_status.label = TT immunisation status -anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TT immunisation recommended +anc_profile.step5.tt_immun_status.label = TTCV immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TTCV immunisation recommended anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana anc_profile.step4.allergies.options.calcium.text = Calcium anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks @@ -169,19 +164,18 @@ anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation anc_profile.step1.marital_status.label = Marital status anc_profile.step7.title = Woman's Behaviour anc_profile.step4.surgeries_other.hint = Other surgeries -anc_profile.step3.substances_used.options.cocaine.text = Cocaine / Crack +anc_profile.step3.substances_used.options.cocaine.text = Cocaine anc_profile.step1.educ_level.options.primary.text = Primary anc_profile.step4.health_conditions.options.other.text = Other (specify) anc_profile.step6.medications_other.v_required.err = Please specify the Other medications anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling anc_profile.step1.educ_level.options.none.text = None anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Hep B testing is recommended for at risk women who are not already fully immunised against Hep B. anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions anc_profile.step7.alcohol_substance_use.options.none.text = None anc_profile.step7.tobacco_user.options.yes.text = Yes -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups (200 ml) of filtered or commercially brewed coffee +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups of coffee (brewed, filtered, instant or espresso) anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment @@ -193,7 +187,7 @@ anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling -anc_profile.step4.health_conditions.options.diabetes.text = Diabetes +anc_profile.step4.health_conditions.options.diabetes.text = Diabetes, pre-existing type 1 anc_profile.step1.occupation_other.hint = Specify anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. @@ -218,11 +212,10 @@ anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know anc_profile.step6.medications.options.hematinic.text = Hematinic anc_profile.step3.c_sections_label.text = No. of C-sections anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions -anc_profile.step5.hepb_immun_status.options.incomplete.text = Incomplete anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required anc_profile.step4.allergies.options.albendazole.text = Albendazole -anc_profile.step5.tt_immunisation_toaster.text = TT immunisation recommended +anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended anc_profile.step1.educ_level.label = Highest level of school anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes @@ -230,10 +223,9 @@ anc_profile.step4.allergies.options.penicillin.text = Penicillin anc_profile.step1.occupation.options.unemployed.text = Unemployed anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) -anc_profile.step5.hepb_immun_status.label = Hep B immunisation status anc_profile.step1.marital_status.options.widowed.text = Widowed anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? -anc_profile.step4.health_conditions_other.hint = Specify +anc_profile.step4.health_conditions_other.hint = Other health condition - specify anc_profile.step6.medications.options.antivirals.text = Antivirals anc_profile.step6.medications.options.antacids.text = Antacids anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age @@ -254,9 +246,9 @@ anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune anc_profile.step6.medications.options.vitamina.text = Vitamin A anc_profile.step6.medications.options.dont_know.text = Don't know anc_profile.step7.condom_use.options.yes.text = Yes -anc_profile.step4.health_conditions.options.cancer.text = Cancer +anc_profile.step4.health_conditions.options.cancer.text = Cancer – gynaecological anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Seasonal flu dose missing +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = No doses anc_profile.step4.allergies_other.hint = Specify anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling anc_profile.step7.caffeine_intake.hint = Daily caffeine intake @@ -273,25 +265,23 @@ anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past anc_profile.step1.marital_status.options.married.text = Married or living together anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date anc_profile.step7.shs_exposure.options.yes.text = Yes -anc_profile.step5.hep_b_testing_recommended_toaster.text = Hep B testing recommended anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Informal employment (sex worker) +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) anc_profile.step4.allergies.options.mebendazole.text = Mebendazole -anc_profile.step7.condom_use.label = Uses condoms during sex? +anc_profile.step7.condom_use.label = Uses (male or female) condoms during sex? anc_profile.step1.occupation.v_required.err = Please select at least one occupation anc_profile.step6.medications.options.analgesic.text = Analgesic anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits -anc_profile.step5.fully_hep_b_immunised_toaster.text = Woman is fully immunised against Hep B! anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) anc_profile.step8.partner_hiv_status.options.positive.text = Positive anc_profile.step4.allergies.options.ginger.text = Ginger anc_profile.step2.title = Current Pregnancy anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses of TTCV in the past +anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under-immunized anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) @@ -306,7 +296,7 @@ anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the anc_profile.step3.last_live_birth_preterm.options.no.text = No anc_profile.step3.stillbirths_label.v_required.err = Still births is required anc_profile.step4.health_conditions.options.hypertension.text = Hypertension -anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus. +anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole anc_profile.step6.medications.options.thyroid.text = Thyroid medication anc_profile.step1.title = Demographic Info @@ -315,3 +305,18 @@ anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended +anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. +anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? +anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment +anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery +anc_profile.step4.health_conditions.options.cancer_other.text = Cancer – other site (specify) +anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) +anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, other or unspecified +anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 +anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify +anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer +anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1–4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV +anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea +anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink +anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index 072478062..31b969ff8 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -3,6 +3,7 @@ anc_register.step1.reminders.options.no.text = No anc_register.step1.reminders.label = Woman wants to receive reminders during pregnancy anc_register.step1.dob_entered.v_required.err = Please enter the date of birth anc_register.step1.home_address.hint = Home address +anc_register.step1.village_address.hint = Village address anc_register.step1.alt_name.v_regex.err = Please enter a valid VHT name anc_register.step1.anc_id.hint = ANC ID anc_register.step1.alt_phone_number.v_numeric.err = Phone number must be numeric @@ -19,6 +20,7 @@ anc_register.step1.anc_id.v_numeric.err = Please enter a valid ANC ID anc_register.step1.alt_name.hint = Alternate contact name anc_register.step1.home_address.v_required.err = Please enter the woman's home address anc_register.step1.first_name.hint = First name +anc_register.step1.middle_name.hint = Middle name anc_register.step1.alt_phone_number.hint = Alternate contact phone number anc_register.step1.reminders.v_required.err = Please select whether the woman has agreed to receiving reminder notifications anc_register.step1.first_name.v_regex.err = Please enter a valid name @@ -29,3 +31,6 @@ anc_register.step1.last_name.hint = Last name anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number anc_register.step1.dob_entered.duration.label = Age +anc_register.step1.cohabitants.text = Co-habitants +anc_register.step1.cohabitants.options.parents.text = Parents +anc_register.step1.cohabitants.options.no_one.text = No one \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 999be11c0..2d0ea79fd 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -22,7 +22,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 5 -ext.versionPatch = 0 +ext.versionPatch = 1 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion @@ -234,7 +234,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.0.2000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.1.4001-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index c7ca1b1f8..788b11d6b 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -32,8 +32,6 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.receiver.TimeChangedBroadcastReceiver; -import java.util.Locale; - import io.fabric.sdk.android.Fabric; import timber.log.Timber; @@ -193,14 +191,14 @@ public Context getContext() { @Override public void onTimeChanged() { Utils.showToast(this, this.getString(org.smartregister.anc.library.R.string.device_time_changed)); - context.userService().forceRemoteLogin(context.allSharedPreferences().fetchRegisteredANM()); + context.userService().getAllSharedPreferences().saveForceRemoteLogin(true, context.allSharedPreferences().fetchRegisteredANM()); logoutCurrentUser(); } @Override public void onTimeZoneChanged() { Utils.showToast(this, this.getString(org.smartregister.anc.library.R.string.device_timezone_changed)); - context.userService().forceRemoteLogin(context.allSharedPreferences().fetchRegisteredANM()); + context.userService().getAllSharedPreferences().saveForceRemoteLogin(true, context.allSharedPreferences().fetchRegisteredANM()); logoutCurrentUser(); } } From 64fa89d17398e522be84e3bd8f12448386e00cad Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Feb 2021 10:32:53 +0300 Subject: [PATCH 075/302] :construction: Update and fix registration form force close --- .../main/assets/json.form/anc_register.json | 47 ++++--------------- .../main/resources/anc_register.properties | 7 ++- 2 files changed, 15 insertions(+), 39 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index ca1523c90..a20737d98 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -98,23 +98,6 @@ "err": "{{anc_register.step1.first_name.v_regex.err}}" } }, - { - "key": "middle_name", - "openmrs_entity_parent": "", - "openmrs_entity": "person", - "openmrs_entity_id": "middle_name", - "type": "edit_text", - "hint": "{{anc_register.step1.middle_name.hint}}", - "edit_type": "name", - "v_required": { - "value": "true", - "err": "{{anc_register.step1.first_name.v_required.err}}" - }, - "v_regex": { - "value": "[A-Za-z\\s\\.\\-]*", - "err": "{{anc_register.step1.first_name.v_regex.err}}" - } - }, { "key": "last_name", "openmrs_entity_parent": "", @@ -295,19 +278,6 @@ "err": "{{anc_register.step1.home_address.v_required.err}}" } }, - { - "key": "village_address", - "openmrs_entity_parent": "", - "openmrs_entity": "person_address", - "openmrs_entity_id": "address2", - "type": "edit_text", - "hint": "{{anc_register.step1.village_address.hint}}", - "edit_type": "name", - "v_required": { - "value": "true", - "err": "{{anc_register.step1.home_address.v_required.err}}" - } - }, { "key": "phone_number", "openmrs_entity_parent": "", @@ -385,7 +355,8 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "", - "label": "{{anc_register.step1.cohabitants.text}}", + "label":"{{anc_register.step1.cohabitants.label}}", + "label_info_text": "{{anc_register.step1.cohabitants.label_info_text}}", "type": "check_box", "exclusive": [ "no_one" @@ -402,7 +373,7 @@ }, { "key": "siblings", - "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "text": "{{anc_register.step1.cohabitants.options.siblings.text}}", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", @@ -410,8 +381,8 @@ "openmrs_entity_id": "" }, { - "key": "dob_unknown", - "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "key": "extended_family", + "text": "{{anc_register.step1.cohabitants.options.extended_family.text}}", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", @@ -419,8 +390,8 @@ "openmrs_entity_id": "" }, { - "key": "dob_unknown", - "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "key": "partner", + "text": "{{anc_register.step1.cohabitants.options.partner.text}}", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", @@ -428,8 +399,8 @@ "openmrs_entity_id": "" }, { - "key": "dob_unknown", - "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "key": "friends", + "text": "{{anc_register.step1.cohabitants.options.friends.text}}", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index 31b969ff8..cd93a7997 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -31,6 +31,11 @@ anc_register.step1.last_name.hint = Last name anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number anc_register.step1.dob_entered.duration.label = Age -anc_register.step1.cohabitants.text = Co-habitants +anc_register.step1.cohabitants.label = Co-habitants +anc_register.step1.cohabitants.label_info_text = Co-habitants anc_register.step1.cohabitants.options.parents.text = Parents +anc_register.step1.cohabitants.options.siblings.text = Siblings +anc_register.step1.cohabitants.options.extended_family.text = Extended Family +anc_register.step1.cohabitants.options.partner.text = Partner +anc_register.step1.cohabitants.options.friends.text = Friends anc_register.step1.cohabitants.options.no_one.text = No one \ No newline at end of file From 8592184ec98555459030c40d4127a661d015f842 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Feb 2021 14:25:12 +0300 Subject: [PATCH 076/302] :construction: Update the breaking json forms --- opensrp-anc/build.gradle | 4 +- .../assets/json.form/anc_physical_exam.json | 22 +- .../main/assets/json.form/anc_profile.json | 42 +-- .../json.form/anc_symptoms_follow_up.json | 284 ++++++++++++++++-- .../main/assets/json.form/anc_test_tasks.json | 3 +- .../anc_counselling_treatment.properties | 272 +++++++++-------- .../resources/anc_physical_exam.properties | 54 ++-- .../src/main/resources/anc_profile.properties | 11 +- .../anc_symptoms_follow_up.properties | 40 ++- reference-app/build.gradle | 4 +- 10 files changed, 493 insertions(+), 243 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 35eaf7912..29b610b7a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.2005-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -163,7 +163,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.1.4001-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 9b5f18d72..fbdadf89a 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -101,7 +101,7 @@ }, "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step1.height.v_numeric.err}}" + "err": "" }, "v_min": { "value": "100", @@ -163,7 +163,7 @@ }, "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step1.pregest_weight.v_numeric.err}}" + "err": "" }, "v_min": { "value": "30", @@ -223,7 +223,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step1.current_weight.v_numeric.err}}" + "err": "" }, "v_min": { "value": "30", @@ -489,7 +489,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step2.bp_systolic.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", @@ -565,7 +565,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step2.bp_diastolic.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", @@ -716,7 +716,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", @@ -773,7 +773,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", @@ -1134,7 +1134,7 @@ }, "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step3.body_temp.v_numeric.err}}" + "err": "" }, "v_min": { "value": "35", @@ -1206,7 +1206,7 @@ }, "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step3.body_temp_repeat.v_numeric.err}}" + "err": "" }, "v_min": { "value": "35", @@ -1266,7 +1266,7 @@ }, "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step3.pulse_rate.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", @@ -1330,7 +1330,7 @@ "edit_type": "number", "v_numeric": { "value": "true", - "err": "{{anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err}}" + "err": "" }, "v_min": { "value": "20", diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index b598a6493..a800d9a4b 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -761,7 +761,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_profile.step2.lmp_gest_age_selection.label}}", "options": [ { "key": "lmp", @@ -797,7 +796,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_profile.step2.ultrasound_gest_age_selection.label}}", "options": [ { "key": "ultrasound", @@ -833,7 +831,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_profile.step2.sfh_gest_age_selection.label}}", "options": [ { "key": "sfh", @@ -869,7 +866,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.label}}", "options": [ { "key": "lmp", @@ -913,7 +909,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "native_radio", - "label": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.label}}", "options": [ { "key": "ultrasound", @@ -3345,40 +3340,5 @@ } ] }, - "properties_file_name": "anc_profile", - "is_new": true, - "client_form_id": 33, - "global": { - "site_ipv_assess": false, - "site_ultrasound": true, - "site_bp_tool": false, - "site_anc_hiv": true, - "pop_hepc": false, - "pop_anaemia_20": true, - "pop_malaria": true, - "pop_syphilis": false, - "pop_hiv_incidence": false, - "pop_low_calcium": false, - "pop_helminth": false, - "pop_vita": true, - "pop_undernourish": true, - "pop_hepb_screening": true, - "pop_anaemia_40": false, - "pop_hepb": false, - "pop_tb": false, - "pop_hiv_prevalence": false, - "gest_age_openmrs": "4", - "urine_glucose": "", - "previous_contact_no": "0", - "hiv_positive": "", - "hiv_test_result": "", - "gdm": "", - "last_contact_date": "", - "hiv_test_partner_result": "", - "contact_no": "1", - "no_of_fetuses": "", - "dm_in_preg": "", - "age": "25", - "bmi": "" - } + "properties_file_name": "anc_profile" } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json index 79f48bde2..85251c1a8 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json +++ b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json @@ -258,6 +258,14 @@ "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" }, + { + "key": "prep_hiv", + "text": "{{anc_symptoms_follow_up.step1.medications.options.prep_hiv.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, { "key": "antitussive", "text": "{{anc_symptoms_follow_up.step1.medications.options.antitussive.text}}", @@ -660,7 +668,7 @@ "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "165249AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label_info_text": "High caffeine intake means consuming more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine:\n - 2 cups (200ml) of filtered or commercially brewed coffee\n - 2 small cups (50 ml) of espresso\n - 3 cups (300ml) of instant coffee\n - 48 pieces (squares) of chocolate\n\nPlease indicate if the woman consumes more than these amounts per day.", + "label_info_text": "High caffeine intake means consuming more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine:\n - More than 2 cups of coffee (brewed, filtered, instant or espresso)\n - More than 4 cups of tea\n - More than 12 bars (50 g) of chocolate\n - More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day.", "label_info_title": "High caffeine intake", "openmrs_entity_parent": "" }, @@ -1327,14 +1335,6 @@ "openmrs_entity_id": "147232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" }, - { - "key": "vaginal_discharge", - "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text}}", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "123396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, { "key": "visual_disturbance", "text": "{{anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text}}", @@ -1836,14 +1836,6 @@ "openmrs_entity_id": "147232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" }, - { - "key": "vaginal_discharge", - "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text}}", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "123396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, { "key": "visual_disturbance", "text": "{{anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text}}", @@ -1889,6 +1881,264 @@ } } }, + { + "key": "ipv_signs_symptoms", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "check_box", + "label": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.label}}", + "label_info_text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_text}}", + "label_info_title": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_title}}", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "none" + ], + "options": [ + { + "key": "none", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.none.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "stress", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.stress.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "anxiety", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.anxiety.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "depression", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.depression.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "emotional_health_issues", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.emotional_health_issues.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "alcohol_misuse", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.alcohol_misuse.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "drugs_misuse", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.drugs_misuse.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "harmful_behaviour", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.harmful_behaviour.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "suicide_thoughts", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_thoughts.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "suicide_plans", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_plans.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "suicide_acts", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_acts.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "repeat_stis", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_stis.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "unwanted_pregnancies", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unwanted_pregnancies.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "chronic_pain", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.chronic_pain.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "gastro_symptoms", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.gastro_symptoms.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "genitourinary_symptoms", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.genitourinary_symptoms.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "adverse_repro_outcomes", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.adverse_repro_outcomes.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "unexplained_repro_symptoms", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unexplained_repro_symptoms.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "repeat_vaginal_bleeding", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_vaginal_bleeding.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "injury_abdomen", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "injury_other", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "problems_cns", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "repeat_health_consultations", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "intrusive_partner", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "misses_appointments", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "children_emotional_problems", + "text": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text}}", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + } + ] + }, + { + "key": "ipv_signs_symptoms_injury_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint}}", + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err}}" + }, + "relevance": { + "step4:ipv_signs_symptoms": { + "ex-checkbox": [ + { + "or": [ + "injury_other" + ] + } + ] + } + } + }, + { + "key": "toaster23", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_symptoms_follow_up.step4.toaster23.text}}", + "text_color": "#D56900", + "toaster_type": "warning" + }, { "key": "mat_percept_fetal_move", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/assets/json.form/anc_test_tasks.json b/opensrp-anc/src/main/assets/json.form/anc_test_tasks.json index 5af82478b..ddd8da993 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_test_tasks.json +++ b/opensrp-anc/src/main/assets/json.form/anc_test_tasks.json @@ -59,5 +59,6 @@ "title": "Due", "fields": [ ] - } + }, + "properties_file_name": "anc_test" } \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties index 74b85147b..cc076bd50 100644 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties @@ -1,23 +1,19 @@ -anc_counselling_treatment.step9.ifa_weekly.v_required.err = Please select and option -anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Please select and option +anc_counselling_treatment.step9.ifa_weekly.v_required.err = Please select an option +anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Please select an option anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Done anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Reason anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Reason anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -anc_counselling_treatment.step11.tt3_date.label_info_title = TT dose #3 -anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Other anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Not done -anc_counselling_treatment.step11.tt3_date_done.v_required.err = Date for TT dose #3 is required -anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Please select an option anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Reason anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Not done anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Specify -anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Not done anc_counselling_treatment.step9.calcium.text = 0 anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Do not give IPTp-SP, because woman is taking co-trimoxazole. anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Severe pre-eclampsia diagnosis -anc_counselling_treatment.step11.tt1_date.label = TT dose #1 +anc_counselling_treatment.step11.tt1_date.label = TTCV dose #1 anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Done anc_counselling_treatment.step3.heartburn_counsel.label = Diet and lifestyle changes to prevent and relieve heartburn counseling anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Done @@ -31,7 +27,6 @@ anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Reason anc_counselling_treatment.step3.nausea_counsel.label = Non-pharma measures to relieve nausea and vomiting counseling anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling anc_counselling_treatment.step10.deworm_notdone_other.hint = Specify -anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Please select and option anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Specify anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Reason anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Not done @@ -39,66 +34,62 @@ anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Ot anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step5.hepc_positive_counsel.label = Hepatitis C positive counseling anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital! -anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Please select an option anc_counselling_treatment.step3.nausea_counsel_notdone.label = Reason anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Reason anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Not done anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Other (specify) anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Allergies -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Please select an option anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Not done anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = Woman is ill anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Not done anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital! anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Please select an option anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test anc_counselling_treatment.step10.deworm_notdone.options.other.text = Other (specify) anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Facility (elective C-section) anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Done anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Done -anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Please select an option anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Please select an option anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = Stock out anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Gestational diabetes mellitus (GDM) risk counseling anc_counselling_treatment.step10.deworm.options.done.text = Done anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Reason anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Seeking care for danger signs counseling anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = Woman did not accept -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risk of IPV includes any of the following:\n\n- Traumatic injury, particularly if repeated and with vague or implausible explanations;\n\n- An intrusive partner or husband present at consultations;\n\n- Multiple unintended pregnancies and/or terminations;\n\n- Delay in seeking ANC;\n\n- Adverse birth outcomes;\n\n- Repeated STIs;\n\n- Unexplained or repeated genitourinary symptoms;\n\n- Symptoms of depression and anxiety;\n\n- Alcohol or other substance use; or\n\n- Self-harm or suicidal feelings. anc_counselling_treatment.step2.condom_counsel.label_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Reason -anc_counselling_treatment.step3.constipation_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.constipation_counsel.v_required.err = Please select an option anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Done anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Pharmacological treatments for nausea and vomiting counseling anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Caffeine reduction counseling -anc_counselling_treatment.step11.hepb2_date.v_required.err = Hep B dose #2 is required -anc_counselling_treatment.step11.tt3_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose anc_counselling_treatment.step11.flu_date.options.not_done.text = Not done anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Reason anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. anc_counselling_treatment.step10.iptp_sp3.label_info_title = IPTp-SP dose 3 anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Partner HIV test recommended -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Please select and option +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Please select an option anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Not done anc_counselling_treatment.step7.anc_contact_counsel.label = ANC contact schedule counseling anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Please select and option +anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Please select an option anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Done anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) -anc_counselling_treatment.step11.hepb1_date.v_required.err = Hep B dose #1 is required anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Done anc_counselling_treatment.step10.iptp_sp1.label_info_title = IPTp-SP dose 1 anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Specify anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia -anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select and option +anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select an option anc_counselling_treatment.step1.referred_hosp.options.no.text = No anc_counselling_treatment.step1.title = Hospital Referral -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Please select and option +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Please select an option anc_counselling_treatment.step4.body_mass_toaster.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}. anc_counselling_treatment.step5.hypertension_counsel.label = Hypertension counseling anc_counselling_treatment.step10.deworm_notdone.hint = Reason @@ -107,36 +98,30 @@ anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Reason anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Diabetes counseling anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Not done anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Syphilis counselling and further testing -anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Please select an option anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Woman refused anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = HIV positive counseling anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital! -anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Vaginal ring anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Counseling on going immediately to the hospital if severe danger signs anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Not necessary anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Not done -anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please select an option anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm -anc_counselling_treatment.step11.tt1_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\n1-4 doses of TTCV in the past:\n\n- 1 dose scheme: Woman should receive one dose of TTCV during each subsequent pregnancy to a total of five doses (five doses protects throughout the childbearing years).\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose -anc_counselling_treatment.step11.hepb3_date.label = Hep B dose #3 +anc_counselling_treatment.step11.tt1_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1–4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Done anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Reason anc_counselling_treatment.step3.nausea_counsel.options.done.text = Done anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injectable anc_counselling_treatment.step9.ifa_high_prev.label = Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention -anc_counselling_treatment.step11.tt2_date.label_info_title = TT dose #2 -anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Done +anc_counselling_treatment.step11.tt2_date.label_info_title = TTCV dose #2 anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Reason -anc_counselling_treatment.step11.tt1_date.v_required.err = TT dose #1 is required -anc_counselling_treatment.step11.hepb1_date.label = Hep B dose #1 +anc_counselling_treatment.step11.tt1_date.v_required.err = TTCV dose #1 is required anc_counselling_treatment.step11.tt2_date.options.not_done.text = Not done anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Abnormal pulse rate: {pulse_rate_repeat}bpm anc_counselling_treatment.step7.delivery_place.options.facility.text = Facility @@ -145,20 +130,17 @@ anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Specify anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Not done anc_counselling_treatment.step10.deworm_notdone.label = Reason anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step5.ifa_anaemia.label_info_text = If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step5.ifa_anaemia.label_info_text = If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate. anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Not done anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Non-pharmacological treatment for the relief of leg cramps counseling anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Done today -anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Other (specify) anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Wheat bran or other fiber supplements to relieve constipation counseling anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Other (specify) anc_counselling_treatment.step10.malaria_counsel.options.done.text = Done anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Reason anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt2_date.v_required.err = TT dose #2 is required -anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step11.tt2_date.v_required.err = TTCV dose #2 is required anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Done anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = Woman is ill anc_counselling_treatment.step9.ifa_low_prev.label = Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention @@ -172,38 +154,35 @@ anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Specify anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Healthy eating and keeping physically active counseling anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Reason anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Pre-eclampsia diagnosis -anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Please select an option anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Treat according to local protocol and/or refer for treatment. anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital! anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Done anc_counselling_treatment.step2.shs_counsel_notdone.label = Reason -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Please select and option +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Please select an option anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Not done anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Rh factor negative counseling anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Reason -anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Done today -anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Please select and option -anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with blurred vision\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing +anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Please select an option +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with visual disturbance\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = ANC contact schedule counseling anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Specify -anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Please select and option -anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Advise retesting and immunisation if ongoing risk or known exposure +anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Please select an option anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Reason anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Specify anc_counselling_treatment.step9.vita_supp.options.done.text = Done anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Diet and lifestyle changes to prevent and relieve heartburn counseling anc_counselling_treatment.step5.hiv_positive_counsel.label = HIV positive counseling -anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Please select and option +anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Please select an option anc_counselling_treatment.step1.low_oximetry_toaster.text = Low oximetry: {oximetry}% anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Non-pharmacological options for varicose veins and oedema counseling anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Not done anc_counselling_treatment.step5.hepb_positive_counsel.label = Hepatitis B positive counseling anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Other (specify) anc_counselling_treatment.step10.malaria_counsel.label_info_title = Malaria prevention counseling -anc_counselling_treatment.step7.family_planning_type.options.none.text = None anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Done anc_counselling_treatment.step9.ifa_weekly.label_info_title = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Not done @@ -217,48 +196,40 @@ anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Reason anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Specify anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Done anc_counselling_treatment.step11.tt1_date.options.done_today.text = Done today -anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Specify anc_counselling_treatment.step1.resp_distress_toaster.text = Respiratory distress: {respiratory_exam_abnormal} -anc_counselling_treatment.step12.prep_toaster.text = Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Zinc supplement\n\n- Multiple micronutrient supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement +anc_counselling_treatment.step12.prep_toaster.text = Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Enter reason hospital referral was not done anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_results.label = IPV enquiry results anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Not done anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Specify anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Done anc_counselling_treatment.step4.increase_energy_counsel.label = Increase daily energy and protein intake counseling anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Hepatitis C positive counseling -anc_counselling_treatment.step11.tt1_date_done.v_required.err = Date for TT dose #1 is required +anc_counselling_treatment.step11.tt1_date_done.v_required.err = Date for TTCV dose #1 is required anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Other (specify) anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Abnormal cardiac exam: {cardiac_exam_abnormal} anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Reason anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder] anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Done -anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Please select and option -anc_counselling_treatment.step9.calcium_supp.v_required.err = Please select and option +anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Please select an option +anc_counselling_treatment.step9.calcium_supp.v_required.err = Please select an option anc_counselling_treatment.step2.condom_counsel_notdone.hint = Reason anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Please select and option anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Other (specify) anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Not done anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Wheat bran or other fiber supplements to relieve constipation counseling anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Done -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Reason anc_counselling_treatment.step3.nausea_counsel.label_info_title = Non-pharma measures to relieve nausea and vomiting counseling anc_counselling_treatment.step11.flu_date.label_info_title = Flu dose -anc_counselling_treatment.step11.woman_immunised_toaster.text = Woman is fully immunised against tetanus! anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Not done anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Reason Hep B was not given is required anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. -anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Please select and option +anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Please select an option anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Not done anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb3_date_done.v_required.err = Date for Hep B dose #3 is required -anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = No drugs available +anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = Stock out anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Not done anc_counselling_treatment.step9.calcium_supp.options.done.text = Done anc_counselling_treatment.step9.vita_supp.options.not_done.text = Not done @@ -270,49 +241,42 @@ anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Ph anc_counselling_treatment.step1.fever_toaster.text = Fever: {body_temp_repeat}ºC anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_refer_toaster.text = If the woman presents with risk of intimate partner violence (IPV), refer for assessment. -anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = No vaccine available -anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = Stock out +anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Please select an option anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Specify anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. -anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Please select and option +anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Please select an option anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested. -anc_counselling_treatment.step11.tt3_date.label = TT dose #3 anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Done -anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Please select an option anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia. anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Specify anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Pharmacological treatments for nausea and vomiting counseling -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = No stock +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = Stock out anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Reason anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Done -anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = No action necessary anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Done anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Not done -anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Please select an option anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Not done anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Specify anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb2_date.label = Hep B dose #2 -anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Please select an option anc_counselling_treatment.step9.calcium_supp.label = Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) anc_counselling_treatment.step5.asb_positive_counsel.label = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Woman refused anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Woman refused anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms -anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Referred anc_counselling_treatment.step3.constipation_counsel.label = Dietary modifications to relieve constipation counseling anc_counselling_treatment.step10.iptp_sp2.label_info_title = IPTp-SP dose 2 -anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Please select an option anc_counselling_treatment.step2.condom_counsel.options.done.text = Done anc_counselling_treatment.step10.malaria_counsel_notdone.label = Reason anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Allergies -anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Done today anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Done anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Magnesium and calcium to relieve leg cramps counseling -anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Please select and option +anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Please select an option anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Specify anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Specify anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Done @@ -323,31 +287,25 @@ anc_counselling_treatment.step5.title = Diagnoses anc_counselling_treatment.step9.calcium_supp_notdone.hint = Reason anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Specify anc_counselling_treatment.step7.gbs_agent_counsel.label = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -anc_counselling_treatment.step8.ipv_enquiry.label = Clinical enquiry for intimate partner violence (IPV) anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Reason anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital! -anc_counselling_treatment.step11.tt3_date.v_required.err = TT dose #3 is required anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Sterilization (partner) -anc_counselling_treatment.step11.hepb2_date_done.hint = Date Hep B dose #2 was given. anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Not done anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Done earlier anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Specify -anc_counselling_treatment.step10.deworm.v_required.err = Please select and option +anc_counselling_treatment.step10.deworm.v_required.err = Please select an option anc_counselling_treatment.step5.diabetes_counsel.label = Diabetes counseling anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Not done anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Done -anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Please select and option +anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Please select an option anc_counselling_treatment.step2.shs_counsel.label_info_title = Second-hand smoke counseling anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step9.vita_supp.v_required.err = Please select and option +anc_counselling_treatment.step9.vita_supp.v_required.err = Please select an option anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers -anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Please select and option -anc_counselling_treatment.step7.family_planning_type.options.iud.text = IUD +anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Please select an option anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Not done anc_counselling_treatment.step2.shs_counsel.label = Second-hand smoke counseling anc_counselling_treatment.step10.iptp_sp3.label = IPTp-SP dose 3 @@ -355,11 +313,9 @@ anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = D anc_counselling_treatment.step10.iptp_sp2.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Specify -anc_counselling_treatment.step11.hepb3_date_done.hint = Date Hep B dose #3 was given. anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Specify anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Reason anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Hep B negative counseling and vaccination anc_counselling_treatment.step3.varicose_vein_toaster.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema anc_counselling_treatment.step7.birth_prep_counsel.label = Birth preparedness and complications readiness counseling anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = No fetal heartbeat observed @@ -371,38 +327,33 @@ anc_counselling_treatment.step11.flu_date.v_required.err = Flu dose is required anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Reason anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Abnormal pelvic exam: {pelvic_exam_abnormal} -anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Please select and option +anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Please select an option anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Please select and option +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Please select an option anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Birth preparedness and complications readiness counseling anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Not done anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = Referred instead -anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Reason anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Specify anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step3.constipation_counsel.options.done.text = Done anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Not done anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Not done anc_counselling_treatment.step9.ifa_weekly.label = Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Not done anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step11.tt3_date_done.hint = Date TT dose #3 was given. -anc_counselling_treatment.step3.nausea_counsel.v_required.err = Please select and option +anc_counselling_treatment.step3.nausea_counsel.v_required.err = Please select an option anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB anc_counselling_treatment.step11.flu_date.label_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = Woman is immunised against flu! anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = No fetal heartbeat observed anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Reason Flu dose was not done is required -anc_counselling_treatment.step10.deworm_notdone.v_required.err = Please select and option +anc_counselling_treatment.step10.deworm_notdone.v_required.err = Please select an option anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Pre-eclampsia diagnosis anc_counselling_treatment.step5.tb_positive_counseling.label = TB screening positive counseling anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.tt2_date.label = TT dose #2 +anc_counselling_treatment.step11.tt2_date.label = TTCV dose #2 anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.hepb_negative_note.label = Hep B negative counseling and vaccination -anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implant anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = HIV risk counseling anc_counselling_treatment.step2.shs_counsel.options.done.text = Done anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Not done @@ -414,7 +365,7 @@ anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Please anc_counselling_treatment.step9.vita_supp.label_info_text = Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder] anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs anc_counselling_treatment.step10.iptp_sp_toaster.text = Do not give IPTp-SP, because woman is taking co-trimoxazole. -anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Counseling:\n\n- Advice to reduce workload and to rest- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available +anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Counseling:\n\n- Advise to reduce workload and to rest\n\n- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\n\nWomen with non-severe hypertension during pregnancy should be offered antihypertensive drug treatment: Oral alpha-agonist (methyldopa) and beta-blockers should be considered as effective treatment options for non-severe hypertension during pregnancy. anc_counselling_treatment.step1.referred_hosp_notdone.label = Reason anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Done anc_counselling_treatment.step2.condom_counsel_notdone.label = Reason @@ -425,19 +376,13 @@ anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Due to the popul anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step9.ifa_weekly.options.done.text = Done anc_counselling_treatment.step11.flu_date.label = Flu dose -anc_counselling_treatment.step11.hepb2_date_done.v_required.err = Date for Hep B dose #2 is required anc_counselling_treatment.step9.vita_supp.label = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU -anc_counselling_treatment.step11.hepb1_date_done.hint = Date Hep B dose #1 was given. anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Reason anc_counselling_treatment.step6.hiv_prep.label_info_text = Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework] anc_counselling_treatment.step10.deworm.label_info_text = In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes. anc_counselling_treatment.step11.tt2_date.options.done_today.text = Done today anc_counselling_treatment.step11.tt3_date.options.not_done.text = Not done -anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = Woman is fully immunised against Hep B! -anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Treated -anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Reason anc_counselling_treatment.step6.hiv_prep.options.done.text = Done -anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Not done anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Reason anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Specify anc_counselling_treatment.step11.tt3_date.options.done_today.text = Done today @@ -446,18 +391,13 @@ anc_counselling_treatment.step3.constipation_counsel.label_info_text = Dietary m anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedure:\n\n- Refer urgently to hospital for further investigation and management! -anc_counselling_treatment.step1.referred_hosp.v_required.err = Please select and option +anc_counselling_treatment.step1.referred_hosp.v_required.err = Please select an option anc_counselling_treatment.step1.severe_hypertension_toaster.text = Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg anc_counselling_treatment.step4.average_weight_toaster.text = Counseling on healthy eating and keeping physically active done! -anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Not done -anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Oral contraceptive -anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Tubal ligation anc_counselling_treatment.step11.tt_dose_notdone.label = Reason -anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Not done anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Allergy anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Not done anc_counselling_treatment.step10.iptp_sp_notdone.label = Reason -anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Please select and option anc_counselling_treatment.step7.delivery_place.options.home.text = Home anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Reason anc_counselling_treatment.step4.eat_exercise_counsel.label = Healthy eating and keeping physically active counseling @@ -466,7 +406,6 @@ anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Proced anc_counselling_treatment.step9.vita_supp_notdone.label = Reason anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Not done anc_counselling_treatment.step10.iptp_sp3.label_info_text = Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. -anc_counselling_treatment.step11.hepb1_date_done.v_required.err = Date for Hep B dose #1 is required anc_counselling_treatment.step11.flu_date_done.hint = Date flu dose was given anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Done @@ -477,8 +416,8 @@ anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Specify anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Not done anc_counselling_treatment.step2.shs_counsel_notdone.hint = Reason anc_counselling_treatment.step8.title = Intimate Partner Violence (IPV) -anc_counselling_treatment.step10.iptp_sp1.v_required.err = Please select and option -anc_counselling_treatment.step2.shs_counsel.v_required.err = Please select and option +anc_counselling_treatment.step10.iptp_sp1.v_required.err = Please select an option +anc_counselling_treatment.step2.shs_counsel.v_required.err = Please select an option anc_counselling_treatment.step3.varicose_oedema_counsel.label = Non-pharmacological options for varicose veins and oedema counseling anc_counselling_treatment.step7.delivery_place.options.other.text = Other anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Not done @@ -502,11 +441,10 @@ anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Othe anc_counselling_treatment.step10.deworm.options.not_done.text = Not done anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Not done anc_counselling_treatment.step11.title = Immunizations -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Reason anc_counselling_treatment.step7.breastfeed_counsel.label = Breastfeeding counseling anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Expired -anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Please select and option +anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Please select an option anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedure:\n\n- Refer for further investigation anc_counselling_treatment.step3.nausea_counsel.label_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Done @@ -514,29 +452,28 @@ anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Othe anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Done anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Specify anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Not done -anc_counselling_treatment.step10.iptp_sp2.v_required.err = Please select and option +anc_counselling_treatment.step10.iptp_sp2.v_required.err = Please select an option anc_counselling_treatment.step7.rh_negative_counsel.label = Rh factor negative counseling anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Syphilis counselling and further testing anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Stock out anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Not done anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. -anc_counselling_treatment.step5.ifa_anaemia.label = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step5.ifa_anaemia.label = Prescribe daily dose of 120 mg iron and 0.4 mg folic acid for anaemia anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Allergy -anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = No vaccine available +anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = Stock out anc_counselling_treatment.step10.iptp_sp2.options.done.text = Done anc_counselling_treatment.step11.flu_dose_notdone.label = Reason anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step2.title = Behaviour Counseling anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = Referred instead -anc_counselling_treatment.step11.tt2_date_done.v_required.err = Date for TT dose #2 is required +anc_counselling_treatment.step11.tt2_date_done.v_required.err = Date for TTCV dose #2 is required anc_counselling_treatment.step2.tobacco_counsel.label = Tobacco cessation counseling anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Other (specify) anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] anc_counselling_treatment.step6.hiv_risk_counsel.label = HIV risk counseling -anc_counselling_treatment.step11.hepb3_date.v_required.err = Hep B dose #3 is required anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step2.condom_counsel.label_info_title = Condom counseling anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Done @@ -544,10 +481,9 @@ anc_counselling_treatment.step10.deworm.label = Prescribe single dose albendazol anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital. anc_counselling_treatment.step9.vita_supp.label_info_title = Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Not done -anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Please select and option -anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Allergies +anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Please select an option anc_counselling_treatment.step11.flu_date.options.done_today.text = Done today -anc_counselling_treatment.step11.tt1_date_done.hint = Date TT dose #1 was given. +anc_counselling_treatment.step11.tt1_date_done.hint = Date TTCV dose #1 was given. anc_counselling_treatment.step3.title = Physiological Symptoms Counseling anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Hypertension counseling anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital @@ -561,33 +497,30 @@ anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Specify anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Specify anc_counselling_treatment.step3.constipation_counsel_notdone.label = Reason anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Please select and option +anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Please select an option anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Done earlier anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Fever: {body_temp_repeat}ºC anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Antacid preparations to relieve heartburn counseling -anc_counselling_treatment.step11.hepb_dose_notdone.label = Reason anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Side effects prevent woman from taking it anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Reason anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Please select an option anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Antacid preparations to relieve heartburn counseling anc_counselling_treatment.step4.title = Diet Counseling anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Stock out -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = Woman is ill anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Reason -anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Please select and option +anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Please select an option anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Reason anc_counselling_treatment.step9.calcium_supp_notdone.label = Reason -anc_counselling_treatment.step11.tt2_date.label_info_text = Tetanus toxoid vaccination is recommended for all pregnant women who are not fully immunised against TT to prevent neonatal mortality from tetanus.\n\nTTCV not received or unknown:\n\n- 3 doses scheme:\n\n- 2 doses, 1 month apart\n\n- 2nd dose at least 2 weeks before delivery\n\n- 3rd dose 5 months after 2nd dose +anc_counselling_treatment.step11.tt2_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_counselling_treatment.step12.title = Not Recommended anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Done anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Not done anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Reason anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Hepatitis B positive counseling anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Not done -anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Reason TT dose was not given is required +anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Reason TTCV dose was not given is required anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Done anc_counselling_treatment.step7.title = Counseling -anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Done earlier anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder] anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Not done anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Not done @@ -606,7 +539,6 @@ anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text anc_counselling_treatment.step9.vita_supp_notdone.hint = Reason anc_counselling_treatment.step6.title = Risks anc_counselling_treatment.step6.hiv_prep.label_info_title = PrEP for HIV prevention counseling -anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Done earlier anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Done anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Other (specify) anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Reason @@ -631,7 +563,7 @@ anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Balan anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step4.balanced_energy_counsel.label = Balanced energy and protein dietary supplementation counseling anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\n[Vitamin C folder]\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. +anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. anc_counselling_treatment.step1.referred_hosp.options.yes.text = Yes anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Syphilis counselling and treatment anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Reason @@ -644,5 +576,69 @@ anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = anc_counselling_treatment.step7.family_planning_counsel.label = Postpartum family planning counseling anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Tobacco cessation counseling anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Specify -anc_counselling_treatment.step11.tt2_date_done.hint = Date TT dose #2 was given. +anc_counselling_treatment.step11.tt2_date_done.hint = Date TTCV dose #2 was given. +anc_counselling_treatment.step7.family_planning_type.options.none.text = None +anc_counselling_treatment.step7.family_planning_type.options.cu_iud.text = Copper-bearing intrauterine device (Cu-IUD) +anc_counselling_treatment.step7.family_planning_type.options.lng_iud.text = Levonorgestrel intrauterine device (LNG-IUD) +anc_counselling_treatment.step7.family_planning_type.options.etg_implant.text = Etonogestrel (ETG) one-rod implant +anc_counselling_treatment.step7.family_planning_type.options.lng_implant.text = Levonorgestrel (LNG) two-rod implant +anc_counselling_treatment.step7.family_planning_type.options.dmpa_im.text = DMPA-IM +anc_counselling_treatment.step7.family_planning_type.options.dmpa_sc.text = DMPA-SC +anc_counselling_treatment.step7.family_planning_type.options.net_en.text = NET-EN norethisterone enanthate +anc_counselling_treatment.step7.family_planning_type.options.pop.text = Progestogen-only pills (POP) +anc_counselling_treatment.step7.family_planning_type.options.coc.text = Combined oral contraceptives (COCs) +anc_counselling_treatment.step7.family_planning_type.options.combined_patch.text = Combined contraceptive patch +anc_counselling_treatment.step7.family_planning_type.options.combined_ring.text = Combined contraceptive vaginal ring (CVR) +anc_counselling_treatment.step7.family_planning_type.options.pvr.text = Progesterone-releasing vaginal ring (PVR) +anc_counselling_treatment.step7.family_planning_type.options.lam.text = Lactational amenorrhea method (LAM) +anc_counselling_treatment.step7.family_planning_type.options.female_condoms.text = Female condoms +anc_counselling_treatment.step7.family_planning_type.options.male_condoms.text = Male condoms +anc_counselling_treatment.step7.family_planning_type.options.male_sterilization.text = Male sterilization +anc_counselling_treatment.step7.family_planning_type.options.female_sterilization.text = Female sterilization +anc_counselling_treatment.step8.ipv_support.label = IPV first line support provided +anc_counselling_treatment.step8.ipv_support.label_info_text = First-line support includes basic counselling or psychosocial support using LIVES, which involves the following steps: Listen, Inquire, Validate, Enhance safety, and Support +anc_counselling_treatment.step8.ipv_support.label_info_title = IPV first-line support +anc_counselling_treatment.step8.ipv_support.options.yes.text = Yes +anc_counselling_treatment.step8.ipv_support.options.no.text = No +anc_counselling_treatment.step8.ipv_support.v_required.err = Please select an answer +anc_counselling_treatment.step8.ipv_support_notdone.label = Reason IPV first line support not provided +anc_counselling_treatment.step8.ipv_support_notdone.options.referred.text = Client was referred +anc_counselling_treatment.step8.ipv_support_notdone.options.provider_unavailable.text = Trained provider unavailable +anc_counselling_treatment.step8.ipv_support_notdone.options.space_unavailable.text = Private/safe space unavailable +anc_counselling_treatment.step8.ipv_support_notdone.options.confidentiality.text = Confidentiality could not be assured +anc_counselling_treatment.step8.ipv_support_notdone.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_support_notdone_other.hint = Other reason +anc_counselling_treatment.step8.ipv_care.options.no_action.text = No action necessary +anc_counselling_treatment.step8.ipv_care.options.safety_assessment.text = Safety assessment conducted +anc_counselling_treatment.step8.ipv_care.options.mental_health_care.text = Mental health care +anc_counselling_treatment.step8.ipv_care.options.care_other_symptoms.text = Care for other presenting signs and symptoms +anc_counselling_treatment.step8.ipv_care.options.referred.text = Client was referred +anc_counselling_treatment.step8.ipv_care.label = What additional type of care was provided +anc_counselling_treatment.step8.phys_violence_worse.label = Has the physical violence happened more often or gotten worse over the past 6 months? +anc_counselling_treatment.step8.phys_violence_worse.options.yes.text = Yes +anc_counselling_treatment.step8.phys_violence_worse.options.no.text = No +anc_counselling_treatment.step8.used_weapon.label = Has he ever used a weapon or threatened you with a weapon? +anc_counselling_treatment.step8.used_weapon.options.yes.text = Yes +anc_counselling_treatment.step8.used_weapon.options.no.text = No +anc_counselling_treatment.step8.strangle.label = Has he ever tried to strangle you? +anc_counselling_treatment.step8.strangle.options.yes.text = Yes +anc_counselling_treatment.step8.strangle.options.no.text = No +anc_counselling_treatment.step8.beaten.label = Has he ever beaten you when you were pregnant? +anc_counselling_treatment.step8.beaten.options.yes.text = Yes +anc_counselling_treatment.step8.beaten.options.no.text = No +anc_counselling_treatment.step8.jealous.label = Is he violently and constantly jealous of you? +anc_counselling_treatment.step8.jealous.options.yes.text = Yes +anc_counselling_treatment.step8.jealous.options.no.text = No +anc_counselling_treatment.step8.believe_kill.label = Do you believe he could kill you? +anc_counselling_treatment.step8.believe_kill.options.yes.text = Yes +anc_counselling_treatment.step8.believe_kill.options.no.text = No +anc_counselling_treatment.step8.ipv_referrals.label = Referrals made as part of first line support and care +anc_counselling_treatment.step8.ipv_referrals.options.care_health_facility.text = Care at another health facility +anc_counselling_treatment.step8.ipv_referrals.options.crisis_intervention.text = Crisis intervention or counselling +anc_counselling_treatment.step8.ipv_referrals.options.police.text = Police +anc_counselling_treatment.step8.ipv_referrals.options.shelter.text = Shelter or housing +anc_counselling_treatment.step8.ipv_referrals.options.legal_aid.text = Legal aid & services +anc_counselling_treatment.step8.ipv_referrals.options.child_protection.text = Child protection +anc_counselling_treatment.step8.ipv_referrals.options.livelihood_support.text = Livelihood support +anc_counselling_treatment.step8.ipv_referrals.options.other.text = Other (specify) +anc_counselling_treatment.step8.ipv_referrals_other.hint = Specify \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index a9165b2dc..0968d2ecc 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -15,27 +15,24 @@ anc_physical_exam.step4.fetal_presentation.label = Fetal presentation anc_physical_exam.step3.toaster25.text = Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral. anc_physical_exam.step2.toaster11.toaster_info_text = Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management. anc_physical_exam.step3.pallor.options.yes.text = Yes -anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ anc_physical_exam.step3.cardiac_exam.label = Cardiac exam anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Field systolic repeat is required anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Second fetal heart rate (bpm) anc_physical_exam.step3.toaster24.text = Abnormal abdominal exam. Consider high level evaluation or referral. -anc_physical_exam.step3.body_temp_repeat.v_numeric.err = anc_physical_exam.step1.height.v_required.err = Please enter the height anc_physical_exam.step3.toaster21.toaster_info_text = Procedure:\n- Give oxygen\n- Refer urgently to hospital! anc_physical_exam.step3.body_temp.v_required.err = Please enter body temperature anc_physical_exam.step3.pelvic_exam.options.3.text = Abnormal anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverse anc_physical_exam.step2.bp_diastolic.v_required.err = Field diastolic is required -anc_physical_exam.step2.toaster13.toaster_info_text = Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital! +anc_physical_exam.step2.toaster13.toaster_info_text = Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 2+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure:\n- Give magnesium sulphate\n- Give appropriate anti-hypertensives\n- Revise the birth plan\n- Refer urgently to hospital! anc_physical_exam.step3.breast_exam.options.1.text = Not done anc_physical_exam.step4.toaster27.text = No fetal heartbeat observed. Refer to hospital. anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg. anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) -anc_physical_exam.step2.urine_protein.options.plus_one.text = + anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH -anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advice to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available -anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Blurred vision +anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advise to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\n\nWomen with non-severe hypertension during pregnancy should be offered antihypertensive drug treatment: Oral alpha-agonist (methyldopa) and beta-blockers should be considered as effective treatment options for non-severe hypertension during pregnancy. +anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Visual disturbance anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vomiting anc_physical_exam.step1.toaster4.toaster_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy. anc_physical_exam.step3.respiratory_exam.options.2.text = Normal @@ -43,24 +40,20 @@ anc_physical_exam.step3.breast_exam.options.3.text = Abnormal anc_physical_exam.step2.cant_record_bp_reason.v_required.err = Reason why SBP and DPB is cannot be done is required anc_physical_exam.step3.abdominal_exam.options.2.text = Normal anc_physical_exam.step4.no_of_fetuses_label.text = No. of fetuses -anc_physical_exam.step1.pregest_weight.v_numeric.err = anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Unable to record BP anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = Field diastolic repeat is required anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Other anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = No. of fetuses unknown -anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ anc_physical_exam.step4.fetal_heartbeat.label = Fetal heartbeat present? anc_physical_exam.step1.toaster2.text = Average weight gain per week since last contact: {weight_gain} kg\n\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg anc_physical_exam.step2.toaster7.text = Measure BP again after 10-15 minutes rest. anc_physical_exam.step3.cervical_exam.options.1.text = Done anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Please enter result for the second fetal heart rate anc_physical_exam.step3.toaster22.text = Abnormal cardiac exam. Refer urgently to the hospital! -anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = anc_physical_exam.step3.pulse_rate_repeat_label.text = Second pulse rate (bpm) anc_physical_exam.step3.toaster18.toaster_info_text = Procedure:\n- Check for fever, infection, respiratory distress, and arrhythmia\n- Refer for further investigation anc_physical_exam.step3.oedema.options.yes.text = Yes anc_physical_exam.step1.title = Height & Weight -anc_physical_exam.step2.urine_protein.options.plus_two.text = ++ anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Yes anc_physical_exam.step4.toaster30.text = Pre-eclampsia risk counseling anc_physical_exam.step3.pelvic_exam.label = Pelvic exam (visual) @@ -83,7 +76,6 @@ anc_physical_exam.step4.fetal_presentation.options.unknown.text = Unknown anc_physical_exam.step4.fetal_heartbeat.v_required.err = Please specify if fetal heartbeat is present. anc_physical_exam.step1.current_weight.v_required.err = Please enter the current weight anc_physical_exam.step2.bp_systolic_label.text = Systolic blood pressure (SBP) (mmHg) -anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = BP cuff (sphygmomanometer) is broken anc_physical_exam.step3.abdominal_exam.label = Abdominal exam anc_physical_exam.step4.fetal_presentation.v_required.err = Fetal representation field is required @@ -94,7 +86,6 @@ anc_physical_exam.step2.toaster9.text = Hypertension diagnosis! Provide counseli anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after 10 minutes rest. anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling -anc_physical_exam.step2.bp_systolic.v_numeric.err = anc_physical_exam.step2.urine_protein.options.none.text = None anc_physical_exam.step2.cant_record_bp_reason.label = Reason anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! @@ -106,7 +97,6 @@ anc_physical_exam.step2.toaster8.text = Do urine dipstick test for protein. anc_physical_exam.step4.fetal_heart_rate.v_required.err = Please specify if fetal heartbeat is present. anc_physical_exam.step1.toaster6.text = Balanced energy and protein dietary supplementation counseling anc_physical_exam.step2.toaster14.toaster_info_title = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. -anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = anc_physical_exam.step2.symp_sev_preeclampsia.label = Any symptoms of severe pre-eclampsia? anc_physical_exam.step3.toaster16.text = Woman has a fever. Provide treatment and refer urgently to hospital! anc_physical_exam.step3.toaster21.text = Woman has low oximetry. Refer urgently to the hospital! @@ -130,14 +120,12 @@ anc_physical_exam.step3.toaster16.toaster_info_text = Procedure:\n- Insert an IV anc_physical_exam.step2.toaster11.text = Symptom(s) of severe pre-eclampsia! Refer urgently to hospital! anc_physical_exam.step2.toaster14.text = Pre-eclampsia diagnosis! Refer to hospital and revise birth plan. anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Please specify any other symptoms or select none -anc_physical_exam.step3.body_temp.v_numeric.err = anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Pre-gestational weight unknown anc_physical_exam.step2.title = Blood Pressure anc_physical_exam.step2.urine_protein.v_required.err = Please enter the result for the dipstick test. anc_physical_exam.step4.toaster30.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. anc_physical_exam.step2.toaster14.toaster_info_text = Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\n\nProcedure:\n- Refer to hospital\n- Revise the birth plan anc_physical_exam.step3.cervical_exam.options.2.text = Not done -anc_physical_exam.step1.height.v_numeric.err = anc_physical_exam.step3.oximetry_label.text = Oximetry (%) anc_physical_exam.step2.bp_diastolic_label.text = Diastolic blood pressure (DBP) (mmHg) anc_physical_exam.step2.urine_protein.label = Urine dipstick result - protein @@ -149,11 +137,8 @@ anc_physical_exam.step3.abdominal_exam.options.3.text = Abnormal anc_physical_exam.step1.toaster3.text = Gestational diabetes mellitus (GDM) risk counseling anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Severe headache anc_physical_exam.step2.urine_protein.options.plus_one.text = + -anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again. -anc_physical_exam.step3.pulse_rate.v_numeric.err = +anc_physical_exam.step4.toaster28.text = Fetal heart rate out of normal range (100-180). Please have the woman lay on her left side for 15 minutes and check again. anc_physical_exam.step3.pulse_rate.v_required.err = Please enter pulse rate -anc_physical_exam.step2.bp_diastolic.v_numeric.err = -anc_physical_exam.step1.current_weight.v_numeric.err = anc_physical_exam.step3.title = Maternal Exam anc_physical_exam.step3.toaster19.toaster_info_text = Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\n\nOR\n\nNo Hb test result recorded, but woman has pallor. anc_physical_exam.step4.fetal_movement.options.yes.text = Yes @@ -167,3 +152,34 @@ anc_physical_exam.step3.breast_exam.options.2.text = Normal anc_physical_exam.step2.bp_systolic.v_required.err = Field systolic is required anc_physical_exam.step3.oedema.options.no.text = No anc_physical_exam.step4.toaster27.toaster_info_text = Procedure:\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n- Refer to hospital. +anc_physical_exam.step3.ipv_physical_signs_symptoms.label = Presenting signs/conditions for IPV +anc_physical_exam.step3.ipv_physical_signs_symptoms.options.none.text = No presenting signs or conditions for IPV +anc_physical_exam.step3.ipv_physical_signs_symptoms.options.abdomen_injury.text = Injury to abdomen +anc_physical_exam.step3.ipv_physical_signs_symptoms.options.other_injury.text = Injury other (specify) +anc_physical_exam.step3.ipv_physical_signs_symptoms.options.other.text = Any other presenting signs or symptoms indicative of violence (specify) +anc_physical_exam.step3.ipv_physical_signs_symptoms.label_info_text = What signs or conditions does the client present with that are due to or trigger suspicion of intimate partner violence (IPV)? +anc_physical_exam.step3.ipv_physical_signs_symptoms_injury_other.hint = Other injury - specify +anc_physical_exam.step3.ipv_physical_signs_symptoms_other.hint = Other presenting sign or symptom indicative of violence - specify +anc_physical_exam.step3.toaster31.text = Woman is suspected of being subjected to IPV. Please conduct an IPV clinical enquiry now. +anc_physical_exam.step3.ipv_clinical_enquiry.label = Clinical enquiry for IPV done +anc_physical_exam.step3.ipv_clinical_enquiry.options.yes.text = Yes +anc_physical_exam.step3.ipv_clinical_enquiry.options.no.text = No +anc_physical_exam.step3.ipv_clinical_enquiry.label_info_text = Whether or not a clinical enquiry for IPV was conducted based on presenting signs and symptoms and conditions. +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.label = Reason clinical enquiry was not done +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.referred.text = Client was referred +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.provider_unavailable.text = Trained provider unavailable +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.space_unavailable.text = Private/safe space unavailable +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.confidentiality.text = Confidentiality could not be assured +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.other.text = Other reason clinical enquiry not done (specify) +anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason_other.hint = Other reason clinical enquiry not done - specify +anc_physical_exam.step3.ipv_subject.label = Has the woman been subjected to intimate partner violence (IPV)? +anc_physical_exam.step3.ipv_subject.label_info_text = Based on the results of the clinical enquiry, please record whether the woman has been subjected to IPV. +anc_physical_exam.step3.ipv_subject.options.yes.text = Yes +anc_physical_exam.step3.ipv_subject.options.no.text = No +anc_physical_exam.step3.ipv_subject.v_required.err = Please provide a response +anc_physical_exam.step3.ipv_subject_violence_types.label = Type(s) of violence +anc_physical_exam.step3.ipv_subject_violence_types.label_info_text = What type(s) of violence has the client been subjected to? +anc_physical_exam.step3.ipv_subject_violence_types.options.phys_violence.text = Physical violence (e.g. slapping, kicking, burning) +anc_physical_exam.step3.ipv_subject_violence_types.options.sexual_violence.text = Sexual violence +anc_physical_exam.step3.ipv_subject_violence_types.options.emotional_abuse.text = Psychological or emotional abuse (e.g. being threatened or intimidated, controlling behaviors, such as taking away money) +anc_physical_exam.step3.ipv_subject_violence_types.options.family_member_violence.text = Violence by other family members (not intimate partner) \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index e1304baba..b3aa011b5 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -13,7 +13,6 @@ anc_profile.step6.medications.options.aspirin.text = Aspirin anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide -anc_profile.step2.sfh_gest_age_selection.label = anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine anc_profile.step8.partner_hiv_status.label = Partner HIV status anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended @@ -21,7 +20,6 @@ anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please sele anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) anc_profile.step1.occupation.options.formal_employment.text = Formal employment anc_profile.step3.substances_used.options.marijuana.text = Marijuana -anc_profile.step2.lmp_gest_age_selection.label = anc_profile.step2.lmp_known.options.no.text = No anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling anc_profile.step7.other_substance_use.hint = Specify @@ -36,7 +34,6 @@ anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication anc_profile.step4.allergies.label = Any allergies? anc_profile.step6.medications.options.folic_acid.text = Folic Acid anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive -anc_profile.step2.ultrasound_gest_age_selection.label = anc_profile.step7.condom_counseling_toaster.text = Condom counseling anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused anc_profile.step6.medications_other.hint = Specify @@ -76,7 +73,6 @@ anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) anc_profile.step5.flu_immun_status.label = Flu immunisation status -anc_profile.step2.sfh_ultrasound_gest_age_selection.label = anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? anc_profile.step1.occupation_other.v_required.err = Please specify your occupation anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) @@ -246,7 +242,7 @@ anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune anc_profile.step6.medications.options.vitamina.text = Vitamin A anc_profile.step6.medications.options.dont_know.text = Don't know anc_profile.step7.condom_use.options.yes.text = Yes -anc_profile.step4.health_conditions.options.cancer.text = Cancer – gynaecological +anc_profile.step4.health_conditions.options.cancer.text = Cancer - gynaecological anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = No doses anc_profile.step4.allergies_other.hint = Specify @@ -300,7 +296,6 @@ anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommende anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole anc_profile.step6.medications.options.thyroid.text = Thyroid medication anc_profile.step1.title = Demographic Info -anc_profile.step2.lmp_ultrasound_gest_age_selection.label = anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). @@ -309,13 +304,13 @@ anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Ea anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery -anc_profile.step4.health_conditions.options.cancer_other.text = Cancer – other site (specify) +anc_profile.step4.health_conditions.options.cancer_other.text = Cancer - other site (specify) anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, other or unspecified anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer -anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1–4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1?4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties index 94cc1b09d..cf298952b 100644 --- a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties @@ -24,7 +24,7 @@ anc_symptoms_follow_up.step3.toaster13.text = Please investigate any possible co anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Hemorrhoidal medication anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Yes anc_symptoms_follow_up.step2.toaster1.text = Tobacco cessation counseling -anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Leg cramps anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Headache anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. @@ -87,13 +87,12 @@ anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = Has the woman felt t anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = No anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. anc_symptoms_follow_up.step4.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? -anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Heartburn anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Gets tired easily anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Breathing difficulty anc_symptoms_follow_up.step1.ifa_comply.options.no.text = No -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Vaginal discharge anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Please specify any other symptoms related to low back pain or select none anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hypertensive anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirin @@ -177,7 +176,6 @@ anc_symptoms_follow_up.step1.medications.options.thyroid.text = Thyroid medicati anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = Previous persisting physiological symptoms is required anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Leg redness anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Vaginal bleeding -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Vaginal discharge anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Yes anc_symptoms_follow_up.step2.toaster2.text = Second-hand smoke counseling anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Leg redness @@ -186,3 +184,37 @@ anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Extreme anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = A maximum of up to 3 weekly doses may be required. anc_symptoms_follow_up.step3.toaster12.text = Non-pharmacological options for varicose veins and oedema counseling anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Gets tired easily +anc_symptoms_follow_up.step1.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label = Presenting signs and symptoms that trigger suspicion of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_text = What signs or symptoms does the client present with that are due to or trigger suspicion of intimate partner violence (IPV)? +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_title = Presenting signs and symptoms of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.none.text = No presenting signs or symptoms indicative of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.stress.text = Ongoing stress +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.anxiety.text = Ongoing anxiety +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.depression.text = Ongoing depression +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.emotional_health_issues.text = Unspecified ongoing emotional health issues +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.alcohol_misuse.text = Misuse of alcohol +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.drugs_misuse.text = Misuse of drugs +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.harmful_behaviour.text = Unspecified harmful behaviours +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_thoughts.text = Thoughts of self-harm or (attempted) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_plans.text = Plans of self-harm or (attempt) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_acts.text = Acts of self-harm or attempted suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_stis.text = Repeated sexually transmitted infections (STIs) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unwanted_pregnancies.text = Unwanted pregnancies +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.chronic_pain.text = Unexplained chronic pain +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.gastro_symptoms.text = Unexplained chronic gastrointestinal symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.genitourinary_symptoms.text = Unexplained genitourinary symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.adverse_repro_outcomes.text = Adverse reproductive outcomes +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unexplained_repro_symptoms.text = Unexplained reproductive symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_vaginal_bleeding.text = Repeated vaginal bleeding +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text = Injury to abdomen +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text = Injury other (specify) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text = Problems with central nervous system +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text = Repeated health consultations with no clear diagnosis +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text = Woman’s partner or husband is intrusive during consultations +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text = Woman often misses her own or her children’s health-care appointments +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text = Children have emotional and behavioural problems +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint = Other injury - specify +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err = Please enter valid content +anc_symptoms_follow_up.step4.toaster23.text = Woman is suspected of being subjected to IPV. Please conduct an IPV clinical enquiry during the physical exam part of the contact. + diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 2d0ea79fd..fd216541b 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -222,7 +222,7 @@ tasks.withType(Test) { dependencies { def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.2005-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -234,7 +234,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.1.4001-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' From 46ee5ae453fde03cc7f0c6a5f6579b339a7eef4e Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Feb 2021 15:17:36 +0300 Subject: [PATCH 077/302] :construction: Update the server settings --- .../assets/anc_population_characteritics.json | 101 ++++++++++++++++++ .../main/assets/anc_site_characteritics.json | 28 +++++ .../json.form/anc_site_characteristics.json | 48 --------- 3 files changed, 129 insertions(+), 48 deletions(-) create mode 100644 opensrp-anc/src/main/assets/anc_population_characteritics.json create mode 100644 opensrp-anc/src/main/assets/anc_site_characteritics.json diff --git a/opensrp-anc/src/main/assets/anc_population_characteritics.json b/opensrp-anc/src/main/assets/anc_population_characteritics.json new file mode 100644 index 000000000..a9ccd9755 --- /dev/null +++ b/opensrp-anc/src/main/assets/anc_population_characteritics.json @@ -0,0 +1,101 @@ +{ + "settingConfigurations": [ + { + "identifier": "population_characteristics", + "settings": [ + { + "description": "The proportion of women in the adult population (18 years or older), with a BMI less than 18.5, is 20% or higher.", + "label": "Undernourished prevalence 20% or higher", + "value": "false", + "key": "pop_undernourish" + }, + { + "description": "The proportion of pregnant women in the population with anaemia (haemoglobin level less than 11 g/dl) is 40% or higher.", + "label": "Anaemia prevalence 40% or higher", + "value": "false", + "key": "pop_anaemia_40" + }, + { + "description": "The proportion of pregnant women in the population with anaemia (haemoglobin level less than 11 g/dl) is 20% or lower.", + "label": "Anaemia prevalence 20% or lower", + "value": "true", + "key": "pop_anaemia_20" + }, + { + "description": "Women in the population are likely to have low dietary calcium intake (less than 900 mg of calcium per day).", + "label": "Low dietary calcium intake", + "value": "true", + "key": "pop_low_calcium" + }, + { + "description": "The tuberculosis prevalence in the general population is 100 cases per 100,000 persons or greater.", + "label": "TB prevalence 100/100,000 or higher", + "value": "false", + "key": "pop_tb" + }, + { + "description": "The prevalence of night blindness is 5% or higher in pregnant women or 5% or higher in children 24–59 months of age, or the proportion of pregnant women with a serum retinol level less than 0.7 mol/L is 20% or higher. ", + "label": "Vitamin A deficiency 5% or higher", + "value": "true", + "key": "pop_vita" + }, + { + "description": "The percentage of individuals in the general population infected with at least one species of soil-transmitted helminth is 20% or higher.", + "label": "Soil-transmitted helminth infection prevalence 20% or higher", + "value": "false", + "key": "pop_helminth" + }, + { + "description": "Women in the population have a substantial risk of HIV infection. Substantial risk of HIV infection is provisionally defined as HIV incidence greater than 3 per 100 person–years in the absence of pre-exposure prophylaxis (PrEP).", + "label": "HIV incidence greater than 3 per 100 person-years in the absence of PrEP", + "value": "false", + "key": "pop_hiv_incidence" + }, + { + "description": "Is the HIV prevalence consistently > 1% in pregnant women attending antenatal clinics?", + "label": "Generalized HIV epidemic", + "value": "false", + "key": "pop_hiv_generalized" + }, + { + "description": "HIV is spread rapidly in key populations (men who have sex with men, people in prison or other closed settings, people who inject drugs, sex workers and transgender people), i.e. HIV prevalence is consistently over 5% in at least one defined key population.", + "label": "Concentrated HIV epidemic", + "value": "false", + "key": "pop_hiv_concentrated" + }, + { + "description": "This is a malaria-endemic setting.", + "label": "Malaria-endemic setting", + "value": "true", + "key": "pop_malaria" + }, + { + "description": "The prevalence of syphilis in pregnant women in the population is 5% or higher.", + "label": "Syphilis prevalence 5% or higher", + "value": "false", + "key": "pop_syphilis" + }, + { + "description": "The proportion of Hepatitis B surface antigen (HBsAg) seroprevalance in the general population is 2% or higher.", + "label": "Hep B prevalence is intermediate (2% or higher) or high (5% or higher)", + "value": "false", + "key": "pop_hepb" + }, + { + "description": "There is a national Hepatitis B ANC routine screening program in place.", + "label": "National Hep B ANC routine screening program established", + "value": "true", + "key": "pop_hepb_screening" + }, + { + "description": "The proportion of Hepatitis C virus (HCV) antibody seroprevalence in the general population is 2% or higher. ", + "label": "Hep C prevalence is intermediate (2% or higher) or high (5% or higher)", + "value": "false", + "key": "pop_hepc" + } + ], + "locationId": "02ebbc84-5e29-4cd5-9b79-c594058923e9", + "type": "SettingConfiguration" + } + ] +} \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/anc_site_characteritics.json b/opensrp-anc/src/main/assets/anc_site_characteritics.json new file mode 100644 index 000000000..bdb4bf671 --- /dev/null +++ b/opensrp-anc/src/main/assets/anc_site_characteritics.json @@ -0,0 +1,28 @@ +{ + "settingConfigurations": [ + { + "identifier": "site_characteristics", + "settings": [ + { + "description": "\"Are all of the following in place at your facility: \r\n1. A protocol or standard operating procedure for Intimate Partner Violence (IPV); \r\n2. A health worker trained on how to ask about IPV and how to provide the minimum response or beyond;\r\n3. A private setting; \r\n4. A way to ensure confidentiality; \r\n5. Time to allow for appropriate disclosure; and\r\n6. A system for referral in place. \"", + "label": "Minimum requirements for IPV assessment", + "type": "SettingConfiguration", + "value": "true", + "key": "site_ipv_assess" + }, + { + "description": "Is an ultrasound machine available and functional at your facility and a trained health worker available to use it?", + "label": "Ultrasound available", + "type": "SettingConfiguration", + "value": "false", + "key": "site_ultrasound" + } + ], + "providerId": "demo", + "locationId": "44de66fb-e6c6-4bae-92bb-386dfe626eba", + "teamId": "6c8d2b9b-2246-47c2-949b-4fe29e888cc8", + "team": "Bukesa", + "type": "SettingConfiguration" + } + ] +} \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json index b72606f07..0ed89bc63 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json +++ b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json @@ -90,30 +90,6 @@ "err": "{{anc_site_characteristics.step1.site_ipv_assess.v_required.err}}" } }, - { - "key": "site_anc_hiv", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "openmrs_data_type": "select one", - "label": "{{anc_site_characteristics.step1.site_anc_hiv.label}}", - "type": "native_radio", - "options": [ - { - "key": "1", - "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.1.text}}" - }, - { - "key": "0", - "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.0.text}}" - } - ], - "value": "", - "v_required": { - "value": "true", - "err": "{{anc_site_characteristics.step1.site_anc_hiv.v_required.err}}" - } - }, { "key": "site_ultrasound", "openmrs_entity_parent": "", @@ -137,30 +113,6 @@ "value": "true", "err": "{{anc_site_characteristics.step1.site_ultrasound.v_required.err}}" } - }, - { - "key": "site_bp_tool", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "openmrs_data_type": "select one", - "type": "native_radio", - "label": "{{anc_site_characteristics.step1.site_bp_tool.label}}", - "options": [ - { - "key": "1", - "text": "{{anc_site_characteristics.step1.site_bp_tool.options.1.text}}" - }, - { - "key": "0", - "text": "{{anc_site_characteristics.step1.site_bp_tool.options.0.text}}" - } - ], - "value": "", - "v_required": { - "value": "true", - "err": "{{anc_site_characteristics.step1.site_bp_tool.v_required.err}}" - } } ] }, From 28b7cf596c3c44349b9529d090df3535acd31e63 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 14:12:30 +0300 Subject: [PATCH 078/302] Update resources with latest --- .../src/main/assets/json.form/anc_close.json | 118 ++++++++--- .../json.form/anc_counselling_treatment.json | 2 +- .../assets/json.form/anc_physical_exam.json | 2 +- .../main/assets/json.form/anc_profile.json | 32 +-- .../assets/json.form/anc_quick_check.json | 188 ++++++++++-------- .../main/assets/json.form/anc_register.json | 16 +- .../sub_form/pelvic_exam_sub_form.json | 12 +- .../sub_form/tests_hepatitis_b_sub_form.json | 2 - .../sub_form/tests_hiv_sub_form.json | 2 +- .../main/assets/rule/ct_calculation_rules.yml | 42 ---- .../main/assets/rule/ct_relevance_rules.yml | 90 +-------- .../rule/physical-exam-calculations-rules.yml | 4 +- .../rule/physical-exam-relevance-rules.yml | 6 +- .../assets/rule/profile_calculation_rules.yml | 4 +- .../assets/rule/profile_relevance_rules.yml | 7 - .../assets/rule/tests_relevance_rules.yml | 8 +- .../ultrasound_sub_form_calculation_rules.yml | 4 +- .../src/main/resources/anc_close.properties | 25 ++- .../src/main/resources/anc_profile.properties | 3 +- .../main/resources/anc_quick_check.properties | 47 +++-- .../main/resources/anc_register.properties | 7 +- .../resources/pelvic_exam_sub_form.properties | 3 +- ...ests_blood_haemoglobin_sub_form.properties | 6 +- .../tests_hepatitis_b_sub_form.properties | 4 +- 24 files changed, 292 insertions(+), 342 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_close.json b/opensrp-anc/src/main/assets/json.form/anc_close.json index 113be4f24..d5ade64c4 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_close.json +++ b/opensrp-anc/src/main/assets/json.form/anc_close.json @@ -342,61 +342,131 @@ "openmrs_entity_id": "" }, { - "key": "forceps_or_vacuum", - "text": "{{anc_close.step1.ppfp_method.options.forceps_or_vacuum.text}}", + "key": "cu_iud", + "text": "{{anc_close.step1.ppfp_method.options.cu_iud.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "ocp", - "text": "{{anc_close.step1.ppfp_method.options.ocp.text}}", + "key": "lng_iud", + "text": "{{anc_close.step1.ppfp_method.options.lng_iud.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "780AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "condom", - "text": "{{anc_close.step1.ppfp_method.options.condom.text}}", + "key": "etg_implant", + "text": "{{anc_close.step1.ppfp_method.options.etg_implant.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "190AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "female_sterilization", - "text": "{{anc_close.step1.ppfp_method.options.female_sterilization.text}}", + "key": "lng_implant", + "text": "{{anc_close.step1.ppfp_method.options.lng_implant.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "5276AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "male_sterilization", - "text": "{{anc_close.step1.ppfp_method.options.male_sterilization.text}}", + "key": "dmpa_im", + "text": "{{anc_close.step1.ppfp_method.options.dmpa_im.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "iud", - "text": "{{anc_close.step1.ppfp_method.options.iud.text}}", + "key": "normal", + "text": "{{anc_close.step1.ppfp_method.options.normal.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "136452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "abstinence", - "text": "{{anc_close.step1.ppfp_method.options.abstinence.text}}", + "key": "dmpa_sc", + "text": "{{anc_close.step1.ppfp_method.options.dmpa_sc.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "159524AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "other", - "text": "{{anc_close.step1.ppfp_method.options.other.text}}", + "key": "net_en", + "text": "{{anc_close.step1.ppfp_method.options.net_en.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "" - } + }, + { + "key": "pop", + "text": "{{anc_close.step1.ppfp_method.options.pop.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "cop", + "text": "{{anc_close.step1.ppfp_method.options.coc.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "combined_patch", + "text": "{{anc_close.step1.ppfp_method.options.combined_patch.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "cvr", + "text": "{{anc_close.step1.ppfp_method.options.cvr.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "pvr", + "text": "{{anc_close.step1.ppfp_method.options.pvr.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "lam", + "text": "{{anc_close.step1.ppfp_method.options.lam.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "male_condoms", + "text": "{{anc_close.step1.ppfp_method.options.male_condoms.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "female_condoms", + "text": "{{anc_close.step1.ppfp_method.options.female_condoms.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, + { + "key": "male_sterilization", + "text": "{{anc_close.step1.ppfp_method.options.male_sterilization.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1489AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "female_sterilization", + "text": "{{anc_close.step1.ppfp_method.options.female_sterilization.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5276AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, ], "v_required": { "value": "false" diff --git a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json index 4bb9d105f..9674f7dd0 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json +++ b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json @@ -5476,4 +5476,4 @@ ] }, "properties_file_name": "anc_counselling_treatment" -} \ No newline at end of file +} diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index fbdadf89a..17524ed9b 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -2734,4 +2734,4 @@ ] }, "properties_file_name": "anc_physical_exam" -} \ No newline at end of file +} diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index a800d9a4b..0754af1a2 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -5,7 +5,7 @@ "encounter_type": "Profile", "entity_id": "", "relational_id": "", - "form_version": "0.0.15", + "form_version": "0.0.1", "metadata": { "start": { "openmrs_entity_parent": "", @@ -48,7 +48,7 @@ "openmrs_data_type": "phonenumber", "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", + "encounter_location": "", "look_up": { "entity_id": "", "value": "" @@ -145,7 +145,7 @@ "title": "{{anc_profile.step1.title}}", "next": "step2", "fields": [ - { + { "key": "headss_toaster", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", @@ -155,8 +155,8 @@ "text_color": "#1199F9", "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", - "toaster_type": "info" - }, + "toaster_type": "info", + }, { "key": "educ_level", "openmrs_entity_parent": "", @@ -682,7 +682,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn't done or it wasn't done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", "label_info_title": "GA from SFH or abdominal palpation - weeks", "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", "v_required": { @@ -768,7 +768,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" } ], "v_required": { @@ -803,7 +803,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { @@ -838,7 +838,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { @@ -873,7 +873,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" }, { "key": "ultrasound", @@ -881,7 +881,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { @@ -916,7 +916,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" }, { "key": "sfh", @@ -924,7 +924,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { @@ -1545,7 +1545,7 @@ "openmrs_entity_id": "", "key": "vacuum", "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum.text}}" - }, + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2130,7 +2130,7 @@ "openmrs_entity_id": "119481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "diabetes", "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}" - }, + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2816,7 +2816,7 @@ "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", + "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day.", "exclusive": [ "none" ], diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index f714a9efa..03331dfc2 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -102,10 +102,6 @@ "label": "{{anc_quick_check.step1.specific_complaint.label}}", "label_text_style": "bold", "text_color": "#000000", - "exclusive": [ - "dont_know", - "none" - ], "options": [ { "key": "abnormal_discharge", @@ -116,20 +112,20 @@ "openmrs_entity_id": "123395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "altered_skin_color", - "text": "{{anc_quick_check.step1.specific_complaint.options.altered_skin_color.text}}", + "key": "changes_in_bp", + "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "136443AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, - { - "key": "changes_in_bp", - "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp.text}}", + { + "key": "changes_in_bp_down", + "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "155052AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { "key": "constipation", @@ -155,21 +151,13 @@ "openmrs_entity": "concept", "openmrs_entity_id": "143264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - { - "key": "depression", - "text": "{{anc_quick_check.step1.specific_complaint.options.depression.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "119537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "anxiety", - "text": "{{anc_quick_check.step1.specific_complaint.options.anxiety.text}}", + { + "key": "diarrhea", + "text": "{{anc_quick_check.step1.specific_complaint.options.diarrhea.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "121543AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { "key": "dizziness", @@ -180,20 +168,20 @@ "openmrs_entity_id": "156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "domestic_violence", - "text": "{{anc_quick_check.step1.specific_complaint.options.domestic_violence.text}}", + "key": "no_fetal_movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "141814AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "1452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "extreme_pelvic_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text}}", + "key": "reduced_fetal_movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165270AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "113377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "fever", @@ -203,14 +191,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - { - "key": "full_abdominal_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "139547AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, { "key": "flu_symptoms", "text": "{{anc_quick_check.step1.specific_complaint.options.flu_symptoms.text}}", @@ -244,92 +224,92 @@ "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "leg_cramps", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_cramps.text}}", + "key": "trauma", + "text": "{{anc_quick_check.step1.specific_complaint.options.trauma.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "124193AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "leg_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_pain.text}}", + "key": "domestic_violence", + "text": "{{anc_quick_check.step1.specific_complaint.options.domestic_violence.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "114395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "141814AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "leg_redness", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_redness.text}}", + "key": "altered_skin_color", + "text": "{{anc_quick_check.step1.specific_complaint.options.altered_skin_color.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "165215AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "136443AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "low_back_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.low_back_pain.text}}", + "key": "leg_cramps", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_cramps.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "pelvic_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.pelvic_pain.text}}", + "key": "leg_redness", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_redness.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "165215AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "nausea_vomiting_diarrhea", - "text": "{{anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text}}", + "key": "anxiety", + "text": "{{anc_quick_check.step1.specific_complaint.options.anxiety.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "157892AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "121543AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "no_fetal_movement", - "text": "{{anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text}}", + "key": "depression", + "text": "{{anc_quick_check.step1.specific_complaint.options.depression.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "1452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "119537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "oedema", - "text": "{{anc_quick_check.step1.specific_complaint.options.oedema.text}}", + "key": "other_psychological_symptoms", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "160198AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "other_bleeding", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_bleeding.text}}", + "key": "nausea_vomiting_diarrhea", + "text": "{{anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "147241AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "157892AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "other_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_pain.text}}", + "key": "oedema", + "text": "{{anc_quick_check.step1.specific_complaint.options.oedema.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "114403AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "other_psychological_symptoms", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text}}", + "key": "other_bleeding", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_bleeding.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "160198AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "147241AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "other_skin_disorder", @@ -347,6 +327,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "158358AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, + { + "key": "full_abdominal_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "139547AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, { "key": "dysuria", "text": "{{anc_quick_check.step1.specific_complaint.options.dysuria.text}}", @@ -356,20 +344,52 @@ "openmrs_entity_id": "118771AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "pruritus", - "text": "{{anc_quick_check.step1.specific_complaint.options.pruritus.text}}", + "key": "extreme_pelvic_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "165270AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { - "key": "reduced_fetal_movement", - "text": "{{anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text}}", + "key": "leg_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_pain.text}}", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "113377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "114395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "low_back_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.low_back_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "other_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "114403AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "pelvic_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.pelvic_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "pruritus", + "text": "{{anc_quick_check.step1.specific_complaint.options.pruritus.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "shortness_of_breath", @@ -387,14 +407,6 @@ "openmrs_entity": "concept", "openmrs_entity_id": "124628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - { - "key": "trauma", - "text": "{{anc_quick_check.step1.specific_complaint.options.trauma.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "124193AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, { "key": "bleeding", "text": "{{anc_quick_check.step1.specific_complaint.options.bleeding.text}}", @@ -411,6 +423,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "123074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, + { + "key": "vomiting", + "text": "{{anc_quick_check.step1.specific_complaint.options.vomiting.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "" + }, { "key": "other_specify", "text": "{{anc_quick_check.step1.specific_complaint.options.other_specify.text}}", diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index a20737d98..b240d0a04 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -350,12 +350,12 @@ "err": "{{anc_register.step1.alt_phone_number.v_numeric.err}}" } }, - { + { "key": "cohabitants", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "", - "label":"{{anc_register.step1.cohabitants.label}}", + "label":"{{anc_register.step1.cohabitants.text}}", "label_info_text": "{{anc_register.step1.cohabitants.label_info_text}}", "type": "check_box", "exclusive": [ @@ -371,7 +371,7 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, - { + { "key": "siblings", "text": "{{anc_register.step1.cohabitants.options.siblings.text}}", "text_size": "18px", @@ -380,7 +380,7 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, - { + { "key": "extended_family", "text": "{{anc_register.step1.cohabitants.options.extended_family.text}}", "text_size": "18px", @@ -389,7 +389,7 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, - { + { "key": "partner", "text": "{{anc_register.step1.cohabitants.options.partner.text}}", "text_size": "18px", @@ -398,7 +398,7 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, - { + { "key": "friends", "text": "{{anc_register.step1.cohabitants.options.friends.text}}", "text_size": "18px", @@ -407,7 +407,7 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, - { + { "key": "no_one", "text": "{{anc_register.step1.cohabitants.options.no_one.text}}", "text_size": "18px", @@ -485,4 +485,4 @@ ] }, "properties_file_name": "anc_register" -} \ No newline at end of file +} diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json index b9530e5dd..b24cbf1d0 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/pelvic_exam_sub_form.json @@ -71,8 +71,8 @@ "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text}}", "value": false, "openmrs_entity": "concept", - "openmrs_entity_id": "165287AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "", + "openmrs_entity_parent": "" }, { "key": "cervical_friability", @@ -90,14 +90,6 @@ "openmrs_entity_id": "165371AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - { - "key": "unilateral_lymphadenopathy", - "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text}}", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165289AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, { "key": "vaginal_discharge_curd_like", "text": "{{pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text}}", diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json index 727bfe67a..af56458c8 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json @@ -351,8 +351,6 @@ "openmrs_entity_id": "", "type": "toaster_notes", "text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text}}", - "toaster_info_text": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text}}", - "toaster_info_title": "{{tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title}}", "toaster_type": "info", "relevance": { "rules-engine": { diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json index bdc0bc6db..ed0aaaaaa 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json @@ -7,7 +7,7 @@ "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "label": "{{tests_hiv_sub_form.step1.hiv_test_status.label}}", "label_text_style": "bold", - "label_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn\u0027t required if the woman is already confirmed HIV+.", + "label_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (29 weeks), if the HIV prevalence is consistently > 1% in pregnant women attending antenatal clinics or if HIV prevalence is consistently over 5% in at least one defined key population (e.g. men who have sex with men, people in prison or other closed settings, people who inject drugs, sex workers and transgender people). A test is not required if the woman is already confirmed HIV+.", "text_color": "#000000", "type": "extended_radio_button", "options": [ diff --git a/opensrp-anc/src/main/assets/rule/ct_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/ct_calculation_rules.yml index 9410551e1..d11466f7c 100644 --- a/opensrp-anc/src/main/assets/rule/ct_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/ct_calculation_rules.yml @@ -251,48 +251,6 @@ condition: "step11_tt3_date != '' && step11_tt3_date != 'not_done'" actions: - "calculation = 3" --- -name: step11_hepb1_date_done_date_today_hidden -description: hepb1_date_done_today -priority: 1 -condition: "step11_hepb1_date != '' && step11_hepb1_date == 'done_today'" -actions: - - "calculation = helper.getDateToday()" ---- -name: step11_hepb2_date_done_date_today_hidden -description: hepb2_date_done_today -priority: 1 -condition: "step11_hepb2_date != '' && step11_hepb2_date == 'done_today'" -actions: - - "calculation = helper.getDateToday()" ---- -name: step11_hepb3_date_done_date_today_hidden -description: hepb3_date_done_today -priority: 1 -condition: "step11_hepb3_date != '' && step11_hepb3_date == 'done_today'" -actions: - - "calculation = helper.getDateToday()" ---- -name: step11_hepb1_dose_number -description: hepb1_dose_number -priority: 1 -condition: "step11_hepb1_date != '' && step11_hepb1_date != 'not_done'" -actions: - - "calculation = 1" ---- -name: step11_hepb2_dose_number -description: hepb2_dose_number -priority: 1 -condition: "step11_hepb2_date != '' && step11_hepb2_date != 'not_done'" -actions: - - "calculation = 2" ---- -name: step11_hepb3_dose_number -description: hepb3_dose_number -priority: 1 -condition: "step11_hepb3_date != '' && step11_hepb3_date != 'not_done'" -actions: - - "calculation = 3" ---- name: step11_flu_date_done_date_today_hidden description: Date flu dose was given priority: 1 diff --git a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml index 3f16e4d8c..22498b065 100644 --- a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml @@ -100,7 +100,7 @@ actions: name: step1_abn_feat_heart_rate_toaster description: Abnormal fetal heart rate priority: 1 -condition: "global_fetal_heart_rate_repeat < 110 || global_fetal_heart_rate_repeat > 160" +condition: "global_fetal_heart_rate_repeat < 100 || global_fetal_heart_rate_repeat > 180" actions: - "isRelevant = true" --- @@ -359,7 +359,7 @@ actions: name: step7_birth_plan_toaster description: birth_plan_toaster priority: 1 -condition: "(!global_other_symptoms.isEmpty() && global_other_symptoms.contains('vaginal_bleeding')) || (global_gravida != '' && global_gravida == 1) || (global_parity != '' && global_parity > 5) || (global_hiv_positive != '' && global_hiv_positive == 1) || (!global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('3rd_degree_tear') || global_prev_preg_comps.contains('heavy_bleeding') || global_prev_preg_comps.contains('vacuum_delivery') || global_prev_preg_comps.contains('convulsions'))) || global_fetal_presentation != '' && (global_fetal_presentation == 'transverse' || global_fetal_presentation == 'other') || (global_age != '' && global_age <= 17) || (global_c_sections != '' && global_c_sections > 0) || (global_no_of_fetuses != '' && global_no_of_fetuses > 1) || 'step7_family_planning_type' == 'iud' || 'step7_family_planning_type' == 'tubal_ligation'" +condition: "(!global_other_symptoms.isEmpty() && global_other_symptoms.contains('vaginal_bleeding')) || (global_gravida != '' && global_gravida == 1) || (global_parity != '' && global_parity > 5) || (global_hiv_positive != '' && global_hiv_positive == 1) || (!global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('3rd_degree_tear') || global_prev_preg_comps.contains('heavy_bleeding') || global_prev_preg_comps.contains('vacuum_delivery') || global_prev_preg_comps.contains('vacuum') || global_prev_preg_comps.contains('convulsions'))) || global_fetal_presentation != '' && (global_fetal_presentation == 'transverse' || global_fetal_presentation == 'other') || (global_age != '' && global_age <= 17) || (global_c_sections != '' && global_c_sections > 0) || (global_no_of_fetuses != '' && global_no_of_fetuses > 1) || 'step7_family_planning_type' == 'iud' || 'step7_family_planning_type' == 'tubal_ligation'" actions: - "isRelevant = true" --- @@ -384,20 +384,6 @@ condition: "global_gest_age_openmrs != '' && global_gest_age_openmrs >= 32" actions: - "isRelevant = true" --- -name: step8_ipv_enquiry -description: ipv_enquiry -priority: 1 -condition: "global_site_ipv_assess == true" -actions: - - "isRelevant = true" ---- -name: step8_ipv_refer_toaster -description: ipv_refer_toaster -priority: 1 -condition: "global_site_ipv_assess == false" -actions: - - "isRelevant = true" ---- name: step9_ifa_high_prev description: ifa_high_prev priority: 1 @@ -513,77 +499,7 @@ actions: name: step11_tt_dose_notdone description: tt_dose_notdone priority: 1 -condition: "step11_tt1_date == 'not_done' || step11_tt2_date == 'not_done' || step11_tt3_date == 'not_done'" -actions: - - "isRelevant = true" ---- -name: step11_woman_immunised_toaster -description: woman_immunised_toaster -priority: 1 -condition: "step11_tt3_date == 'done_earlier' || step11_tt3_date == 'done_today' " -actions: - - "isRelevant = true" ---- -name: step11_hepb_negative_note -description: hepb_negative_note -priority: 1 -condition: "global_hepb_positive != '' && global_hepb_positive == 0" -actions: - - "isRelevant = true" ---- -name: step11_hepb1_date -description: hepb1_date -priority: 1 -condition: "global_hepb_positive == 0 && (global_gest_age_openmrs != '' && global_gest_age_openmrs >= 12) && (global_contact_no == 1 || (global_contact_no > 1 && (global_previous_hepb1_date== '' || global_previous_hepb1_date == 'not_done')))" -actions: - - "isRelevant = true" ---- -name: step11_hepb2_date -description: hepb2_date -priority: 1 -condition: "global_contact_no > 1 && (helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb1_date_done,'28d') == 0 || helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb1_date_done,'28d') == -1) && (global_previous_hepb2_date == '' || global_previous_hepb2_date == 'not_done')" -actions: - - "isRelevant = true" ---- -name: step11_hepb3_date -description: hepb3_date -priority: 1 -condition: "global_contact_no > 1 && (helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb2_date_done,'140d') == 0 || helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb2_date_done,'140d') == -1) && (global_previous_hepb3_date == '' || global_previous_hepb3_date == 'not_done')" -actions: - - "isRelevant = true" ---- -name: step11_hepb1_date_done -description: Date hepb1 dose given -priority: 1 -condition: "(step11_hepb1_date!= '') && (step11_hepb1_date == 'done_earlier')" -actions: - - "isRelevant = true" ---- -name: step11_hepb2_date_done -description: Date hepb2 dose given -priority: 1 -condition: "(step11_hepb2_date != '') && (step11_hepb2_date == 'done_earlier')" -actions: - - "isRelevant = true" ---- -name: step11_hepb3_date_done -description: Date hepb3 dose given -priority: 1 -condition: "(step11_hepb3_date != '') && (step11_hepb3_date == 'done_earlier')" -actions: - - "isRelevant = true" ---- -name: step11_hepb_dose_notdone -description: hepb_dose_notdone -priority: 1 -condition: "step11_hepb1_date == 'not_done' || step11_hepb3_date == 'not_done' || step11_hepb3_date == 'not_done'" -actions: - - "isRelevant = true" ---- -name: step11_woman_immunised_hep_b_toaster -description: woman_immunised_hep_b_toaster -priority: 1 -condition: "step11_hepb3_date == 'done_earlier' || step11_hepb3_date == 'done_today' " +condition: "step11_tt1_date == 'not_done' || step11_tt2_date == 'not_done'" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml index 117886837..35f0a9501 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml @@ -86,7 +86,7 @@ actions: name: step2_severe_preeclampsia description: Severe preeclampsia priority: 1 -condition: "((step2_bp_systolic_repeat >= 160 || step2_bp_diastolic_repeat >= 110) && (step2_urine_protein == '+++' || step2_urine_protein == '++++')) || ((step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++') && (!step2_symp_sev_preeclampsia.isEmpty() && !step2_symp_sev_preeclampsia.contains('none')))" +condition: "((step2_bp_systolic_repeat >= 160 || step2_bp_diastolic_repeat >= 110) && (step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++')) || ((step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++') && (!step2_symp_sev_preeclampsia.isEmpty() && !step2_symp_sev_preeclampsia.contains('none')))" actions: - "calculation = 1" --- @@ -107,7 +107,7 @@ actions: name: step4_preeclampsia_risk description: Preeclampsia_risk priority: 1 -condition: "((global_prev_preg_comps != null && !global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('convulsions') || global_prev_preg_comps.contains('pre_eclampsia'))) || (global_health_conditions != null && !global_health_conditions.isEmpty() && (global_health_conditions.contains('autoimmune_disease') || global_health_conditions.contains('diabetes') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))) || (step4_no_of_fetuses != null && step4_no_of_fetuses != '' && step4_no_of_fetuses >= 2))" +condition: "((global_prev_preg_comps != null && !global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('convulsions') || global_prev_preg_comps.contains('pre_eclampsia'))) || (global_health_conditions != null && !global_health_conditions.isEmpty() && (global_health_conditions.contains('autoimmune_disease') || global_health_conditions.contains('diabetes') || global_health_conditions.contains('gest_diabetes') || global_health_conditions.contains('diabetes_other') || global_health_conditions.contains('diabetes_type2') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))) || (step4_no_of_fetuses != null && step4_no_of_fetuses != '' && step4_no_of_fetuses >= 2))" actions: - "calculation = 1" --- diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index 05ee87e94..57aed5d20 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -100,7 +100,7 @@ actions: name: step4_toaster28 description: Fetal heart beat rate priority: 1 -condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 110 || step4_fetal_heart_rate > 160))" +condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 100 || step4_fetal_heart_rate > 180))" actions: - "isRelevant = true" --- @@ -114,7 +114,7 @@ actions: name: step4_fetal_heart_rate_repeat_label description: Fetal heart beat rate priority: 1 -condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 110 || step4_fetal_heart_rate > 160))" +condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 100 || step4_fetal_heart_rate > 180))" actions: - "isRelevant = true" --- @@ -135,7 +135,7 @@ actions: name: step4_toaster29 description: Fetal heart beat rate repeat toaster priority: 1 -condition: "(step4_fetal_heart_rate_repeat > 0 && (step4_fetal_heart_rate_repeat < 110 || step4_fetal_heart_rate_repeat > 160))" +condition: "(step4_fetal_heart_rate_repeat > 0 && (step4_fetal_heart_rate_repeat < 100 || step4_fetal_heart_rate_repeat > 180))" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml index a7d738f81..db0103c96 100644 --- a/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml @@ -156,7 +156,7 @@ actions: name: step3_preeclampsia_risk description: preeclampsia_risk priority: 1 -condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))" +condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('gest_diabetes') || step4_health_conditions.contains('diabetes_other') || step4_health_conditions.contains('diabetes_type2') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))" actions: - "calculation = 1" --- @@ -170,7 +170,7 @@ actions: name: step4_preeclampsia_risk description: preeclampsia_risk priority: 1 -condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))" +condition: "((global_no_of_fetuses != null && global_no_of_fetuses != '' && global_no_of_fetuses >= 2) || (!step3_prev_preg_comps.isEmpty() && (step3_prev_preg_comps.contains('pre_eclampsia') || step3_prev_preg_comps.contains('eclampsia') || step3_prev_preg_comps.contains('convulsions'))) || (!step4_health_conditions.isEmpty() && (step4_health_conditions.contains('autoimmune_disease') || step4_health_conditions.contains('diabetes') || step4_health_conditions.contains('gest_diabetes') || step4_health_conditions.contains('diabetes_other') || step4_health_conditions.contains('diabetes_type2') || step4_health_conditions.contains('hypertension') || step4_health_conditions.contains('kidney_disease'))))" actions: - "calculation = 1" --- diff --git a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml index fc70da114..2e2752714 100644 --- a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml @@ -160,13 +160,6 @@ condition: "step4_health_conditions.contains('hiv') && !step4_hiv_diagnosis_date actions: - "isRelevant = true" --- -name: step5_hepb_immun_status -description: hepb_immun_status -priority: 1 -condition: "global_pop_hepb == true || global_pop_hepb_screening == true || step4_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')" -actions: - - "isRelevant = true" ---- name: step7_hiv_counselling_toaster description: Hiv Risk counselling priority: 1 diff --git a/opensrp-anc/src/main/assets/rule/tests_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/tests_relevance_rules.yml index f844d26da..6f12301c0 100644 --- a/opensrp-anc/src/main/assets/rule/tests_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/tests_relevance_rules.yml @@ -219,14 +219,14 @@ actions: name: step1_hepatitis_b_info_toaster description: Hep B vaccination required priority: 1 -condition: "step1_hepb_positive == 0 && (global_gest_age_openmrs != '' && global_gest_age_openmrs >= 12)" +condition: "step1_hepb_positive == 0" actions: - "isRelevant = true" --- name: step2_hepatitis_b_info_toaster description: Hep B vaccination required priority: 1 -condition: "step2_hepb_positive == 0 && (global_gest_age_openmrs != '' && global_gest_age_openmrs >= 12)" +condition: "step2_hepb_positive == 0" actions: - "isRelevant = true" --- @@ -863,14 +863,14 @@ actions: name: step1_hematocrit_danger_toaster description: hematocrit_danger_toaster priority: 1 -condition: "step1_ht > 0 && step1_ht < 10.5" +condition: "step1_ht > 0 && step1_ht < 20" actions: - "isRelevant = true" --- name: step2_hematocrit_danger_toaster description: hematocrit_danger_toaster priority: 1 -condition: "step2_ht > 0 && step2_ht < 10.5" +condition: "step2_ht > 0 && step2_ht < 20" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/assets/rule/ultrasound_sub_form_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/ultrasound_sub_form_calculation_rules.yml index 19c865f25..8e16bb908 100644 --- a/opensrp-anc/src/main/assets/rule/ultrasound_sub_form_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/ultrasound_sub_form_calculation_rules.yml @@ -198,14 +198,14 @@ actions: name: step1_preeclampsia_risk description: preeclampsia_risk priority: 1 -condition: "(step1_no_of_fetuses >= 2) || (global_prev_preg_comps.contains('pre_eclampsia_eclampsia') || global_prev_preg_comps.contains('convulsions')) || (global_health_conditions.contains('diabetes') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))" +condition: "(step1_no_of_fetuses >= 2) || (global_prev_preg_comps.contains('pre_eclampsia_eclampsia') || global_prev_preg_comps.contains('convulsions')) || (global_health_conditions.contains('diabetes') || global_health_conditions.contains('gest_diabetes') || global_health_conditions.contains('diabetes_other') || global_health_conditions.contains('diabetes_type2') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))" actions: - "calculation = 1" --- name: step2_preeclampsia_risk description: preeclampsia_risk priority: 1 -condition: "(step2_no_of_fetuses >= 2) || (global_prev_preg_comps.contains('pre_eclampsia_eclampsia') || global_prev_preg_comps.contains('convulsions')) || (global_health_conditions.contains('diabetes') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))" +condition: "(step2_no_of_fetuses >= 2) || (global_prev_preg_comps.contains('pre_eclampsia_eclampsia') || global_prev_preg_comps.contains('convulsions')) || (global_health_conditions.contains('diabetes') || global_health_conditions.contains('gest_diabetes') || global_health_conditions.contains('diabetes_other') || global_health_conditions.contains('diabetes_type2') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))" actions: - "calculation = 1" --- diff --git a/opensrp-anc/src/main/resources/anc_close.properties b/opensrp-anc/src/main/resources/anc_close.properties index ca3ef702a..878792861 100644 --- a/opensrp-anc/src/main/resources/anc_close.properties +++ b/opensrp-anc/src/main/resources/anc_close.properties @@ -20,18 +20,14 @@ anc_close.step1.anc_close_reason.options.other.text = Other anc_close.step1.miscarriage_abortion_date.hint = Date of miscarriage/abortion anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Postpartum haemorrhage anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Lost to follow-up -anc_close.step1.ppfp_method.options.condom.text = Condom -anc_close.step1.ppfp_method.options.ocp.text = OCP anc_close.step1.death_cause.options.eclampsia.text = Eclampsia anc_close.step1.anc_close_reason.options.abortion.text = Abortion anc_close.step1.ppfp_method.options.normal.text = None anc_close.step1.delivery_complications.hint = Any delivery complications? anc_close.step1.anc_close_reason.options.moved_away.text = Moved away -anc_close.step1.ppfp_method.options.male_sterilization.text = Male sterilization anc_close.step1.delivery_place.options.home.text = home anc_close.step1.delivery_date.hint = Delivery date anc_close.step1.delivery_place.options.other.text = Other -anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Exclusive breastfeeding anc_close.step1.anc_close_reason.hint = Reason? anc_close.step1.delivery_place.options.health_facility.text = Health facility anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Forceps or Vacuum @@ -45,7 +41,6 @@ anc_close.step1.death_cause.options.other.text = Other anc_close.step1.delivery_complications.options.None.text = None anc_close.step1.exclusive_bf.options.no.text = No anc_close.step1.delivery_complications.options.Obstructed_labour.text = Obstructed labour -anc_close.step1.ppfp_method.options.female_sterilization.text = Female sterilization anc_close.step1.death_cause.hint = Cause of death? anc_close.step1.exclusive_bf.hint = Exclusively breastfeeding? anc_close.step1.anc_close_reason.options.stillbirth.text = Stillbirth @@ -57,17 +52,31 @@ anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Pos anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pre-eclampsia anc_close.step1.delivery_place.v_required.err = Place of delivery is required anc_close.step1.delivery_complications.options.Eclampsia.text = Eclampsia -anc_close.step1.ppfp_method.options.iud.text = IUD anc_close.step1.anc_close_reason.options.woman_died.text = Woman died anc_close.step1.delivery_place.hint = Place of delivery? anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta praevia anc_close.step1.anc_close_reason.options.live_birth.text = Live birth anc_close.step1.anc_close_reason.options.miscarriage.text = Miscarriage anc_close.step1.delivery_complications.options.Placental_abruption.text = Placental abruption -anc_close.step1.ppfp_method.options.other.text = Other anc_close.step1.preterm.v_numeric.err = Number must be a number anc_close.step1.birthweight.v_required.err = Please enter the child's weight at birth anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Perineal tear (2nd, 3rd or 4th degree) anc_close.step1.death_cause.options.obstructed_labour.text = Obstructed labour -anc_close.step1.ppfp_method.options.abstinence.text = Abstinence anc_close.step1.exclusive_bf.options.yes.text = Yes +anc_close.step1.ppfp_method.options.cu_iud.text = Copper-bearing intrauterine device (Cu-IUD) +anc_close.step1.ppfp_method.options.lng_iud.text = Levonorgestrel intrauterine device (LNG-IUD) +anc_close.step1.ppfp_method.options.etg_implant.text = Etonogestrel (ETG) one-rod implant +anc_close.step1.ppfp_method.options.lng_implant.text = Levonorgestrel (LNG) two-rod implant +anc_close.step1.ppfp_method.options.dmpa_im.text = DMPA-IM +anc_close.step1.ppfp_method.options.dmpa_sc.text = DMPA-SC +anc_close.step1.ppfp_method.options.net_en.text = NET-EN norethisterone enanthate +anc_close.step1.ppfp_method.options.pop.text = Progestogen-only pills (POP) +anc_close.step1.ppfp_method.options.coc.text = Combined oral contraceptives (COCs) +anc_close.step1.ppfp_method.options.combined_patch.text = Combined contraceptive patch +anc_close.step1.ppfp_method.options.cvr.text = Combined contraceptive vaginal ring (CVR) +anc_close.step1.ppfp_method.options.pvr.text = Progesterone-releasing vaginal ring (PVR) +anc_close.step1.ppfp_method.options.lam.text = Lactational amenorrhea method (LAM) +anc_close.step1.ppfp_method.options.male_condoms.text = Male condoms +anc_close.step1.ppfp_method.options.female_condoms.text = Female condoms +anc_close.step1.ppfp_method.options.male_sterilization.text = Male sterilization +anc_close.step1.ppfp_method.options.female_sterilization.text = Female sterilization diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index b3aa011b5..2db4f8c02 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -313,5 +313,4 @@ anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1?4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea -anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink -anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. \ No newline at end of file +anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_quick_check.properties b/opensrp-anc/src/main/resources/anc_quick_check.properties index 38c0bad6e..0f067b3af 100644 --- a/opensrp-anc/src/main/resources/anc_quick_check.properties +++ b/opensrp-anc/src/main/resources/anc_quick_check.properties @@ -1,13 +1,13 @@ anc_quick_check.step1.specific_complaint.options.dizziness.text = Dizziness -anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Domestic violence +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Intimate partner violence anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Other bleeding -anc_quick_check.step1.specific_complaint.options.depression.text = Depression +anc_quick_check.step1.specific_complaint.options.depression.text = Mental health - Depression anc_quick_check.step1.specific_complaint.options.heartburn.text = Heartburn -anc_quick_check.step1.specific_complaint.options.other_specify.text = Other (specify) +anc_quick_check.step1.specific_complaint.options.other_specify.text = Other health concern (specify) anc_quick_check.step1.specific_complaint.options.oedema.text = Oedema anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Leg cramps -anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Other psychological symptoms +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Mental health - Other psychological symptoms anc_quick_check.step1.specific_complaint.options.fever.text = Fever anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Scheduled contact anc_quick_check.step1.danger_signs.options.severe_headache.text = Severe headache @@ -23,29 +23,30 @@ anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Central cyano anc_quick_check.step1.specific_complaint_other.v_regex.err = Please enter valid content anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Other skin disorder anc_quick_check.step1.danger_signs.options.danger_none.text = None -anc_quick_check.step1.specific_complaint.label = Specific complaint(s) -anc_quick_check.step1.specific_complaint.options.leg_pain.text = Leg pain +anc_quick_check.step1.specific_complaint.label = Health concern(s) +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Pain - Leg anc_quick_check.step1.title = Quick Check -anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Reduced or poor fetal movement +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Fetal movements - reduced/poor anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Bleeding vaginally -anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Full abdominal pain -anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Pain - Abdominal +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Other types of violence -anc_quick_check.step1.specific_complaint.options.other_pain.text = Other pain -anc_quick_check.step1.specific_complaint.options.anxiety.text = Anxiety -anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Extreme pelvic pain - can't walk (symphysis pubis dysfunction) -anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Pelvic pain +anc_quick_check.step1.specific_complaint.options.other_pain.text = Pain - Other +anc_quick_check.step1.specific_complaint.options.anxiety.text = Mental health - Anxiety +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Pain - Extreme pelvic pain/cannot walk (symphysis pubis dysfunction) +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Pain - Pelvic anc_quick_check.step1.specific_complaint.options.bleeding.text = Vaginal bleeding -anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Changes in blood pressure +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Change in blood pressure - up (hypertension) +anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text = Change in blood pressure - down (hypotension) anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Shortness of breath -anc_quick_check.step1.specific_complaint.v_required.err = Specific complain is required +anc_quick_check.step1.specific_complaint.v_required.err = Specific complaint is required anc_quick_check.step1.contact_reason.v_required.err = Reason for coming to facility is required -anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss (leaking) anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Severe abdominal pain anc_quick_check.step1.contact_reason.label = Reason for coming to facility anc_quick_check.step1.danger_signs.label = Danger signs -anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Low back pain -anc_quick_check.step1.specific_complaint.options.trauma.text = Trauma +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Pain - Low back +anc_quick_check.step1.specific_complaint.options.trauma.text = Injury anc_quick_check.step1.danger_signs.options.unconscious.text = Unconscious anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaundice anc_quick_check.step1.danger_signs.options.labour.text = Labour @@ -54,12 +55,14 @@ anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Visual dist anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Imminent delivery anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus anc_quick_check.step1.specific_complaint.options.cough.text = Cough -anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain during urination (dysuria) +anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain - During urination (dysuria) anc_quick_check.step1.contact_reason.options.first_contact.text = First contact anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Flu symptoms -anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea / vomiting / diarrhea -anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = No fetal movement +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Fetal movements - none anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsing anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Severe vomiting -anc_quick_check.step1.contact_reason.options.specific_complaint.text = Specific complaint +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Health concern anc_quick_check.step1.danger_signs.v_required.err = Danger signs is required +anc_quick_check.step1.specific_complaint.options.vomiting.text = Vomiting +anc_quick_check.step1.specific_complaint.options.diarrhea.text = Diarrhoea diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index cd93a7997..31b969ff8 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -31,11 +31,6 @@ anc_register.step1.last_name.hint = Last name anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number anc_register.step1.dob_entered.duration.label = Age -anc_register.step1.cohabitants.label = Co-habitants -anc_register.step1.cohabitants.label_info_text = Co-habitants +anc_register.step1.cohabitants.text = Co-habitants anc_register.step1.cohabitants.options.parents.text = Parents -anc_register.step1.cohabitants.options.siblings.text = Siblings -anc_register.step1.cohabitants.options.extended_family.text = Extended Family -anc_register.step1.cohabitants.options.partner.text = Partner -anc_register.step1.cohabitants.options.friends.text = Friends anc_register.step1.cohabitants.options.no_one.text = No one \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties b/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties index 373fc4b61..d932717e1 100644 --- a/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties +++ b/opensrp-anc/src/main/resources/pelvic_exam_sub_form.properties @@ -8,10 +8,9 @@ pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_l pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesicles pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Foul-smelling vaginal discharge pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Specify -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Tender bilateral inguinal and femoral lymphadenopathy +pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Lymphadenopathy (pelvic) (unilateral) (bilateral) pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Please enter valid content pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidence of amniotic fluid pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Genital pain pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Cervical friability -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Tender unilateral lymphadenopathy diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties index 9947430ce..6d97fc083 100644 --- a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties @@ -6,7 +6,7 @@ tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Sp tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Complete blood count test result (g/dl) tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Hb test (haemoglobin colour scale) tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Anaemia diagnosis! -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Platelet count under 100,000. +tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Platelet count under 100,000 cells/microlitre (μl).\n\nFollow-up steps/investigations: clinician's discretion tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Hb test result - haemoglobin colour scale (g/dl) tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Other (specify) tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = White blood cell count too high! @@ -16,9 +16,9 @@ tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Ex tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Hematocrit levels too low! tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Enter the White blood cell (WBC) count tests_blood_haemoglobin_sub_form.step1.platelets.hint = Platelet count -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = White blood cell count above 16,000. +tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = White blood cell count above 16,000.\n\nFollow-up steps/investigations: clinician's discretion tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = Hb test type is required -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Hemotacrit levels less than 10.5. +tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Hemotacrit levels less than 20%.\n\nFollow-up steps/investigations: clinician's discretion tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = HB test not done reason is required tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Reason tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Complete blood count test is the preferred method for testing for anaemia in pregnancy. If complete blood count test is not available, haemoglobinometer is recommended over haemoglobin colour scale. diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties index 971a71e9b..8e4f5b8f6 100644 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -1,7 +1,6 @@ tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Stock out tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Hep B positive diagnosis! tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Hepatitis B test is required -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Hep B vaccination required anytime after 12 weeks gestation. tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Hep B test type is required tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = HBsAg rapid diagnostic test is required tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = HBsAg laboratory-based immunoassay (recommended) @@ -14,7 +13,6 @@ tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Dried B tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Hep B test type tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Hep B positive diagnosis! tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Expired stock -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Hep B vaccination required. tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Other (specify) tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Dried Blood Spot (DBS) HBsAg test tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Hepatitis B test not done reason is required @@ -24,10 +22,10 @@ tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = H tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Hep B vaccination required. tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Specify tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = HBsAg rapid diagnostic test (RDT) tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negative tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Counselling and referral required. +tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Hep B negative. Please follow national policy regarding Hep B vaccination. \ No newline at end of file From 1caee4a066d2f3404a295c5ace890fdf8090a660 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 11:08:43 +0300 Subject: [PATCH 079/302] Show headss toaster in profile only if woman > 19 years Fixes #557 --- .../src/main/assets/json.form/anc_profile.json | 13 ++++++++++--- .../main/assets/rule/profile_relevance_rules.yml | 10 +++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 0754af1a2..f8cfad00d 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -156,7 +156,14 @@ "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", "toaster_type": "info", - }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, { "key": "educ_level", "openmrs_entity_parent": "", @@ -1545,7 +1552,7 @@ "openmrs_entity_id": "", "key": "vacuum", "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum.text}}" - }, + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -2130,7 +2137,7 @@ "openmrs_entity_id": "119481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "diabetes", "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}" - }, + }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", diff --git a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml index 2e2752714..1569679f6 100644 --- a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml @@ -172,4 +172,12 @@ description: Hiv Risk counselling priority: 1 condition: "(step8_hiv_risk == 1)" actions: - - "isRelevant = true" \ No newline at end of file + - "isRelevant = true" +--- +name: step1_headss_toaster +description: Headss Toaster +priority: 1 +condition: "(global_age > 19)" +actions: + - "isRelevant = true" +--- \ No newline at end of file From 3e587ff543b7e3e51e3853b1b842a2bd3249e7a7 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 11:53:52 +0300 Subject: [PATCH 080/302] Change contact summary abnormal heartbeat conditions --- opensrp-anc/src/main/assets/config/contact-summary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index 0fac2c553..c4826582f 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -51,7 +51,7 @@ fields: relevance: "fetal_heartbeat == 'no'" - template: "{{contact_summary.hospital_referral.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat}bpm" - relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" + relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" --- group: reason_for_visit From ee89d26a9fc9abcee3f4a6d2f579bac6ea525a53 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 11:57:12 +0300 Subject: [PATCH 081/302] Change contact summary - reason for visit - health concerns label --- opensrp-anc/src/main/assets/config/contact-summary.yml | 2 +- opensrp-anc/src/main/resources/contact_summary.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index c4826582f..b39b9ae2d 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -59,7 +59,7 @@ fields: - template: "{{contact_summary.reason_for_visit.reason_for_coming_to_facility}}: {contact_reason_value}" relevance: "contact_reason_value != ''" -- template: "{{contact_summary.reason_for_visit.specific_complaint }}: {specific_complaint_value}" +- template: "{{contact_summary.reason_for_visit.health_complaint }}: {specific_complaint_value}" relevance: "specific_complaint_value != ''" --- diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties index 8103a428d..7115c58a3 100644 --- a/opensrp-anc/src/main/resources/contact_summary.properties +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -16,7 +16,7 @@ contact_summary.hospital_referral.abnormal_pelvic_exam = Abnormal pelvic exam contact_summary.hospital_referral.no_fetal_heartbeat_observed = No fetal heartbeat observed contact_summary.hospital_referral.abnormal_fetal_heart_rate = Abnormal fetal heart rate contact_summary.reason_for_visit.reason_for_coming_to_facility = Reason for coming to facility -contact_summary.reason_for_visit.specific_complaint = Specific complaint(s) +contact_summary.reason_for_visit.health_complaint = Health complaint(s) contact_summary.demographic_info.educ_level = Highest level of school contact_summary.demographic_info.marital_status = Marital status contact_summary.demographic_info.occupation = Occupation From 088bfce65cb16e0d1a9b7671bbb402dbd1018082 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 14:09:52 +0300 Subject: [PATCH 082/302] Change contact summary content - Remove tt 3 date in contact summary - Remove IPV assessment - Change the daily dose of mg folic acid from 2.8 to 0.4 - Remove Hep B doses and immunisation status --- .../main/assets/config/contact-summary.yml | 32 +------------------ .../main/resources/contact_summary.properties | 14 ++------ 2 files changed, 3 insertions(+), 43 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index b39b9ae2d..b3c1a6edf 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -152,26 +152,8 @@ fields: - template: "{{contact_summary.immunisation_status.tt_dose_2}}: {tt2_date_done}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" -- template: "{{contact_summary.immunisation_status.tt_dose_3}}: {tt3_date_done}" - relevance: "tt3_date == 'done_today' || tt3_date == 'done_earlier'" - - template: "{{contact_summary.immunisation_status.tt_dose_not_given}}: {tt_dose_notdone_value}" - relevance: "tt1_date == 'not_done' || tt2_date == 'not_done' || tt3_date == 'not_done'" - -- template: "{{contact_summary.immunisation_status.hep_b_immunisation_status}}: {hepb_immun_status}" - relevance: "hepb_immun_status_value != ''" - -- template: "{{contact_summary.immunisation_status.hep_b_dose_1}}: {hepb1_date_done}" - relevance: "hepb1_date == 'done_today' || hepb1_date == 'done_earlier'" - -- template: "{{contact_summary.immunisation_status.hep_b_dose_2}}: {hepb2_date_done}" - relevance: "hepb2_date == 'done_today' || hepb2_date == 'done_earlier'" - -- template: "{{contact_summary.immunisation_status.hep_b_dose_3}}: {hepb3_date_done}" - relevance: "hepb3_date == 'done_today' || hepb3_date == 'done_earlier'" - -- template: "{{contact_summary.immunisation_status.hep_b_dose_not_given}}: {hepb_dose_notdone_value}" - relevance: "hepb1_date == 'not_done' || hepb2_date == 'not_done' || hepb3_date == 'not_done'" + relevance: "tt1_date == 'not_done' || tt2_date == 'not_done'" - template: "{{contact_summary.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" relevance: "flu_immun_status_value != ''" @@ -912,18 +894,6 @@ fields: - template: "{{contact_summary.breastfeeding_counseling.breastfeeding_counseling_not_done}}" relevance: "breastfeed_counsel == 'not_done'" --- -group: ipv_assessment -fields: - -- template: "{{contact_summary.ipv_assessment.clinical_enquiry_for_IPV_done}}" - relevance: "ipv_enquiry == 'done'" - -- template: "{{contact_summary.ipv_assessment.ipv_enquiry_results}}: {ipv_enquiry_results}" - relevance: "ipv_enquiry_results != ''" - -- template: "{{contact_summary.ipv_assessment.clinical_enquiry_for_IPV_not_done}}: {ipv_enquiry_notdone_value}" - relevance: "ipv_enquiry == 'not_done'" ---- group: anaemia_prevention fields: diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties index 7115c58a3..10a57383e 100644 --- a/opensrp-anc/src/main/resources/contact_summary.properties +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -43,13 +43,7 @@ contact_summary.medical_history.hiv_diagnosis_date_unknown = HIV diagnosis date contact_summary.immunisation_status.tt_immunisation_status = TT immunisation status contact_summary.immunisation_status.tt_dose_1 = TT dose #1 contact_summary.immunisation_status.tt_dose_2 = TT dose #2 -contact_summary.immunisation_status.tt_dose_3 = TT dose #3 contact_summary.immunisation_status.tt_dose_not_given = TT dose not given -contact_summary.immunisation_status.hep_b_immunisation_status = Hep B immunisation status -contact_summary.immunisation_status.hep_b_dose_1 = Hep B dose #1 -contact_summary.immunisation_status.hep_b_dose_2 = Hep B dose #2 -contact_summary.immunisation_status.hep_b_dose_3 = Hep B dose #3 -contact_summary.immunisation_status.hep_b_dose_not_given = Hep B dose not given contact_summary.immunisation_status.flu_immunisation_status = Flu immunisation status contact_summary.immunisation_status.flu_dose = Flu dose contact_summary.immunisation_status.flu_dose_not_given = Flu dose not given @@ -166,8 +160,8 @@ contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_ordered = Blood ha contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_date = Blood haemoglobin test date contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_not_done = Blood haemoglobin test not done contact_summary.blood_haemoglobin_test.blood_haemoglobin_test_not_done_other_reason = Blood haemoglobin test not done other reason -contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_given = Daily dose of 120 mg iron and 2.8 mg folic acid given -contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_not_given = Daily dose of 120 mg iron and 2.8 mg folic acid not given +contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_given = Daily dose of 120 mg iron and 0.4 mg folic acid given +contact_summary.blood_haemoglobin_test.daily_dose_folic_acid_not_given = Daily dose of 120 mg iron and 0.4 mg folic acid not given contact_summary.blood_haemoglobin_test.complete_blood_count_test_result_g_dl = Complete blood count test result contact_summary.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl = RHb test result - haemoglobinometer contact_summary.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl = Hb test result - haemoglobin colour scale @@ -218,10 +212,6 @@ contact_summary.birth_plan_counseling.birth_preparedness_counseling_not_done = B contact_summary.breastfeeding_counseling.breastfeeding_counseling_done = Breastfeeding counseling done contact_summary.breastfeeding_counseling.breastfeeding_counseling_not_done = Breastfeeding counseling not done -contact_summary.ipv_assessment.clinical_enquiry_for_IPV_done = Clinical enquiry for IPV done -contact_summary.ipv_assessment.ipv_enquiry_results = IPV enquiry results -contact_summary.ipv_assessment.clinical_enquiry_for_IPV_not_done = Clinical enquiry for IPV not done - contact_summary.anaemia_prevention.daily_folic_acid_prescribed = Daily dose of 60 mg iron and 0.4 mg folic acid prescribed contact_summary.anaemia_prevention.daily_folic_acid_not_prescribed = Daily dose of 60 mg iron and 0.4 mg folic acid not prescribed contact_summary.anaemia_prevention.daily_30_60_folic_acid_prescribed = Daily dose of 30 to 60 mg iron and 0.4 mg folic acid prescribed From 635e98960ef25232c9a58ffc858145d50b159f59 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 15:25:34 +0300 Subject: [PATCH 083/302] Update Attention Flag content & logic Fixes #572 - Update condition for an abnormal heart beat - Update condition for hematocrit - Update health conditions check - Update past pregnancy conditions --- opensrp-anc/src/main/assets/config/attention-flags.yml | 8 ++++---- opensrp-anc/src/main/resources/attention_flags.properties | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/attention-flags.yml b/opensrp-anc/src/main/assets/config/attention-flags.yml index 5b1b5394b..2d4e8bd26 100644 --- a/opensrp-anc/src/main/assets/config/attention-flags.yml +++ b/opensrp-anc/src/main/assets/config/attention-flags.yml @@ -13,7 +13,7 @@ fields: relevance: "parity >= 5" - template: "{{attention_flags.yellow.past_pregnancy_problems}}: {prev_preg_comps_value}" - relevance: "!prev_preg_comps.isEmpty() && !prev_preg_comps.contains('none')" + relevance: "!prev_preg_comps.isEmpty() && !prev_preg_comps.contains('none') && !prev_preg_comps.contains('dont_know')" - template: "{{attention_flags.yellow.past_alcohol_substances_used}}: {substances_used_value}" relevance: "!substances_used.isEmpty() && !substances_used.contains('none')" @@ -28,7 +28,7 @@ fields: relevance: "!surgeries.isEmpty() && !surgeries.contains('none')" - template: "{{attention_flags.yellow.chronic_health_conditions}}: {health_conditions_value}" - relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none')" + relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('dont_know')" - template: "{{attention_flags.yellow.high_daily_consumption_of_caffeine}}" relevance: "!caffeine_intake.isEmpty() && !caffeine_intake.contains('none')" @@ -130,7 +130,7 @@ fields: relevance: "fetal_heartbeat == 'no'" - template: "{{attention_flags.red.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat}bpm" - relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" + relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" - template: "{{attention_flags.red.no_of_fetuses}}: {no_of_fetuses}" relevance: "no_of_fetuses > 1" @@ -172,7 +172,7 @@ fields: relevance: "dm_in_preg == 1" - template: "{{attention_flags.red.hematocrit_ht}}: {ht}" - relevance: "ht < 10.5" + relevance: "ht < 20" - template: "{{attention_flags.red.white_blood_cell_wbc_count}}: {wbc}" relevance: "wbc > 16000" diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index 16c657170..cc38a5477 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -18,7 +18,7 @@ attention_flags.yellow.abnormal_pelvic_exam = Abnormal pelvic exam attention_flags.yellow.oedema_present = Oedema present attention_flags.yellow.rh_factor_negative = Rh factor negative attention_flags.red.danger_sign = Danger sign(s) -attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Informal employment (sex worker) +attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Employment that puts woman at increased risk for HIV (e.g. sex worker) attention_flags.red.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended attention_flags.red.no_of_stillbirths = No. of stillbirths attention_flags.red.no_of_C_sections = No. of C-sections From 9663ec19f25f3c53da7d1096f449fe45da6794af Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 16:06:52 +0300 Subject: [PATCH 084/302] Update Profile Overview content and logic - Update occupation logic - Update past medical conditions logic - Update Hypertension and Symptoms of severe pre-eclampsia logic - Update abnormal fetal heart rate logic - Update TT immunisation status logic - Remove TT dose 3 and Hep b sections - Update Flu immunisation status logic Fixes #571 --- .../main/assets/config/profile-overview.yml | 29 +++++-------------- .../resources/profile_overview.properties | 5 ---- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 560174a16..4e21df2c5 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -4,7 +4,8 @@ group: overview_of_pregnancy sub_group: demographic_info fields: - template: "{{profile_overview.overview_of_pregnancy.demographic_info.occupation}}: {occupation}" - relevance: "occupation != ''" + relevance: "occupation == 'informal_employment_sex_worker'" + isRedFont: "true" --- sub_group: current_pregnancy @@ -81,7 +82,7 @@ fields: relevance: "surgeries != ''" - template: "{{profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions}}: {health_conditions}" - relevance: "!health_conditions.isEmpty()" + relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('dont_know')" - template: "{{profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date}}: {hiv_diagnosis_date}" relevance: "hiv_diagnosis_date != ''" @@ -150,7 +151,7 @@ fields: relevance: "severe_hypertension == 1 && global_contact_no == 1" - template: "{{profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia}" - relevance: "hypertension == 1 && symp_sev_preeclampsia!=''" + relevance: "hypertension == 1 && symp_sev_preeclampsia != '' && symp_sev_preeclampsia != 'none'" - template: "{{profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis}}" relevance: "preeclampsia == 1 && global_contact_no == 1" @@ -189,7 +190,7 @@ fields: isRedFont: "true" - template: "{{profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" - relevance: "fetal_heart_rate_repeat < 110 || fetal_heart_rate_repeat > 160" + relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" --- group: physiological_symptoms @@ -226,7 +227,7 @@ group: immunisation_status fields: - template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" relevance: "tt_immun_status != ''" - isRedFont: "tt_immun_status == 'TTCV not received' || tt_immun_status == 'Unknown'" + isRedFont: "tt_immun_status == 'ttcv_not_received' || tt_immun_status == 'unknown'" - template: "{{profile_overview.immunisation_status.tt_dose_1}}: {tt1_date}" relevance: "tt1_date == 'Done today' || tt1_date == 'Done earlier'" @@ -234,25 +235,9 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date}" relevance: "tt2_date == 'Done today' || tt2_date == 'Done earlier'" -- template: "{{profile_overview.immunisation_status.tt_dose_3}}: {tt3_date}" - relevance: "tt3_date == 'Done today' || tt3_date == 'Done earlier'" - -- template: "{{profile_overview.immunisation_status.hep_b_immunisation_status}}: {hepb_immun_status}" - relevance: "hepb_immun_status != ''" - isRedFont: "hepb_immun_status == 'TTCV not received' || hepb_immun_status == 'Unknown' || hepb_immun_status == 'Incomplete'" - -- template: "{{profile_overview.immunisation_status.hep_b_dose_1}}: {hepb1_date}" - relevance: "hepb1_date == 'Done today' || hepb1_date == 'Done earlier'" - -- template: "{{profile_overview.immunisation_status.hep_b_dose_2}}: {hepb2_date}" - relevance: "hepb2_date == 'Done today' || hepb2_date == 'Done earlier'" - -- template: "{{profile_overview.immunisation_status.hep_b_dose_3}}: {hepb3_date}" - relevance: "hepb3_date == 'Done today' || hepb3_date == 'Done earlier'" - - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" relevance: "flu_immun_status != ''" - isRedFont: "flu_immun_status == 'Seasonal flu dose missing' || flu_immun_status == 'Unknown'" + isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date}" relevance: "flu_date == 'Done today' || flu_date == 'Done earlier'" \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 464994fa8..1c212a508 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -58,10 +58,5 @@ profile_overview.malaria_prophylaxis.iptp_sp_dose_3 = IPTp-SP dose 3 profile_overview.immunisation_status.tt_immunisation_status = TT immunisation status profile_overview.immunisation_status.tt_dose_1 = TT dose #1 profile_overview.immunisation_status.tt_dose_2 = TT dose #2 -profile_overview.immunisation_status.tt_dose_3 = TT dose #3 -profile_overview.immunisation_status.hep_b_immunisation_status = Hep B immunisation status -profile_overview.immunisation_status.hep_b_dose_1 = Hep B dose #1 -profile_overview.immunisation_status.hep_b_dose_2 = Hep B dose #2 -profile_overview.immunisation_status.hep_b_dose_3 = Hep B dose #3 profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation status profile_overview.immunisation_status.flu_dose = Flu dose \ No newline at end of file From 97100bb3b092d40022555cce7cceaf8acffc9c76 Mon Sep 17 00:00:00 2001 From: Martin Ndegwa Date: Fri, 12 Feb 2021 16:16:37 +0300 Subject: [PATCH 085/302] Updates to rules and calculations - Updated counselling & treatment - Anc profile - Anc symptoms and follow up --- .../json.form/anc_counselling_treatment.json | 93 ++++++++++++-- .../main/assets/json.form/anc_profile.json | 34 +++-- .../json.form/anc_symptoms_follow_up.json | 29 ++++- .../main/assets/rule/ct_relevance_rules.yml | 120 ++++++++---------- .../assets/rule/profile_relevance_rules.yml | 7 + .../main/assets/rule/sf_calculation_rules.yml | 7 + .../main/assets/rule/sf_relevance_rules.yml | 16 ++- 7 files changed, 212 insertions(+), 94 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json index 4bb9d105f..c9ed9efa7 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json +++ b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json @@ -20,7 +20,8 @@ "tt2_date_done", "deworm", "flu_date", - "hepb_positive" + "hepb_positive", + "ipv_subject" ], "metadata": { "start": { @@ -3692,6 +3693,13 @@ "v_required": { "value": true, "err": "{{anc_counselling_treatment.step8.ipv_support.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } } }, { @@ -3738,7 +3746,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "ipv_support_notdone_other", @@ -3808,7 +3823,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "phys_violence_worse", @@ -3833,7 +3855,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "used_weapon", @@ -3858,7 +3887,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "strangle", @@ -3883,7 +3919,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "beaten", @@ -3908,7 +3951,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "jealous", @@ -3933,7 +3983,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "believe_kill", @@ -3958,7 +4015,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "ipv_referrals", @@ -4026,7 +4090,14 @@ "openmrs_entity": "concept", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "ct_relevance_rules.yml" + } + } + } }, { "key": "ipv_referrals_other", @@ -5476,4 +5547,4 @@ ] }, "properties_file_name": "anc_counselling_treatment" -} \ No newline at end of file +} diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index a800d9a4b..d5de76aa5 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -5,7 +5,7 @@ "encounter_type": "Profile", "entity_id": "", "relational_id": "", - "form_version": "0.0.15", + "form_version": "0.0.1", "metadata": { "start": { "openmrs_entity_parent": "", @@ -48,7 +48,7 @@ "openmrs_data_type": "phonenumber", "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", + "encounter_location": "", "look_up": { "entity_id": "", "value": "" @@ -141,6 +141,9 @@ "lmp_ultrasound_gest_age_selection", "sfh_ultrasound_gest_age_selection" ], + "global_previous": [ + "age" + ], "step1": { "title": "{{anc_profile.step1.title}}", "next": "step2", @@ -155,7 +158,14 @@ "text_color": "#1199F9", "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", - "toaster_type": "info" + "toaster_type": "info", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } }, { "key": "educ_level", @@ -682,7 +692,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn't done or it wasn't done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", "label_info_title": "GA from SFH or abdominal palpation - weeks", "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", "v_required": { @@ -768,7 +778,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" } ], "v_required": { @@ -803,7 +813,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { @@ -838,7 +848,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { @@ -873,7 +883,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" }, { "key": "ultrasound", @@ -881,7 +891,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" } ], "v_required": { @@ -916,7 +926,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" }, { "key": "sfh", @@ -924,7 +934,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" } ], "v_required": { @@ -2816,7 +2826,7 @@ "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", + "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day.", "exclusive": [ "none" ], diff --git a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json index 85251c1a8..6ede41125 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json +++ b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json @@ -36,7 +36,8 @@ "ifa_high_prev", "ifa_low_prev", "ifa_weekly", - "ifa_anaemia" + "ifa_anaemia", + "ipv_physical_signs_symptoms" ], "metadata": { "start": { @@ -2129,6 +2130,21 @@ } } }, + { + "key": "ipv_suspect", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "value": "", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "sf_calculation_rules.yml" + } + } + } + }, { "key": "toaster23", "openmrs_entity_parent": "", @@ -2137,7 +2153,14 @@ "type": "toaster_notes", "text": "{{anc_symptoms_follow_up.step4.toaster23.text}}", "text_color": "#D56900", - "toaster_type": "warning" + "toaster_type": "warning", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "sf_relevance_rules.yml" + } + } + } }, { "key": "mat_percept_fetal_move", @@ -2189,4 +2212,4 @@ ] }, "properties_file_name": "anc_symptoms_follow_up" -} \ No newline at end of file +} diff --git a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml index 3f16e4d8c..308c7032c 100644 --- a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml @@ -100,7 +100,7 @@ actions: name: step1_abn_feat_heart_rate_toaster description: Abnormal fetal heart rate priority: 1 -condition: "global_fetal_heart_rate_repeat < 110 || global_fetal_heart_rate_repeat > 160" +condition: "global_fetal_heart_rate_repeat < 100 || global_fetal_heart_rate_repeat > 180" actions: - "isRelevant = true" --- @@ -359,7 +359,7 @@ actions: name: step7_birth_plan_toaster description: birth_plan_toaster priority: 1 -condition: "(!global_other_symptoms.isEmpty() && global_other_symptoms.contains('vaginal_bleeding')) || (global_gravida != '' && global_gravida == 1) || (global_parity != '' && global_parity > 5) || (global_hiv_positive != '' && global_hiv_positive == 1) || (!global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('3rd_degree_tear') || global_prev_preg_comps.contains('heavy_bleeding') || global_prev_preg_comps.contains('vacuum_delivery') || global_prev_preg_comps.contains('convulsions'))) || global_fetal_presentation != '' && (global_fetal_presentation == 'transverse' || global_fetal_presentation == 'other') || (global_age != '' && global_age <= 17) || (global_c_sections != '' && global_c_sections > 0) || (global_no_of_fetuses != '' && global_no_of_fetuses > 1) || 'step7_family_planning_type' == 'iud' || 'step7_family_planning_type' == 'tubal_ligation'" +condition: "(!global_other_symptoms.isEmpty() && global_other_symptoms.contains('vaginal_bleeding')) || (global_gravida != '' && global_gravida == 1) || (global_parity != '' && global_parity > 5) || (global_hiv_positive != '' && global_hiv_positive == 1) || (!global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('3rd_degree_tear') || global_prev_preg_comps.contains('heavy_bleeding') || global_prev_preg_comps.contains('vacuum_delivery') || global_prev_preg_comps.contains('vacuum') || global_prev_preg_comps.contains('convulsions'))) || global_fetal_presentation != '' && (global_fetal_presentation == 'transverse' || global_fetal_presentation == 'other') || (global_age != '' && global_age <= 17) || (global_c_sections != '' && global_c_sections > 0) || (global_no_of_fetuses != '' && global_no_of_fetuses > 1) || 'step7_family_planning_type' == 'iud' || 'step7_family_planning_type' == 'tubal_ligation'" actions: - "isRelevant = true" --- @@ -384,20 +384,6 @@ condition: "global_gest_age_openmrs != '' && global_gest_age_openmrs >= 32" actions: - "isRelevant = true" --- -name: step8_ipv_enquiry -description: ipv_enquiry -priority: 1 -condition: "global_site_ipv_assess == true" -actions: - - "isRelevant = true" ---- -name: step8_ipv_refer_toaster -description: ipv_refer_toaster -priority: 1 -condition: "global_site_ipv_assess == false" -actions: - - "isRelevant = true" ---- name: step9_ifa_high_prev description: ifa_high_prev priority: 1 @@ -513,111 +499,111 @@ actions: name: step11_tt_dose_notdone description: tt_dose_notdone priority: 1 -condition: "step11_tt1_date == 'not_done' || step11_tt2_date == 'not_done' || step11_tt3_date == 'not_done'" +condition: "step11_tt1_date == 'not_done' || step11_tt2_date == 'not_done'" actions: - "isRelevant = true" --- -name: step11_woman_immunised_toaster -description: woman_immunised_toaster +name: step11_flu_date +description: flu_date priority: 1 -condition: "step11_tt3_date == 'done_earlier' || step11_tt3_date == 'done_today' " +condition: "global_flu_immun_status != '' && global_flu_immun_status != 'seasonal_flu_dose_given'" actions: - "isRelevant = true" --- -name: step11_hepb_negative_note -description: hepb_negative_note +name: step11_woman_immunised_flu_toaster +description: woman_immunised_flu_toaster priority: 1 -condition: "global_hepb_positive != '' && global_hepb_positive == 0" +condition: "step11_flu_date == 'done_earlier' || step11_flu_date == 'done_today' " actions: - "isRelevant = true" --- -name: step11_hepb1_date -description: hepb1_date +name: step9_calcium_supp +description: calcium_supp priority: 1 -condition: "global_hepb_positive == 0 && (global_gest_age_openmrs != '' && global_gest_age_openmrs >= 12) && (global_contact_no == 1 || (global_contact_no > 1 && (global_previous_hepb1_date== '' || global_previous_hepb1_date == 'not_done')))" +condition: "global_pop_low_calcium == true " actions: - "isRelevant = true" --- -name: step11_hepb2_date -description: hepb2_date +name: step9_vita_supp +description: vita_supp priority: 1 -condition: "global_contact_no > 1 && (helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb1_date_done,'28d') == 0 || helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb1_date_done,'28d') == -1) && (global_previous_hepb2_date == '' || global_previous_hepb2_date == 'not_done')" +condition: "global_pop_vita == true " actions: - "isRelevant = true" --- -name: step11_hepb3_date -description: hepb3_date +name: step11_flu_date_done +description: flu_date_done priority: 1 -condition: "global_contact_no > 1 && (helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb2_date_done,'140d') == 0 || helper.compareDateWithDurationsAddedAgainstToday(global_previous_hepb2_date_done,'140d') == -1) && (global_previous_hepb3_date == '' || global_previous_hepb3_date == 'not_done')" +condition: "step11_flu_date != '' && step11_flu_date == 'done_earlier'" actions: - "isRelevant = true" --- -name: step11_hepb1_date_done -description: Date hepb1 dose given +name: step8_ipv_support +description: ipv_support priority: 1 -condition: "(step11_hepb1_date!= '') && (step11_hepb1_date == 'done_earlier')" +condition: "global_ipv_subject == 'yes' " actions: - "isRelevant = true" --- -name: step11_hepb2_date_done -description: Date hepb2 dose given +name: step8_ipv_support_notdone +description: ipv_support_notdone priority: 1 -condition: "(step11_hepb2_date != '') && (step11_hepb2_date == 'done_earlier')" +condition: "step8_ipv_support == 'no' " actions: - "isRelevant = true" --- -name: step11_hepb3_date_done -description: Date hepb3 dose given +name: step8_ipv_care +description: ipv_care priority: 1 -condition: "(step11_hepb3_date != '') && (step11_hepb3_date == 'done_earlier')" +condition: "global_ipv_subject == 'yes' " actions: - "isRelevant = true" --- -name: step11_hepb_dose_notdone -description: hepb_dose_notdone +name: step8_phys_violence_worse +description: ipv_care priority: 1 -condition: "step11_hepb1_date == 'not_done' || step11_hepb3_date == 'not_done' || step11_hepb3_date == 'not_done'" +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - "isRelevant = true" --- -name: step11_woman_immunised_hep_b_toaster -description: woman_immunised_hep_b_toaster +name: step8_used_weapon +description: ipv_care priority: 1 -condition: "step11_hepb3_date == 'done_earlier' || step11_hepb3_date == 'done_today' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - - "isRelevant = true" +- "isRelevant = true" --- -name: step11_flu_date -description: flu_date +name: step8_strangle +description: ipv_care priority: 1 -condition: "global_flu_immun_status != '' && global_flu_immun_status != 'seasonal_flu_dose_given'" +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - - "isRelevant = true" +- "isRelevant = true" --- -name: step11_woman_immunised_flu_toaster -description: woman_immunised_flu_toaster +name: step8_beaten +description: ipv_care priority: 1 -condition: "step11_flu_date == 'done_earlier' || step11_flu_date == 'done_today' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - - "isRelevant = true" +- "isRelevant = true" --- -name: step9_calcium_supp -description: calcium_supp +name: step8_jealous +description: ipv_care priority: 1 -condition: "global_pop_low_calcium == true " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - - "isRelevant = true" +- "isRelevant = true" --- -name: step9_vita_supp -description: vita_supp +name: step8_believe_kill +description: ipv_care priority: 1 -condition: "global_pop_vita == true " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " actions: - - "isRelevant = true" +- "isRelevant = true" --- -name: step11_flu_date_done -description: flu_date_done +name: step8_ipv_referrals +description: ipv_care priority: 1 -condition: "step11_flu_date != '' && step11_flu_date == 'done_earlier'" +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'referred' " actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml index fc70da114..17a20e7c8 100644 --- a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml @@ -178,5 +178,12 @@ name: step8_hiv_risk_counselling_toaster description: Hiv Risk counselling priority: 1 condition: "(step8_hiv_risk == 1)" +actions: + - "isRelevant = true" +--- +name: step1_headss_toaster +description: HEADSS info +priority: 1 +condition: "global_age < 19 " actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml index e69de29bb..86b200d19 100644 --- a/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml @@ -0,0 +1,7 @@ +--- +name: step4_ipv_suspect +description: IPV Suspected +priority: 1 +condition: "(!step4_ipv_signs_symptoms.isEmpty() && !step4_ipv_signs_symptoms.contains('none')) || (global_ipv_physical_signs_symptoms != null && !global_ipv_physical_signs_symptoms.isEmpty() && !global_ipv_physical_signs_symptoms.contains('none'))" +actions: + - "calculation = 1" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml index 504bb6c3a..20d78ee31 100644 --- a/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml @@ -124,4 +124,18 @@ description: Felt baby move priority: 1 condition: "(global_gest_age_openmrs != '' && global_gest_age_openmrs >= 20)" actions: - - "isRelevant = true" \ No newline at end of file + - "isRelevant = true" +--- +name: step4_ipv_signs_symptoms +description: Intimate Partner Violence(IPV) +priority: 1 +condition: "global_site_ipv_assess == 1" +actions: +- "isRelevant = true" +--- +name: step4_toaster23 +description: Intimate Partner Violence(IPV) Toaster +priority: 1 +condition: "step4_ipv_suspect == 1" +actions: + - "isRelevant = true" From 05a1afefaf13a129c6ae95e5c157f9d55bf63907 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Feb 2021 17:26:12 +0300 Subject: [PATCH 086/302] :construction: Update the IPV questions relevance & calculation --- .../assets/json.form/anc_physical_exam.json | 28 ++++++++++- .../rule/physical-exam-calculations-rules.yml | 13 +++-- .../rule/physical-exam-relevance-rules.yml | 48 +++++++++++++++++-- 3 files changed, 82 insertions(+), 7 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index fbdadf89a..17ac03659 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -2010,7 +2010,14 @@ "openmrs_entity_id": "", "openmrs_entity_parent": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } }, { "key": "ipv_physical_signs_symptoms_injury_other", @@ -2052,6 +2059,25 @@ } } }, + { + "key": "ipv_suspect", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-calculations-rules.yml" + } + } + } + }, { "key": "toaster31", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml index 117886837..a92655e4b 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml @@ -86,7 +86,7 @@ actions: name: step2_severe_preeclampsia description: Severe preeclampsia priority: 1 -condition: "((step2_bp_systolic_repeat >= 160 || step2_bp_diastolic_repeat >= 110) && (step2_urine_protein == '+++' || step2_urine_protein == '++++')) || ((step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++') && (!step2_symp_sev_preeclampsia.isEmpty() && !step2_symp_sev_preeclampsia.contains('none')))" +condition: "((step2_bp_systolic_repeat >= 160 || step2_bp_diastolic_repeat >= 110) && (step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++')) || ((step2_urine_protein == '++' || step2_urine_protein == '+++' || step2_urine_protein == '++++') && (!step2_symp_sev_preeclampsia.isEmpty() && !step2_symp_sev_preeclampsia.contains('none')))" actions: - "calculation = 1" --- @@ -107,7 +107,7 @@ actions: name: step4_preeclampsia_risk description: Preeclampsia_risk priority: 1 -condition: "((global_prev_preg_comps != null && !global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('convulsions') || global_prev_preg_comps.contains('pre_eclampsia'))) || (global_health_conditions != null && !global_health_conditions.isEmpty() && (global_health_conditions.contains('autoimmune_disease') || global_health_conditions.contains('diabetes') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))) || (step4_no_of_fetuses != null && step4_no_of_fetuses != '' && step4_no_of_fetuses >= 2))" +condition: "((global_prev_preg_comps != null && !global_prev_preg_comps.isEmpty() && (global_prev_preg_comps.contains('convulsions') || global_prev_preg_comps.contains('pre_eclampsia'))) || (global_health_conditions != null && !global_health_conditions.isEmpty() && (global_health_conditions.contains('autoimmune_disease') || global_health_conditions.contains('diabetes') || global_health_conditions.contains('gest_diabetes') || global_health_conditions.contains('diabetes_other') || global_health_conditions.contains('diabetes_type2') || global_health_conditions.contains('Hypertension') || global_health_conditions.contains('kidney_disease'))) || (step4_no_of_fetuses != null && step4_no_of_fetuses != '' && step4_no_of_fetuses >= 2))" actions: - "calculation = 1" --- @@ -116,4 +116,11 @@ description: toaster priority: 1 condition: "step3_dilation_cm > 2" actions: - - 'calculation = step3_dilation_cm' \ No newline at end of file + - 'calculation = step3_dilation_cm' +--- +name: step3_ipv_suspect +description: ipv_suspect +priority: 1 +condition: "(!global_ipv_signs_symptoms.isEmpty() && !global_ipv_signs_symptoms.contains('none')) || (step3_ipv_physical_signs_symptoms != null && !step3_ipv_physical_signs_symptoms.isEmpty() && !step3_ipv_physical_signs_symptoms.contains('none'))" +actions: + - 'calculation = 1' \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index 05ee87e94..7c38117e5 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -100,7 +100,7 @@ actions: name: step4_toaster28 description: Fetal heart beat rate priority: 1 -condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 110 || step4_fetal_heart_rate > 160))" +condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 100 || step4_fetal_heart_rate > 180))" actions: - "isRelevant = true" --- @@ -114,7 +114,7 @@ actions: name: step4_fetal_heart_rate_repeat_label description: Fetal heart beat rate priority: 1 -condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 110 || step4_fetal_heart_rate > 160))" +condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 100 || step4_fetal_heart_rate > 180))" actions: - "isRelevant = true" --- @@ -135,7 +135,7 @@ actions: name: step4_toaster29 description: Fetal heart beat rate repeat toaster priority: 1 -condition: "(step4_fetal_heart_rate_repeat > 0 && (step4_fetal_heart_rate_repeat < 110 || step4_fetal_heart_rate_repeat > 160))" +condition: "(step4_fetal_heart_rate_repeat > 0 && (step4_fetal_heart_rate_repeat < 100 || step4_fetal_heart_rate_repeat > 180))" actions: - "isRelevant = true" --- @@ -248,5 +248,47 @@ name: step3_evaluate_labour_toaster description: evaluate_labour_toaster priority: 1 condition: "!step3_pelvic_exam_abnormal.isEmpty() && step3_pelvic_exam_abnormal.contains('amniotic_fluid_evidence')" +actions: + - "isRelevant = true" +--- +name: step3_ipv_physical_signs_symptoms +description: ipv_physical_signs_symptoms +priority: 1 +condition: "global_site_ipv_assess == 1" +actions: + - "isRelevant = true" +--- +name: step3_toaster31 +description: toaster31 +priority: 1 +condition: "step3_ipv_suspect == 1 " +actions: + - "isRelevant = true" +--- +name: step3_ipv_clinical_enquiry +description: ipv_clinical_enquiry +priority: 1 +condition: "step3_ipv_suspect == 1" +actions: + - "isRelevant = true" +--- +name: step3_ipv_clinical_enquiry_not_done_reason +description: ipv_clinical_enquiry_not_done_reason +priority: 1 +condition: "step3_ipv_clinical_enquiry == no" +actions: + - "isRelevant = true" +--- +name: step3_ipv_subject +description: ipv_subject +priority: 1 +condition: "step3_ipv_clinical_enquiry == yes" +actions: + - "isRelevant = true" +--- +name: step3_ipv_subject +description: ipv_subject +priority: 1 +condition: "step3_ipv_subject == yes" actions: - "isRelevant = true" \ No newline at end of file From 9f5a06d01f1fc8402976e083df6334c74297b839 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 17:51:28 +0300 Subject: [PATCH 087/302] Fix strings in forms & missing properties --- opensrp-anc/src/main/assets/json.form/anc_profile.json | 2 +- .../assets/json.form/sub_form/tests_hiv_sub_form.json | 2 +- opensrp-anc/src/main/resources/anc_profile.properties | 3 ++- opensrp-anc/src/main/resources/anc_register.properties | 8 +++++++- .../src/main/resources/tests_hiv_sub_form.properties | 1 + 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index f8cfad00d..4669cf3fe 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -2823,7 +2823,7 @@ "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day.", + "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", "exclusive": [ "none" ], diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json index ed0aaaaaa..5561fd7a7 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json @@ -7,7 +7,7 @@ "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "label": "{{tests_hiv_sub_form.step1.hiv_test_status.label}}", "label_text_style": "bold", - "label_info_text": "An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (29 weeks), if the HIV prevalence is consistently > 1% in pregnant women attending antenatal clinics or if HIV prevalence is consistently over 5% in at least one defined key population (e.g. men who have sex with men, people in prison or other closed settings, people who inject drugs, sex workers and transgender people). A test is not required if the woman is already confirmed HIV+.", + "label_info_text": "{{tests_hiv_sub_form.step1.hiv_test_status.label_info_text}}", "text_color": "#000000", "type": "extended_radio_button", "options": [ diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 2db4f8c02..b3aa011b5 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -313,4 +313,5 @@ anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1?4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea -anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink \ No newline at end of file +anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink +anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index 31b969ff8..17764e3e0 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -30,7 +30,13 @@ anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID anc_register.step1.last_name.hint = Last name anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number +anc_register.step1.cohabitants.options.no_one.text = No one +anc_register.step1.cohabitants.label = Co-habitants +anc_register.step1.cohabitants.label_info_text = Co-habitants anc_register.step1.dob_entered.duration.label = Age anc_register.step1.cohabitants.text = Co-habitants anc_register.step1.cohabitants.options.parents.text = Parents -anc_register.step1.cohabitants.options.no_one.text = No one \ No newline at end of file +anc_register.step1.cohabitants.options.siblings.text = Siblings +anc_register.step1.cohabitants.options.extended_family.text = Extended Family +anc_register.step1.cohabitants.options.partner.text = Partner +anc_register.step1.cohabitants.options.friends.text = Friends \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties index 7642de9a4..947277f1d 100644 --- a/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_hiv_sub_form.properties @@ -17,3 +17,4 @@ tests_hiv_sub_form.step1.hiv_test_date.v_required.err = HIV test date is require tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Stock out tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = HIV positive counseling tests_hiv_sub_form.step1.hiv_test_notdone.label = Reason +tests_hiv_sub_form.step1.hiv_test_status.label_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (29 weeks), if the HIV prevalence is consistently > 1% in pregnant women attending antenatal clinics or if HIV prevalence is consistently over 5% in at least one defined key population (e.g. men who have sex with men, people in prison or other closed settings, people who inject drugs, sex workers and transgender people). A test is not required if the woman is already confirmed HIV+. From ccae138fa1108190bf824d9e2819fd0c40da8462 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 17:43:56 +0300 Subject: [PATCH 088/302] Add Risks and diagnoses section --- .../main/assets/config/profile-overview.yml | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 4e21df2c5..ccc55077b 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -192,6 +192,106 @@ fields: - template: "{{profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" +--- +group: risks_and_diagnoses +fields: +- template: "High daily consumption of caffeine: {caffeine_intake}" + relevance: "caffeine_intake != '' && caffeine_intake != 'none'" + isRedFont: "true" + +- template: "Tobacco user or recently quit: {tobacco_user}" + relevance: "tobacco_user != '' && tobacco_user != 'no'" + isRedFont: "true" + +- template: "Second-hand exposure to tobacco smoke: {shs_exposure}" + relevance: "shs_exposure == 'yes'" + isRedFont: "true" + +- template: "Woman and her partner(s) do not use condoms: {condom_use}" + relevance: "condom_use == 'no'" + isRedFont: "true" + +- template: "Alcohol / substances currently using: {alcohol_substance_use} {other_substance_use}" + relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none))" + isRedFont: "true" + +- template: "Reduced or no fetal movement perceived by woman: {mat_percept_fetal_move}" + relevance: "mat_percept_fetal_move != '' && mat_percept_fetal_move != 'normal_fetal_move'" + isRedFont: "true" + +- template: "Pre-eclampsia risk: {preeclampsia_risk}" + relevance: "preeclampsia_risk == 1" + isRedFont: "true" + +- template: "HIV risk: {date}" + relevance: "hiv_risk == 1" + isRedFont: "true" + +- template: "Diabetes risk: {date} " + relevance: "diabetes_risk == 1" + isRedFont: "true" + +- template: "Hypertension: {date}" + relevance: "hypertension_risk == 1" + isRedFont: "true" + +- template: "Severe hypertension: {date}: {date}" + relevance: "severe_hypertension_risk == 1" + isRedFont: "true" + +- template: "Pre-eclampsia: {date}" + relevance: "pre_eclampsia == 1" + isRedFont: "true" + +- template: "Severe pre-eclampsia: {date}" + relevance: "severe_pre_eclampsia == 1" + isRedFont: "true" + +- template: "Rh factor negative: {date}: {date}" + relevance: "rh_factor_negative == 1" + isRedFont: "true" + +- template: "HIV positive: {date}" + relevance: "hiv_positive == 1" + isRedFont: "true" + +- template: "Hepatitis B positive: {date}" + relevance: "hepatitis_b_positive == 1" + isRedFont: "true" + +- template: "Hepatitis C positive: {date}" + relevance: "hepatitis_c_positive == 1" + isRedFont: "true" + +- template: "Syphilis positive: {date}" + relevance: "syphilis_positive == 1" + isRedFont: "true" + +- template: "Asymptomatic bacteriuria (ASB) infection: {date}" + relevance: "asb_positive == 1" + isRedFont: "true" + +- template: "Positive for Group B Streptococcus (GBS): {date}" + relevance: "urine_culture = 'Positive - Group B Streptococcus (GBS)'" + isRedFont: "true" + +- template: "Gestational Diabetes Mellitus (GDM): {date}" + relevance: "gdm = 1" + isRedFont: "true" + +- template: "Diabetes Mellitus (DM) in pregnancy: {date}" + relevance: "dm_in_preg = 1" + isRedFont: "true" + +- template: "Anaemia diagnosis: {date}" + relevance: "anaemic = 1" + isRedFont: "true" + +- template: "TB screening positive: {date}" + relevance: "tb_screening_result = 'Positive'" + isRedFont: "true" + + --- group: physiological_symptoms fields: From e6e7749f7a0c28188de9404475bdc4bb8aa2ba61 Mon Sep 17 00:00:00 2001 From: Ephraim Kigamba Date: Fri, 12 Feb 2021 17:59:19 +0300 Subject: [PATCH 089/302] Fix revelance logic for risks section --- .../main/assets/config/profile-overview.yml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index ccc55077b..e1cf367a8 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -228,27 +228,27 @@ fields: isRedFont: "true" - template: "Diabetes risk: {date} " - relevance: "diabetes_risk == 1" + relevance: "gdm_risk == 1" isRedFont: "true" - template: "Hypertension: {date}" - relevance: "hypertension_risk == 1" + relevance: "hypertension == 1" isRedFont: "true" - template: "Severe hypertension: {date}: {date}" - relevance: "severe_hypertension_risk == 1" + relevance: "severe_hypertension == 1" isRedFont: "true" - template: "Pre-eclampsia: {date}" - relevance: "pre_eclampsia == 1" + relevance: "preeclampsia == 1" isRedFont: "true" - template: "Severe pre-eclampsia: {date}" - relevance: "severe_pre_eclampsia == 1" + relevance: "severe_preeclampsia == 1" isRedFont: "true" - template: "Rh factor negative: {date}: {date}" - relevance: "rh_factor_negative == 1" + relevance: "rh_factor == 'negative'" isRedFont: "true" - template: "HIV positive: {date}" @@ -256,11 +256,11 @@ fields: isRedFont: "true" - template: "Hepatitis B positive: {date}" - relevance: "hepatitis_b_positive == 1" + relevance: "hepb_positive == 1" isRedFont: "true" - template: "Hepatitis C positive: {date}" - relevance: "hepatitis_c_positive == 1" + relevance: "hepc_positive == 1" isRedFont: "true" - template: "Syphilis positive: {date}" @@ -272,7 +272,7 @@ fields: isRedFont: "true" - template: "Positive for Group B Streptococcus (GBS): {date}" - relevance: "urine_culture = 'Positive - Group B Streptococcus (GBS)'" + relevance: "urine_culture == 'positive - group b streptococcus (gbs)'" isRedFont: "true" - template: "Gestational Diabetes Mellitus (GDM): {date}" @@ -288,7 +288,7 @@ fields: isRedFont: "true" - template: "TB screening positive: {date}" - relevance: "tb_screening_result = 'Positive'" + relevance: "tb_screening_result == 'positive'" isRedFont: "true" From 0bfeebe0c97d39ed018458fae4f4233603282f10 Mon Sep 17 00:00:00 2001 From: Martin Ndegwa Date: Fri, 12 Feb 2021 18:38:40 +0300 Subject: [PATCH 090/302] update anc profile --- .../main/assets/json.form/anc_profile.json | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index d5de76aa5..9f6c8d667 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -5,7 +5,7 @@ "encounter_type": "Profile", "entity_id": "", "relational_id": "", - "form_version": "0.0.1", + "form_version": "0.0.15", "metadata": { "start": { "openmrs_entity_parent": "", @@ -48,7 +48,7 @@ "openmrs_data_type": "phonenumber", "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, - "encounter_location": "", + "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", "look_up": { "entity_id": "", "value": "" @@ -692,7 +692,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_text": "If LMP is unknown and ultrasound wasn't done or it wasn't done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", "label_info_title": "GA from SFH or abdominal palpation - weeks", "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", "v_required": { @@ -778,7 +778,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" } ], "v_required": { @@ -813,7 +813,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" } ], "v_required": { @@ -848,7 +848,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" } ], "v_required": { @@ -883,7 +883,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + "extra_info": "GA: {lmp_gest_age}
EDD: {lmp_edd}" }, { "key": "ultrasound", @@ -891,7 +891,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" } ], "v_required": { @@ -926,7 +926,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + "extra_info": "GA: {ultrasound_gest_age}
EDD: {ultrasound_edd}" }, { "key": "sfh", @@ -934,7 +934,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + "extra_info": "GA: {sfh_gest_age}
EDD: {sfh_edd}" } ], "v_required": { @@ -2826,7 +2826,7 @@ "label": "{{anc_profile.step7.caffeine_intake.label}}", "label_text_style": "bold", "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day.", + "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", "exclusive": [ "none" ], From ef803afbd9061b8d7575168e3103cbeee5e3ec1d Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Feb 2021 20:47:09 +0300 Subject: [PATCH 091/302] :construction: update the anc reg properties --- opensrp-anc/src/main/resources/anc_register.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index cd93a7997..111195c82 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -32,7 +32,7 @@ anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number anc_register.step1.dob_entered.duration.label = Age anc_register.step1.cohabitants.label = Co-habitants -anc_register.step1.cohabitants.label_info_text = Co-habitants +anc_register.step1.cohabitants.label_info_text = Who does the client live with? It is important to know whether client lives with parents, other family members, a partner, friends, etc. anc_register.step1.cohabitants.options.parents.text = Parents anc_register.step1.cohabitants.options.siblings.text = Siblings anc_register.step1.cohabitants.options.extended_family.text = Extended Family From e568c13bf82c35284fd688cfdacfedeff8faf74f Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Mon, 15 Feb 2021 14:46:24 +0300 Subject: [PATCH 092/302] :construction: Update the different form fixes --- opensrp-anc/src/main/assets/json.form/anc_profile.json | 2 +- .../json.form/sub_form/tests_blood_haemoglobin_sub_form.json | 2 ++ opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml | 2 +- .../src/main/resources/anc_counselling_treatment.properties | 4 ++-- opensrp-anc/src/main/resources/anc_profile.properties | 2 +- .../src/main/resources/anc_symptoms_follow_up.properties | 4 ++-- .../resources/tests_blood_haemoglobin_sub_form.properties | 2 ++ 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 32ac22dd1..254c9c100 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -2206,7 +2206,7 @@ "ex-checkbox": [ { "or": [ - "other" + "cancer_other" ] } ] diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json index dc59784d9..bbfc6ce0f 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json @@ -399,6 +399,7 @@ "openmrs_entity_id": "678AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", "hint": "{{tests_blood_haemoglobin_sub_form.step1.wbc.hint}}", + "label_info_text": "{{tests_blood_haemoglobin_sub_form.step1.wbc.label_info_text}}", "edit_type": "number", "v_numeric": { "value": "true", @@ -441,6 +442,7 @@ "openmrs_entity_id": "729AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "type": "edit_text", "hint": "{{tests_blood_haemoglobin_sub_form.step1.platelets.hint}}", + "label_info_text": "{{tests_blood_haemoglobin_sub_form.step1.platelets.label_info_text}}", "edit_type": "number", "v_numeric": { "value": "true", diff --git a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml index e4d685655..4591d547f 100644 --- a/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_relevance_rules.yml @@ -177,6 +177,6 @@ actions: name: step1_headss_toaster description: Headss Toaster priority: 1 -condition: "(global_age > 19)" +condition: "(global_age < 19)" actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties index cc076bd50..f98868527 100644 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties @@ -110,7 +110,7 @@ anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please se anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm -anc_counselling_treatment.step11.tt1_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1–4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_counselling_treatment.step11.tt1_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1 - 4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason @@ -612,7 +612,7 @@ anc_counselling_treatment.step8.ipv_care.options.no_action.text = No action nece anc_counselling_treatment.step8.ipv_care.options.safety_assessment.text = Safety assessment conducted anc_counselling_treatment.step8.ipv_care.options.mental_health_care.text = Mental health care anc_counselling_treatment.step8.ipv_care.options.care_other_symptoms.text = Care for other presenting signs and symptoms -anc_counselling_treatment.step8.ipv_care.options.referred.text = Client was referred +anc_counselling_treatment.step8.ipv_care.options.referred.text = Client was referred anc_counselling_treatment.step8.ipv_care.label = What additional type of care was provided anc_counselling_treatment.step8.phys_violence_worse.label = Has the physical violence happened more often or gotten worse over the past 6 months? anc_counselling_treatment.step8.phys_violence_worse.options.yes.text = Yes diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index b3aa011b5..9280ac2e0 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -277,7 +277,7 @@ anc_profile.step8.partner_hiv_status.options.positive.text = Positive anc_profile.step4.allergies.options.ginger.text = Ginger anc_profile.step2.title = Current Pregnancy anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under-immunized +anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under - immunized anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties index cf298952b..348261a59 100644 --- a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties @@ -211,8 +211,8 @@ anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text = In anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text = Injury other (specify) anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text = Problems with central nervous system anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text = Repeated health consultations with no clear diagnosis -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text = Woman’s partner or husband is intrusive during consultations -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text = Woman often misses her own or her children’s health-care appointments +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text = Woman's partner or husband is intrusive during consultations +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text = Woman often misses her own or her children's health-care appointments anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text = Children have emotional and behavioural problems anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint = Other injury - specify anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err = Please enter valid content diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties index 6d97fc083..a1cd594b7 100644 --- a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form.properties @@ -45,3 +45,5 @@ tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Hematocr tests_blood_haemoglobin_sub_form.step1.cbc.hint = Complete blood count test result (g/dl) (recommended) tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = White blood cell count too high! tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Hb test (haemoglobinometer) +tests_blood_haemoglobin_sub_form.step1.wbc.label_info_text = White blood cell count above 16,000.\n\nFollow-up steps/investigations: clinician's discretion +tests_blood_haemoglobin_sub_form.step1.platelets.label_info_text = Platelet count under 100,000 cells/microlitre (μl).\n\nFollow-up steps/investigations: clinician's discretion From 9733ed20ecc91b5ddafab8dcc2fe972e96fac969 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Tue, 16 Feb 2021 16:57:20 +0300 Subject: [PATCH 093/302] :construction: bug fixes on the forms --- .../src/main/assets/config/contact-globals.yml | 2 ++ .../src/main/assets/config/profile-overview.yml | 2 +- .../src/main/assets/json.form/anc_physical_exam.json | 3 ++- .../src/main/assets/json.form/anc_register.json | 2 +- .../assets/json.form/anc_symptoms_follow_up.json | 12 ++++++++++-- .../assets/rule/physical-exam-relevance-rules.yml | 2 +- .../main/assets/rule/profile_calculation_rules.yml | 2 +- .../src/main/assets/rule/sf_calculation_rules.yml | 2 +- .../rule/tests_expansion_panel_relevance_rules.yml | 4 ++-- .../anc/library/fragment/MeFragment.java | 2 +- .../resources/anc_counselling_treatment.properties | 2 +- .../src/main/resources/anc_register.properties | 1 + reference-app/build.gradle | 2 +- 13 files changed, 25 insertions(+), 13 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-globals.yml b/opensrp-anc/src/main/assets/config/contact-globals.yml index a814d75ab..e6a29cca9 100644 --- a/opensrp-anc/src/main/assets/config/contact-globals.yml +++ b/opensrp-anc/src/main/assets/config/contact-globals.yml @@ -138,6 +138,7 @@ fields: - "gest_age" - "gest_age_openmrs" - "last_contact_date" + - "ipv_physical_signs_symptoms" --- form: anc_symptoms_follow_up fields: @@ -160,6 +161,7 @@ fields: - "alcohol_substance_use" - "health_conditions" - "hypertension" + - "ipv_physical_signs_symptoms" --- form: anc_test fields: diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index e1cf367a8..f068042db 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -212,7 +212,7 @@ fields: isRedFont: "true" - template: "Alcohol / substances currently using: {alcohol_substance_use} {other_substance_use}" - relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none))" + relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none'))" isRedFont: "true" - template: "Reduced or no fetal movement perceived by woman: {mat_percept_fetal_move}" diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 7cd8e9588..61f8c8565 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -12,7 +12,8 @@ "pregest_weight_unknown", "first_weight", "no_of_fetuses_unknown", - "no_of_fetuses" + "no_of_fetuses", + "ipv_physical_signs_symptoms" ], "global_previous": [ "current_weight" diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index b240d0a04..4d7810e9c 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -355,7 +355,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "", - "label":"{{anc_register.step1.cohabitants.text}}", + "label":"{{anc_register.step1.cohabitants.label}}", "label_info_text": "{{anc_register.step1.cohabitants.label_info_text}}", "type": "check_box", "exclusive": [ diff --git a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json index 6ede41125..70a8656a1 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json +++ b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json @@ -18,7 +18,8 @@ "phys_symptoms_persist", "other_sym_lbpp", "other_sym_vvo", - "other_symptoms_persist" + "other_symptoms_persist", + "ipv_physical_signs_symptoms" ], "global_previous": [ "caffeine_intake", @@ -2105,7 +2106,14 @@ "openmrs_entity_id": "", "openmrs_entity_parent": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "sf_relevance_rules.yml" + } + } + } }, { "key": "ipv_signs_symptoms_injury_other", diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index 7c38117e5..fce11d359 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -121,7 +121,7 @@ actions: name: step4_fetal_heart_rate_repeat description: Fetal heart beat rate priority: 1 -condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 110 || step4_fetal_heart_rate > 160))" +condition: "(step4_fetal_heart_rate > 0 && (step4_fetal_heart_rate < 100 || step4_fetal_heart_rate > 180))" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml index db0103c96..fc23e241a 100644 --- a/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/profile_calculation_rules.yml @@ -2,7 +2,7 @@ name: step1_hiv_risk description: HIV Risk priority: 1 -condition: "(step4_hiv_positive != 1 && (global_site_anc_hiv == true || step8_partner_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')))" +condition: "(step4_hiv_positive != 1 && (step8_partner_hiv_positive == 1 || step7_alcohol_substance_use.contains('injectable_drugs') || step1_occupation.contains('informal_employment_sex_worker')))" actions: - "calculation = 1" --- diff --git a/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml index 86b200d19..f65a5e8be 100644 --- a/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/sf_calculation_rules.yml @@ -2,6 +2,6 @@ name: step4_ipv_suspect description: IPV Suspected priority: 1 -condition: "(!step4_ipv_signs_symptoms.isEmpty() && !step4_ipv_signs_symptoms.contains('none')) || (global_ipv_physical_signs_symptoms != null && !global_ipv_physical_signs_symptoms.isEmpty() && !global_ipv_physical_signs_symptoms.contains('none'))" +condition: "(step4_ipv_signs_symptoms != null && !step4_ipv_signs_symptoms.isEmpty() && !step4_ipv_signs_symptoms.contains('none')) || (global_ipv_physical_signs_symptoms != null && !global_ipv_physical_signs_symptoms.isEmpty() && !global_ipv_physical_signs_symptoms.contains('none'))" actions: - "calculation = 1" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/tests_expansion_panel_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/tests_expansion_panel_relevance_rules.yml index 21254a9ed..1f9555192 100644 --- a/opensrp-anc/src/main/assets/rule/tests_expansion_panel_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/tests_expansion_panel_relevance_rules.yml @@ -2,7 +2,7 @@ name: step1_accordion_hiv description: HIV test priority: 1 -condition: "(global_pop_hiv_prevalence == true && (global_health_conditions.isEmpty() || !global_health_conditions.contains('hiv'))) && (global_contact_no == 1 || (global_contact_no > 1 && (global_gest_age_openmrs != '' && global_gest_age_openmrs == 29)) || ((global_previous_hiv_test_status == '' || global_previous_hiv_test_status == 'ordered' || global_previous_hiv_test_status == 'not_done') && global_contact_no > 1 && (global_gest_age_openmrs != '' && global_gest_age_openmrs > 29)))" +condition: "(global_pop_hiv_generalized == true || global_pop_hiv_generalized == true && (global_health_conditions.isEmpty() || !global_health_conditions.contains('hiv'))) && (global_contact_no == 1 || (global_contact_no > 1 && (global_gest_age_openmrs != '' && global_gest_age_openmrs == 29)) || ((global_previous_hiv_test_status == '' || global_previous_hiv_test_status == 'ordered' || global_previous_hiv_test_status == 'not_done') && global_contact_no > 1 && (global_gest_age_openmrs != '' && global_gest_age_openmrs > 29)))" actions: - "isRelevant = true" --- @@ -16,7 +16,7 @@ actions: name: step1_accordion_hepatitis_b description: Hepatitis B test priority: 1 -condition: "(global_hepb_immun_status != '' && global_hepb_immun_status != '3_doses') && (global_contact_no == 1 || (global_contact_no > 1 && (global_previous_hepb_test_status == '' || global_previous_hepb_test_status == 'ordered' || global_previous_hepb_test_status == 'not_done')))" +condition: "global_pop_hepb == true || global_pop_hepb_screening == true || (global_alcohol_substance_use != null && global_alcohol_substance_use.isEmpty() && global_alcohol_substance_use.contains('injectable_drugs')) || (global_occupation != null && global_occupation.isEmpty() && global_occupation.contains('informal_employment_sex_worker')) && (global_contact_no == 1 || (global_contact_no > 1 && (global_previous_hepb_test_status == '' || global_previous_hepb_test_status == 'ordered' || global_previous_hepb_test_status == 'not_done')))" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 28a842420..1ed15b151 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -168,7 +168,7 @@ private String getFullLanguage(Locale locale) { private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); locales.put(getString(R.string.french_language), Locale.FRENCH); - locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); + //locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); } } \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties index f98868527..fd0d9bd00 100644 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties @@ -85,7 +85,7 @@ anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Seven-da anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Done anc_counselling_treatment.step10.iptp_sp1.label_info_title = IPTp-SP dose 1 anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Specify -anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 2.8 mg folic acid for anaemia +anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescribe daily dose of 120 mg iron and 0.4 mg folic acid for anaemia anc_counselling_treatment.step10.iptp_sp3.v_required.err = Please select an option anc_counselling_treatment.step1.referred_hosp.options.no.text = No anc_counselling_treatment.step1.title = Hospital Referral diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index dad18ebad..2642a803e 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -30,6 +30,7 @@ anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID anc_register.step1.last_name.hint = Last name anc_register.step1.age_entered.v_required.err = Please enter the woman's age anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number +anc_register.step1.dob_entered.duration.label = Age anc_register.step1.cohabitants.options.no_one.text = No one anc_register.step1.cohabitants.label = Co-habitants anc_register.step1.cohabitants.label_info_text = Who does the client live with? It is important to know whether client lives with parents, other family members, a partner, friends, etc. diff --git a/reference-app/build.gradle b/reference-app/build.gradle index fd216541b..45c875d68 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -21,7 +21,7 @@ jacoco { } // This variables are used by the version code & name generators ext.versionMajor = 1 -ext.versionMinor = 5 +ext.versionMinor = 6 ext.versionPatch = 1 ext.versionClassifier = null ext.isSnapshot = false From 7232bf5dc01b8c7a00fe503ea5b6a51141d4f88f Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 17 Feb 2021 09:23:49 +0300 Subject: [PATCH 094/302] :construction: Fix IPV issues --- dependancies.txt | 7293 +++++++++++++++++ opensrp-anc/build.gradle | 6 +- .../main/assets/config/contact-globals.yml | 2 + .../assets/json.form/anc_physical_exam.json | 16 +- .../rule/physical-exam-relevance-rules.yml | 8 +- 5 files changed, 7310 insertions(+), 15 deletions(-) diff --git a/dependancies.txt b/dependancies.txt index 213233739..9dad37d51 100644 --- a/dependancies.txt +++ b/dependancies.txt @@ -19768,3 +19768,7296 @@ See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:comm BUILD SUCCESSFUL in 17s 1 actionable task: 1 executed + +> Configure project :opensrp-anc +WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. +The current default is 'false'. + +PROJECT TASKS +SIZE : 1 +task ':opensrp-anc:jacocoTestReport' +PROCESSING MAVEN LOCAL SNAPSHOT BUILD VERSION 2.1.0-SNAPSHOT at 2021-02-17 09:18:07... + +> Task :reference-app:dependencies + +------------------------------------------------------------ +Project :reference-app +------------------------------------------------------------ + +_internal_aapt2_binary - The AAPT2 binary to use for processing resources. +\--- com.android.tools.build:aapt2:3.5.3-5435860 + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJacocoAnt - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.ant:0.7.9 + +--- org.jacoco:org.jacoco.core:0.7.9 + | \--- org.ow2.asm:asm-debug-all:5.2 + +--- org.jacoco:org.jacoco.report:0.7.9 + | +--- org.jacoco:org.jacoco.core:0.7.9 (*) + | \--- org.ow2.asm:asm-debug-all:5.2 + \--- org.jacoco:org.jacoco.agent:0.7.9 + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi - API dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestApk - Apk dependencies for 'androidTest' sources (deprecated: use 'androidTestRuntimeOnly' instead). (n) +No dependencies + +androidTestCompile - Compile dependencies for 'androidTest' sources (deprecated: use 'androidTestImplementation' instead). (n) +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi - API dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugApk - Apk dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugRuntimeOnly' instead). (n) +No dependencies + +androidTestDebugCompile - Compile dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugImplementation' instead). (n) +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugProvided - Provided dependencies for 'androidTestDebug' sources (deprecated: use 'androidTestDebugCompileOnly' instead). (n) +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestProvided - Provided dependencies for 'androidTest' sources (deprecated: use 'androidTestCompileOnly' instead). (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) ++--- com.jakewharton:butterknife:10.2.3 (n) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 (n) + +api - API dependencies for 'main' sources. (n) +No dependencies + +apk - Apk dependencies for 'main' sources (deprecated: use 'runtimeOnly' instead). (n) +No dependencies + +archives - Configuration for archive artifacts. +No dependencies + +compile - Compile dependencies for 'main' sources (deprecated: use 'implementation' instead). +No dependencies + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestCompileClasspath - Resolved configuration for compilation for variant: debugAndroidTest ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex-instrumentation:{strictly 2.0.0} -> 2.0.0 (c) ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.preference:preference:1.1.1 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.fragment:fragment:1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.security:security-crypto:1.0.0-rc03 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- com.google.firebase:firebase-perf:19.0.7 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-config:19.0.4 +| | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | \--- com.squareup.okio:okio:1.6.0 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugAndroidTestRuntimeClasspath - Resolved configuration for runtime for variant: debugAndroidTest ++--- androidx.multidex:multidex-instrumentation:2.0.0 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.preference:preference:1.1.1 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.security:security-crypto:1.0.0-rc03 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.crypto.tink:tink-android:1.4.0 +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- com.google.firebase:firebase-perf:19.0.7 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | | \--- com.google.firebase:firebase-components:16.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | +--- com.google.firebase:firebase-config:19.0.4 +| | | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | | \--- com.squareup.okio:okio:1.6.0 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| \--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.crypto.tink:tink-android:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +debugApi - API dependencies for 'debug' sources. (n) +No dependencies + +debugApiElements - API elements for debug (n) +No dependencies + +debugApk - Apk dependencies for 'debug' sources (deprecated: use 'debugRuntimeOnly' instead). (n) +No dependencies + +debugBundleElements - Bundle elements for debug (n) +No dependencies + +debugCompile - Compile dependencies for 'debug' sources (deprecated: use 'debugImplementation' instead). (n) +No dependencies + +debugCompileClasspath - Resolved configuration for compilation for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.preference:preference:1.1.1 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.fragment:fragment:1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.security:security-crypto:1.0.0-rc03 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- com.google.firebase:firebase-perf:19.0.7 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-config:19.0.4 +| | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | \--- com.squareup.okio:okio:1.6.0 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugCompileOnly - Compile only dependencies for 'debug' sources. (n) +No dependencies + +debugImplementation - Implementation only dependencies for 'debug' sources. (n) +No dependencies + +debugMetadataElements (n) +No dependencies + +debugMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +debugProvided - Provided dependencies for 'debug' sources (deprecated: use 'debugCompileOnly' instead). (n) +No dependencies + +debugRuntimeClasspath - Resolved configuration for runtime for variant: debug ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.jacoco:org.jacoco.agent:0.7.9 ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.preference:preference:1.1.1 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.security:security-crypto:1.0.0-rc03 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.crypto.tink:tink-android:1.4.0 +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- com.google.firebase:firebase-perf:19.0.7 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | | \--- com.google.firebase:firebase-components:16.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | +--- com.google.firebase:firebase-config:19.0.4 +| | | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | | \--- com.squareup.okio:okio:1.6.0 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| \--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) +\--- androidx.multidex:multidex:2.0.1 + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for 'debug' sources. (n) +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestCompileClasspath - Resolved configuration for compilation for variant: debugUnitTest ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.preference:preference:1.1.1 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.fragment:fragment:1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.security:security-crypto:1.0.0-rc03 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- com.google.firebase:firebase-perf:19.0.7 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-config:19.0.4 +| | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | \--- com.squareup.okio:okio:1.6.0 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 +| +--- org.antlr:antlr4-runtime:4.7.2 +| +--- net.jcip:jcip-annotations:1.0 +| +--- com.ibm.fhir:fhir-core:4.2.3 +| +--- org.glassfish:jakarta.json:1.1.5 +| \--- jakarta.annotation:jakarta.annotation-api:1.3.5 ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +debugUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: debugUnitTest ++--- project :opensrp-anc +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.preference:preference:1.1.1 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.security:security-crypto:1.0.0-rc03 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.crypto.tink:tink-android:1.4.0 +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- com.google.firebase:firebase-perf:19.0.7 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | | \--- com.google.firebase:firebase-components:16.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | +--- com.google.firebase:firebase-config:19.0.4 +| | | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | | \--- com.squareup.okio:okio:1.6.0 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| \--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 +| +--- org.antlr:antlr4-runtime:4.7.2 +| +--- net.jcip:jcip-annotations:1.0 +| +--- com.ibm.fhir:fhir-core:4.2.3 +| +--- org.glassfish:jakarta.json:1.1.5 +| \--- jakarta.annotation:jakarta.annotation-api:1.3.5 ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +debugWearBundling - Resolved Configuration for wear app bundling for variant: debug +No dependencies + +default - Configuration for default artifacts. +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- project opensrp-anc (n) ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (n) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (n) ++--- unspecified (n) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (n) ++--- org.apache.commons:commons-text:1.9 (n) ++--- net.zetetic:android-database-sqlcipher:4.4.0 (n) ++--- commons-validator:commons-validator:1.7 (n) ++--- com.google.code.gson:gson:2.8.6 (n) ++--- org.greenrobot:eventbus:3.2.0 (n) ++--- com.google.guava:guava:30.0-jre (n) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (n) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (n) ++--- com.evernote:android-job:1.4.2 (n) ++--- com.github.lecho:hellocharts-android:v1.5.8 (n) ++--- id.zelory:compressor:2.1.0 (n) ++--- com.google.android.material:material:1.2.1 (n) ++--- androidx.recyclerview:recyclerview:1.1.0 (n) ++--- androidx.cardview:cardview:1.0.0 (n) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (n) ++--- org.yaml:snakeyaml:1.27 (n) ++--- de.hdodenhof:circleimageview:3.1.0 (n) ++--- org.jeasy:easy-rules-core:3.3.0 (n) ++--- org.jeasy:easy-rules-mvel:3.3.0 (n) ++--- com.flurry.android:analytics:11.6.0 (n) ++--- com.google.firebase:firebase-analytics:17.6.0 (n) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (n) +\--- androidx.multidex:multidex:2.0.1 (n) + +jacocoAgent - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.agent:0.8.5 + +jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks. +\--- org.jacoco:org.jacoco.ant:0.8.5 + +--- org.jacoco:org.jacoco.core:0.8.5 + | +--- org.ow2.asm:asm:7.2 + | +--- org.ow2.asm:asm-commons:7.2 + | | +--- org.ow2.asm:asm:7.2 + | | +--- org.ow2.asm:asm-tree:7.2 + | | | \--- org.ow2.asm:asm:7.2 + | | \--- org.ow2.asm:asm-analysis:7.2 + | | \--- org.ow2.asm:asm-tree:7.2 (*) + | \--- org.ow2.asm:asm-tree:7.2 (*) + +--- org.jacoco:org.jacoco.report:0.8.5 + | \--- org.jacoco:org.jacoco.core:0.8.5 (*) + \--- org.jacoco:org.jacoco.agent:0.8.5 + +jarJar ++--- com.googlecode.jarjar:jarjar:1.3 +\--- com.ibm.fhir:fhir-model:4.2.3 + +--- org.antlr:antlr4-runtime:4.7.2 + +--- net.jcip:jcip-annotations:1.0 + +--- com.ibm.fhir:fhir-core:4.2.3 + +--- org.glassfish:jakarta.json:1.1.5 + \--- jakarta.annotation:jakarta.annotation-api:1.3.5 + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintClassPath - The lint embedded classpath +\--- com.android.tools.lint:lint-gradle:26.5.3 + +--- com.android.tools:sdk-common:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 + | | +--- com.android.tools.layoutlib:layoutlib-api:26.5.3 + | | | +--- com.android.tools:common:26.5.3 + | | | | +--- com.android.tools:annotations:26.5.3 + | | | | +--- com.google.guava:guava:27.0.1-jre + | | | | | +--- com.google.guava:failureaccess:1.0.1 + | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava + | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 + | | | | | +--- org.checkerframework:checker-qual:2.5.2 + | | | | | +--- com.google.errorprone:error_prone_annotations:2.2.0 + | | | | | +--- com.google.j2objc:j2objc-annotations:1.1 + | | | | | \--- org.codehaus.mojo:animal-sniffer-annotations:1.17 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 + | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 + | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 + | | | | | \--- org.jetbrains:annotations:13.0 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 + | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | | | +--- net.sf.kxml:kxml2:2.3.0 + | | | +--- com.android.tools:annotations:26.5.3 + | | | \--- org.jetbrains:annotations:13.0 + | | +--- com.android.tools:dvlib:26.5.3 + | | | \--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:repository:26.5.3 + | | | +--- com.android.tools:common:26.5.3 (*) + | | | +--- com.sun.activation:javax.activation:1.2.0 + | | | +--- org.apache.commons:commons-compress:1.12 + | | | +--- org.glassfish.jaxb:jaxb-runtime:2.2.11 + | | | | +--- org.glassfish.jaxb:jaxb-core:2.2.11 + | | | | | +--- javax.xml.bind:jaxb-api:2.2.12-b140109.1041 + | | | | | +--- org.glassfish.jaxb:txw2:2.2.11 + | | | | | \--- com.sun.istack:istack-commons-runtime:2.21 + | | | | +--- org.jvnet.staxex:stax-ex:1.7.7 + | | | | \--- com.sun.xml.fastinfoset:FastInfoset:1.2.13 + | | | +--- com.google.jimfs:jimfs:1.1 + | | | | \--- com.google.guava:guava:18.0 -> 27.0.1-jre (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.apache.commons:commons-compress:1.12 + | | +--- org.apache.httpcomponents:httpmime:4.5.6 + | | | \--- org.apache.httpcomponents:httpclient:4.5.6 + | | | +--- org.apache.httpcomponents:httpcore:4.4.10 + | | | +--- commons-logging:commons-logging:1.2 + | | | \--- commons-codec:commons-codec:1.10 + | | \--- org.apache.httpcomponents:httpcore:4.4.10 + | +--- com.android.tools.build:builder-test-api:3.5.3 + | | \--- com.android.tools.ddms:ddmlib:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.build:builder-model:3.5.3 + | | \--- com.android.tools:annotations:26.5.3 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 + | | +--- com.android.tools.analytics-library:protos:26.5.3 + | | | \--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 + | | \--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.50 (*) + | +--- com.google.protobuf:protobuf-java:3.4.0 + | +--- javax.inject:javax.inject:1 + | +--- org.jetbrains.trove4j:trove4j:20160824 + | \--- com.android.tools.build:aapt2-proto:0.4.0 + | \--- com.google.protobuf:protobuf-java:3.4.0 + +--- com.android.tools.build:builder:3.5.3 + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools:sdk-common:26.5.3 (*) + | +--- com.android.tools:common:26.5.3 (*) + | +--- com.android.tools.build:manifest-merger:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools:sdklib:26.5.3 (*) + | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | +--- com.google.code.gson:gson:2.8.5 + | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | \--- net.sf.kxml:kxml2:2.3.0 + | +--- com.android.tools.ddms:ddmlib:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 + | | +--- com.android.tools:annotations:26.5.3 + | | +--- com.android.tools:common:26.5.3 (*) + | | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | | +--- com.google.protobuf:protobuf-java:3.4.0 + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.android.tools.build:apksig:3.5.3 + | +--- com.android.tools.build:apkzlib:3.5.3 + | | +--- com.google.code.findbugs:jsr305:1.3.9 + | | +--- com.google.guava:guava:23.0 -> 27.0.1-jre (*) + | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | | \--- com.android.tools.build:apksig:3.5.3 + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- com.squareup:javawriter:2.5.0 + | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*) + | +--- org.bouncycastle:bcprov-jdk15on:1.56 + | +--- org.ow2.asm:asm:6.0 + | +--- org.ow2.asm:asm-tree:6.0 + | | \--- org.ow2.asm:asm:6.0 + | +--- javax.inject:javax.inject:1 + | +--- org.ow2.asm:asm-commons:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- org.ow2.asm:asm-util:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- it.unimi.dsi:fastutil:7.2.0 + | +--- net.sf.jopt-simple:jopt-simple:4.9 + | \--- com.googlecode.json-simple:json-simple:1.1 + +--- com.android.tools.build:builder-model:3.5.3 (*) + +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 + | \--- org.jetbrains.trove4j:trove4j:20160824 + +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + +--- com.android.tools.build:manifest-merger:26.5.3 (*) + +--- com.android.tools.lint:lint:26.5.3 + | +--- com.android.tools.lint:lint-checks:26.5.3 + | | +--- com.android.tools.lint:lint-api:26.5.3 + | | | +--- com.android.tools:sdk-common:26.5.3 (*) + | | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | | +--- com.google.guava:guava:27.0.1-jre (*) + | | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | | | +--- org.ow2.asm:asm:6.0 + | | | +--- org.ow2.asm:asm-tree:6.0 (*) + | | | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | +--- com.android.tools.external.com-intellij:intellij-core:26.5.3 (*) + | | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | | \--- org.ow2.asm:asm-analysis:6.0 + | | \--- org.ow2.asm:asm-tree:6.0 (*) + | +--- com.google.guava:guava:27.0.1-jre (*) + | +--- com.android.tools.external.org-jetbrains:uast:26.5.3 + | +--- com.android.tools.external.com-intellij:kotlin-compiler:26.5.3 + | +--- com.android.tools.build:manifest-merger:26.5.3 (*) + | +--- com.android.tools.analytics-library:shared:26.5.3 (*) + | +--- com.android.tools.analytics-library:protos:26.5.3 (*) + | +--- com.android.tools.analytics-library:tracker:26.5.3 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +--- com.android.tools.lint:lint-gradle-api:26.5.3 + | +--- com.android.tools:sdklib:26.5.3 (*) + | +--- com.android.tools.build:builder-model:3.5.3 (*) + | +--- com.android.tools.build:gradle-api:3.5.3 + | | +--- com.android.tools.build:builder-model:3.5.3 (*) + | | +--- com.android.tools.build:builder-test-api:3.5.3 (*) + | | +--- com.google.guava:guava:27.0.1-jre (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + | \--- com.google.guava:guava:27.0.1-jre (*) + +--- org.codehaus.groovy:groovy-all:2.4.15 + +--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 (*) + +lintPublish - Configuration to publish external lint check jar +No dependencies + +provided - Provided dependencies for 'main' sources (deprecated: use 'compileOnly' instead). (n) +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release ++--- com.jakewharton:butterknife:10.2.3 +| \--- com.jakewharton:butterknife-runtime:10.2.3 +| +--- com.jakewharton:butterknife-annotations:10.2.3 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.core:core:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| +--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.0.0 +| | +--- androidx.lifecycle:lifecycle-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | +--- androidx.arch.core:core-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 +| \--- androidx.versionedparcelable:versionedparcelable:1.0.0 +| +--- androidx.annotation:annotation:1.0.0 +| \--- androidx.collection:collection:1.0.0 (*) +\--- org.greenrobot:eventbus-annotation-processor:3.2.0 + +--- org.greenrobot:eventbus:3.2.0 + \--- de.greenrobot:java-common:2.3.1 + +releaseApi - API dependencies for 'release' sources. (n) +No dependencies + +releaseApiElements - API elements for release (n) +No dependencies + +releaseApk - Apk dependencies for 'release' sources (deprecated: use 'releaseRuntimeOnly' instead). (n) +No dependencies + +releaseBundleElements - Bundle elements for release (n) +No dependencies + +releaseCompile - Compile dependencies for 'release' sources (deprecated: use 'releaseImplementation' instead). (n) +No dependencies + +releaseCompileClasspath - Resolved configuration for compilation for variant: release ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.preference:preference:1.1.1 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.fragment:fragment:1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.security:security-crypto:1.0.0-rc03 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- com.google.firebase:firebase-perf:19.0.7 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-config:19.0.4 +| | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | \--- com.squareup.okio:okio:1.6.0 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +releaseCompileOnly - Compile only dependencies for 'release' sources. (n) +No dependencies + +releaseImplementation - Implementation only dependencies for 'release' sources. (n) +No dependencies + +releaseMetadataElements (n) +No dependencies + +releaseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +releaseProvided - Provided dependencies for 'release' sources (deprecated: use 'releaseCompileOnly' instead). (n) +No dependencies + +releaseRuntimeClasspath - Resolved configuration for runtime for variant: release ++--- project :opensrp-anc +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.preference:preference:1.1.1 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.security:security-crypto:1.0.0-rc03 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.crypto.tink:tink-android:1.4.0 +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- com.google.firebase:firebase-perf:19.0.7 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | | \--- com.google.firebase:firebase-components:16.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | +--- com.google.firebase:firebase-config:19.0.4 +| | | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | | \--- com.squareup.okio:okio:1.6.0 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 +\--- androidx.multidex:multidex:2.0.0 -> 2.0.1 + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for 'release' sources. (n) +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestCompileClasspath - Resolved configuration for compilation for variant: releaseUnitTest ++--- project :opensrp-anc ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | +--- com.simprints:libsimprints:2019.3.1 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.collection:collection:1.1.0 (*) +| | \--- androidx.drawerlayout:drawerlayout:1.0.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | \--- androidx.customview:customview:1.0.0 (*) +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.github.bmelnychuk:atv:1.2.9 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.johnkil.print:print:1.3.1 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- com.github.rey5137:material:1.2.5 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | +--- com.nineoldandroids:library:2.4.0 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| +--- com.github.ganfra:material-spinner:2.0.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-location:16.0.0 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| +--- com.google.android.gms:play-services-vision:17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 +| | \--- org.slf4j:slf4j-api:1.7.25 +| +--- org.jeasy:easy-rules-mvel:3.3.0 +| | +--- org.jeasy:easy-rules-support:3.3.0 +| | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | \--- org.mvel:mvel2:2.4.3.Final +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| +--- io.ona.CircleProgressbar:lib:0.1.0 +| +--- com.jakewharton.timber:timber:4.7.1 +| | \--- org.jetbrains:annotations:16.0.1 +| +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.cardview:cardview:1.0.0 (*) +| | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.0.0 +| | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.transition:transition:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | \--- androidx.viewpager2:viewpager2:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | \--- androidx.collection:collection:1.1.0 (*) +| +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.core:core:1.3.1 (*) +| | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- androidx.multidex:multidex:2.0.1 +| +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| +--- androidx.appcompat:appcompat:1.2.0 (*) +| +--- androidx.legacy:legacy-support-v4:1.0.0 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- androidx.media:media:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.loader:loader:1.0.0 (*) +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.print:print:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| +--- org.apache.httpcomponents:httpmime:4.5.6 +| | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-codec:commons-codec:1.10 +| +--- commons-codec:commons-codec:1.10 +| +--- commons-io:commons-io:2.4 +| +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| +--- org.mozilla:rhino:1.7R4 +| +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| +--- com.github.johnkil.print:print:1.3.1 (*) +| +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | +--- io.fabric.sdk.android:fabric:1.4.8 +| | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| +--- ch.acra:acra:4.5.0 +| +--- com.github.ybq:Android-SpinKit:1.4.0 +| +--- com.mcxiaoke.volley:library:1.0.19 +| +--- com.cloudant:cloudant-http:2.7.0 +| | \--- commons-io:commons-io:2.4 +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.preference:preference:1.1.1 +| | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- androidx.fragment:fragment:1.2.4 (*) +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- androidx.security:security-crypto:1.0.0-rc03 +| | \--- androidx.annotation:annotation:1.1.0 +| +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| +--- commons-validator:commons-validator:1.6 -> 1.7 +| | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- commons-digester:commons-digester:2.1 +| | +--- commons-logging:commons-logging:1.2 +| | \--- commons-collections:commons-collections:3.2.2 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | +--- com.google.zxing:core:3.3.2 +| | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | \--- androidx.room:room-runtime:2.0.0 +| | +--- androidx.room:room-common:2.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.arch.core:core-common:2.1.0 (*) +| | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | +--- net.jcip:jcip-annotations:1.0 +| | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | +--- org.glassfish:jakarta.json:1.1.5 +| | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | \--- org.apache.commons:commons-lang3:3.11 +| | +--- joda-time:joda-time:2.10.6 +| | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | +--- com.google.code.gson:gson:2.8.6 +| | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| +--- xerces:xercesImpl:2.12.0 +| | \--- xml-apis:xml-apis:1.4.01 +| +--- com.google.firebase:firebase-perf:19.0.7 +| | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | \--- com.google.firebase:firebase-components:16.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-config:19.0.4 +| | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | \--- com.squareup.okio:okio:1.6.0 +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| +--- org.jacoco:org.jacoco.agent:0.7.9 +| +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre +| +--- com.google.guava:failureaccess:1.0.1 +| +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| +--- org.checkerframework:checker-qual:3.5.0 +| +--- com.google.errorprone:error_prone_annotations:2.3.4 +| \--- com.google.j2objc:j2objc-annotations:1.3 ++--- io.reactivex.rxjava2:rxandroid:2.1.1 +| \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| \--- org.reactivestreams:reactive-streams:1.0.3 ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 +| \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- org.smartregister:opensrp-client-native-form:{strictly 2.0.4-SNAPSHOT} -> 2.0.4-SNAPSHOT (c) ++--- androidx.multidex:multidex:{strictly 2.0.1} -> 2.0.1 (c) ++--- androidx.cardview:cardview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.recyclerview:recyclerview:{strictly 1.1.0} -> 1.1.0 (c) ++--- org.jeasy:easy-rules-core:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.jeasy:easy-rules-mvel:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.yaml:snakeyaml:{strictly 1.27} -> 1.27 (c) ++--- com.google.code.gson:gson:{strictly 2.8.6} -> 2.8.6 (c) ++--- org.greenrobot:eventbus:{strictly 3.2.0} -> 3.2.0 (c) ++--- com.google.android.material:material:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.constraintlayout:constraintlayout:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.smartregister:opensrp-client-core:{strictly 4.2.4000-SNAPSHOT} -> 4.2.4000-SNAPSHOT (c) ++--- com.crashlytics.sdk.android:crashlytics:{strictly 2.10.1} -> 2.10.1 (c) ++--- com.evernote:android-job:{strictly 1.4.2} -> 1.4.2 (c) ++--- commons-validator:commons-validator:{strictly 1.7} -> 1.7 (c) ++--- de.hdodenhof:circleimageview:{strictly 3.1.0} -> 3.1.0 (c) ++--- org.apache.commons:commons-text:{strictly 1.9} -> 1.9 (c) ++--- org.smartregister:opensrp-client-configurable-views:{strictly 1.1.5-SNAPSHOT} -> 1.1.5-SNAPSHOT (c) ++--- net.zetetic:android-database-sqlcipher:{strictly 4.4.0} -> 4.4.0 (c) ++--- com.google.guava:guava:{strictly 30.0-jre} -> 30.0-jre (c) ++--- io.reactivex.rxjava2:rxandroid:{strictly 2.1.1} -> 2.1.1 (c) ++--- io.reactivex.rxjava2:rxjava:{strictly 2.2.20} -> 2.2.20 (c) ++--- com.github.lecho:hellocharts-android:{strictly v1.5.8} -> v1.5.8 (c) ++--- id.zelory:compressor:{strictly 2.1.0} -> 2.1.0 (c) ++--- com.flurry.android:analytics:{strictly 11.6.0} -> 11.6.0 (c) ++--- com.google.firebase:firebase-analytics:{strictly 17.6.0} -> 17.6.0 (c) ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | \--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 +| +--- org.antlr:antlr4-runtime:4.7.2 +| +--- net.jcip:jcip-annotations:1.0 +| +--- com.ibm.fhir:fhir-core:4.2.3 +| +--- org.glassfish:jakarta.json:1.1.5 +| \--- jakarta.annotation:jakarta.annotation-api:1.3.5 ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) ++--- org.skyscreamer:jsonassert:1.5.0 +| \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 ++--- junit:junit:{strictly 4.13.1} -> 4.13.1 (c) ++--- org.apache.maven:maven-ant-tasks:{strictly 2.1.3} -> 2.1.3 (c) ++--- com.squareup:fest-android:{strictly 1.0.8} -> 1.0.8 (c) ++--- org.robolectric:robolectric:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-multidex:{strictly 4.4} -> 4.4 (c) ++--- com.ibm.fhir:fhir-model:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.powermock:powermock-module-junit4:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-module-junit4-rule:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-mockito2:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.mockito:mockito-core:{strictly 3.5.15} -> 3.5.15 (c) ++--- org.powermock:powermock-classloading-xstream:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.skyscreamer:jsonassert:{strictly 1.5.0} -> 1.5.0 (c) ++--- org.smartregister:opensrp-client-simprints:{strictly 1.0.3-SNAPSHOT} -> 1.0.3-SNAPSHOT (c) ++--- org.jacoco:org.jacoco.agent:{strictly 0.7.9} -> 0.7.9 (c) ++--- com.github.bmelnychuk:atv:{strictly 1.2.9} -> 1.2.9 (c) ++--- com.github.johnkil.print:print:{strictly 1.3.1} -> 1.3.1 (c) ++--- com.github.rey5137:material:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.smartregister:opensrp-client-materialedittext:{strictly 2.1.6-SNAPSHOT} -> 2.1.6-SNAPSHOT (c) ++--- com.github.ganfra:material-spinner:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.google.android.gms:play-services-location:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision:{strictly 17.0.2} -> 17.0.2 (c) ++--- org.smartregister:opensrp-client-utils:{strictly 0.0.4-SNAPSHOT} -> 0.0.4-SNAPSHOT (c) ++--- joda-time:joda-time:{strictly 2.10.6} -> 2.10.6 (c) ++--- org.apache.commons:commons-lang3:{strictly 3.11} -> 3.11 (c) ++--- io.ona.CircleProgressbar:lib:{strictly 0.1.0} -> 0.1.0 (c) ++--- com.jakewharton.timber:timber:{strictly 4.7.1} -> 4.7.1 (c) ++--- com.github.raihan-mpower:FancyAlertDialog-Android:{strictly 0.3} -> 0.3 (c) ++--- androidx.appcompat:appcompat:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.codehaus.jackson:jackson-core-asl:{strictly 1.9.13} -> 1.9.13 (c) ++--- androidx.legacy:legacy-support-v4:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpmime:{strictly 4.5.6} -> 4.5.6 (c) ++--- commons-codec:commons-codec:{strictly 1.10} -> 1.10 (c) ++--- commons-io:commons-io:{strictly 2.4} -> 2.4 (c) ++--- org.mozilla:rhino:{strictly 1.7R4} -> 1.7R4 (c) ++--- com.ocpsoft:ocpsoft-pretty-time:{strictly 1.0.7} -> 1.0.7 (c) ++--- ch.acra:acra:{strictly 4.5.0} -> 4.5.0 (c) ++--- com.github.ybq:Android-SpinKit:{strictly 1.4.0} -> 1.4.0 (c) ++--- com.mcxiaoke.volley:library:{strictly 1.0.19} -> 1.0.19 (c) ++--- com.cloudant:cloudant-http:{strictly 2.7.0} -> 2.7.0 (c) ++--- androidx.preference:preference:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.security:security-crypto:{strictly 1.0.0-rc03} -> 1.0.0-rc03 (c) ++--- org.smartregister:android-p2p-sync:{strictly 0.3.7-SNAPSHOT} -> 0.3.7-SNAPSHOT (c) ++--- androidx.lifecycle:lifecycle-extensions:{strictly 2.2.0} -> 2.2.0 (c) ++--- org.smartregister:opensrp-plan-evaluator:{strictly 1.2.3-SNAPSHOT} -> 1.2.3-SNAPSHOT (c) ++--- xerces:xercesImpl:{strictly 2.12.0} -> 2.12.0 (c) ++--- com.google.firebase:firebase-perf:{strictly 19.0.7} -> 19.0.7 (c) ++--- commons-logging:commons-logging:{strictly 1.2} -> 1.2 (c) ++--- commons-beanutils:commons-beanutils:{strictly 1.9.4} -> 1.9.4 (c) ++--- commons-collections:commons-collections:{strictly 3.2.2} -> 3.2.2 (c) ++--- commons-digester:commons-digester:{strictly 2.1} -> 2.1 (c) ++--- com.google.guava:failureaccess:{strictly 1.0.1} -> 1.0.1 (c) ++--- com.google.guava:listenablefuture:{strictly 9999.0-empty-to-avoid-conflict-with-guava} -> 9999.0-empty-to-avoid-conflict-with-guava (c) ++--- com.google.code.findbugs:jsr305:{strictly 1.3.9} -> 1.3.9 (c) ++--- org.checkerframework:checker-qual:{strictly 3.5.0} -> 3.5.0 (c) ++--- com.google.errorprone:error_prone_annotations:{strictly 2.3.4} -> 2.3.4 (c) ++--- com.google.j2objc:j2objc-annotations:{strictly 1.3} -> 1.3 (c) ++--- org.reactivestreams:reactive-streams:{strictly 1.0.3} -> 1.0.3 (c) ++--- androidx.core:core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.annotation:annotation:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.fragment:fragment:{strictly 1.2.4} -> 1.2.4 (c) ++--- androidx.vectordrawable:vectordrawable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.coordinatorlayout:coordinatorlayout:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.transition:transition:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.viewpager2:viewpager2:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.collection:collection:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.customview:customview:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.constraintlayout:constraintlayout-solver:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.slf4j:slf4j-api:{strictly 1.7.25} -> 1.7.25 (c) ++--- org.jeasy:easy-rules-support:{strictly 3.3.0} -> 3.3.0 (c) ++--- org.mvel:mvel2:{strictly 2.4.3.Final} -> 2.4.3.Final (c) ++--- com.google.android.gms:play-services-measurement:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.crashlytics.sdk.android:crashlytics-core:{strictly 2.7.0} -> 2.7.0 (c) ++--- io.fabric.sdk.android:fabric:{strictly 1.4.8} -> 1.4.8 (c) ++--- com.crashlytics.sdk.android:answers:{strictly 1.4.7} -> 1.4.7 (c) ++--- com.crashlytics.sdk.android:beta:{strictly 1.2.10} -> 1.2.10 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.apache.ant:ant:{strictly 1.8.0} -> 1.8.0 (c) ++--- classworlds:classworlds:{strictly 1.1-alpha-2} -> 1.1-alpha-2 (c) ++--- org.codehaus.plexus:plexus-container-default:{strictly 1.0-alpha-9-stable-1} -> 1.0-alpha-9-stable-1 (c) ++--- org.codehaus.plexus:plexus-utils:{strictly 1.5.15} -> 1.5.15 (c) ++--- org.codehaus.plexus:plexus-interpolation:{strictly 1.11} -> 1.11 (c) ++--- org.apache.maven:maven-artifact:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-artifact-manager:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-provider-api:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven:maven-model:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-project:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-settings:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-error-diagnostics:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-file:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.apache.maven.wagon:wagon-http-lightweight:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-assert-core:{strictly 2.0M10} -> 2.0M10 (c) ++--- org.robolectric:annotations:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:junit:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:sandbox:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:utils:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:pluginapi:{strictly 4.4} -> 4.4 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- javax.annotation:javax.annotation-api:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.robolectric:utils-reflector:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:resources:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:plugins-maven-dependency-resolver:{strictly 4.4} -> 4.4 (c) ++--- org.robolectric:shadows-framework:{strictly 4.4} -> 4.4 (c) ++--- androidx.test:monitor:{strictly 1.3.0-rc03} -> 1.3.0-rc03 (c) ++--- org.bouncycastle:bcprov-jdk15on:{strictly 1.65} -> 1.65 (c) ++--- org.antlr:antlr4-runtime:{strictly 4.7.2} -> 4.7.2 (c) ++--- net.jcip:jcip-annotations:{strictly 1.0} -> 1.0 (c) ++--- com.ibm.fhir:fhir-core:{strictly 4.2.3} -> 4.2.3 (c) ++--- org.glassfish:jakarta.json:{strictly 1.1.5} -> 1.1.5 (c) ++--- jakarta.annotation:jakarta.annotation-api:{strictly 1.3.5} -> 1.3.5 (c) ++--- org.powermock:powermock-module-junit4-common:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-core:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-api-support:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.powermock:powermock-classloading-base:{strictly 2.0.7} -> 2.0.7 (c) ++--- com.thoughtworks.xstream:xstream:{strictly 1.4.10} -> 1.4.10 (c) ++--- org.objenesis:objenesis:{strictly 3.1} -> 3.1 (c) ++--- net.bytebuddy:byte-buddy:{strictly 1.10.15} -> 1.10.15 (c) ++--- net.bytebuddy:byte-buddy-agent:{strictly 1.10.15} -> 1.10.15 (c) ++--- com.vaadin.external.google:android-json:{strictly 0.0.20131108.vaadin1} -> 0.0.20131108.vaadin1 (c) ++--- com.simprints:libsimprints:{strictly 2019.3.1} -> 2019.3.1 (c) ++--- com.nineoldandroids:library:{strictly 2.4.0} -> 2.4.0 (c) ++--- com.google.android.gms:play-services-base:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-basement:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-tasks:{strictly 17.0.0} -> 17.0.0 (c) ++--- androidx.cursoradapter:cursoradapter:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.appcompat:appcompat-resources:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.drawerlayout:drawerlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.media:media:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-utils:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.legacy:legacy-support-core-ui:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpclient:{strictly 4.5.6} -> 4.5.6 (c) ++--- com.google.android.gms:play-services-nearby:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.journeyapps:zxing-android-embedded:{strictly 3.6.0} -> 3.6.0 (c) ++--- com.google.zxing:core:{strictly 3.3.2} -> 3.3.2 (c) ++--- com.commonsware.cwac:saferoom:{strictly 1.0.2} -> 1.0.2 (c) ++--- androidx.room:room-runtime:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-livedata:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-process:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.lifecycle:lifecycle-service:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.core:jackson-databind:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.ibm.fhir:fhir-path:{strictly 4.2.3} -> 4.2.3 (c) ++--- xml-apis:xml-apis:{strictly 1.4.01} -> 1.4.01 (c) ++--- com.google.android.gms:play-services-clearcut:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-phenotype:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.firebase:firebase-common:{strictly 19.3.0} -> 19.3.0 (c) ++--- com.google.firebase:firebase-components:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.firebase:firebase-config:{strictly 19.0.4} -> 19.0.4 (c) ++--- com.google.firebase:firebase-iid:{strictly 20.1.5} -> 20.1.5 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 3.0.0} -> 3.0.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.viewpager:viewpager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.loader:loader:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.2.0} -> 2.2.0 (c) ++--- androidx.activity:activity:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.2.0} -> 2.2.0 (c) ++--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:{strictly 2.9.8} -> 2.9.8 (c) ++--- com.google.android.gms:play-services-stats:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-ads-identifier:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.google.android.gms:play-services-measurement-base:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.android.gms:play-services-measurement-impl:{strictly 17.6.0} -> 17.6.0 (c) ++--- com.google.firebase:firebase-measurement-connector:{strictly 18.0.0} -> 18.0.0 (c) ++--- com.google.firebase:firebase-installations:{strictly 16.3.2} -> 16.3.2 (c) ++--- com.google.firebase:firebase-installations-interop:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-measurement-sdk-api:{strictly 17.6.0} -> 17.6.0 (c) ++--- org.apache.ant:ant-launcher:{strictly 1.8.0} -> 1.8.0 (c) ++--- org.apache.maven:maven-repository-metadata:{strictly 2.2.1} -> 2.2.1 (c) ++--- backport-util-concurrent:backport-util-concurrent:{strictly 3.1} -> 3.1 (c) ++--- org.apache.maven:maven-profile:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven:maven-plugin-registry:{strictly 2.2.1} -> 2.2.1 (c) ++--- org.apache.maven.wagon:wagon-http-shared:{strictly 1.0-beta-6} -> 1.0-beta-6 (c) ++--- org.easytesting:fest-util:{strictly 1.2.5} -> 1.2.5 (c) ++--- org.robolectric:shadowapi:{strictly 4.4} -> 4.4 (c) ++--- org.ow2.asm:asm:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-commons:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-util:{strictly 7.2} -> 7.2 (c) ++--- com.google.auto.value:auto-value-annotations:{strictly 1.6.5} -> 1.6.5 (c) ++--- com.almworks.sqlite4java:sqlite4java:{strictly 0.282} -> 0.282 (c) ++--- com.ibm.icu:icu4j:{strictly 53.1} -> 53.1 (c) ++--- org.powermock:powermock-reflect:{strictly 2.0.7} -> 2.0.7 (c) ++--- org.javassist:javassist:{strictly 3.27.0-GA} -> 3.27.0-GA (c) ++--- xmlpull:xmlpull:{strictly 1.1.3.1} -> 1.1.3.1 (c) ++--- xpp3:xpp3_min:{strictly 1.1.4c} -> 1.1.4c (c) ++--- androidx.vectordrawable:vectordrawable-animated:{strictly 1.1.0} -> 1.1.0 (c) ++--- androidx.documentfile:documentfile:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.localbroadcastmanager:localbroadcastmanager:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.print:print:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.interpolator:interpolator:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.slidingpanelayout:slidingpanelayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.swiperefreshlayout:swiperefreshlayout:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.asynclayoutinflater:asynclayoutinflater:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.apache.httpcomponents:httpcore:{strictly 4.4.10} -> 4.4.10 (c) ++--- com.google.android.gms:play-services-places-placereport:{strictly 16.0.0} -> 16.0.0 (c) ++--- com.google.android.gms:play-services-vision-common:{strictly 17.0.2} -> 17.0.2 (c) ++--- com.google.android.gms:play-services-flags:{strictly 16.0.1} -> 16.0.1 (c) ++--- org.jetbrains:annotations:{strictly 16.0.1} -> 16.0.1 (c) ++--- androidx.sqlite:sqlite:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.room:room-common:{strictly 2.0.0} -> 2.0.0 (c) ++--- androidx.sqlite:sqlite-framework:{strictly 2.0.0} -> 2.0.0 (c) ++--- com.ibm.fhir:fhir-registry:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.ibm.fhir:fhir-profile:{strictly 4.2.3} -> 4.2.3 (c) ++--- com.fasterxml.jackson.core:jackson-core:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.fasterxml.jackson.core:jackson-annotations:{strictly 2.10.2} -> 2.10.2 (c) ++--- com.google.firebase:firebase-abt:{strictly 19.0.0} -> 19.0.0 (c) ++--- com.google.protobuf:protobuf-lite:{strictly 3.0.1} -> 3.0.1 (c) ++--- com.google.firebase:firebase-iid-interop:{strictly 17.0.0} -> 17.0.0 (c) ++--- com.squareup.okio:okio:{strictly 1.6.0} -> 1.6.0 (c) ++--- androidx.savedstate:savedstate:{strictly 1.0.0} -> 1.0.0 (c) ++--- nekohtml:xercesMinimal:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- nekohtml:nekohtml:{strictly 1.9.6.2} -> 1.9.6.2 (c) ++--- org.ow2.asm:asm-tree:{strictly 7.2} -> 7.2 (c) ++--- org.ow2.asm:asm-analysis:{strictly 7.2} -> 7.2 (c) +\--- com.ibm.fhir:fhir-term:{strictly 4.2.3} -> 4.2.3 (c) + +releaseUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: releaseUnitTest ++--- project :opensrp-anc +| +--- androidx.appcompat:appcompat:1.2.0 +| | +--- androidx.annotation:annotation:1.1.0 +| | +--- androidx.core:core:1.3.0 -> 1.3.1 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | | \--- androidx.arch.core:core-common:[2.1.0] -> 2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.2.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.activity:activity:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | | +--- androidx.savedstate:savedstate:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 +| | | | | +--- androidx.arch.core:core-common:2.0.1 -> 2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.0.0 -> 2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 -> 2.2.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.savedstate:savedstate:1.0.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 (*) +| | +--- androidx.appcompat:appcompat-resources:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.collection:collection:1.1.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | \--- androidx.customview:customview:1.0.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT +| | +--- org.smartregister:opensrp-client-simprints:1.0.3-SNAPSHOT +| | | +--- com.simprints:libsimprints:2019.3.1 +| | | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.github.bmelnychuk:atv:1.2.9 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.johnkil.print:print:1.3.1 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.github.rey5137:material:1.2.5 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.customview:customview:1.0.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- org.smartregister:opensrp-client-materialedittext:2.1.6-SNAPSHOT +| | | +--- com.nineoldandroids:library:2.4.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | \--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | +--- com.github.ganfra:material-spinner:2.0.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | +--- com.google.android.gms:play-services-location:16.0.0 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 +| | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-places-placereport:16.0.0 +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | +--- com.google.android.gms:play-services-vision:17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-vision-common:[17.0.2] -> 17.0.2 +| | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:16.1.0 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:16.0.0 -> 17.0.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-phenotype:17.0.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-flags:16.0.1 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | \--- com.google.android.gms:play-services-phenotype:16.0.0 -> 17.0.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.4-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- org.jeasy:easy-rules-core:3.3.0 +| | | \--- org.slf4j:slf4j-api:1.7.25 +| | +--- org.jeasy:easy-rules-mvel:3.3.0 +| | | +--- org.jeasy:easy-rules-support:3.3.0 +| | | | +--- org.jeasy:easy-rules-core:3.3.0 (*) +| | | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8 +| | | | | +--- org.yaml:snakeyaml:1.23 -> 1.27 +| | | | | \--- com.fasterxml.jackson.core:jackson-core:2.9.8 -> 2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 -> 2.10.2 +| | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.10.2 +| | | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 +| | | \--- org.mvel:mvel2:2.4.3.Final +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | +--- org.apache.commons:commons-lang3:3.7 -> 3.11 +| | +--- io.ona.CircleProgressbar:lib:0.1.0 +| | +--- com.jakewharton.timber:timber:4.7.1 +| | | \--- org.jetbrains:annotations:16.0.1 +| | +--- org.greenrobot:eventbus:3.1.1 -> 3.2.0 +| | +--- com.github.raihan-mpower:FancyAlertDialog-Android:0.3 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.cardview:cardview:1.0.0 (*) +| | +--- com.google.android.material:material:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.0.1 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.cardview:cardview:1.0.0 (*) +| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.2.0 -> 1.3.1 (*) +| | | +--- androidx.annotation:annotation-experimental:1.0.0 +| | | +--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.2.0 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.transition:transition:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 +| | | | +--- androidx.core:core:1.0.1 -> 1.3.1 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | \--- androidx.viewpager2:viewpager2:1.0.0 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | +--- androidx.fragment:fragment:1.1.0 -> 1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | \--- androidx.collection:collection:1.1.0 (*) +| | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 +| | | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | | +--- androidx.core:core:1.3.1 (*) +| | | \--- androidx.constraintlayout:constraintlayout-solver:2.0.2 +| | \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| +--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT +| | +--- joda-time:joda-time:2.10.5 -> 2.10.6 +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- androidx.multidex:multidex:2.0.1 +| | +--- org.codehaus.jackson:jackson-core-asl:1.9.13 +| | +--- androidx.appcompat:appcompat:1.2.0 (*) +| | +--- androidx.legacy:legacy-support-v4:1.0.0 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- androidx.media:media:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.versionedparcelable:versionedparcelable:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.loader:loader:1.0.0 (*) +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.viewpager:viewpager:1.0.0 (*) +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -> 1.1.0 (*) +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 (*) +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | | \--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | \--- androidx.cursoradapter:cursoradapter:1.0.0 (*) +| | | \--- androidx.fragment:fragment:1.0.0 -> 1.2.4 (*) +| | +--- org.apache.httpcomponents:httpmime:4.5.6 +| | | \--- org.apache.httpcomponents:httpclient:4.5.6 +| | | +--- org.apache.httpcomponents:httpcore:4.4.10 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-codec:commons-codec:1.10 +| | +--- commons-codec:commons-codec:1.10 +| | +--- commons-io:commons-io:2.4 +| | +--- org.apache.commons:commons-lang3:3.9 -> 3.11 +| | +--- org.mozilla:rhino:1.7R4 +| | +--- com.ocpsoft:ocpsoft-pretty-time:1.0.7 +| | +--- com.github.johnkil.print:print:1.3.1 (*) +| | +--- com.crashlytics.sdk.android:crashlytics:2.10.1 +| | | +--- com.crashlytics.sdk.android:crashlytics-core:2.7.0 +| | | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | | \--- com.crashlytics.sdk.android:answers:1.4.7 +| | | | \--- io.fabric.sdk.android:fabric:1.4.8 +| | | +--- com.crashlytics.sdk.android:beta:1.2.10 +| | | | \--- io.fabric.sdk.android:fabric:1.4.4 -> 1.4.8 +| | | +--- io.fabric.sdk.android:fabric:1.4.8 +| | | \--- com.crashlytics.sdk.android:answers:1.4.7 (*) +| | +--- ch.acra:acra:4.5.0 +| | +--- com.github.ybq:Android-SpinKit:1.4.0 +| | +--- com.mcxiaoke.volley:library:1.0.19 +| | +--- com.cloudant:cloudant-http:2.7.0 +| | | \--- commons-io:commons-io:2.4 +| | +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| | +--- androidx.preference:preference:1.1.1 +| | | +--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | | +--- androidx.fragment:fragment:1.2.4 (*) +| | | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.security:security-crypto:1.0.0-rc03 +| | | +--- androidx.annotation:annotation:1.1.0 +| | | \--- com.google.crypto.tink:tink-android:1.4.0 +| | +--- com.google.android.material:material:1.1.0 -> 1.2.1 (*) +| | +--- com.evernote:android-job:1.2.6 -> 1.4.2 +| | | \--- androidx.core:core:1.1.0 -> 1.3.1 (*) +| | +--- commons-validator:commons-validator:1.6 -> 1.7 +| | | +--- commons-beanutils:commons-beanutils:1.9.4 +| | | | +--- commons-logging:commons-logging:1.2 +| | | | \--- commons-collections:commons-collections:3.2.2 +| | | +--- commons-digester:commons-digester:2.1 +| | | +--- commons-logging:commons-logging:1.2 +| | | \--- commons-collections:commons-collections:3.2.2 +| | +--- de.hdodenhof:circleimageview:3.1.0 +| | +--- org.smartregister:android-p2p-sync:0.3.7-SNAPSHOT +| | | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | | +--- com.google.android.gms:play-services-nearby:16.0.0 +| | | | +--- com.google.android.gms:play-services-base:16.0.1 -> 17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-basement:16.0.1 -> 17.0.0 (*) +| | | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 17.0.0 (*) +| | | +--- com.google.android.gms:play-services-location:16.0.0 (*) +| | | +--- com.google.android.gms:play-services-vision:17.0.2 (*) +| | | +--- com.jakewharton.timber:timber:4.7.1 (*) +| | | +--- com.journeyapps:zxing-android-embedded:3.6.0 +| | | | +--- com.google.zxing:core:3.3.2 +| | | | \--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- com.google.zxing:core:3.3.0 -> 3.3.2 +| | | +--- com.google.code.gson:gson:2.8.5 -> 2.8.6 +| | | +--- com.commonsware.cwac:saferoom:1.0.2 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.legacy:legacy-support-v4:1.0.0 (*) +| | | +--- androidx.constraintlayout:constraintlayout:1.1.3 -> 2.0.2 (*) +| | | \--- androidx.room:room-runtime:2.0.0 +| | | +--- androidx.room:room-common:2.0.0 +| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | +--- androidx.sqlite:sqlite-framework:2.0.0 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | | | \--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.sqlite:sqlite:2.0.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.1.0 (*) +| | | \--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*) +| | +--- androidx.lifecycle:lifecycle-extensions:2.2.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | +--- androidx.fragment:fragment:1.2.0 -> 1.2.4 (*) +| | | +--- androidx.lifecycle:lifecycle-common:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-process:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | +--- androidx.lifecycle:lifecycle-service:2.2.0 +| | | | \--- androidx.lifecycle:lifecycle-runtime:2.2.0 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel:2.2.0 (*) +| | +--- org.smartregister:opensrp-client-utils:0.0.2-SNAPSHOT -> 0.0.4-SNAPSHOT (*) +| | +--- org.smartregister:opensrp-plan-evaluator:1.2.3-SNAPSHOT +| | | +--- com.ibm.fhir:fhir-path:4.2.3 +| | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- com.ibm.fhir:fhir-profile:4.2.3 +| | | | | +--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-term:4.2.3 +| | | | | \--- com.ibm.fhir:fhir-registry:4.2.3 +| | | | +--- org.antlr:antlr4-runtime:4.7.2 +| | | | +--- net.jcip:jcip-annotations:1.0 +| | | | +--- com.ibm.fhir:fhir-core:4.2.3 +| | | | +--- org.glassfish:jakarta.json:1.1.5 +| | | | \--- jakarta.annotation:jakarta.annotation-api:1.3.5 +| | | +--- org.apache.commons:commons-text:1.8 -> 1.9 +| | | | \--- org.apache.commons:commons-lang3:3.11 +| | | +--- joda-time:joda-time:2.10.6 +| | | +--- com.fasterxml.jackson.core:jackson-databind:2.10.2 (*) +| | | +--- com.google.code.gson:gson:2.8.6 +| | | \--- org.apache.commons:commons-lang3:3.10 -> 3.11 +| | +--- xerces:xercesImpl:2.12.0 +| | | \--- xml-apis:xml-apis:1.4.01 +| | +--- com.google.firebase:firebase-perf:19.0.7 +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-clearcut:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-phenotype:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | +--- com.google.firebase:firebase-common:19.3.0 +| | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | +--- com.google.auto.value:auto-value-annotations:1.6.5 +| | | | \--- com.google.firebase:firebase-components:16.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 +| | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | +--- com.google.firebase:firebase-config:19.0.4 +| | | | +--- com.google.firebase:firebase-abt:19.0.0 +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.0.0 -> 19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | +--- com.google.firebase:firebase-iid:20.0.1 -> 20.1.5 +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-stats:17.0.0 +| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | +--- com.google.firebase:firebase-iid-interop:17.0.0 +| | | | | | +--- com.google.android.gms:play-services-base:17.0.0 (*) +| | | | | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | | | +--- com.google.firebase:firebase-installations:16.2.1 -> 16.3.2 +| | | | | | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | | | | | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 +| | | | | | \--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | | | | \--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | | | +--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| | | | \--- com.google.protobuf:protobuf-lite:3.0.1 +| | | +--- com.google.firebase:firebase-iid:20.1.5 (*) +| | | \--- com.squareup.okhttp3:okhttp:3.0.0 +| | | \--- com.squareup.okio:okio:1.6.0 +| | +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.1.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT +| | +--- org.jacoco:org.jacoco.agent:0.7.9 +| | +--- com.google.code.gson:gson:2.8.2 -> 2.8.6 +| | +--- androidx.multidex:multidex:2.0.0 -> 2.0.1 +| | +--- androidx.appcompat:appcompat:1.0.0 -> 1.2.0 (*) +| | \--- com.google.android.material:material:1.0.0 -> 1.2.1 (*) +| +--- org.apache.commons:commons-text:1.9 (*) +| +--- net.zetetic:android-database-sqlcipher:4.4.0 +| +--- commons-validator:commons-validator:1.7 (*) +| +--- com.google.code.gson:gson:2.8.6 +| +--- org.greenrobot:eventbus:3.2.0 +| +--- com.google.guava:guava:30.0-jre +| | +--- com.google.guava:failureaccess:1.0.1 +| | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava +| | +--- com.google.code.findbugs:jsr305:3.0.2 -> 1.3.9 +| | +--- org.checkerframework:checker-qual:3.5.0 +| | +--- com.google.errorprone:error_prone_annotations:2.3.4 +| | \--- com.google.j2objc:j2objc-annotations:1.3 +| +--- io.reactivex.rxjava2:rxandroid:2.1.1 +| | \--- io.reactivex.rxjava2:rxjava:2.2.6 -> 2.2.20 +| | \--- org.reactivestreams:reactive-streams:1.0.3 +| +--- io.reactivex.rxjava2:rxjava:2.2.20 (*) +| +--- com.evernote:android-job:1.4.2 (*) +| +--- com.github.lecho:hellocharts-android:v1.5.8 +| +--- id.zelory:compressor:2.1.0 +| | \--- io.reactivex.rxjava2:rxjava:2.1.0 -> 2.2.20 (*) +| +--- com.google.android.material:material:1.2.1 (*) +| +--- androidx.recyclerview:recyclerview:1.1.0 (*) +| +--- androidx.cardview:cardview:1.0.0 (*) +| +--- androidx.constraintlayout:constraintlayout:2.0.2 (*) +| +--- org.yaml:snakeyaml:1.27 +| +--- de.hdodenhof:circleimageview:3.1.0 +| +--- org.jeasy:easy-rules-core:3.3.0 (*) +| +--- org.jeasy:easy-rules-mvel:3.3.0 (*) +| \--- androidx.multidex:multidex:2.0.0 -> 2.0.1 ++--- org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT (*) ++--- org.smartregister:opensrp-client-configurable-views:1.1.5-SNAPSHOT (*) ++--- org.apache.commons:commons-text:1.9 (*) ++--- net.zetetic:android-database-sqlcipher:4.4.0 ++--- commons-validator:commons-validator:1.7 (*) ++--- com.google.code.gson:gson:2.8.6 ++--- org.greenrobot:eventbus:3.2.0 ++--- com.google.guava:guava:30.0-jre (*) ++--- io.reactivex.rxjava2:rxandroid:2.1.1 (*) ++--- io.reactivex.rxjava2:rxjava:2.2.20 (*) ++--- com.evernote:android-job:1.4.2 (*) ++--- com.github.lecho:hellocharts-android:v1.5.8 ++--- id.zelory:compressor:2.1.0 (*) ++--- com.google.android.material:material:1.2.1 (*) ++--- androidx.recyclerview:recyclerview:1.1.0 (*) ++--- androidx.cardview:cardview:1.0.0 (*) ++--- androidx.constraintlayout:constraintlayout:2.0.2 (*) ++--- org.yaml:snakeyaml:1.27 ++--- de.hdodenhof:circleimageview:3.1.0 ++--- org.jeasy:easy-rules-core:3.3.0 (*) ++--- org.jeasy:easy-rules-mvel:3.3.0 (*) ++--- com.flurry.android:analytics:11.6.0 ++--- com.google.firebase:firebase-analytics:17.6.0 +| +--- com.google.android.gms:play-services-measurement:17.6.0 +| | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 +| | | \--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 +| | | +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| | | +--- androidx.core:core:1.0.0 -> 1.3.1 (*) +| | | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| | \--- com.google.android.gms:play-services-stats:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-api:17.6.0 +| | +--- com.google.android.gms:play-services-ads-identifier:17.0.0 (*) +| | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-measurement-sdk-api:[17.6.0] -> 17.6.0 +| | | +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| | | \--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| | +--- com.google.android.gms:play-services-tasks:17.0.0 (*) +| | +--- com.google.firebase:firebase-common:19.3.0 (*) +| | +--- com.google.firebase:firebase-components:16.0.0 (*) +| | +--- com.google.firebase:firebase-installations:16.3.2 (*) +| | +--- com.google.firebase:firebase-installations-interop:16.0.0 (*) +| | \--- com.google.firebase:firebase-measurement-connector:18.0.0 (*) +| \--- com.google.android.gms:play-services-measurement-sdk:17.6.0 +| +--- androidx.collection:collection:1.0.0 -> 1.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 (*) +| +--- com.google.android.gms:play-services-measurement-base:[17.6.0] -> 17.6.0 (*) +| \--- com.google.android.gms:play-services-measurement-impl:[17.6.0] -> 17.6.0 (*) ++--- com.crashlytics.sdk.android:crashlytics:2.10.1 (*) ++--- androidx.multidex:multidex:2.0.1 ++--- junit:junit:4.13.1 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.apache.maven:maven-ant-tasks:2.1.3 +| +--- org.apache.ant:ant:1.8.0 +| | \--- org.apache.ant:ant-launcher:1.8.0 +| +--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 +| | +--- junit:junit:3.8.1 -> 4.13.1 (*) +| | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 +| | \--- classworlds:classworlds:1.1-alpha-2 +| +--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.codehaus.plexus:plexus-interpolation:1.11 +| +--- org.apache.maven:maven-artifact:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-artifact-manager:2.2.1 +| | +--- org.apache.maven:maven-repository-metadata:2.2.1 +| | | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 +| | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 +| | \--- backport-util-concurrent:backport-util-concurrent:3.1 +| +--- org.apache.maven:maven-model:2.2.1 +| | \--- org.codehaus.plexus:plexus-utils:1.5.15 +| +--- org.apache.maven:maven-project:2.2.1 +| | +--- org.apache.maven:maven-settings:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-profile:2.2.1 +| | | +--- org.apache.maven:maven-model:2.2.1 (*) +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.apache.maven:maven-model:2.2.1 (*) +| | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) +| | +--- org.apache.maven:maven-plugin-registry:2.2.1 +| | | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| | +--- org.codehaus.plexus:plexus-interpolation:1.11 +| | +--- org.codehaus.plexus:plexus-utils:1.5.15 +| | +--- org.apache.maven:maven-artifact:2.2.1 (*) +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-error-diagnostics:2.2.1 +| | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 (*) +| +--- org.apache.maven:maven-settings:2.2.1 (*) +| +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 +| | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 +| | | +--- nekohtml:xercesMinimal:1.9.6.2 +| | | +--- nekohtml:nekohtml:1.9.6.2 +| | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) +| \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) ++--- com.squareup:fest-android:1.0.8 +| +--- org.easytesting:fest-assert-core:2.0M10 +| | \--- org.easytesting:fest-util:1.2.5 +| \--- androidx.legacy:legacy-support-v4:1.0.0 (*) ++--- org.robolectric:robolectric:4.4 +| +--- org.robolectric:annotations:4.4 +| +--- org.robolectric:junit:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:sandbox:4.4 +| | | +--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils:4.4 +| | | | +--- org.robolectric:annotations:4.4 +| | | | +--- org.robolectric:pluginapi:4.4 +| | | | | \--- org.robolectric:annotations:4.4 +| | | | +--- javax.inject:javax.inject:1 +| | | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | | +--- org.robolectric:shadowapi:4.4 +| | | | \--- org.robolectric:annotations:4.4 +| | | +--- org.robolectric:utils-reflector:4.4 +| | | | +--- org.ow2.asm:asm:7.2 +| | | | +--- org.ow2.asm:asm-commons:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 +| | | | | | \--- org.ow2.asm:asm:7.2 +| | | | | \--- org.ow2.asm:asm-analysis:7.2 +| | | | | \--- org.ow2.asm:asm-tree:7.2 (*) +| | | | +--- org.ow2.asm:asm-util:7.2 +| | | | | +--- org.ow2.asm:asm:7.2 +| | | | | +--- org.ow2.asm:asm-tree:7.2 (*) +| | | | | \--- org.ow2.asm:asm-analysis:7.2 (*) +| | | | \--- org.robolectric:utils:4.4 (*) +| | | +--- javax.annotation:javax.annotation-api:1.3.2 +| | | +--- javax.inject:javax.inject:1 +| | | +--- org.ow2.asm:asm:7.2 +| | | +--- org.ow2.asm:asm-commons:7.2 (*) +| | | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | \--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:pluginapi:4.4 (*) +| +--- org.robolectric:resources:4.4 +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- org.robolectric:sandbox:4.4 (*) +| +--- org.robolectric:utils:4.4 (*) +| +--- org.robolectric:utils-reflector:4.4 (*) +| +--- org.robolectric:plugins-maven-dependency-resolver:4.4 +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | \--- com.google.guava:guava:27.0.1-jre -> 30.0-jre (*) +| +--- javax.inject:javax.inject:1 +| +--- javax.annotation:javax.annotation-api:1.3.2 +| +--- org.robolectric:shadows-framework:4.4 +| | +--- org.robolectric:annotations:4.4 +| | +--- org.robolectric:resources:4.4 (*) +| | +--- org.robolectric:pluginapi:4.4 (*) +| | +--- org.robolectric:shadowapi:4.4 (*) +| | +--- org.robolectric:utils:4.4 (*) +| | +--- org.robolectric:utils-reflector:4.4 (*) +| | +--- androidx.test:monitor:1.3.0-rc03 +| | | \--- androidx.annotation:annotation:1.0.0 -> 1.1.0 +| | +--- com.almworks.sqlite4java:sqlite4java:0.282 +| | +--- com.ibm.icu:icu4j:53.1 +| | +--- androidx.annotation:annotation:1.1.0 +| | \--- com.google.auto.value:auto-value-annotations:1.6.2 -> 1.6.5 +| +--- org.bouncycastle:bcprov-jdk15on:1.65 +| \--- androidx.test:monitor:1.3.0-rc03 (*) ++--- org.robolectric:shadows-multidex:4.4 +| \--- org.robolectric:annotations:4.4 ++--- com.ibm.fhir:fhir-model:4.2.3 +| +--- org.antlr:antlr4-runtime:4.7.2 +| +--- net.jcip:jcip-annotations:1.0 +| +--- com.ibm.fhir:fhir-core:4.2.3 +| +--- org.glassfish:jakarta.json:1.1.5 +| \--- jakarta.annotation:jakarta.annotation-api:1.3.5 ++--- org.powermock:powermock-module-junit4:2.0.7 +| +--- org.powermock:powermock-module-junit4-common:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 +| | | +--- org.objenesis:objenesis:3.0.1 -> 3.1 +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- org.powermock:powermock-core:2.0.7 +| | | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | | +--- org.javassist:javassist:3.27.0-GA +| | | +--- net.bytebuddy:byte-buddy:1.9.10 -> 1.10.15 +| | | \--- net.bytebuddy:byte-buddy-agent:1.9.10 -> 1.10.15 +| | +--- junit:junit:4.12 -> 4.13.1 (*) +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-module-junit4-rule:2.0.7 +| +--- org.powermock:powermock-core:2.0.7 (*) +| +--- org.powermock:powermock-module-junit4-common:2.0.7 (*) +| +--- junit:junit:4.12 -> 4.13.1 (*) +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.powermock:powermock-api-mockito2:2.0.7 +| +--- org.powermock:powermock-api-support:2.0.7 +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- org.mockito:mockito-core:2.28.2 -> 3.5.15 +| +--- net.bytebuddy:byte-buddy:1.10.15 +| +--- net.bytebuddy:byte-buddy-agent:1.10.15 +| \--- org.objenesis:objenesis:3.1 ++--- org.powermock:powermock-classloading-xstream:2.0.7 +| +--- org.powermock:powermock-classloading-base:2.0.7 +| | +--- org.powermock:powermock-api-support:2.0.7 (*) +| | +--- org.powermock:powermock-reflect:2.0.7 (*) +| | \--- org.powermock:powermock-core:2.0.7 (*) +| \--- com.thoughtworks.xstream:xstream:1.4.10 +| +--- xmlpull:xmlpull:1.1.3.1 +| \--- xpp3:xpp3_min:1.1.4c ++--- org.mockito:mockito-core:3.5.15 (*) +\--- org.skyscreamer:jsonassert:1.5.0 + \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1 + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +releaseWearBundling - Resolved Configuration for wear app bundling for variant: release +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi - API dependencies for 'test' sources. (n) +No dependencies + +testApk - Apk dependencies for 'test' sources (deprecated: use 'testRuntimeOnly' instead). (n) +No dependencies + +testCompile - Compile dependencies for 'test' sources (deprecated: use 'testImplementation' instead). +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi - API dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugApk - Apk dependencies for 'testDebug' sources (deprecated: use 'testDebugRuntimeOnly' instead). (n) +No dependencies + +testDebugCompile - Compile dependencies for 'testDebug' sources (deprecated: use 'testDebugImplementation' instead). (n) +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugProvided - Provided dependencies for 'testDebug' sources (deprecated: use 'testDebugCompileOnly' instead). (n) +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) ++--- junit:junit:4.13.1 (n) ++--- org.apache.maven:maven-ant-tasks:2.1.3 (n) ++--- com.squareup:fest-android:1.0.8 (n) ++--- org.robolectric:robolectric:4.4 (n) ++--- org.robolectric:shadows-multidex:4.4 (n) ++--- com.ibm.fhir:fhir-model:4.2.3 (n) ++--- org.powermock:powermock-module-junit4:2.0.7 (n) ++--- org.powermock:powermock-module-junit4-rule:2.0.7 (n) ++--- org.powermock:powermock-api-mockito2:2.0.7 (n) ++--- org.powermock:powermock-classloading-xstream:2.0.7 (n) ++--- org.mockito:mockito-core:3.5.15 (n) +\--- org.skyscreamer:jsonassert:1.5.0 (n) + +testProvided - Provided dependencies for 'test' sources (deprecated: use 'testCompileOnly' instead). (n) +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi - API dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseApk - Apk dependencies for 'testRelease' sources (deprecated: use 'testReleaseRuntimeOnly' instead). (n) +No dependencies + +testReleaseCompile - Compile dependencies for 'testRelease' sources (deprecated: use 'testReleaseImplementation' instead). (n) +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseProvided - Provided dependencies for 'testRelease' sources (deprecated: use 'testReleaseCompileOnly' instead). (n) +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - dependency constraint +(*) - dependencies omitted (listed previously) + +(n) - Not resolved (configuration is not meant to be resolved) + +A web-based, searchable dependency report is available by adding the --scan option. + +Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. +Use '--warning-mode all' to show the individual deprecation warnings. +See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings + +BUILD SUCCESSFUL in 2s +1 actionable task: 1 executed diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 29b610b7a..d796cd9a2 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -202,14 +202,14 @@ dependencies { implementation 'com.evernote:android-job:1.4.2' implementation 'com.github.lecho:hellocharts-android:v1.5.8' implementation 'id.zelory:compressor:2.1.0' - implementation('com.google.android.material:material:1.2.1') { + implementation('com.google.android.material:material:1.3.0') { exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'cardview-v7' } implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.2' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' implementation 'org.jeasy:easy-rules-core:3.3.0' @@ -222,7 +222,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.4' testImplementation 'org.robolectric:shadows-multidex:4.4' - testImplementation 'com.ibm.fhir:fhir-model:4.2.3' + //testImplementation 'com.ibm.fhir:fhir-model:4.2.3' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:2.0.7" testImplementation "org.powermock:powermock-module-junit4-rule:2.0.7" diff --git a/opensrp-anc/src/main/assets/config/contact-globals.yml b/opensrp-anc/src/main/assets/config/contact-globals.yml index e6a29cca9..91b669ef4 100644 --- a/opensrp-anc/src/main/assets/config/contact-globals.yml +++ b/opensrp-anc/src/main/assets/config/contact-globals.yml @@ -139,6 +139,7 @@ fields: - "gest_age_openmrs" - "last_contact_date" - "ipv_physical_signs_symptoms" + - "ipv_signs_symptoms" --- form: anc_symptoms_follow_up fields: @@ -162,6 +163,7 @@ fields: - "health_conditions" - "hypertension" - "ipv_physical_signs_symptoms" + - "ipv_signs_symptoms" --- form: anc_test fields: diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 61f8c8565..81248bca7 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -2110,7 +2110,6 @@ { "key": "yes", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry.options.yes.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" @@ -2118,7 +2117,6 @@ { "key": "no", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry.options.no.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity_parent": "" @@ -2145,7 +2143,6 @@ { "key": "referred", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.referred.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_entity_parent": "" @@ -2153,7 +2150,6 @@ { "key": "provider_unavailable", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.provider_unavailable.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_entity_parent": "" @@ -2161,7 +2157,6 @@ { "key": "space_unavailable", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.space_unavailable.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_entity_parent": "" @@ -2169,7 +2164,6 @@ { "key": "confidentiality", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.confidentiality.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_entity_parent": "" @@ -2177,7 +2171,6 @@ { "key": "other", "text": "{{anc_physical_exam.step3.ipv_clinical_enquiry_not_done_reason.options.other.text}}", - "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "", "openmrs_entity_parent": "" @@ -2297,7 +2290,14 @@ "openmrs_entity_id": "", "openmrs_entity_parent": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } } ] }, diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index fce11d359..b723e4db8 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -275,20 +275,20 @@ actions: name: step3_ipv_clinical_enquiry_not_done_reason description: ipv_clinical_enquiry_not_done_reason priority: 1 -condition: "step3_ipv_clinical_enquiry == no" +condition: "step3_ipv_clinical_enquiry == 'no'" actions: - "isRelevant = true" --- name: step3_ipv_subject description: ipv_subject priority: 1 -condition: "step3_ipv_clinical_enquiry == yes" +condition: "step3_ipv_clinical_enquiry == 'yes'" actions: - "isRelevant = true" --- -name: step3_ipv_subject +name: step3_ipv_subject_violence_types description: ipv_subject priority: 1 -condition: "step3_ipv_subject == yes" +condition: "step3_ipv_subject == 'yes'" actions: - "isRelevant = true" \ No newline at end of file From 230c685f498ee31973ed66f10ffc59a89f1602b3 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Thu, 18 Feb 2021 13:38:07 +0300 Subject: [PATCH 095/302] :construction: Update rules and gradle --- build.gradle | 15 ++++++++------- gradle.properties | 2 -- gradle/wrapper/gradle-wrapper.properties | 4 ++-- opensrp-anc/build.gradle | 14 +++++++------- .../assets/anc_population_characteritics.json | 4 ++-- .../rule/physical-exam-relevance-rules.yml | 2 +- .../main/assets/rule/sf_relevance_rules.yml | 2 +- reference-app/build.gradle | 18 ++++++++++++++---- reference-app/src/main/AndroidManifest.xml | 4 +++- 9 files changed, 38 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index 3a6d81575..df13ce172 100644 --- a/build.gradle +++ b/build.gradle @@ -9,18 +9,19 @@ buildscript { maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:4.1.2' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.palantir:jacoco-coverage:0.4.0' classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0" classpath 'com.google.gms:google-services:4.3.4' classpath 'io.fabric.tools:gradle:1.31.2' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } -apply plugin: 'com.palantir.jacoco-full-report' +//apply plugin: 'com.palantir.jacoco-full-report' apply plugin: 'com.github.kt3k.coveralls' configure(allprojects) { project -> @@ -81,13 +82,13 @@ subprojects { } } -task clean(type: Delete) { +/*task clean(type: Delete) { delete rootProject.buildDir -} +}*/ -jacocoFull { - excludeProject ":sample", ":opensrp-client-anc" -} +//jacocoFull { +// excludeProject ":sample", ":opensrp-client-anc" +//} coveralls { jacocoReportPath = "${buildDir}/reports/jacoco/jacocoFullReport/jacocoFullReport.xml" diff --git a/gradle.properties b/gradle.properties index b254e6480..bc645cce3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,7 +26,5 @@ POM_SETTING_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_SETTING_LICENCE_DIST=repo POM_SETTING_DEVELOPER_ID=opensrp POM_SETTING_DEVELOPER_NAME=OpenSRP Onadev -android.enableUnitTestBinaryResources=true -android.enableSeparateAnnotationProcessing=true android.useAndroidX=true android.enableJetifier=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 62a7cca6d..59da85f2f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Nov 21 15:37:28 EAT 2019 +#Wed Feb 17 10:54:24 EAT 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index d796cd9a2..f925ddae4 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -4,11 +4,10 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:4.1.2' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' - classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' } } @@ -57,8 +56,9 @@ android { defaultConfig { minSdkVersion androidMinSdkVersion targetSdkVersion androidTargetSdkVersion - versionCode 1 - versionName "1.5.0" + versionCode Integer.parseInt(project.VERSION_CODE) + versionName project.VERSION_NAME + buildConfigField "int", "VERSION_CODE", "'" + Integer.parseInt(project.VERSION_CODE) + "'" multiDexEnabled true testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' @@ -222,7 +222,7 @@ dependencies { } testImplementation 'org.robolectric:robolectric:4.4' testImplementation 'org.robolectric:shadows-multidex:4.4' - //testImplementation 'com.ibm.fhir:fhir-model:4.2.3' + testImplementation 'com.ibm.fhir:fhir-model:4.2.3' //testImplementation 'org.robolectric:shadows-support-v4:3.4-rc2' testImplementation "org.powermock:powermock-module-junit4:2.0.7" testImplementation "org.powermock:powermock-module-junit4-rule:2.0.7" @@ -251,11 +251,11 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea def debugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug/classes/", excludes: fileFilter) def mainSrc = "$project.projectDir/src/main/java" - sourceDirectories = files([mainSrc]) +/* sourceDirectories = files([mainSrc]) classDirectories = files([debugTree]) executionData = fileTree(dir: project.buildDir, includes: [ 'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec' - ]) + ])*/ } task printTasks { diff --git a/opensrp-anc/src/main/assets/anc_population_characteritics.json b/opensrp-anc/src/main/assets/anc_population_characteritics.json index a9ccd9755..774c98979 100644 --- a/opensrp-anc/src/main/assets/anc_population_characteritics.json +++ b/opensrp-anc/src/main/assets/anc_population_characteritics.json @@ -54,13 +54,13 @@ { "description": "Is the HIV prevalence consistently > 1% in pregnant women attending antenatal clinics?", "label": "Generalized HIV epidemic", - "value": "false", + "value": "true", "key": "pop_hiv_generalized" }, { "description": "HIV is spread rapidly in key populations (men who have sex with men, people in prison or other closed settings, people who inject drugs, sex workers and transgender people), i.e. HIV prevalence is consistently over 5% in at least one defined key population.", "label": "Concentrated HIV epidemic", - "value": "false", + "value": "true", "key": "pop_hiv_concentrated" }, { diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index b723e4db8..a4860f2f7 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -254,7 +254,7 @@ actions: name: step3_ipv_physical_signs_symptoms description: ipv_physical_signs_symptoms priority: 1 -condition: "global_site_ipv_assess == 1" +condition: "global_site_ipv_assess == true" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml index 20d78ee31..7881e6941 100644 --- a/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/sf_relevance_rules.yml @@ -129,7 +129,7 @@ actions: name: step4_ipv_signs_symptoms description: Intimate Partner Violence(IPV) priority: 1 -condition: "global_site_ipv_assess == 1" +condition: "global_site_ipv_assess == true" actions: - "isRelevant = true" --- diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 45c875d68..8cd4a6dcd 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:4.1.2' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' @@ -15,6 +15,7 @@ buildscript { apply plugin: 'com.android.application' apply plugin: 'jacoco' apply plugin: 'org.smartregister.gradle.jarjar' +apply plugin: 'com.google.firebase.crashlytics' jacoco { toolVersion = jacocoVersion @@ -58,6 +59,8 @@ android { buildToolsVersion androidBuildToolsVersion compileOptions { + coreLibraryDesugaringEnabled true + sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } @@ -220,6 +223,7 @@ tasks.withType(Test) { } dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") implementation('org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT@aar') { @@ -295,7 +299,13 @@ dependencies { transitive = true } implementation 'com.flurry.android:analytics:11.6.0@aar' - implementation 'androidx.multidex:multidex:2.0.1' + implementation 'androidx.multidex:multidex:2.0.1'// Import the BoM for the Firebase platform + implementation platform('com.google.firebase:firebase-bom:26.5.0') + + // Declare the dependencies for the Crashlytics and Analytics libraries + // When using the BoM, you don't specify versions in Firebase library dependencies + implementation 'com.google.firebase:firebase-crashlytics' + implementation 'com.google.firebase:firebase-analytics' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' @@ -328,11 +338,11 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea def debugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug/classes/", excludes: fileFilter) def mainSrc = "$project.projectDir/src/main/java" - sourceDirectories = files([mainSrc]) +/* sourceDirectories = files([mainSrc]) classDirectories = files([debugTree]) executionData = fileTree(dir: project.buildDir, includes: [ 'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec' - ]) + ])*/ } diff --git a/reference-app/src/main/AndroidManifest.xml b/reference-app/src/main/AndroidManifest.xml index df378462c..67324125e 100644 --- a/reference-app/src/main/AndroidManifest.xml +++ b/reference-app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -20,7 +21,8 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/AncAppTheme"> + android:theme="@style/AncAppTheme" + tools:replace="android:theme"> Date: Thu, 18 Feb 2021 14:23:35 +0300 Subject: [PATCH 096/302] :construction: Update the translation files on the contact summary --- .../main/assets/config/contact-summary.yml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index b3c1a6edf..c7e12e201 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -101,10 +101,10 @@ fields: --- group: obstetric_history fields: -- template: "{{contact_summary.obstetric_history.gravida}} = {gravida} {{contact_summary.obstetric_history.parity}} = {parity}" +- template: "{{contact_summary.obstetric_history.gravida}} = {gravida}, {{contact_summary.obstetric_history.parity}} = {parity}" relevance: "gravida !='' || parity != ''" -- template: "{{contact_summary.obstetric_history.no_of_pregnancies_lost_ended=}}: {miscarriages_abortions}" +- template: "{{contact_summary.obstetric_history.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" relevance: "miscarriages_abortions > 0" - template: "{{contact_summary.obstetric_history.no_of_live_births}}: {live_births}" @@ -125,7 +125,7 @@ fields: --- group: medical_history fields: -- template: "{{contact_summary.medical_history.allergies}}: {allergies_value}, {}" +- template: "{{contact_summary.medical_history.allergies}}: {allergies_value}" relevance: "!allergies.isEmpty()" - template: "{{contact_summary.medical_history.surgeries}}: {surgeries_value}" @@ -237,7 +237,7 @@ fields: - template: "{{contact_summary.woman_behaviour.condom_counseling_not_done}}: {condom_counsel_notdone_value}" relevance: "condom_counsel == 'not_done'" -- template: "{{contact_summary.woman_behaviour.alcohol_substance_enquiry }}: {alcohol_substance_enquiry_value}" +- template: "{{contact_summary.woman_behaviour.alcohol_substance_enquiry}}: {alcohol_substance_enquiry_value}" relevance: "alcohol_substance_enquiry != ''" - template: "{{contact_summary.woman_behaviour.alcohol_substances_used}}: {alcohol_substance_use_value}, {other_substance_use}" @@ -423,7 +423,7 @@ fields: - template: "{{contact_summary.maternal_exam.pulse_rate}}: {pulse_rate} bpm" relevance: "pulse_rate != ''" -- template: "{contact_summary.maternal_exam.second_pulse_rate}: {pulse_rate_repeat} bpm" +- template: "{{contact_summary.maternal_exam.second_pulse_rate}}: {pulse_rate_repeat} bpm" relevance: "pulse_rate_repeat != ''" - template: "{{contact_summary.maternal_exam.pallor_present}}: {pallor_value}" @@ -435,7 +435,7 @@ fields: - template: "{{contact_summary.maternal_exam.abnormal_specify}}: {respiratory_exam_abnormal_value}" relevance: "!respiratory_exam_abnormal.contains('none') && !respiratory_exam_abnormal.isEmpty()" -- template: "{contact_summary.maternal_exam.oximetry}: {oximetry}%" +- template: "{{contact_summary.maternal_exam.oximetry}}: {oximetry}%" relevance: "oximetry != ''" - template: "{{contact_summary.maternal_exam.cardiac_exam}}: {cardiac_exam_value}" @@ -480,7 +480,7 @@ fields: group: fetal_assessment fields: -- template: "{{contact_summary.maternal_exam.sfh }}: {sfh} cm" +- template: "{{contact_summary.maternal_exam.sfh}}: {sfh} cm" relevance: "sfh != ''" - template: "{{contact_summary.maternal_exam.fetal_movement_felt}}: {fetal_movement}" @@ -555,7 +555,7 @@ fields: - template: "{{contact_summary.partner_hiv_test.partner_hiv_test_status}}: {partner_hiv_status_value}" relevance: "partner_hiv_status != ''" -- template: "contact_summary.partner_hiv_test.partner_hiv_test_date: {hiv_test_partner_date}" +- template: "{{contact_summary.partner_hiv_test.partner_hiv_test_date}}: {hiv_test_partner_date}" relevance: "hiv_test_partner_date != ''" - template: "{{contact_summary.partner_hiv_test.partner_hiv_test_result}}: {hiv_test_partner_result_value}" @@ -747,7 +747,7 @@ fields: - template: "{{contact_summary.blood_haemoglobin_test.rhb_test_result_haemoglobinometer_g_dl}}: {hb_gmeter} g/dl" relevance: "hb_gmeter != ''" -- template: "{{contact_summary.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl }}: {hb_colour} g/dl" +- template: "{{contact_summary.blood_haemoglobin_test.hb_test_result_haemoglobin_colour_scale_g_dl}}: {hb_colour} g/dl" relevance: "hb_colour != ''" - template: "{{contact_summary.blood_haemoglobin_test.hematocrit_ht}}: {ht}" @@ -900,7 +900,7 @@ fields: - template: "{{contact_summary.anaemia_prevention.daily_folic_acid_prescribed}}" relevance: "ifa_high_prev == 'done'" -- template: "{{contact_summary.anaemia_prevention.daily_folic_acid_not_prescribed }}: {ifa_high_prev_notdone_value}" +- template: "{{contact_summary.anaemia_prevention.daily_folic_acid_not_prescribed}}: {ifa_high_prev_notdone_value}" relevance: "ifa_high_prev == 'not_done'" - template: "{{contact_summary.anaemia_prevention.daily_30_60_folic_acid_prescribed}}" From ed3bec0c019142f30df807a54d88a9414673b87d Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 10 Mar 2021 13:03:17 +0300 Subject: [PATCH 097/302] :arrow_up: Update the versions of native forms & core libs --- .gitignore | 1 + build.gradle | 3 +- opensrp-anc/build.gradle | 7 +- .../main/assets/config/contact-globals.yml | 1 + .../main/assets/config/contact-summary.yml | 4 +- .../src/main/assets/ec_client_fields.json | 24 + .../main/assets/json.form/anc_register.json | 2 +- .../sub_form/tests_urine_sub_form.json | 32 +- .../main/assets/rule/ct_relevance_rules.yml | 24 +- .../rule/physical-exam-calculations-rules.yml | 4 +- .../smartregister/anc/library/AncLibrary.java | 2 - .../anc/library/activity/BaseActivity.java | 1 - .../interactor/RegisterInteractor.java | 3 +- .../library/repository/PatientRepository.java | 30 + .../repository/RegisterQueryProvider.java | 2 +- .../anc/library/util/ANCJsonFormUtils.java | 4 +- .../anc/library/util/ConstantsUtils.java | 2 +- .../anc/library/util/DBConstantsUtils.java | 1 + .../resources/anc_physical_exam_pt.properties | 16 +- .../resources/tests_urine_sub_form.properties | 32 +- .../tests_urine_sub_form_pt.properties | 32 +- reference-app/.gitignore | 3 +- reference-app/build.gradle | 9 +- sample/.gitignore | 3 +- sample/google-services.json | 591 ++++++++++++++++++ 25 files changed, 741 insertions(+), 92 deletions(-) create mode 100644 sample/google-services.json diff --git a/.gitignore b/.gitignore index 98ba27c7c..c3f853216 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ opensrp-anc/jacoco.exec jacoco.exec ~ /build/ +/google-services.json diff --git a/build.gradle b/build.gradle index df13ce172..92e92a044 100644 --- a/build.gradle +++ b/build.gradle @@ -13,9 +13,10 @@ buildscript { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' classpath 'com.palantir:jacoco-coverage:0.4.0' classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0" - classpath 'com.google.gms:google-services:4.3.4' + classpath 'com.google.gms:google-services:4.3.5' classpath 'io.fabric.tools:gradle:1.31.2' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0' + classpath 'com.google.firebase:perf-plugin:1.3.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index f925ddae4..8bff42c38 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -6,8 +6,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.1.2' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' - classpath 'com.google.gms:google-services:4.3.4' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' + classpath 'com.google.gms:google-services:4.3.5' } } @@ -152,7 +151,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.6-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -163,7 +162,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.2.1300-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/config/contact-globals.yml b/opensrp-anc/src/main/assets/config/contact-globals.yml index 91b669ef4..e1e88eb52 100644 --- a/opensrp-anc/src/main/assets/config/contact-globals.yml +++ b/opensrp-anc/src/main/assets/config/contact-globals.yml @@ -111,6 +111,7 @@ fields: - "hepb2_date_done" - "deworm" - "flu_date" + - "ipv_subject" --- form: anc_profile fields: diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index c7e12e201..318bf7a80 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -59,7 +59,7 @@ fields: - template: "{{contact_summary.reason_for_visit.reason_for_coming_to_facility}}: {contact_reason_value}" relevance: "contact_reason_value != ''" -- template: "{{contact_summary.reason_for_visit.health_complaint }}: {specific_complaint_value}" +- template: "{{contact_summary.reason_for_visit.health_complaint}}: {specific_complaint_value}" relevance: "specific_complaint_value != ''" --- @@ -294,7 +294,7 @@ fields: - template: "{{contact_summary.physiological_symptoms.no_pharma_legs_cramps_counseling_not_done}}: {leg_cramp_counsel_notdone_value}" relevance: "leg_cramp_counsel == 'not_done'" -- template: "{{contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_done }}" +- template: "{{contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_done}}" relevance: "leg_cramp_not_relieved_counsel == 'done'" - template: "{{contact_summary.physiological_symptoms.calcium_legs_cramps_counseling_not_done}}: {leg_cramp_not_relieved_counsel_notdone_value}" diff --git a/opensrp-anc/src/main/assets/ec_client_fields.json b/opensrp-anc/src/main/assets/ec_client_fields.json index 9c17fcdef..2cd148524 100644 --- a/opensrp-anc/src/main/assets/ec_client_fields.json +++ b/opensrp-anc/src/main/assets/ec_client_fields.json @@ -42,6 +42,30 @@ "concept": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } }, + { + "column_name": "cohabitants", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "alt_name", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "alt_phone_number", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, { "column_name": "edd", "type": "Client", diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 4d7810e9c..eaf55fdd4 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -354,7 +354,7 @@ "key": "cohabitants", "openmrs_entity_parent": "", "openmrs_entity": "concept", - "openmrs_entity_id": "", + "openmrs_entity_id": "159635AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "label":"{{anc_register.step1.cohabitants.label}}", "label_info_text": "{{anc_register.step1.cohabitants.label_info_text}}", "type": "check_box", diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json index da7c716df..d52cb4894 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json @@ -301,28 +301,28 @@ }, { "key": "+", - "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.+.text}}", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.plus_one.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.plus_two.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.+++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.plus_three.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.++++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.plus_four.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -358,28 +358,28 @@ }, { "key": "+", - "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.+.text}}", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.+++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.++++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -415,28 +415,28 @@ }, { "key": "+", - "text": "{{tests_urine_sub_form.step1.urine_protein.options.+.text}}", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_one.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "{{tests_urine_sub_form.step1.urine_protein.options.++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_two.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "{{tests_urine_sub_form.step1.urine_protein.options.+++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_three.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "{{tests_urine_sub_form.step1.urine_protein.options.++++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_four.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -472,28 +472,28 @@ }, { "key": "+", - "text": "{{tests_urine_sub_form.step1.urine_glucose.options.+.text}}", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_one.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++", - "text": "{{tests_urine_sub_form.step1.urine_glucose.options.++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_two.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "+++", - "text": "{{tests_urine_sub_form.step1.urine_glucose.options.+++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_three.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "++++", - "text": "{{tests_urine_sub_form.step1.urine_glucose.options.++++.text}}", + "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_four.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml index 308c7032c..1e4ea9006 100644 --- a/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml +++ b/opensrp-anc/src/main/assets/rule/ct_relevance_rules.yml @@ -562,48 +562,48 @@ actions: name: step8_phys_violence_worse description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: - "isRelevant = true" --- name: step8_used_weapon description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: -- "isRelevant = true" + - "isRelevant = true" --- name: step8_strangle description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: -- "isRelevant = true" + - "isRelevant = true" --- name: step8_beaten description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: -- "isRelevant = true" + - "isRelevant = true" --- name: step8_jealous description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: -- "isRelevant = true" + - "isRelevant = true" --- name: step8_believe_kill description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'safety_assessment' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('safety_assessment')" actions: -- "isRelevant = true" + - "isRelevant = true" --- name: step8_ipv_referrals description: ipv_care priority: 1 -condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care == 'referred' " +condition: "step8_ipv_care != null && !step8_ipv_care.isEmpty() && step8_ipv_care.contains('referred')" actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml index a92655e4b..6286e605f 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml @@ -121,6 +121,6 @@ actions: name: step3_ipv_suspect description: ipv_suspect priority: 1 -condition: "(!global_ipv_signs_symptoms.isEmpty() && !global_ipv_signs_symptoms.contains('none')) || (step3_ipv_physical_signs_symptoms != null && !step3_ipv_physical_signs_symptoms.isEmpty() && !step3_ipv_physical_signs_symptoms.contains('none'))" +condition: "(global_ipv_signs_symptoms != null && global_ipv_signs_symptoms != '' && !global_ipv_signs_symptoms.contains('none')) || (step3_ipv_physical_signs_symptoms != null && step3_ipv_physical_signs_symptoms != '' && !step3_ipv_physical_signs_symptoms.contains('none'))" actions: - - 'calculation = 1' \ No newline at end of file + - "calculation = 1" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index d5869da5c..da3782ffd 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -288,9 +288,7 @@ private void populateGlobalSettingsCore(Setting setting) { if (settingObject != null) { JSONArray settingArray = settingObject.getJSONArray(AllConstants.SETTINGS); if (settingArray != null) { - for (int i = 0; i < settingArray.length(); i++) { - JSONObject jsonObject = settingArray.getJSONObject(i); Boolean value = jsonObject.optBoolean(JsonFormConstants.VALUE); JSONObject nullObject = null; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java index 9bc5b9f11..ef72630a2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java @@ -93,7 +93,6 @@ public void goToSiteCharacteristicsExitPage() { @Override public void launchSiteCharacteristicsSettingsFormForEdit(Map characteristics) { - String formMetadata = ANCJsonFormUtils.getAutoPopulatedSiteCharacteristicsEditFormString(this, characteristics); try { ANCJsonFormUtils.startFormForEdit(this, ANCJsonFormUtils.REQUEST_CODE_GET_JSON, formMetadata); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index 2bfcd5c6a..334741c6e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -13,6 +13,7 @@ import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.event.PatientRemovedEvent; import org.smartregister.anc.library.helper.ECSyncHelper; +import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.AppExecutors; @@ -90,12 +91,12 @@ public void saveRegistration(final Pair pair, final String jsonSt createPartialPreviousEvent(pair, baseEntityId); } + PatientRepository.updateCohabitants(jsonString, baseEntityId); appExecutors.mainThread().execute(() -> { callBack.setBaseEntityRegister(baseEntityId); callBack.onRegistrationSaved(isEditMode); }); }; - appExecutors.diskIO().execute(runnable); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index 672087617..78dcf6935 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -8,8 +8,13 @@ import net.sqlcipher.database.SQLiteDatabase; import org.apache.commons.lang3.StringUtils; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.domain.WomanDetail; +import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.Utils; import org.smartregister.repository.BaseRepository; @@ -134,6 +139,31 @@ public static void updateContactVisitDetails(WomanDetail patientDetail, boolean updateLastInteractedWith(patientDetail.getBaseEntityId()); } + /** + * This is a bad hack. Needs to be changed later + * + * @param form + * @param baseEntityId + */ + public static void updateCohabitants(String form, String baseEntityId) { + try { + JSONObject jsonObject = new JSONObject(form); + JSONArray fields = ANCJsonFormUtils.getSingleStepFormfields(jsonObject); + JSONObject cohabitants = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.COHABITANTS); + + String value = cohabitants.optString(ConstantsUtils.KeyUtils.VALUE, "[]"); + + ContentValues contentValues = new ContentValues(); + contentValues.put(DBConstantsUtils.KeyUtils.COHABITANTS, value); + + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + + updateLastInteractedWith(baseEntityId); + } catch (JSONException e) { + Timber.e(e); + } + } + public static void updateEDDDate(String baseEntityId, String edd) { ContentValues contentValues = new ContentValues(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java index cf9aae94f..fc7216b13 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java @@ -59,7 +59,7 @@ DBConstantsUtils.KeyUtils.DOB_UNKNOWN, getDetailsTable() + "." + DBConstantsUtil getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.VISIT_START_DATE, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, - getDemographicTable() + "." + DBConstantsUtils.KeyUtils.RELATIONAL_ID}; + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.COHABITANTS, getDemographicTable() + "." + DBConstantsUtils.KeyUtils.RELATIONAL_ID}; } public String mainRegisterQuery() { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index aba26effb..f6b244848 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -558,8 +558,7 @@ protected static void processPopulatableFields(Map womanClient, } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.ANC_ID)) { jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(DBConstantsUtils.KeyUtils.ANC_ID).replace("-", "")); - - } else if (womanClient.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { + } else if (womanClient.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(jsonObject.getString(ANCJsonFormUtils.KEY))); } else { @@ -628,7 +627,6 @@ public static void startFormForEdit(Activity context, int jsonFormActivityReques intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); Timber.d("form is %s", metaData); context.startActivityForResult(intent, jsonFormActivityRequestCode); - } public static Triple saveRemovedFromANCRegister(AllSharedPreferences allSharedPreferences, String jsonString, String providerId) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index 457f1c2ed..4f535eca4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -167,12 +167,12 @@ public static class PrefKeyUtils { public static final class KeyUtils { public static final String KEY = "key"; public static final String VALUE = "value"; + public static final String TYPE = "type"; public static final String TREE = "tree"; public static final String DEFAULT = "default"; public static final String PHOTO = "photo"; public static final String AGE_ENTERED = "age_entered"; public static final String STEP = "step"; - public static final String TYPE = "type"; public static final String FORM = "form"; public static final String CONTACT_NO = "contact_no"; public static final String LAST_CONTACT_DATE = "last_contact_date"; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java index f4807e0d3..ff3303532 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java @@ -44,5 +44,6 @@ public static final class KeyUtils { public static final String RELATIONAL_ID = "relationalid"; public static final String VISIT_START_DATE = "visit_start_date"; public static final String IS_FIRST_VISIT = "is_first_visit"; + public static final String COHABITANTS = "cohabitants"; } } diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties index bd4b4b956..19f09db87 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties @@ -15,7 +15,7 @@ anc_physical_exam.step4.fetal_presentation.label = Apresentação fetal anc_physical_exam.step3.toaster25.text = Exame pélvico anormal. Considere avaliação em local de maior complexidade, tratamento sindrômico específico ou encaminhamento. anc_physical_exam.step2.toaster11.toaster_info_text = A Mulher tem hipertensão. Se ela apresentar um sintoma de pré-eclâmpsia grave, encaminhe urgentemente o hospital para investigação e tratamento. anc_physical_exam.step3.pallor.options.yes.text = Sim -anc_physical_exam.step2.urine_protein.options.++++.text = ++++ +anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ anc_physical_exam.step3.cardiac_exam.label = Exame cardiológico anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Nova pressão sistólica é necessária anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Segunda frequência cardíaca fetal (bpm) @@ -32,7 +32,7 @@ anc_physical_exam.step3.breast_exam.options.1.text = Não realizado anc_physical_exam.step4.toaster27.text = Frrequência cardíaca fetal não observada. Encaminhe ao hospital anc_physical_exam.step1.toaster1.text = Ãndice de massa corporal (IMC) = {bmi}\n\nA mulher está {weight_cat}. O ganho de peso durante a gestaçao deve ser de {exp_weight_gain} kg. anc_physical_exam.step3.body_temp_repeat_label.text = Segunda temperatura (ºC) -anc_physical_exam.step2.urine_protein.options.+.text = + +anc_physical_exam.step2.urine_protein.options.plus_one.text = + anc_physical_exam.step4.sfh.v_required.err = Digite a altura uterina anc_physical_exam.step2.toaster9.toaster_info_text = A mulher tem hipertensão - PAS de 140 mmHg ou maior e/ou PAD de 90 mmHg ou maior e sem proteinúria.\n\nAconselhamento:\n- Aconselhar a redução de trabalho e repouso\n- Orientar sobre os sinais de perigo\n- Reavaliar no próximo contato ou em 1 semana se no oitavo mês de gestação\n- Se a hipertensão persiste após 1 semana ou no próximo contato, encaminhar para o hospital ou discutir os caso com o médico, se disponível. anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Visão embaçada @@ -48,7 +48,7 @@ anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Impossibili anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = É necessário informar a segunda medida da PA diastólica anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Outro anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = Número de fetos desconhecido -anc_physical_exam.step3.oedema_severity.options.+++.text = +++ +anc_physical_exam.step3.oedema_severity.options.plus_three.text = +++ anc_physical_exam.step4.fetal_heartbeat.label = Batimento cardíaco fetal presente? anc_physical_exam.step1.toaster2.text = Ganho de peso médio por semana desde o último contato: {weight_gain} kg\n\nGanho de peso total na gestação até agora; {tot_weight_gain} kg anc_physical_exam.step2.toaster7.text = Medir a PA novamente após 10-15 minutos de repouso. @@ -60,7 +60,7 @@ anc_physical_exam.step3.pulse_rate_repeat_label.text = Segunda frequência card anc_physical_exam.step3.toaster18.toaster_info_text = Procedimento:\n\n- Checar se há febre, sinais de infecção, problemas respiratórios e arritmia\n\n- Encaminhar para avaliação adicional anc_physical_exam.step3.oedema.options.yes.text = Sim anc_physical_exam.step1.title = Altura e Peso -anc_physical_exam.step2.urine_protein.options.++.text = ++ +anc_physical_exam.step2.urine_protein.options.plus_two.text = ++ anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Sim anc_physical_exam.step4.toaster30.text = Aconselhamento sobre risco de pré-eclâmpsia anc_physical_exam.step3.pelvic_exam.label = Exame pélvico (visual) @@ -91,7 +91,7 @@ anc_physical_exam.step2.bp_systolic_repeat_label.text = PAS após 10-15 minutos anc_physical_exam.step3.oedema.label = Edema presente? anc_physical_exam.step3.toaster20.text = A mulher tem dificuldade respiratória. Referir com urgência ao hospital. anc_physical_exam.step2.toaster9.text = Diagnóstico de hipertensão! Faça aconselhamento. -anc_physical_exam.step3.oedema_severity.options.++++.text = ++++ +anc_physical_exam.step3.oedema_severity.options.plus_four.text = ++++ anc_physical_exam.step3.toaster17.text = Frequência cardíaca anormal. Medir novamente após 10 minutos de repouso. anc_physical_exam.step1.toaster5.text = Aconselhamento sobre aumento do consumo diário de calorias e proteínas anc_physical_exam.step2.bp_systolic.v_numeric.err = @@ -111,9 +111,9 @@ anc_physical_exam.step2.symp_sev_preeclampsia.label = Algum sintoma de pré-ecl anc_physical_exam.step3.toaster16.text = A mulher tem febre. Faça o tratamento e refira com urgência ao hospital. anc_physical_exam.step3.toaster21.text = A mulher tem uma oximetria baixa. Referir com urgência ao hospital. anc_physical_exam.step1.pregest_weight.v_required.err = É necessário o peso pré-gestacional. -anc_physical_exam.step2.urine_protein.options.+++.text = +++ +anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ anc_physical_exam.step3.respiratory_exam.options.3.text = Anormal -anc_physical_exam.step3.oedema_severity.options.++.text = ++ +anc_physical_exam.step3.oedema_severity.options.plus_two.text = ++ anc_physical_exam.step1.pregest_weight_label.text = Peso pré-gestacional (kg) anc_physical_exam.step3.breast_exam.label = Exame das mamas anc_physical_exam.step3.toaster19.text = Diagnóstico de anemia! Recomenda-se o teste de hemoglobina (Hb) @@ -148,7 +148,7 @@ anc_physical_exam.step4.fetal_movement.options.no.text = Não anc_physical_exam.step3.abdominal_exam.options.3.text = Anormal anc_physical_exam.step1.toaster3.text = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Cefaléia grave -anc_physical_exam.step3.oedema_severity.options.+.text = + +anc_physical_exam.step3.oedema_severity.options.plus_one.text = + anc_physical_exam.step4.toaster28.text = Batimentos cardíacos fetais fora da variação normal (110-160). Favor manter a mulher deitada sobre seu lado esquerdo por 15 minutos e verifique novamente. anc_physical_exam.step3.pulse_rate.v_numeric.err = anc_physical_exam.step3.pulse_rate.v_required.err = Digite a frequência cardíaca diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form.properties index a1678a209..a93212515 100644 --- a/opensrp-anc/src/main/resources/tests_urine_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_urine_sub_form.properties @@ -2,17 +2,17 @@ tests_urine_sub_form.step1.urine_test_notdone_other.hint = Specify tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Midstream urine culture (recommended) tests_urine_sub_form.step1.urine_test_type.label = Urine test type tests_urine_sub_form.step1.urine_glucose.v_required.err = Field urine glucose is required -tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ -tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_three.text = +++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Urine dipstick results - leukocytes is required -tests_urine_sub_form.step1.urine_nitrites.options.+.text = + +tests_urine_sub_form.step1.urine_nitrites.options.plus_one.text = + tests_urine_sub_form.step1.urine_test_type.v_required.err = Urine test type is required tests_urine_sub_form.step1.urine_culture.label = Midstream urine culture (recommended) tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positive tests_urine_sub_form.step1.urine_glucose.label = Urine dipstick result - glucose tests_urine_sub_form.step1.urine_protein.label = Urine dipstick result - protein tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Urine dipstick -tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ +tests_urine_sub_form.step1.urine_glucose.options.plus_three.text = +++ tests_urine_sub_form.step1.urine_culture.options.negative.text = Negative tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = A woman is considered to have ASB if she has one of the following test results:\n\n- Positive culture (> 100,000 bacteria/mL)\n- Gram-staining positive\n- Urine dipstick test positive (nitrites or leukocytes)\n\nSeven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight. tests_urine_sub_form.step1.urine_gram_stain.label = Midstream urine Gram-staining @@ -23,39 +23,39 @@ tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Gestational dia tests_urine_sub_form.step1.urine_test_date.v_required.err = Select the date of the urine test.. tests_urine_sub_form.step1.urine_nitrites.label = Urine dipstick result - nitrites tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Other (specify) -tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ -tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_protein.options.++.text = ++ +tests_urine_sub_form.step1.urine_protein.options.plus_three.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.options.none.text = None tests_urine_sub_form.step1.gbs_agent_note.text = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling -tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text = +++ tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negative tests_urine_sub_form.step1.urine_protein.v_required.err = Field urine protein is required tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Midstream urine Gram-staining -tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + +tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text = + tests_urine_sub_form.step1.urine_test_status.v_required.err = Urine test status is required tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Stock out tests_urine_sub_form.step1.urine_test_status.label = Urine test tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling tests_urine_sub_form.step1.gdm_risk_toaster.text = Gestational diabetes mellitus (GDM) risk counseling -tests_urine_sub_form.step1.urine_protein.options.+.text = + +tests_urine_sub_form.step1.urine_protein.options.plus_one.text = + tests_urine_sub_form.step1.urine_protein.options.none.text = None tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) tests_urine_sub_form.step1.urine_test_notdone.label = Reason -tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_four.text = ++++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.label = Urine dipstick result - leukocytes tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including:\n\n - Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy tests_urine_sub_form.step1.urine_nitrites.options.none.text = None -tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_glucose.options.plus_four.text = ++++ tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Pregnant women with Group B Streptococcus (GBS) colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. tests_urine_sub_form.step1.urine_glucose.options.none.text = None -tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.plus_four.text = ++++ tests_urine_sub_form.step1.urine_nitrites.v_required.err = Urine dipstick results is required tests_urine_sub_form.step1.urine_test_date.hint = Urine test date tests_urine_sub_form.step1.asb_positive_toaster.text = Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positive - any agent tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Midstream urine Gram-staining is required -tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ +tests_urine_sub_form.step1.urine_glucose.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Reason for urine test not done is required -tests_urine_sub_form.step1.urine_glucose.options.+.text = + +tests_urine_sub_form.step1.urine_glucose.options.plus_one.text = + diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties index 376a55a31..5ea0cc1bf 100644 --- a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties +++ b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties @@ -2,17 +2,17 @@ tests_urine_sub_form.step1.urine_test_notdone_other.hint = Especifique tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Cultura de jato médio de urina (recomendado) tests_urine_sub_form.step1.urine_test_type.label = Tipo de exame de urina tests_urine_sub_form.step1.urine_glucose.v_required.err = Campo de glicose na urina é obrigatório -tests_urine_sub_form.step1.urine_nitrites.options.+++.text = +++ -tests_urine_sub_form.step1.urine_nitrites.options.++.text = ++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_three.text = +++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Registrar o resultado de fita urinária - leucócitos -tests_urine_sub_form.step1.urine_nitrites.options.+.text = + +tests_urine_sub_form.step1.urine_nitrites.options.plus_one.text = + tests_urine_sub_form.step1.urine_test_type.v_required.err = Tipo de exame urinário tests_urine_sub_form.step1.urine_culture.label = Cultura de jato médio de urina (recomendado) tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positivo tests_urine_sub_form.step1.urine_glucose.label = Resultado de fita urinária - glicose tests_urine_sub_form.step1.urine_protein.label = Resultado de fita urinária - proteína tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Fita Urinária -tests_urine_sub_form.step1.urine_glucose.options.+++.text = +++ +tests_urine_sub_form.step1.urine_glucose.options.plus_three.text = +++ tests_urine_sub_form.step1.urine_culture.options.negative.text = Negativo tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = Uma mulher é considerada com Bacteriúria Assintomática se tiver um dos seguintes resultados:\n\n- Urocultura positiva (> 100,000 bactérias/mL)\n- Coloração de Gram positiva\n- Fita urinária positiva (nitritos ou leucócitos)\n\nSetes dias de antibiótico é recomendado para todas mulheres com bacteriúria assintomática para prevenir bacteriúria persistente, parto prematuro ou baixo peso. tests_urine_sub_form.step1.urine_gram_stain.label = Coloração de Gram de jato médio de urina positiva @@ -23,39 +23,39 @@ tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Aconselhamento tests_urine_sub_form.step1.urine_test_date.v_required.err = Selecione a data do exame de urina. tests_urine_sub_form.step1.urine_nitrites.label = Resultado de fita urinária - nitrito tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Outro (Especifique) -tests_urine_sub_form.step1.urine_protein.options.+++.text = +++ -tests_urine_sub_form.step1.urine_leukocytes.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_protein.options.++.text = ++ +tests_urine_sub_form.step1.urine_protein.options.plus_three.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.options.none.text = Nenhum tests_urine_sub_form.step1.gbs_agent_note.text = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal por Estreptococo do Grupo B (GBS) -tests_urine_sub_form.step1.urine_leukocytes.options.+++.text = +++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text = +++ tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negativo tests_urine_sub_form.step1.urine_protein.v_required.err = Campo de proteinúria é obrigatório tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Coloração de Gram de jato médio de urina -tests_urine_sub_form.step1.urine_leukocytes.options.+.text = + +tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text = + tests_urine_sub_form.step1.urine_test_status.v_required.err = Status do exame de urina é obrigatório tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Sem estoque tests_urine_sub_form.step1.urine_test_status.label = Exame de urina tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal precoce por Estreptococo do Grupo B (GBS) tests_urine_sub_form.step1.gdm_risk_toaster.text = Aconselhamento sobre risco de Diabetes mellitus gestacional (DMG) -tests_urine_sub_form.step1.urine_protein.options.+.text = + +tests_urine_sub_form.step1.urine_protein.options.plus_one.text = + tests_urine_sub_form.step1.urine_protein.options.none.text = Nenhum tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) tests_urine_sub_form.step1.urine_test_notdone.label = Motivo -tests_urine_sub_form.step1.urine_nitrites.options.++++.text = ++++ -tests_urine_sub_form.step1.urine_leukocytes.options.++.text = ++ +tests_urine_sub_form.step1.urine_nitrites.options.plus_four.text = ++++ +tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_leukocytes.label = Resultado de fita urinária - leucócitos tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez tests_urine_sub_form.step1.urine_nitrites.options.none.text = Nenhum -tests_urine_sub_form.step1.urine_glucose.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_glucose.options.plus_four.text = ++++ tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Gestante com colonização por Estreptococo do Grupo B (GBS) deve receber antibiótico intraparto para prevenção de infecção neonatal precoce por GBS. tests_urine_sub_form.step1.urine_glucose.options.none.text = Nenhum -tests_urine_sub_form.step1.urine_protein.options.++++.text = ++++ +tests_urine_sub_form.step1.urine_protein.options.plus_four.text = ++++ tests_urine_sub_form.step1.urine_nitrites.v_required.err = Resultado de exame de fita urinária é obrigatório tests_urine_sub_form.step1.urine_test_date.hint = Data do exame de urina tests_urine_sub_form.step1.asb_positive_toaster.text = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positivo - qualquer agente tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Coloração de Gram de urina é obrigatório -tests_urine_sub_form.step1.urine_glucose.options.++.text = ++ +tests_urine_sub_form.step1.urine_glucose.options.plus_two.text = ++ tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Informar razão por não ter realizado exame de urina -tests_urine_sub_form.step1.urine_glucose.options.+.text = + +tests_urine_sub_form.step1.urine_glucose.options.plus_one.text = + diff --git a/reference-app/.gitignore b/reference-app/.gitignore index 956c004dc..e835ab2d9 100644 --- a/reference-app/.gitignore +++ b/reference-app/.gitignore @@ -1,2 +1,3 @@ /build -/release \ No newline at end of file +/release +/google-services.json diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8cd4a6dcd..095a80446 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -6,7 +6,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.1.2' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' - classpath 'com.google.gms:google-services:4.3.4' + classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' } @@ -14,8 +14,10 @@ buildscript { apply plugin: 'com.android.application' apply plugin: 'jacoco' +apply plugin: 'com.google.gms.google-services' apply plugin: 'org.smartregister.gradle.jarjar' apply plugin: 'com.google.firebase.crashlytics' +apply plugin: 'com.google.firebase.firebase-perf' jacoco { toolVersion = jacocoVersion @@ -226,7 +228,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.4-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.6-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -238,7 +240,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.2.4000-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.2.1300-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' @@ -306,6 +308,7 @@ dependencies { // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-analytics' + implementation 'com.google.firebase:firebase-perf' testImplementation 'junit:junit:4.13.1' testImplementation 'org.apache.maven:maven-ant-tasks:2.1.3' diff --git a/sample/.gitignore b/sample/.gitignore index 17bf1557a..e1df6a038 100644 --- a/sample/.gitignore +++ b/sample/.gitignore @@ -1,3 +1,4 @@ /build /build/ -/release/ \ No newline at end of file +/release/ +!/google-services.json diff --git a/sample/google-services.json b/sample/google-services.json new file mode 100644 index 000000000..06eab3649 --- /dev/null +++ b/sample/google-services.json @@ -0,0 +1,591 @@ +{ + "project_info": { + "project_number": "660700053041", + "firebase_url": "https://opensrp-production.firebaseio.com", + "project_id": "opensrp-production", + "storage_bucket": "opensrp-production.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:97e438dcfbb4acd2335f10", + "android_client_info": { + "package_name": "com.vijay.jsonwizard" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:724674edc53115c9335f10", + "android_client_info": { + "package_name": "org.smartregister.anc" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:10765ec82bfa2bca335f10", + "android_client_info": { + "package_name": "org.smartregister.chw" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:061090ac05eaac00335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.ba" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:21c6800c1c7ceaf6335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.chad" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:ab83358f3ed187ee335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.drc" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:99a5768b17d332e9335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.guinea" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:9510a3c9bf2de0d6335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.hf" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:719b69abb1fe5ca2335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.lmh" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:92db3a929633cfc4335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.miecd" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:9f0b81b71a73eef0335f10", + "android_client_info": { + "package_name": "org.smartregister.chw.togo" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:56e5416450458bd7335f10", + "android_client_info": { + "package_name": "org.smartregister.eusm" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:3ca8b0c59e657a7f335f10", + "android_client_info": { + "package_name": "org.smartregister.giz" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:9466bbb628ffcd1d335f10", + "android_client_info": { + "package_name": "org.smartregister.goldsmith" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:ecf24af9d9bc830f335f10", + "android_client_info": { + "package_name": "org.smartregister.kip" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:0c2277c216b7bf3d335f10", + "android_client_info": { + "package_name": "org.smartregister.nativeform" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:90cb7e892b4fd2c7335f10", + "android_client_info": { + "package_name": "org.smartregister.path" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:3e4ab33eba6c035d335f10", + "android_client_info": { + "package_name": "org.smartregister.reveal" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:6190224faaf9083e335f10", + "android_client_info": { + "package_name": "org.smartregister.sample.fp" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:660700053041:android:069a3b159a5afcac", + "android_client_info": { + "package_name": "org.smartregister.wellnesspass" + } + }, + "oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCbfvDM4FK-vYBQHX_vJV7PzKNH9hcloGA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "660700053041-2jjgtgu5kpbv9gui1en1058vqapjt84u.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} From a0e20328e9326d4e07f985eaad48802a8282f1b2 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Mar 2021 09:20:38 +0300 Subject: [PATCH 098/302] :construction: Fixing form changes --- .../assets/json.form/anc_physical_exam.json | 4 ++-- .../sub_form/tests_hepatitis_b_sub_form.json | 1 + .../test_checkbox_filter_json_form.json | 2 +- .../rule/physical-exam-calculations-rules.yml | 2 +- .../library/activity/MainContactActivity.java | 18 +++++++++--------- .../anc_counselling_treatment.properties | 2 +- .../resources/anc_physical_exam.properties | 2 +- .../resources/anc_physical_exam_pt.properties | 2 +- .../src/main/resources/anc_profile.properties | 2 +- .../main/resources/contact_summary.properties | 8 ++++---- .../tests_hepatitis_b_sub_form.properties | 1 + .../anc/library/activity/BaseUnitTest.java | 2 +- .../activity/MainContactActivityTest.java | 4 ++-- 13 files changed, 26 insertions(+), 24 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 81248bca7..55c9f360e 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -851,8 +851,8 @@ "openmrs_entity_parent": "" }, { - "key": "blurred_vision", - "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text}}", + "key": "visual_disturbance", + "text": "{{anc_physical_exam.step2.symp_sev_preeclampsia.options.visual_disturbance.text}}", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json index af56458c8..5684adf54 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json @@ -7,6 +7,7 @@ "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "label": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.label}}", "label_text_style": "bold", + "label_info_text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.label_info_text}}", "text_color": "#000000", "type": "extended_radio_button", "options": [ diff --git a/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json b/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json index ede0712fa..394876ebf 100644 --- a/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json +++ b/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json @@ -1017,7 +1017,7 @@ "openmrs_entity_id": "139084" }, { - "key": "blurred_vision", + "key": "visual_disturbance", "text": "Blurred vision", "value": false, "openmrs_entity": "Blurred vision", diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml index 6286e605f..64d685de8 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-calculations-rules.yml @@ -121,6 +121,6 @@ actions: name: step3_ipv_suspect description: ipv_suspect priority: 1 -condition: "(global_ipv_signs_symptoms != null && global_ipv_signs_symptoms != '' && !global_ipv_signs_symptoms.contains('none')) || (step3_ipv_physical_signs_symptoms != null && step3_ipv_physical_signs_symptoms != '' && !step3_ipv_physical_signs_symptoms.contains('none'))" +condition: "(global_ipv_signs_symptoms != null && !global_ipv_signs_symptoms.isEmpty() && !global_ipv_signs_symptoms.contains('none')) || (step3_ipv_physical_signs_symptoms != null && !step3_ipv_physical_signs_symptoms.isEmpty() && !step3_ipv_physical_signs_symptoms.contains('none'))" actions: - "calculation = 1" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index f26c3fbec..cc2775292 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -45,19 +45,19 @@ public class MainContactActivity extends BaseContactActivity implements ContactContract.View { private TextView patientNameView; - private Map requiredFieldsMap = new HashMap<>(); - private Map eventToFileMap = new HashMap<>(); - private Yaml yaml = new Yaml(); - private Map> formGlobalKeys = new HashMap<>(); - private Map formGlobalValues = new HashMap<>(); - private Set globalKeys = new HashSet<>(); - private Set defaultValueFields = new HashSet<>(); + private final Map requiredFieldsMap = new HashMap<>(); + private final Map eventToFileMap = new HashMap<>(); + private final Yaml yaml = new Yaml(); + private final Map> formGlobalKeys = new HashMap<>(); + private final Map formGlobalValues = new HashMap<>(); + private final Set globalKeys = new HashSet<>(); + private final Set defaultValueFields = new HashSet<>(); private List globalValueFields = new ArrayList<>(); private List editableFields = new ArrayList<>(); private String baseEntityId; private String womanAge = ""; - private List invisibleRequiredFields = new ArrayList<>(); - private String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, + private final List invisibleRequiredFields = new ArrayList<>(); + private final String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT, ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS}; private String formInvalidFields = null; diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties index fd0d9bd00..d7a55845d 100644 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties @@ -110,7 +110,7 @@ anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Please se anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Done anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Other (specify) anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm -anc_counselling_treatment.step11.tt1_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1 - 4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_counselling_treatment.step11.tt1_date.label_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = Referred instead anc_counselling_treatment.step9.calcium_supp.label_info_text = Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Reason diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index 0968d2ecc..b7e1d45fc 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -32,7 +32,7 @@ anc_physical_exam.step1.toaster1.text = Body mass index (BMI) = {bmi}\n\nWoman i anc_physical_exam.step3.body_temp_repeat_label.text = Second temperature (ºC) anc_physical_exam.step4.sfh.v_required.err = Please enter the SFH anc_physical_exam.step2.toaster9.toaster_info_text = Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\n\nCounseling:\n- Advise to reduce workload and to rest\n- Advise on danger signs\n- Reassess at the next contact or in 1 week if 8 months pregnant\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\n\nWomen with non-severe hypertension during pregnancy should be offered antihypertensive drug treatment: Oral alpha-agonist (methyldopa) and beta-blockers should be considered as effective treatment options for non-severe hypertension during pregnancy. -anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Visual disturbance +anc_physical_exam.step2.symp_sev_preeclampsia.options.visual_disturbance.text = Visual disturbance anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vomiting anc_physical_exam.step1.toaster4.toaster_info_text = Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy. anc_physical_exam.step3.respiratory_exam.options.2.text = Normal diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties index 19f09db87..a03940dfc 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties @@ -35,7 +35,7 @@ anc_physical_exam.step3.body_temp_repeat_label.text = Segunda temperatura (ºC) anc_physical_exam.step2.urine_protein.options.plus_one.text = + anc_physical_exam.step4.sfh.v_required.err = Digite a altura uterina anc_physical_exam.step2.toaster9.toaster_info_text = A mulher tem hipertensão - PAS de 140 mmHg ou maior e/ou PAD de 90 mmHg ou maior e sem proteinúria.\n\nAconselhamento:\n- Aconselhar a redução de trabalho e repouso\n- Orientar sobre os sinais de perigo\n- Reavaliar no próximo contato ou em 1 semana se no oitavo mês de gestação\n- Se a hipertensão persiste após 1 semana ou no próximo contato, encaminhar para o hospital ou discutir os caso com o médico, se disponível. -anc_physical_exam.step2.symp_sev_preeclampsia.options.blurred_vision.text = Visão embaçada +anc_physical_exam.step2.symp_sev_preeclampsia.options.visual_disturbance.text = Visão embaçada anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vômito anc_physical_exam.step1.toaster4.toaster_info_text = Recomenda-se que a gestante tenha alimentação saudável e mantenha-se fisicamente ativa para que permaneça saudável e para prevenir o ganho de peso excessivo durante a gestação. anc_physical_exam.step3.respiratory_exam.options.2.text = Normal diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 9280ac2e0..1d8d3ec50 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -310,7 +310,7 @@ anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, othe anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer -anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1?4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink diff --git a/opensrp-anc/src/main/resources/contact_summary.properties b/opensrp-anc/src/main/resources/contact_summary.properties index 10a57383e..80032a2f0 100644 --- a/opensrp-anc/src/main/resources/contact_summary.properties +++ b/opensrp-anc/src/main/resources/contact_summary.properties @@ -40,10 +40,10 @@ contact_summary.medical_history.surgeries = Surgeries contact_summary.medical_history.chronic_health_conditions = Chronic health conditions contact_summary.medical_history.hiv_diagnosis_date = HIV diagnosis date contact_summary.medical_history.hiv_diagnosis_date_unknown = HIV diagnosis date unknown -contact_summary.immunisation_status.tt_immunisation_status = TT immunisation status -contact_summary.immunisation_status.tt_dose_1 = TT dose #1 -contact_summary.immunisation_status.tt_dose_2 = TT dose #2 -contact_summary.immunisation_status.tt_dose_not_given = TT dose not given +contact_summary.immunisation_status.tt_immunisation_status = TTCV immunisation status +contact_summary.immunisation_status.tt_dose_1 = TTCV dose #1 +contact_summary.immunisation_status.tt_dose_2 = TTCV dose #2 +contact_summary.immunisation_status.tt_dose_not_given = TTCV dose not given contact_summary.immunisation_status.flu_immunisation_status = Flu immunisation status contact_summary.immunisation_status.flu_dose = Flu dose contact_summary.immunisation_status.flu_dose_not_given = Flu dose not given diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties index 8e4f5b8f6..e34aec44b 100644 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -21,6 +21,7 @@ tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = BsAg laboratory- tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = HBsAg laboratory-based immunoassay (recommended) tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test +tests_hepatitis_b_sub_form.step1.hepb_test_status.label_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseUnitTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseUnitTest.java index 3cf45e508..c30410268 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseUnitTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseUnitTest.java @@ -68,7 +68,7 @@ public abstract class BaseUnitTest { " \"openmrs_entity_id\": \"139084\"\n" + " },\n" + " {\n" + - " \"key\": \"blurred_vision\",\n" + + " \"key\": \"visual_disturbance\",\n" + " \"text\": \"Blurred vision\",\n" + " \"value\": false,\n" + " \"openmrs_entity\": \"Blurred vision\",\n" + diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/MainContactActivityTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/MainContactActivityTest.java index 42d8c9748..e48a01acd 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/MainContactActivityTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/MainContactActivityTest.java @@ -147,7 +147,7 @@ public void testPreProcessDefaultValues() { intent); activity = activityController.create().resume().get(); Assert.assertNotNull(activity); - String physicalExam = "{\"validate_on_submit\":true,\"display_scroll_bars\":true,\"count\":\"4\",\"encounter_type\":\"Physical Exam\",\"entity_id\":\"\",\"relational_id\":\"\",\"form_version\":\"0.0.1\",\"default_values\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"global_previous\":[\"current_weight\"],\"editable_fields\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"metadata\":{\"start\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"start\",\"openmrs_entity_id\":\"163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"end\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"end\",\"openmrs_entity_id\":\"163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"today\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"encounter\",\"openmrs_entity_id\":\"encounter_date\"},\"deviceid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"deviceid\",\"openmrs_entity_id\":\"163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"subscriberid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"subscriberid\",\"openmrs_entity_id\":\"163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"simserial\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"simserial\",\"openmrs_entity_id\":\"163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"phonenumber\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"phonenumber\",\"openmrs_entity_id\":\"163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"encounter_location\":\"\",\"look_up\":{\"entity_id\":\"\",\"value\":\"\"}},\"step1\":{\"title\":\"Height & Weight\",\"next\":\"step2\",\"fields\":[{\"key\":\"height_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Height (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"height\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the height\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"100\",\"err\":\"Height must be equal or greater than 100\"},\"v_max\":{\"value\":\"200\",\"err\":\"Height must be equal or less than 200\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pregest_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pre-gestational weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pre-gestational weight\"},\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}}},{\"key\":\"pregest_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Pre-gestational weight is required\"}},{\"key\":\"pregest_weight_unknown\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"pregest_weight_unknown\",\"text\":\"Pre-gestational weight unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"current_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Current weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"current_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the current weight\"}},{\"key\":\"first_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"bmi\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"gdm_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_cat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"exp_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_gain_duration\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"tot_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster1\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Body mass Index\",\"openmrs_entity_id\":\"1432\",\"type\":\"toaster_notes\",\"text\":\"Body mass index (BMI) = {bmi}\\n\\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg.\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster2\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Average weight gain per week since last contact: {weight_gain} kg\\n\\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster3\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Gestational diabetes mellitus (GDM) risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"Please provide appropriate counseling for GDM risk mitigation, including:\\n- Reasserting dietary interventions\\n- Reasserting physical activity during pregnancy\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster4\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Healthy eating and keeping physically active counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\",\"toaster_info_title\":\"Nutritional and Exercise Folder\"},{\"key\":\"toaster5\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Increase daily energy and protein intake counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates.\",\"toaster_info_title\":\"Increase daily energy and protein intake counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster6\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Balanced energy and protein dietary supplementation counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.\",\"toaster_info_title\":\"Balanced energy and protein dietary supplementation counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"step2\":{\"title\":\"Blood Pressure\",\"next\":\"step3\",\"fields\":[{\"key\":\"bp_systolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Systolic blood pressure (SBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_systolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_diastolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Diastolic blood pressure (DBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_diastolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal to or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal to or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"cant_record_bp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"check_box\",\"options\":[{\"key\":\"cant_record_bp\",\"text\":\"Unable to record BP\",\"value\":false,\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\"}]},{\"key\":\"cant_record_bp_reason\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"label\":\"Reason\",\"type\":\"check_box\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"bp_cuff_unavailable\",\"text\":\"BP cuff (sphygmomanometer) not available\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"bp_cuff_broken\",\"text\":\"BP cuff (sphygmomanometer) is broken\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"other\",\"text\":\"Other\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Reason why SBP and DPB is cannot be done is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"or\":[\"cant_record_bp\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"toaster7\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Measure BP again after 10-15 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_systolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"SBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"bp_systolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165278AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_diastolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"DBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"bp_diastolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster8\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Do urine dipstick test for protein.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"symp_sev_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"label\":\"Any symptoms of severe pre-eclampsia?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"exclusive\":[\"none\"],\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"severe_headache\",\"text\":\"Severe headache\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"blurred_vision\",\"text\":\"Blurred vision\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"epigastric_pain\",\"text\":\"Epigastric pain\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"141128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"dizziness\",\"text\":\"Dizziness\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"vomiting\",\"text\":\"Vomiting\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122983AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify any other symptoms or select none\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"urine_protein\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Urine dipstick result - protein\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"severe_hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165205AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster9\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Hypertension diagnosis! Provide counseling.\",\"toaster_info_text\":\"Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\\\\n\\\\nCounseling:\\n- Advice to reduce workload and to rest\\n- Advise on danger signs\\n- Reassess at the next contact or in 1 week if 8 months pregnant\\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster10\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe hypertension! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster11\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Symptom(s) of severe pre-eclampsia! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"severe_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"113006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster13\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital!\",\"toaster_info_text\":\"Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Give magnesium sulphate\\n- Give appropriate anti-hypertensives\\n- Revise the birth plan\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster14\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"toaster_info_text\":\"Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Refer to hospital\\n- Revise the birth plan\",\"toaster_info_title\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"step3\":{\"title\":\"Maternal Exam\",\"next\":\"step4\",\"fields\":[{\"key\":\"body_temp_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Temperature (ºC)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"body_temp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter body temperature\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"}},{\"key\":\"toaster15\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Temperature of 38ºC or above! Measure temperature again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"body_temp_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second temperature (ºC)\",\"text_color\":\"#000000\",\"label_info_text\":\"Retake the woman's temperature if the first reading was 38ºC or higher.\",\"v_required\":{\"value\":true},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"body_temp_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter second body temperature\"},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"}},{\"key\":\"toaster16\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has a fever. Provide treatment and refer urgently to hospital!\",\"toaster_info_text\":\"Procedure:\\n- Insert an IV line\\n- Give fluids slowly\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:body_temp_repeat\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pulse rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"pulse_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pulse rate\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"}},{\"key\":\"toaster17\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Check again after 10 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second pulse rate (bpm)\",\"label_info_text\":\"Retake the woman's pulse rate if the first reading was lower than 60 or higher than 100.\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"pulse_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter repeated pulse rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster18\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Refer for further investigation.\",\"toaster_info_text\":\"Procedure:\\n- Check for fever, infection, respiratory distress, and arrhythmia\\n- Refer for further investigation\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pallor\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pallor present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"anaemic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"121629AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster19\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Anaemia diagnosis! Haemoglobin (Hb) test recommended.\",\"toaster_info_text\":\"Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\\n\\nOR\\n\\nNo Hb test result recorded, but woman has pallor.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"respiratory_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Respiratory exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"respiratory_exam_sub_form\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster20\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has respiratory distress. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"oximetry_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Oximetry (%)\",\"text_color\":\"#000000\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"oximetry\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"toaster21\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has low oximetry. Refer urgently to the hospital!\",\"toaster_info_text\":\"Procedure:\\n- Give oxygen\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cardiac_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cardiac exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"cardiac_exam_sub_form\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster22\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal cardiac exam. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"breast_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Breast exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"breast_exam_sub_form\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster23\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal breast exam. Refer for further investigation.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"abdominal_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Abdominal exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"abdominal_exam_sub_form\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster24\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal abdominal exam. Consider high level evaluation or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pelvic_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pelvic exam (visual)\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"pelvic_exam_sub_form\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster25\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cervical_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cervical exam done?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"1\",\"options\":[{\"key\":\"1\",\"text\":\"Done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"specify_info\":\"specify cm cervix dilated...\",\"specify_widget\":\"normal_edit_text\",\"specify_info_color\":\"#8C8C8C\",\"secondary_suffix\":\"cm\",\"content_form\":\"cervical_exam_sub_form\"},{\"key\":\"2\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster26_hidden\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}},\"src\":{\"key\":\"cervical_exam\",\"option_key\":\"1\",\"stepName\":\"step3\"}}},{\"key\":\"toaster26\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks).\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"oedema\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"yes\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"specify_info\":\"specify type...\",\"specify_widget\":\"radio_button\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"oedema_present_sub_form\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"oedema_severity\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema severity\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"step3:oedema\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}}]},\"step4\":{\"title\":\"Fetal Assessment\",\"fields\":[{\"key\":\"sfh_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Symphysis-fundal height (SFH) in centimetres (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false}},{\"key\":\"sfh\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"0.1\",\"err\":\"SFH must be greater than 0\"},\"v_max\":{\"value\":\"44\",\"err\":\"SFH must be less than or equal to 44\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the SFH\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_movement\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal movement felt?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please this field is required.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heartbeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal heartbeat present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"fetal_heart_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}},{\"key\":\"fetal_heart_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"80\",\"err\":\"Fetal heartbeat must be equal or greater than 80\"},\"v_max\":{\"value\":\"200\",\"err\":\"Fetal heartbeat must be less than or equal to 200\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"toaster27\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"No fetal heartbeat observed. Refer to hospital.\",\"toaster_info_text\":\"Procedure:\\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\\n- Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster28\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_heart_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heart_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter result for the second fetal heart rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster29\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal fetal heart rate. Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"No. of fetuses\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"no_of_fetuses\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165293AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"numbers_selector\",\"number_of_selectors\":\"5\",\"start_number\":\"1\",\"max_value\":\"8\",\"text_size\":\"16px\",\"text_color\":\"#000000\",\"selected_text_color\":\"#ffffff\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_unknown\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"no_of_fetuses_unknown\",\"text\":\"No. of fetuses unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"preeclampsia_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster30\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. \",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_presentation\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal presentation\",\"label_text_style\":\"bold\",\"label_info_text\":\"If multiple fetuses, indicate the fetal position of the first fetus to be delivered.\",\"options\":[{\"key\":\"unknown\",\"text\":\"Unknown\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"cephalic\",\"text\":\"Cephalic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"pelvic\",\"text\":\"Pelvic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"transverse\",\"text\":\"Transverse\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"other\",\"text\":\"Other\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Fetal representation field is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]}}"; + String physicalExam = "{\"validate_on_submit\":true,\"display_scroll_bars\":true,\"count\":\"4\",\"encounter_type\":\"Physical Exam\",\"entity_id\":\"\",\"relational_id\":\"\",\"form_version\":\"0.0.1\",\"default_values\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"global_previous\":[\"current_weight\"],\"editable_fields\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"metadata\":{\"start\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"start\",\"openmrs_entity_id\":\"163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"end\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"end\",\"openmrs_entity_id\":\"163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"today\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"encounter\",\"openmrs_entity_id\":\"encounter_date\"},\"deviceid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"deviceid\",\"openmrs_entity_id\":\"163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"subscriberid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"subscriberid\",\"openmrs_entity_id\":\"163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"simserial\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"simserial\",\"openmrs_entity_id\":\"163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"phonenumber\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"phonenumber\",\"openmrs_entity_id\":\"163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"encounter_location\":\"\",\"look_up\":{\"entity_id\":\"\",\"value\":\"\"}},\"step1\":{\"title\":\"Height & Weight\",\"next\":\"step2\",\"fields\":[{\"key\":\"height_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Height (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"height\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the height\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"100\",\"err\":\"Height must be equal or greater than 100\"},\"v_max\":{\"value\":\"200\",\"err\":\"Height must be equal or less than 200\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pregest_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pre-gestational weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pre-gestational weight\"},\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}}},{\"key\":\"pregest_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Pre-gestational weight is required\"}},{\"key\":\"pregest_weight_unknown\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"pregest_weight_unknown\",\"text\":\"Pre-gestational weight unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"current_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Current weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"current_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the current weight\"}},{\"key\":\"first_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"bmi\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"gdm_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_cat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"exp_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_gain_duration\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"tot_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster1\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Body mass Index\",\"openmrs_entity_id\":\"1432\",\"type\":\"toaster_notes\",\"text\":\"Body mass index (BMI) = {bmi}\\n\\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg.\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster2\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Average weight gain per week since last contact: {weight_gain} kg\\n\\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster3\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Gestational diabetes mellitus (GDM) risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"Please provide appropriate counseling for GDM risk mitigation, including:\\n- Reasserting dietary interventions\\n- Reasserting physical activity during pregnancy\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster4\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Healthy eating and keeping physically active counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\",\"toaster_info_title\":\"Nutritional and Exercise Folder\"},{\"key\":\"toaster5\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Increase daily energy and protein intake counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates.\",\"toaster_info_title\":\"Increase daily energy and protein intake counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster6\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Balanced energy and protein dietary supplementation counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.\",\"toaster_info_title\":\"Balanced energy and protein dietary supplementation counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"step2\":{\"title\":\"Blood Pressure\",\"next\":\"step3\",\"fields\":[{\"key\":\"bp_systolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Systolic blood pressure (SBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_systolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_diastolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Diastolic blood pressure (DBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"bp_diastolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal to or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal to or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}}},{\"key\":\"cant_record_bp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"check_box\",\"options\":[{\"key\":\"cant_record_bp\",\"text\":\"Unable to record BP\",\"value\":false,\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\"}]},{\"key\":\"cant_record_bp_reason\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"label\":\"Reason\",\"type\":\"check_box\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"bp_cuff_unavailable\",\"text\":\"BP cuff (sphygmomanometer) not available\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"bp_cuff_broken\",\"text\":\"BP cuff (sphygmomanometer) is broken\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"other\",\"text\":\"Other\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Reason why SBP and DPB is cannot be done is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"or\":[\"cant_record_bp\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"toaster7\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Measure BP again after 10-15 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_systolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"SBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"bp_systolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165278AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_diastolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"DBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"bp_diastolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster8\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Do urine dipstick test for protein.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"symp_sev_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"label\":\"Any symptoms of severe pre-eclampsia?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"exclusive\":[\"none\"],\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"severe_headache\",\"text\":\"Severe headache\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"visual_disturbance\",\"text\":\"Blurred vision\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"epigastric_pain\",\"text\":\"Epigastric pain\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"141128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"dizziness\",\"text\":\"Dizziness\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"vomiting\",\"text\":\"Vomiting\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122983AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify any other symptoms or select none\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"urine_protein\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Urine dipstick result - protein\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"severe_hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165205AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster9\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Hypertension diagnosis! Provide counseling.\",\"toaster_info_text\":\"Woman has hypertension - SBP of 140 mmHg or higher and/or DBP of 90 mmHg or higher and no proteinuria.\\\\n\\\\nCounseling:\\n- Advice to reduce workload and to rest\\n- Advise on danger signs\\n- Reassess at the next contact or in 1 week if 8 months pregnant\\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster10\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe hypertension! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has severe hypertension. If SBP is 160 mmHg or higher and/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster11\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Symptom(s) of severe pre-eclampsia! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"severe_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"113006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster13\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital!\",\"toaster_info_text\":\"Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Give magnesium sulphate\\n- Give appropriate anti-hypertensives\\n- Revise the birth plan\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster14\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"toaster_info_text\":\"Woman has pre-eclampsia - SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Refer to hospital\\n- Revise the birth plan\",\"toaster_info_title\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"step3\":{\"title\":\"Maternal Exam\",\"next\":\"step4\",\"fields\":[{\"key\":\"body_temp_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Temperature (ºC)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"body_temp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter body temperature\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"}},{\"key\":\"toaster15\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Temperature of 38ºC or above! Measure temperature again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"body_temp_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second temperature (ºC)\",\"text_color\":\"#000000\",\"label_info_text\":\"Retake the woman's temperature if the first reading was 38ºC or higher.\",\"v_required\":{\"value\":true},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"body_temp_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter second body temperature\"},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"}},{\"key\":\"toaster16\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has a fever. Provide treatment and refer urgently to hospital!\",\"toaster_info_text\":\"Procedure:\\n- Insert an IV line\\n- Give fluids slowly\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:body_temp_repeat\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pulse rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"pulse_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pulse rate\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"}},{\"key\":\"toaster17\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Check again after 10 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second pulse rate (bpm)\",\"label_info_text\":\"Retake the woman's pulse rate if the first reading was lower than 60 or higher than 100.\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"pulse_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter repeated pulse rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster18\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Refer for further investigation.\",\"toaster_info_text\":\"Procedure:\\n- Check for fever, infection, respiratory distress, and arrhythmia\\n- Refer for further investigation\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pallor\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pallor present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"anaemic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"121629AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster19\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Anaemia diagnosis! Haemoglobin (Hb) test recommended.\",\"toaster_info_text\":\"Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\\n\\nOR\\n\\nNo Hb test result recorded, but woman has pallor.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"respiratory_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Respiratory exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"respiratory_exam_sub_form\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster20\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has respiratory distress. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"oximetry_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Oximetry (%)\",\"text_color\":\"#000000\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"oximetry\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}}},{\"key\":\"toaster21\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has low oximetry. Refer urgently to the hospital!\",\"toaster_info_text\":\"Procedure:\\n- Give oxygen\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cardiac_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cardiac exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"cardiac_exam_sub_form\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster22\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal cardiac exam. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"breast_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Breast exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"breast_exam_sub_form\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster23\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal breast exam. Refer for further investigation.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"abdominal_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Abdominal exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"abdominal_exam_sub_form\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster24\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal abdominal exam. Consider high level evaluation or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pelvic_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pelvic exam (visual)\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"pelvic_exam_sub_form\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster25\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cervical_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cervical exam done?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"1\",\"options\":[{\"key\":\"1\",\"text\":\"Done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"specify_info\":\"specify cm cervix dilated...\",\"specify_widget\":\"normal_edit_text\",\"specify_info_color\":\"#8C8C8C\",\"secondary_suffix\":\"cm\",\"content_form\":\"cervical_exam_sub_form\"},{\"key\":\"2\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster26_hidden\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}},\"src\":{\"key\":\"cervical_exam\",\"option_key\":\"1\",\"stepName\":\"step3\"}}},{\"key\":\"toaster26\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks).\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"oedema\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"yes\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"specify_info\":\"specify type...\",\"specify_widget\":\"radio_button\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"oedema_present_sub_form\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"oedema_severity\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema severity\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"step3:oedema\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}}]},\"step4\":{\"title\":\"Fetal Assessment\",\"fields\":[{\"key\":\"sfh_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Symphysis-fundal height (SFH) in centimetres (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false}},{\"key\":\"sfh\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"0.1\",\"err\":\"SFH must be greater than 0\"},\"v_max\":{\"value\":\"44\",\"err\":\"SFH must be less than or equal to 44\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the SFH\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_movement\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal movement felt?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please this field is required.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heartbeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal heartbeat present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"fetal_heart_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}},{\"key\":\"fetal_heart_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"80\",\"err\":\"Fetal heartbeat must be equal or greater than 80\"},\"v_max\":{\"value\":\"200\",\"err\":\"Fetal heartbeat must be less than or equal to 200\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"toaster27\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"No fetal heartbeat observed. Refer to hospital.\",\"toaster_info_text\":\"Procedure:\\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\\n- Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster28\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_heart_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heart_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter result for the second fetal heart rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster29\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal fetal heart rate. Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"No. of fetuses\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"no_of_fetuses\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165293AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"numbers_selector\",\"number_of_selectors\":\"5\",\"start_number\":\"1\",\"max_value\":\"8\",\"text_size\":\"16px\",\"text_color\":\"#000000\",\"selected_text_color\":\"#ffffff\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_unknown\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"no_of_fetuses_unknown\",\"text\":\"No. of fetuses unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"preeclampsia_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster30\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. \",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_presentation\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal presentation\",\"label_text_style\":\"bold\",\"label_info_text\":\"If multiple fetuses, indicate the fetal position of the first fetus to be delivered.\",\"options\":[{\"key\":\"unknown\",\"text\":\"Unknown\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"cephalic\",\"text\":\"Cephalic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"pelvic\",\"text\":\"Pelvic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"transverse\",\"text\":\"Transverse\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"other\",\"text\":\"Other\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Fetal representation field is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]}}"; JSONObject physicalExamJson = new JSONObject(physicalExam); Whitebox.invokeMethod(activity, "preProcessDefaultValues", physicalExamJson); @@ -160,7 +160,7 @@ public void testPreProcessDefaultValues() { @Test public void testContact() throws Exception { - String partialForm = "{\"validate_on_submit\":true,\"display_scroll_bars\":true,\"count\":\"4\",\"encounter_type\":\"Physical Exam\",\"entity_id\":\"\",\"relational_id\":\"\",\"form_version\":\"0.0.1\",\"default_values\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"global_previous\":[\"current_weight\"],\"editable_fields\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"metadata\":{\"start\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"start\",\"openmrs_entity_id\":\"163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"2020-02-19 17:51:33\"},\"end\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"end\",\"openmrs_entity_id\":\"163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"today\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"encounter\",\"openmrs_entity_id\":\"encounter_date\"},\"deviceid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"deviceid\",\"openmrs_entity_id\":\"163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"358240051111110\"},\"subscriberid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"subscriberid\",\"openmrs_entity_id\":\"163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"310260000000000\"},\"simserial\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"simserial\",\"openmrs_entity_id\":\"163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"89014103211118510720\"},\"phonenumber\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"phonenumber\",\"openmrs_entity_id\":\"163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"+15555215554\"},\"encounter_location\":\"44de66fb-e6c6-4bae-92bb-386dfe626eba\",\"look_up\":{\"entity_id\":\"\",\"value\":\"\"}},\"step1\":{\"title\":\"Height & Weight\",\"next\":\"step2\",\"fields\":[{\"key\":\"height_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Height (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"height\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the height\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"100\",\"err\":\"Height must be equal or greater than 100\"},\"v_max\":{\"value\":\"200\",\"err\":\"Height must be equal or less than 200\"},\"value\":\"123\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pregest_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pre-gestational weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pre-gestational weight\"},\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"is_visible\":true},{\"key\":\"pregest_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Pre-gestational weight is required\"},\"value\":\"45\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true,\"is_visible\":true},{\"key\":\"pregest_weight_unknown\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"pregest_weight_unknown\",\"text\":\"Pre-gestational weight unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step1\",\"is-rule-check\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"current_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Current weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"current_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the current weight\"},\"step\":\"step1\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"first_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"45\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"bmi\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"29.74\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"gdm_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_cat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"Overweight\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"exp_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"7 - 11.5\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_gain_duration\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"1\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"tot_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"-45\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"toaster1\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Body mass Index\",\"openmrs_entity_id\":\"1432\",\"type\":\"toaster_notes\",\"text\":\"Body mass index (BMI) = {bmi}\\n\\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg.\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster2\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Average weight gain per week since last contact: {weight_gain} kg\\n\\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster3\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Gestational diabetes mellitus (GDM) risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"Please provide appropriate counseling for GDM risk mitigation, including:\\n- Reasserting dietary interventions\\n- Reasserting physical activity during pregnancy\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster4\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Healthy eating and keeping physically active counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\",\"toaster_info_title\":\"Nutritional and Exercise Folder\"},{\"key\":\"toaster5\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Increase daily energy and protein intake counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates.\",\"toaster_info_title\":\"Increase daily energy and protein intake counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster6\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Balanced energy and protein dietary supplementation counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.\",\"toaster_info_title\":\"Balanced energy and protein dietary supplementation counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false}]},\"step2\":{\"title\":\"Blood Pressure\",\"next\":\"step3\",\"fields\":[{\"key\":\"bp_systolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Systolic blood pressure (SBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_systolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true,\"step\":\"step2\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_diastolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Diastolic blood pressure (DBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_diastolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal to or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal to or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true,\"step\":\"step2\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"cant_record_bp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"check_box\",\"options\":[{\"key\":\"cant_record_bp\",\"text\":\"Unable to record BP\",\"value\":false,\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\"}],\"is-rule-check\":false},{\"key\":\"cant_record_bp_reason\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"label\":\"Reason\",\"type\":\"check_box\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"bp_cuff_unavailable\",\"text\":\"BP cuff (sphygmomanometer) not available\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"bp_cuff_broken\",\"text\":\"BP cuff (sphygmomanometer) is broken\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"other\",\"text\":\"Other\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Reason why SBP and DPB is cannot be done is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"or\":[\"cant_record_bp\"]}]}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"toaster7\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Measure BP again after 10-15 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_systolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"SBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"bp_systolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165278AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_diastolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"DBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"bp_diastolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"toaster8\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Do urine dipstick test for protein.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"symp_sev_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"label\":\"Any symptoms of severe pre-eclampsia?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"exclusive\":[\"none\"],\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"severe_headache\",\"text\":\"Severe headache\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"blurred_vision\",\"text\":\"Blurred vision\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"epigastric_pain\",\"text\":\"Epigastric pain\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"141128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"dizziness\",\"text\":\"Dizziness\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"vomiting\",\"text\":\"Vomiting\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122983AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify any other symptoms or select none\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"urine_protein\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Urine dipstick result - protein\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"severe_hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165205AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster9\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Hypertension diagnosis! Provide counseling.\",\"toaster_info_text\":\"Woman has hypertension - SBP of 140 mmHg or higher and\\/or DBP of 90 mmHg or higher and no proteinuria.\\\\n\\\\nCounseling:\\n- Advice to reduce workload and to rest\\n- Advise on danger signs\\n- Reassess at the next contact or in 1 week if 8 months pregnant\\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster10\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe hypertension! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has severe hypertension. If SBP is 160 mmHg or higher and\\/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster11\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Symptom(s) of severe pre-eclampsia! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"severe_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"113006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster13\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital!\",\"toaster_info_text\":\"Woman has severe pre-eclampsia - SBP of 160 mmHg or above and\\/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and\\/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Give magnesium sulphate\\n- Give appropriate anti-hypertensives\\n- Revise the birth plan\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster14\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"toaster_info_text\":\"Woman has pre-eclampsia - SBP of 140 mmHg or above and\\/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Refer to hospital\\n- Revise the birth plan\",\"toaster_info_title\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false}]},\"step3\":{\"title\":\"Maternal Exam\",\"next\":\"step4\",\"fields\":[{\"key\":\"body_temp_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Temperature (ºC)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"body_temp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter body temperature\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"},\"is-rule-check\":false},{\"key\":\"toaster15\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Temperature of 38ºC or above! Measure temperature again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"body_temp_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second temperature (ºC)\",\"text_color\":\"#000000\",\"label_info_text\":\"Retake the woman's temperature if the first reading was 38ºC or higher.\",\"v_required\":{\"value\":true},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"body_temp_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter second body temperature\"},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"},\"is_visible\":false,\"is-rule-check\":false},{\"key\":\"toaster16\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has a fever. Provide treatment and refer urgently to hospital!\",\"toaster_info_text\":\"Procedure:\\n- Insert an IV line\\n- Give fluids slowly\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:body_temp_repeat\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pulse rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"pulse_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pulse rate\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster17\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Check again after 10 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second pulse rate (bpm)\",\"label_info_text\":\"Retake the woman's pulse rate if the first reading was lower than 60 or higher than 100.\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"pulse_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter repeated pulse rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false,\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster18\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Refer for further investigation.\",\"toaster_info_text\":\"Procedure:\\n- Check for fever, infection, respiratory distress, and arrhythmia\\n- Refer for further investigation\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pallor\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pallor present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"anaemic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"121629AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster19\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Anaemia diagnosis! Haemoglobin (Hb) test recommended.\",\"toaster_info_text\":\"Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\\n\\nOR\\n\\nNo Hb test result recorded, but woman has pallor.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"respiratory_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Respiratory exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"respiratory_exam_sub_form\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"secondary_value\":[{\"key\":\"respiratory_exam_abnormal\",\"type\":\"check_box\",\"values\":[\"dyspnoea:Dyspnoea:true\",\"cough:Cough:true\",\"rapid_breathing:Rapid breathing:true\",\"slow_breathing:Slow breathing:true\",\"wheezing:Wheezing:true\",\"rales:Rales:true\",\"other:Other (specify):true\"],\"openmrs_attributes\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"value_openmrs_attributes\":[{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122496AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"143264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"125061AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"126356AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5209AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"127640AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"respiratory_exam_abnormal_other\",\"type\":\"edit_text\",\"values\":[\"More tests\"],\"openmrs_attributes\":{\"openmrs_entity_parent\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}}]}],\"is-rule-check\":false,\"value\":\"3\"},{\"key\":\"toaster20\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has respiratory distress. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true},{\"key\":\"oximetry_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Oximetry (%)\",\"text_color\":\"#000000\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true},{\"key\":\"oximetry\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true,\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster21\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has low oximetry. Refer urgently to the hospital!\",\"toaster_info_text\":\"Procedure:\\n- Give oxygen\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cardiac_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cardiac exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"cardiac_exam_sub_form\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster22\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal cardiac exam. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"breast_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Breast exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"breast_exam_sub_form\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster23\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal breast exam. Refer for further investigation.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"abdominal_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Abdominal exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"abdominal_exam_sub_form\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster24\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal abdominal exam. Consider high level evaluation or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pelvic_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pelvic exam (visual)\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"pelvic_exam_sub_form\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster25\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cervical_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cervical exam done?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"1\",\"options\":[{\"key\":\"1\",\"text\":\"Done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"specify_info\":\"specify cm cervix dilated...\",\"specify_widget\":\"normal_edit_text\",\"specify_info_color\":\"#8C8C8C\",\"secondary_suffix\":\"cm\",\"content_form\":\"cervical_exam_sub_form\"},{\"key\":\"2\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster26_hidden\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}},\"src\":{\"key\":\"cervical_exam\",\"option_key\":\"1\",\"stepName\":\"step3\"}},\"value\":\"0\",\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster26\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks).\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"oedema\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"yes\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"specify_info\":\"specify type...\",\"specify_widget\":\"radio_button\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"oedema_present_sub_form\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"is-rule-check\":false},{\"key\":\"oedema_severity\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema severity\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"step3:oedema\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"is_visible\":false}]},\"step4\":{\"title\":\"Fetal Assessment\",\"fields\":[{\"key\":\"sfh_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Symphysis-fundal height (SFH) in centimetres (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false}},{\"key\":\"sfh\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"0.1\",\"err\":\"SFH must be greater than 0\"},\"v_max\":{\"value\":\"44\",\"err\":\"SFH must be less than or equal to 44\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the SFH\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_movement\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal movement felt?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please this field is required.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heartbeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal heartbeat present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"fetal_heart_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}},{\"key\":\"fetal_heart_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"80\",\"err\":\"Fetal heartbeat must be equal or greater than 80\"},\"v_max\":{\"value\":\"200\",\"err\":\"Fetal heartbeat must be less than or equal to 200\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"toaster27\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"No fetal heartbeat observed. Refer to hospital.\",\"toaster_info_text\":\"Procedure:\\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\\n- Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster28\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_heart_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heart_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter result for the second fetal heart rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster29\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal fetal heart rate. Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"No. of fetuses\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"no_of_fetuses\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165293AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"numbers_selector\",\"number_of_selectors\":\"5\",\"start_number\":\"1\",\"max_value\":\"8\",\"text_size\":\"16px\",\"text_color\":\"#000000\",\"selected_text_color\":\"#ffffff\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}},\"value\":\"4\",\"editable\":true,\"read_only\":true},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_unknown\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"no_of_fetuses_unknown\",\"text\":\"No. of fetuses unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"preeclampsia_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster30\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. \",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_presentation\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal presentation\",\"label_text_style\":\"bold\",\"label_info_text\":\"If multiple fetuses, indicate the fetal position of the first fetus to be delivered.\",\"options\":[{\"key\":\"unknown\",\"text\":\"Unknown\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"cephalic\",\"text\":\"Cephalic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"pelvic\",\"text\":\"Pelvic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"transverse\",\"text\":\"Transverse\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"other\",\"text\":\"Other\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Fetal representation field is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"global\":{\"site_ipv_assess\":true,\"site_anc_hiv\":true,\"site_ultrasound\":true,\"site_bp_tool\":true,\"pop_undernourish\":true,\"pop_anaemia_40\":true,\"pop_anaemia_20\":false,\"pop_low_calcium\":true,\"pop_tb\":true,\"pop_vita\":true,\"pop_helminth\":true,\"pop_hiv_incidence\":false,\"pop_hiv_prevalence\":false,\"pop_malaria\":true,\"pop_syphilis\":false,\"pop_hepb\":true,\"pop_hepb_screening\":true,\"pop_hepc\":true,\"gest_age_openmrs\":\"13\",\"gest_age\":\"\",\"urine_glucose\":\"\",\"previous_contact_no\":\"2\",\"gdm\":\"\",\"health_conditions\":\"[blood_disorder, epilepsy, hiv]\",\"last_contact_date\":\"18-02-2020\",\"contact_no\":\"3\",\"current_weight\":\"\",\"hb_result\":\"\",\"dm_in_preg\":\"\",\"prev_preg_comps\":\"[convulsions, tobacco_use, vacuum_delivery, 3rd_degree_tear]\",\"urine_nitrites\":\"\",\"age\":\"10\",\"previous_current_weight\":\"56\"},\"invisible_required_fields\":\"[bp_systolic_repeat_label, symp_sev_preeclampsia, pulse_rate_repeat, cant_record_bp_reason, bp_systolic_repeat, body_temp_repeat_label, urine_protein, bp_diastolic_repeat_label, pulse_rate_repeat_label, bp_diastolic_repeat, body_temp_repeat]\"}"; + String partialForm = "{\"validate_on_submit\":true,\"display_scroll_bars\":true,\"count\":\"4\",\"encounter_type\":\"Physical Exam\",\"entity_id\":\"\",\"relational_id\":\"\",\"form_version\":\"0.0.1\",\"default_values\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"global_previous\":[\"current_weight\"],\"editable_fields\":[\"height\",\"pregest_weight\",\"pregest_weight_unknown\",\"first_weight\",\"no_of_fetuses_unknown\",\"no_of_fetuses\"],\"metadata\":{\"start\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"start\",\"openmrs_entity_id\":\"163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"2020-02-19 17:51:33\"},\"end\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"end\",\"openmrs_entity_id\":\"163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"today\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"encounter\",\"openmrs_entity_id\":\"encounter_date\"},\"deviceid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"deviceid\",\"openmrs_entity_id\":\"163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"358240051111110\"},\"subscriberid\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"subscriberid\",\"openmrs_entity_id\":\"163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"310260000000000\"},\"simserial\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"simserial\",\"openmrs_entity_id\":\"163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"89014103211118510720\"},\"phonenumber\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_data_type\":\"phonenumber\",\"openmrs_entity_id\":\"163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"value\":\"+15555215554\"},\"encounter_location\":\"44de66fb-e6c6-4bae-92bb-386dfe626eba\",\"look_up\":{\"entity_id\":\"\",\"value\":\"\"}},\"step1\":{\"title\":\"Height & Weight\",\"next\":\"step2\",\"fields\":[{\"key\":\"height_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Height (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"height\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the height\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"100\",\"err\":\"Height must be equal or greater than 100\"},\"v_max\":{\"value\":\"200\",\"err\":\"Height must be equal or less than 200\"},\"value\":\"123\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pregest_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pre-gestational weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pre-gestational weight\"},\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"is_visible\":true},{\"key\":\"pregest_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165275AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step1:pregest_weight_unknown\":{\"ex-checkbox\":[{\"not\":[\"pregest_weight_unknown\"]}]}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Pre-gestational weight is required\"},\"value\":\"45\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true,\"is_visible\":true},{\"key\":\"pregest_weight_unknown\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"pregest_weight_unknown\",\"text\":\"Pre-gestational weight unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"165277AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step1\",\"is-rule-check\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"current_weight_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Current weight (kg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"current_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"30\",\"err\":\"Weight must be equal or greater than 30\"},\"v_max\":{\"value\":\"180\",\"err\":\"Weight must be equal or less than 180\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the current weight\"},\"step\":\"step1\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"first_weight\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"45\",\"editable\":true,\"read_only\":true,\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"bmi\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1342AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"29.74\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"gdm_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_cat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"Overweight\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"exp_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"7 - 11.5\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_gain_duration\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"1\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"tot_weight_gain\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"-45\",\"step\":\"step1\",\"is-rule-check\":true},{\"key\":\"toaster1\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Body mass Index\",\"openmrs_entity_id\":\"1432\",\"type\":\"toaster_notes\",\"text\":\"Body mass index (BMI) = {bmi}\\n\\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain} kg.\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster2\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Average weight gain per week since last contact: {weight_gain} kg\\n\\nTotal weight gain in pregnancy so far: {tot_weight_gain} kg\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster3\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Gestational diabetes mellitus (GDM) risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"Please provide appropriate counseling for GDM risk mitigation, including:\\n- Reasserting dietary interventions\\n- Reasserting physical activity during pregnancy\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster4\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Healthy eating and keeping physically active counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\",\"toaster_info_title\":\"Nutritional and Exercise Folder\"},{\"key\":\"toaster5\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Increase daily energy and protein intake counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates.\",\"toaster_info_title\":\"Increase daily energy and protein intake counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster6\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"Weight gain finding\",\"openmrs_entity_id\":\"122887\",\"type\":\"toaster_notes\",\"text\":\"Balanced energy and protein dietary supplementation counseling\",\"text_color\":\"#1199F9\",\"toaster_type\":\"info\",\"toaster_info_text\":\"Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates.\",\"toaster_info_title\":\"Balanced energy and protein dietary supplementation counseling\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false}]},\"step2\":{\"title\":\"Blood Pressure\",\"next\":\"step3\",\"fields\":[{\"key\":\"bp_systolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Systolic blood pressure (SBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_systolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true,\"step\":\"step2\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_diastolic_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Diastolic blood pressure (DBP) (mmHg)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true},{\"key\":\"bp_diastolic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal to or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal to or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"not\":[\"cant_record_bp\"]}]}},\"is_visible\":true,\"step\":\"step2\",\"is-rule-check\":true,\"value\":\"\"},{\"key\":\"cant_record_bp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"check_box\",\"options\":[{\"key\":\"cant_record_bp\",\"text\":\"Unable to record BP\",\"value\":false,\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\"}],\"is-rule-check\":false},{\"key\":\"cant_record_bp_reason\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"label\":\"Reason\",\"type\":\"check_box\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"bp_cuff_unavailable\",\"text\":\"BP cuff (sphygmomanometer) not available\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"bp_cuff_broken\",\"text\":\"BP cuff (sphygmomanometer) is broken\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"other\",\"text\":\"Other\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Reason why SBP and DPB is cannot be done is required\"},\"relevance\":{\"step2:cant_record_bp\":{\"ex-checkbox\":[{\"or\":[\"cant_record_bp\"]}]}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"toaster7\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Measure BP again after 10-15 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_systolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"SBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"bp_systolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165278AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"SBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"SBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field systolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"bp_diastolic_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"DBP after 10-15 minutes rest\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"bp_diastolic_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165279AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"DBP must be equal or greater than 20\"},\"v_max\":{\"value\":\"260\",\"err\":\"DBP must be equal or less than 260\"},\"v_required\":{\"value\":\"true\",\"err\":\"Field diastolic repeat is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"toaster8\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Do urine dipstick test for protein.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"symp_sev_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"label\":\"Any symptoms of severe pre-eclampsia?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"exclusive\":[\"none\"],\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"severe_headache\",\"text\":\"Severe headache\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"visual_disturbance\",\"text\":\"Blurred vision\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"147104AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"epigastric_pain\",\"text\":\"Epigastric pain\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"141128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"dizziness\",\"text\":\"Dizziness\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"vomiting\",\"text\":\"Vomiting\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122983AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify any other symptoms or select none\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"urine_protein\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Urine dipstick result - protein\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"none\",\"text\":\"None\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"1875AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"step\":\"step2\",\"is-rule-check\":true,\"is_visible\":false},{\"key\":\"hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"severe_hypertension\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165205AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster9\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Hypertension diagnosis! Provide counseling.\",\"toaster_info_text\":\"Woman has hypertension - SBP of 140 mmHg or higher and\\/or DBP of 90 mmHg or higher and no proteinuria.\\\\n\\\\nCounseling:\\n- Advice to reduce workload and to rest\\n- Advise on danger signs\\n- Reassess at the next contact or in 1 week if 8 months pregnant\\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster10\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe hypertension! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has severe hypertension. If SBP is 160 mmHg or higher and\\/or DBP is 110 mmHg or higher, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"toaster11\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Symptom(s) of severe pre-eclampsia! Refer urgently to hospital!\",\"toaster_info_text\":\"Woman has hypertension. If she is experiencing a symptom of severe pre-eclampsia, then refer urgently to the hospital for further investigation and management.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"severe_preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"113006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster13\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital!\",\"toaster_info_text\":\"Woman has severe pre-eclampsia - SBP of 160 mmHg or above and\\/or DBP of 110 mmHg or above and proteinuria 3+ OR woman has SBP of 140 mmHg or above and\\/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Give magnesium sulphate\\n- Give appropriate anti-hypertensives\\n- Revise the birth plan\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"preeclampsia\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step2\",\"is-rule-check\":true},{\"key\":\"toaster14\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"toaster_info_text\":\"Woman has pre-eclampsia - SBP of 140 mmHg or above and\\/or DBP of 90 mmHg or above and proteinuria 2+ and no symptom of severe pre-eclampsia.\\n\\nProcedure:\\n- Refer to hospital\\n- Revise the birth plan\",\"toaster_info_title\":\"Pre-eclampsia diagnosis! Refer to hospital and revise birth plan.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false}]},\"step3\":{\"title\":\"Maternal Exam\",\"next\":\"step4\",\"fields\":[{\"key\":\"body_temp_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Temperature (ºC)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"body_temp\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter body temperature\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"},\"is-rule-check\":false},{\"key\":\"toaster15\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Temperature of 38ºC or above! Measure temperature again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"body_temp_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second temperature (ºC)\",\"text_color\":\"#000000\",\"label_info_text\":\"Retake the woman's temperature if the first reading was 38ºC or higher.\",\"v_required\":{\"value\":true},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"body_temp_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter second body temperature\"},\"relevance\":{\"step3:body_temp\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"35\",\"err\":\"Temperature must be equal to or greater than 35\"},\"v_max\":{\"value\":\"42\",\"err\":\"Temperature must be equal to or less than 42\"},\"is_visible\":false,\"is-rule-check\":false},{\"key\":\"toaster16\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has a fever. Provide treatment and refer urgently to hospital!\",\"toaster_info_text\":\"Procedure:\\n- Insert an IV line\\n- Give fluids slowly\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:body_temp_repeat\":{\"type\":\"numeric\",\"ex\":\"greaterThanEqualTo(., \\\"38\\\")\"}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Pulse rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true}},{\"key\":\"pulse_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter pulse rate\"},\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster17\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Check again after 10 minutes rest.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pulse_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second pulse rate (bpm)\",\"label_info_text\":\"Retake the woman's pulse rate if the first reading was lower than 60 or higher than 100.\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"pulse_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_numeric\":{\"value\":\"true\",\"err\":\"\"},\"v_min\":{\"value\":\"20\",\"err\":\"Pulse rate must be equal to or greater than 20\"},\"v_max\":{\"value\":\"200\",\"err\":\"Pulse rate must be equal to or less than 200\"},\"v_required\":{\"value\":\"true\",\"err\":\"Please enter repeated pulse rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false,\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster18\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pulse rate. Refer for further investigation.\",\"toaster_info_text\":\"Procedure:\\n- Check for fever, infection, respiratory distress, and arrhythmia\\n- Refer for further investigation\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pallor\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5245AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pallor present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"anaemic\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"121629AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}},\"value\":\"0\",\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster19\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Anaemia diagnosis! Haemoglobin (Hb) test recommended.\",\"toaster_info_text\":\"Anaemia - Hb level less than 11 in first or third trimester or Hb level less than 10.5 in second trimester.\\n\\nOR\\n\\nNo Hb test result recorded, but woman has pallor.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"respiratory_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Respiratory exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"respiratory_exam_sub_form\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"secondary_value\":[{\"key\":\"respiratory_exam_abnormal\",\"type\":\"check_box\",\"values\":[\"dyspnoea:Dyspnoea:true\",\"cough:Cough:true\",\"rapid_breathing:Rapid breathing:true\",\"slow_breathing:Slow breathing:true\",\"wheezing:Wheezing:true\",\"rales:Rales:true\",\"other:Other (specify):true\"],\"openmrs_attributes\":{\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},\"value_openmrs_attributes\":[{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"122496AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"143264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"125061AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"126356AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5209AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"165367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"127640AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"respiratory_exam_abnormal\",\"openmrs_entity_parent\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"respiratory_exam_abnormal_other\",\"type\":\"edit_text\",\"values\":[\"More tests\"],\"openmrs_attributes\":{\"openmrs_entity_parent\":\"1123AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}}]}],\"is-rule-check\":false,\"value\":\"3\"},{\"key\":\"toaster20\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has respiratory distress. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true},{\"key\":\"oximetry_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Oximetry (%)\",\"text_color\":\"#000000\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true},{\"key\":\"oximetry\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"relevance\":{\"step3:respiratory_exam\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"3\\\")\"}},\"is_visible\":true,\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster21\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Woman has low oximetry. Refer urgently to the hospital!\",\"toaster_info_text\":\"Procedure:\\n- Give oxygen\\n- Refer urgently to hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cardiac_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cardiac exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"cardiac_exam_sub_form\",\"openmrs_entity_parent\":\"165368AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster22\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal cardiac exam. Refer urgently to the hospital!\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"breast_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Breast exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"breast_exam_sub_form\",\"openmrs_entity_parent\":\"165369AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster23\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal breast exam. Refer for further investigation.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"abdominal_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Abdominal exam\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"abdominal_exam_sub_form\",\"openmrs_entity_parent\":\"165370AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster24\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal abdominal exam. Consider high level evaluation or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"pelvic_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Pelvic exam (visual)\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"3\",\"options\":[{\"key\":\"1\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"2\",\"text\":\"Normal\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"3\",\"text\":\"Abnormal\",\"specify_info\":\"specify...\",\"specify_widget\":\"check_box\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"pelvic_exam_sub_form\",\"openmrs_entity_parent\":\"165373AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster25\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal pelvic exam. Consider high level evaluation, specific syndromic treatment or referral.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"cervical_exam\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Cervical exam done?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"1\",\"options\":[{\"key\":\"1\",\"text\":\"Done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"specify_info\":\"specify cm cervix dilated...\",\"specify_widget\":\"normal_edit_text\",\"specify_info_color\":\"#8C8C8C\",\"secondary_suffix\":\"cm\",\"content_form\":\"cervical_exam_sub_form\"},{\"key\":\"2\",\"text\":\"Not done\",\"openmrs_entity_parent\":\"165374AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"1118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"toaster26_hidden\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}},\"src\":{\"key\":\"cervical_exam\",\"option_key\":\"1\",\"stepName\":\"step3\"}},\"value\":\"0\",\"step\":\"step3\",\"is-rule-check\":true},{\"key\":\"toaster26\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Cervix is more than 2 cm dilated. Please check for other signs and symptoms of labour (if GA is 37 weeks or later) or pre-term labour and other related complications (if GA is less than 37 weeks).\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}},\"is_visible\":false},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"oedema\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"extra_rel\":true,\"has_extra_rel\":\"yes\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"specify_info\":\"specify type...\",\"specify_widget\":\"radio_button\",\"specify_info_color\":\"#8C8C8C\",\"content_form\":\"oedema_present_sub_form\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"openmrs_entity_parent\":\"460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"is-rule-check\":false},{\"key\":\"oedema_severity\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Oedema severity\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"+\",\"text\":\"+\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++\",\"text\":\"++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"+++\",\"text\":\"+++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"++++\",\"text\":\"++++\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"164494AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the result for the dipstick test.\"},\"relevance\":{\"step3:oedema\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"is_visible\":false}]},\"step4\":{\"title\":\"Fetal Assessment\",\"fields\":[{\"key\":\"sfh_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Symphysis-fundal height (SFH) in centimetres (cm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false}},{\"key\":\"sfh\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"0.1\",\"err\":\"SFH must be greater than 0\"},\"v_max\":{\"value\":\"44\",\"err\":\"SFH must be less than or equal to 44\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"v_required\":{\"value\":\"false\",\"err\":\"Please enter the SFH\"}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_movement\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal movement felt?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165376AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"false\",\"err\":\"Please this field is required.\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heartbeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal heartbeat present?\",\"label_text_style\":\"bold\",\"text_color\":\"#000000\",\"options\":[{\"key\":\"yes\",\"text\":\"Yes\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},{\"key\":\"no\",\"text\":\"No\",\"value\":false,\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"165377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"fetal_heart_rate_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}}},{\"key\":\"fetal_heart_rate\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_min\":{\"value\":\"80\",\"err\":\"Fetal heartbeat must be equal or greater than 80\"},\"v_max\":{\"value\":\"200\",\"err\":\"Fetal heartbeat must be less than or equal to 200\"},\"v_numeric_integer\":{\"value\":\"true\",\"err\":\"Enter a valid sfh\"},\"relevance\":{\"step4:fetal_heartbeat\":{\"type\":\"string\",\"ex\":\"equalTo(., \\\"yes\\\")\"}},\"v_required\":{\"value\":\"true\",\"err\":\"Please specify if fetal heartbeat is present.\"}},{\"key\":\"toaster27\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"No fetal heartbeat observed. Refer to hospital.\",\"toaster_info_text\":\"Procedure:\\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\\n- Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster28\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Fetal heart rate out of normal range (110-160). Please have the woman lay on her left side for 15 minutes and check again.\",\"text_color\":\"#D56900\",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"fetal_heart_rate_repeat_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"Second fetal heart rate (bpm)\",\"text_color\":\"#000000\",\"v_required\":{\"value\":true},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_heart_rate_repeat\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1440AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"normal_edit_text\",\"edit_text_style\":\"bordered\",\"edit_type\":\"number\",\"v_required\":{\"value\":\"true\",\"err\":\"Please enter result for the second fetal heart rate\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"toaster29\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Abnormal fetal heart rate. Refer to hospital.\",\"text_color\":\"#E20000\",\"toaster_type\":\"problem\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_label\",\"type\":\"label\",\"label_text_style\":\"bold\",\"text\":\"No. of fetuses\",\"text_color\":\"#000000\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"no_of_fetuses\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165293AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"numbers_selector\",\"number_of_selectors\":\"5\",\"start_number\":\"1\",\"max_value\":\"8\",\"text_size\":\"16px\",\"text_color\":\"#000000\",\"selected_text_color\":\"#ffffff\",\"v_required\":{\"value\":false},\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}},\"value\":\"4\",\"editable\":true,\"read_only\":true},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\",\"relevance\":{\"step4:no_of_fetuses_unknown\":{\"ex-checkbox\":[{\"not\":[\"no_of_fetuses_unknown\"]}]}}},{\"key\":\"spacer\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"spacer\",\"type\":\"spacer\",\"spacer_height\":\"10sp\"},{\"key\":\"no_of_fetuses_unknown\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"check_box\",\"options\":[{\"key\":\"no_of_fetuses_unknown\",\"text\":\"No. of fetuses unknown\",\"value\":\"false\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165294AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"}]},{\"key\":\"preeclampsia_risk\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"hidden\",\"calculation\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-calculations-rules.yml\"}}}},{\"key\":\"toaster30\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"\",\"openmrs_entity_id\":\"\",\"type\":\"toaster_notes\",\"text\":\"Pre-eclampsia risk counseling\",\"text_color\":\"#D56900\",\"toaster_info_text\":\"The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. \",\"toaster_type\":\"warning\",\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}},{\"key\":\"fetal_presentation\",\"openmrs_entity_parent\":\"\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"type\":\"native_radio\",\"label\":\"Fetal presentation\",\"label_text_style\":\"bold\",\"label_info_text\":\"If multiple fetuses, indicate the fetal position of the first fetus to be delivered.\",\"options\":[{\"key\":\"unknown\",\"text\":\"Unknown\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"cephalic\",\"text\":\"Cephalic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"160091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"pelvic\",\"text\":\"Pelvic\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"146922AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"transverse\",\"text\":\"Transverse\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"112259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"},{\"key\":\"other\",\"text\":\"Other\",\"value\":\"false\",\"openmrs_entity\":\"concept\",\"openmrs_entity_id\":\"5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"openmrs_entity_parent\":\"\"}],\"v_required\":{\"value\":\"true\",\"err\":\"Fetal representation field is required\"},\"relevance\":{\"rules-engine\":{\"ex-rules\":{\"rules-file\":\"physical-exam-relevance-rules.yml\"}}}}]},\"global\":{\"site_ipv_assess\":true,\"site_anc_hiv\":true,\"site_ultrasound\":true,\"site_bp_tool\":true,\"pop_undernourish\":true,\"pop_anaemia_40\":true,\"pop_anaemia_20\":false,\"pop_low_calcium\":true,\"pop_tb\":true,\"pop_vita\":true,\"pop_helminth\":true,\"pop_hiv_incidence\":false,\"pop_hiv_prevalence\":false,\"pop_malaria\":true,\"pop_syphilis\":false,\"pop_hepb\":true,\"pop_hepb_screening\":true,\"pop_hepc\":true,\"gest_age_openmrs\":\"13\",\"gest_age\":\"\",\"urine_glucose\":\"\",\"previous_contact_no\":\"2\",\"gdm\":\"\",\"health_conditions\":\"[blood_disorder, epilepsy, hiv]\",\"last_contact_date\":\"18-02-2020\",\"contact_no\":\"3\",\"current_weight\":\"\",\"hb_result\":\"\",\"dm_in_preg\":\"\",\"prev_preg_comps\":\"[convulsions, tobacco_use, vacuum_delivery, 3rd_degree_tear]\",\"urine_nitrites\":\"\",\"age\":\"10\",\"previous_current_weight\":\"56\"},\"invisible_required_fields\":\"[bp_systolic_repeat_label, symp_sev_preeclampsia, pulse_rate_repeat, cant_record_bp_reason, bp_systolic_repeat, body_temp_repeat_label, urine_protein, bp_diastolic_repeat_label, pulse_rate_repeat_label, bp_diastolic_repeat, body_temp_repeat]\"}"; MainContactActivity mainContactActivitySpy = Mockito.spy(MainContactActivity.class); Whitebox.setInternalState(mainContactActivitySpy, "contactNo", 2); Set globalKeys = new HashSet<>(); From 048c87886d6b8c149c7507747a0f6f840d62acd0 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Mar 2021 13:43:49 +0300 Subject: [PATCH 099/302] :construction: updating profile overview display --- .../main/assets/config/contact-globals.yml | 18 + .../main/assets/config/profile-overview.yml | 440 +++++++++--------- .../main/assets/json.form/anc_profile.json | 2 +- .../fragment/ProfileContactsFragment.java | 6 +- .../fragment/ProfileOverviewFragment.java | 37 +- .../anc/library/util/ANCFormUtils.java | 2 - reference-app/build.gradle | 2 +- 7 files changed, 275 insertions(+), 232 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-globals.yml b/opensrp-anc/src/main/assets/config/contact-globals.yml index e1e88eb52..0dc6dbc54 100644 --- a/opensrp-anc/src/main/assets/config/contact-globals.yml +++ b/opensrp-anc/src/main/assets/config/contact-globals.yml @@ -86,7 +86,9 @@ fields: - "ifa_effects" - "medications" - "tt_immun_status" + - "tt_immun_status_value" - "flu_immun_status" + - "flu_immun_status_value" - "prev_preg_comps" - "other_symptoms" - "gravida" @@ -100,7 +102,9 @@ fields: - "iptp_sp1_date" - "iptp_sp2_date" - "tt1_date" + - "tt1_date_value" - "tt2_date" + - "tt2_date_value" - "tt3_date" - "tt1_date_done" - "tt2_date_done" @@ -111,6 +115,7 @@ fields: - "hepb2_date_done" - "deworm" - "flu_date" + - "flu_date_value" - "ipv_subject" --- form: anc_profile @@ -124,11 +129,17 @@ fields: - "hiv_test_result" - "hiv_positive" - "hiv_test_partner_result" + - "alcohol_substance_use" + - "alcohol_substance_use_value" + - "occupation" + - "occupation_value" --- form: anc_physical_exam fields: - "prev_preg_comps" + - "prev_preg_comps_value" - "health_conditions" + - "health_conditions_value" - "urine_glucose" - "urine_nitrites" - "hb_result" @@ -140,7 +151,9 @@ fields: - "gest_age_openmrs" - "last_contact_date" - "ipv_physical_signs_symptoms" + - "ipv_physical_signs_symptoms_value" - "ipv_signs_symptoms" + - "ipv_signs_symptoms_value" --- form: anc_symptoms_follow_up fields: @@ -158,13 +171,18 @@ fields: - "pe_risk_aspirin" - "tobacco_user" - "caffeine_intake" + - "caffeine_intake_value" - "shs_exposure" - "condom_use" - "alcohol_substance_use" + - "alcohol_substance_use_value" + - "other_substance_use" - "health_conditions" - "hypertension" - "ipv_physical_signs_symptoms" + - "ipv_physical_signs_symptoms_value" - "ipv_signs_symptoms" + - "ipv_signs_symptoms_value" --- form: anc_test fields: diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index f068042db..0686f98f5 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -3,341 +3,341 @@ properties_file_name: "profile_overview" group: overview_of_pregnancy sub_group: demographic_info fields: -- template: "{{profile_overview.overview_of_pregnancy.demographic_info.occupation}}: {occupation}" - relevance: "occupation == 'informal_employment_sex_worker'" - isRedFont: "true" + - template: "{{profile_overview.overview_of_pregnancy.demographic_info.occupation}}: {occupation_value}" + relevance: "occupation.contains('informal_employment_sex_worker')" + isRedFont: "true" --- sub_group: current_pregnancy fields: -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ga}}: {gest_age}" - relevance: "gest_age != ''" - isRedFont: "gest_age > 40" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ga}}: {gest_age}" + relevance: "gest_age != ''" + isRedFont: "gest_age > 40" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.edd}}: {edd}" - relevance: "edd != ''" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.edd}}: {edd}" + relevance: "edd != ''" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date}}: {ultrasound_date}" - relevance: "ultrasound_date != ''" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date}}: {ultrasound_date}" + relevance: "ultrasound_date != ''" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses}}: {no_of_fetuses}" - relevance: "no_of_fetuses != ''" - isRedFont: "no_of_fetuses > 1" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses}}: {no_of_fetuses}" + relevance: "no_of_fetuses != ''" + isRedFont: "no_of_fetuses > 1" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation}}: {fetal_presentation}" - relevance: "fetal_presentation != ''" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation}}: {fetal_presentation}" + relevance: "fetal_presentation != ''" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid}}: {amniotic_fluid}" - relevance: "amniotic_fluid != ''" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid}}: {amniotic_fluid}" + relevance: "amniotic_fluid != ''" -- template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location}}: {placenta_location}" - relevance: "placenta_location != ''" - isRedFont: "placenta_location.contains('Previa')" + - template: "{{profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location}}: {placenta_location}" + relevance: "placenta_location != ''" + isRedFont: "placenta_location.contains('Previa')" --- sub_group: obstetric_history fields: -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.gravida}}: {gravida}" - relevance: "gravida != ''" - isRedFont: "gravida >= 5" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.gravida}}: {gravida}" + relevance: "gravida != ''" + isRedFont: "gravida >= 5" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.parity}}: {parity}" - relevance: "parity != ''" - isRedFont: "parity >= 5" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.parity}}: {parity}" + relevance: "parity != ''" + isRedFont: "parity >= 5" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" - relevance: "miscarriages_abortions != ''" - isRedFont: "miscarriages_abortions > 1" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" + relevance: "miscarriages_abortions != ''" + isRedFont: "miscarriages_abortions > 1" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths}}: {stillbirths}" - relevance: "stillbirths != ''" - isRedFont: "stillbirths > 0" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths}}: {stillbirths}" + relevance: "stillbirths != ''" + isRedFont: "stillbirths > 0" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections}}: {c_sections}" - relevance: "c_sections != ''" - isRedFont: "stillbirths > 0" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections}}: {c_sections}" + relevance: "c_sections != ''" + isRedFont: "stillbirths > 0" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems}}: {prev_preg_comps}" - relevance: "!prev_preg_comps.isEmpty() && (!prev_preg_comps.contains('dont_know') || !prev_preg_comps.contains('none'))" - isRedFont: "true" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems}}: {prev_preg_comps_value}, {prev_preg_comps_other}" + relevance: "!prev_preg_comps.isEmpty() && (!prev_preg_comps.contains('dont_know') || !prev_preg_comps.contains('none'))" + isRedFont: "true" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used}}: {alcohol_substance_use}" - relevance: "(!alcohol_substance_use.contains('none') && !alcohol_substance_use.isEmpty()) " - isRedFont: "true" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used}}: {alcohol_substance_use_value},{other_substance_use}" + relevance: "(!alcohol_substance_use.contains('none') && !alcohol_substance_use.isEmpty())" + isRedFont: "true" -- template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used}}: {substances_used}" - relevance: "(!substances_used.contains('none') && !substances_used.isEmpty())" - isRedFont: "true" + - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used}}: {substances_used_value},{substances_used_other}" + relevance: "(!substances_used.contains('none') && !substances_used.isEmpty())" + isRedFont: "true" --- sub_group: medical_history fields: -- template: "{{profile_overview.overview_of_pregnancy.medical_history.blood_type}}: {blood_type}" - relevance: "blood_type != ''" + - template: "{{profile_overview.overview_of_pregnancy.medical_history.blood_type}}: {blood_type}" + relevance: "blood_type != ''" -- template: "{{profile_overview.overview_of_pregnancy.medical_history.allergies}}: {allergies}" - relevance: "allergies != ''" + - template: "{{profile_overview.overview_of_pregnancy.medical_history.allergies}}: {allergies}" + relevance: "allergies != ''" -- template: "{{profile_overview.overview_of_pregnancy.medical_history.surgeries}}: {surgeries}" - relevance: "surgeries != ''" + - template: "{{profile_overview.overview_of_pregnancy.medical_history.surgeries}}: {surgeries}" + relevance: "surgeries != ''" -- template: "{{profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions}}: {health_conditions}" - relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('dont_know')" + - template: "{{profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions}}: {health_conditions_value}" + relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('dont_know')" -- template: "{{profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date}}: {hiv_diagnosis_date}" - relevance: "hiv_diagnosis_date != ''" - isRedFont: "true" + - template: "{{profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date}}: {hiv_diagnosis_date}" + relevance: "hiv_diagnosis_date != ''" + isRedFont: "true" --- sub_group: weight fields: -- template: "{{profile_overview.overview_of_pregnancy.weight.bmi}}: {bmi}" - relevance: "bmi != ''" - isRedFont: "bmi < 18.5 || bmi >= 25" + - template: "{{profile_overview.overview_of_pregnancy.weight.bmi}}: {bmi}" + relevance: "bmi != ''" + isRedFont: "bmi < 18.5 || bmi >= 25" -- template: "{{profile_overview.overview_of_pregnancy.weight.weight_category}}: {weight_cat}" - relevance: "weight_cat !=''" - isRedFont: "weight_cat.contains('Underweight') || weight_cat.contains('Overweight') || weight_cat.contains('Obese')" + - template: "{{profile_overview.overview_of_pregnancy.weight.weight_category}}: {weight_cat}" + relevance: "weight_cat !=''" + isRedFont: "weight_cat.contains('Underweight') || weight_cat.contains('Overweight') || weight_cat.contains('Obese')" -- template: "{{profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy}}: {exp_weight_gain} kg" - relevance: "exp_weight_gain != ''" + - template: "{{profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy}}: {exp_weight_gain} kg" + relevance: "exp_weight_gain != ''" -- template: "{{profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far}}: {tot_weight_gain} kg" - relevance: "tot_weight_gain != ''" + - template: "{{profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far}}: {tot_weight_gain} kg" + relevance: "tot_weight_gain != ''" --- sub_group: medications fields: -- template: "{{profile_overview.overview_of_pregnancy.medications.current_medications}}: {medications}" - relevance: "medications != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.current_medications}}: {medications_value}" + relevance: "medications != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.medications_prescribed}}: {medications_prescribed}" - relevance: "medications_prescribed !='' " + - template: "{{profile_overview.overview_of_pregnancy.medications.medications_prescribed}}: {medications_prescribed}" + relevance: "medications_prescribed !='' " -- template: "{{profile_overview.overview_of_pregnancy.medications.calcium_compliance}}: {calcium_comply}" - relevance: "calcium_comply != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.calcium_compliance}}: {calcium_comply}" + relevance: "calcium_comply != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.calcium_side_effects}}: {calcium_effects}" - relevance: "calcium_effects != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.calcium_side_effects}}: {calcium_effects}" + relevance: "calcium_effects != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.ifa_compliance}}: {ifa_comply}" - relevance: "ifa_comply != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.ifa_compliance}}: {ifa_comply}" + relevance: "ifa_comply != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.ifa_side_effects}}: {ifa_effects}" - relevance: "ifa_effects != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.ifa_side_effects}}: {ifa_effects}" + relevance: "ifa_effects != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.aspirin_compliance}}: {aspirin_comply}" - relevance: "aspirin_comply != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.aspirin_compliance}}: {aspirin_comply}" + relevance: "aspirin_comply != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance}}: {vita_comply}" - relevance: "vita_comply != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance}}: {vita_comply}" + relevance: "vita_comply != ''" -- template: "{{profile_overview.overview_of_pregnancy.medications.penicillin_compliance}}: {penicillin_comply}" - relevance: "penicillin_comply != ''" + - template: "{{profile_overview.overview_of_pregnancy.medications.penicillin_compliance}}: {penicillin_comply}" + relevance: "penicillin_comply != ''" --- group: hospital_referral_reasons fields: -- template: "{{profile_overview.hospital_referral_reasons.woman_referred_to_hospital}}" - relevance: "referred_hosp == 'Yes'" + - template: "{{profile_overview.hospital_referral_reasons.woman_referred_to_hospital}}" + relevance: "referred_hosp == 'Yes'" -- template: "{{profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital}}: {referred_hosp_notdone}" - relevance: "referred_hosp == 'No'" - isRedFont: "true" + - template: "{{profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital}}: {referred_hosp_notdone}" + relevance: "referred_hosp == 'No'" + isRedFont: "true" -- template: "{{profile_overview.hospital_referral_reasons.danger_signs}}: {danger_signs}" - relevance: "!danger_signs.contains('danger_none') && !danger_signs.isEmpty()" + - template: "{{profile_overview.hospital_referral_reasons.danger_signs}}: {danger_signs}" + relevance: "!danger_signs.contains('danger_none') && !danger_signs.isEmpty()" -- template: "{{profile_overview.hospital_referral_reasons.severe_hypertension}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" - relevance: "severe_hypertension == 1 && global_contact_no == 1" + - template: "{{profile_overview.hospital_referral_reasons.severe_hypertension}}: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg" + relevance: "severe_hypertension == 1 && global_contact_no == 1" -- template: "{{profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia}" - relevance: "hypertension == 1 && symp_sev_preeclampsia != '' && symp_sev_preeclampsia != 'none'" + - template: "{{profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia}}: {symp_sev_preeclampsia}" + relevance: "hypertension == 1 && symp_sev_preeclampsia != '' && symp_sev_preeclampsia != 'none'" -- template: "{{profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis}}" - relevance: "preeclampsia == 1 && global_contact_no == 1" + - template: "{{profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis}}" + relevance: "preeclampsia == 1 && global_contact_no == 1" -- template: "{{profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis}}" - relevance: "severe_preeclampsia == 1 && global_contact_no == 1" + - template: "{{profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis}}" + relevance: "severe_preeclampsia == 1 && global_contact_no == 1" -- template: "{{profile_overview.hospital_referral_reasons.fever}}: {body_temp_repeat}ºC" - relevance: "body_temp_repeat >= 38" - isRedFont: "true" + - template: "{{profile_overview.hospital_referral_reasons.fever}}: {body_temp_repeat}ºC" + relevance: "body_temp_repeat >= 38" + isRedFont: "true" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_pulse_rate}}: {pulse_rate_repeat} bpm" - relevance: "pulse_rate_repeat < 60 || pulse_rate_repeat > 100" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_pulse_rate}}: {pulse_rate_repeat} bpm" + relevance: "pulse_rate_repeat < 60 || pulse_rate_repeat > 100" -- template: "{{profile_overview.hospital_referral_reasons.respiratory_distress}}: {respiratory_exam_abnormal}" - relevance: "respiratory_exam_abnormal != ''" + - template: "{{profile_overview.hospital_referral_reasons.respiratory_distress}}: {respiratory_exam_abnormal_value}" + relevance: "respiratory_exam_abnormal != ''" -- template: "{{profile_overview.hospital_referral_reasons.low_oximetry}}: {oximetry}%" - relevance: "oximetry < 92" - isRedFont: "true" + - template: "{{profile_overview.hospital_referral_reasons.low_oximetry}}: {oximetry}%" + relevance: "oximetry < 92" + isRedFont: "true" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_cardiac_exam}}: {cardiac_exam_abnormal}" - relevance: "!cardiac_exam_abnormal.contains('none')" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_cardiac_exam}}: {cardiac_exam_abnormal_value}" + relevance: "!cardiac_exam_abnormal.contains('none')" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_breast_exam}}: {breast_exam_abnormal}" - relevance: "!breast_exam_abnormal.contains('none')" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_breast_exam}}: {breast_exam_abnormal_value}" + relevance: "!breast_exam_abnormal.contains('none')" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_abdominal_exam}}: {abdominal_exam_abnormal}" - relevance: "!abdominal_exam_abnormal.contains('none')" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_abdominal_exam}}: {abdominal_exam_abnormal_value}" + relevance: "!abdominal_exam_abnormal.contains('none')" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_pelvic_exam}}: {pelvic_exam_abnormal}" - relevance: "!pelvic_exam_abnormal.contains('none')" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_pelvic_exam}}: {pelvic_exam_abnormal_value}" + relevance: "!pelvic_exam_abnormal.contains('none')" -- template: "{{profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed}}" - relevance: "fetal_heartbeat == 'No'" - isRedFont: "true" + - template: "{{profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed}}" + relevance: "fetal_heartbeat == 'No'" + isRedFont: "true" -- template: "{{profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" - relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" + - template: "{{profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat} bpm" + relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" --- group: risks_and_diagnoses fields: -- template: "High daily consumption of caffeine: {caffeine_intake}" - relevance: "caffeine_intake != '' && caffeine_intake != 'none'" - isRedFont: "true" + - template: "High daily consumption of caffeine: {caffeine_intake_value}" + relevance: "caffeine_intake != '' && caffeine_intake != 'none'" + isRedFont: "true" -- template: "Tobacco user or recently quit: {tobacco_user}" - relevance: "tobacco_user != '' && tobacco_user != 'no'" - isRedFont: "true" + - template: "Tobacco user or recently quit: {tobacco_user}" + relevance: "tobacco_user != '' && tobacco_user != 'no'" + isRedFont: "true" -- template: "Second-hand exposure to tobacco smoke: {shs_exposure}" - relevance: "shs_exposure == 'yes'" - isRedFont: "true" + - template: "Second-hand exposure to tobacco smoke: {shs_exposure}" + relevance: "shs_exposure == 'yes'" + isRedFont: "true" -- template: "Woman and her partner(s) do not use condoms: {condom_use}" - relevance: "condom_use == 'no'" - isRedFont: "true" + - template: "Woman and her partner(s) do not use condoms: {condom_use}" + relevance: "condom_use == 'no'" + isRedFont: "true" -- template: "Alcohol / substances currently using: {alcohol_substance_use} {other_substance_use}" - relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none'))" - isRedFont: "true" + - template: "Alcohol / substances currently using: {alcohol_substance_use_value} {other_substance_use}" + relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none'))" + isRedFont: "true" -- template: "Reduced or no fetal movement perceived by woman: {mat_percept_fetal_move}" - relevance: "mat_percept_fetal_move != '' && mat_percept_fetal_move != 'normal_fetal_move'" - isRedFont: "true" + - template: "Reduced or no fetal movement perceived by woman: {mat_percept_fetal_move}" + relevance: "mat_percept_fetal_move != '' && mat_percept_fetal_move != 'normal_fetal_move'" + isRedFont: "true" -- template: "Pre-eclampsia risk: {preeclampsia_risk}" - relevance: "preeclampsia_risk == 1" - isRedFont: "true" + - template: "Pre-eclampsia risk: {preeclampsia_risk}" + relevance: "preeclampsia_risk == 1" + isRedFont: "true" -- template: "HIV risk: {date}" - relevance: "hiv_risk == 1" - isRedFont: "true" + - template: "HIV risk: {date}" + relevance: "hiv_risk == 1" + isRedFont: "true" -- template: "Diabetes risk: {date} " - relevance: "gdm_risk == 1" - isRedFont: "true" + - template: "Diabetes risk: {date} " + relevance: "gdm_risk == 1" + isRedFont: "true" -- template: "Hypertension: {date}" - relevance: "hypertension == 1" - isRedFont: "true" + - template: "Hypertension: {date}" + relevance: "hypertension == 1" + isRedFont: "true" -- template: "Severe hypertension: {date}: {date}" - relevance: "severe_hypertension == 1" - isRedFont: "true" + - template: "Severe hypertension: {date}: {date}" + relevance: "severe_hypertension == 1" + isRedFont: "true" -- template: "Pre-eclampsia: {date}" - relevance: "preeclampsia == 1" - isRedFont: "true" + - template: "Pre-eclampsia: {date}" + relevance: "preeclampsia == 1" + isRedFont: "true" -- template: "Severe pre-eclampsia: {date}" - relevance: "severe_preeclampsia == 1" - isRedFont: "true" + - template: "Severe pre-eclampsia: {date}" + relevance: "severe_preeclampsia == 1" + isRedFont: "true" -- template: "Rh factor negative: {date}: {date}" - relevance: "rh_factor == 'negative'" - isRedFont: "true" + - template: "Rh factor negative: {date}: {date}" + relevance: "rh_factor == 'negative'" + isRedFont: "true" -- template: "HIV positive: {date}" - relevance: "hiv_positive == 1" - isRedFont: "true" + - template: "HIV positive: {date}" + relevance: "hiv_positive == 1" + isRedFont: "true" -- template: "Hepatitis B positive: {date}" - relevance: "hepb_positive == 1" - isRedFont: "true" + - template: "Hepatitis B positive: {date}" + relevance: "hepb_positive == 1" + isRedFont: "true" -- template: "Hepatitis C positive: {date}" - relevance: "hepc_positive == 1" - isRedFont: "true" + - template: "Hepatitis C positive: {date}" + relevance: "hepc_positive == 1" + isRedFont: "true" -- template: "Syphilis positive: {date}" - relevance: "syphilis_positive == 1" - isRedFont: "true" + - template: "Syphilis positive: {date}" + relevance: "syphilis_positive == 1" + isRedFont: "true" -- template: "Asymptomatic bacteriuria (ASB) infection: {date}" - relevance: "asb_positive == 1" - isRedFont: "true" + - template: "Asymptomatic bacteriuria (ASB) infection: {date}" + relevance: "asb_positive == 1" + isRedFont: "true" -- template: "Positive for Group B Streptococcus (GBS): {date}" - relevance: "urine_culture == 'positive - group b streptococcus (gbs)'" - isRedFont: "true" + - template: "Positive for Group B Streptococcus (GBS): {date}" + relevance: "urine_culture == 'positive - group b streptococcus (gbs)'" + isRedFont: "true" -- template: "Gestational Diabetes Mellitus (GDM): {date}" - relevance: "gdm = 1" - isRedFont: "true" + - template: "Gestational Diabetes Mellitus (GDM): {date}" + relevance: "gdm = 1" + isRedFont: "true" -- template: "Diabetes Mellitus (DM) in pregnancy: {date}" - relevance: "dm_in_preg = 1" - isRedFont: "true" + - template: "Diabetes Mellitus (DM) in pregnancy: {date}" + relevance: "dm_in_preg = 1" + isRedFont: "true" -- template: "Anaemia diagnosis: {date}" - relevance: "anaemic = 1" - isRedFont: "true" + - template: "Anaemia diagnosis: {date}" + relevance: "anaemic = 1" + isRedFont: "true" -- template: "TB screening positive: {date}" - relevance: "tb_screening_result == 'positive'" - isRedFont: "true" + - template: "TB screening positive: {date}" + relevance: "tb_screening_result == 'positive'" + isRedFont: "true" --- group: physiological_symptoms fields: -- template: "{{profile_overview.physiological_symptoms.physiological_symptoms}}: {phys_symptoms}" - relevance: "phys_symptoms != ''" -- template: "Persisting physiological symptoms: {phys_symptoms_persist}" - relevance: "phys_symptoms_persist != ''" - isRedFont: "true" + - template: "{{profile_overview.physiological_symptoms.physiological_symptoms}}: {phys_symptoms_value}" + relevance: "phys_symptoms != ''" + - template: "Persisting physiological symptoms: {phys_symptoms_persist_value}" + relevance: "phys_symptoms_persist != ''" + isRedFont: "true" --- group: birth_plan_counseling fields: -- template: "{{profile_overview.birth_plan_counseling.planned_birth_place}}: {delivery_place}" - relevance: "delivery_place != ''" + - template: "{{profile_overview.birth_plan_counseling.planned_birth_place}}: {delivery_place}" + relevance: "delivery_place != ''" -- template: "{{profile_overview.birth_plan_counseling.fp_method_accepted}}: {family_planning_type}" - relevance: "family_planning_type != ''" + - template: "{{profile_overview.birth_plan_counseling.fp_method_accepted}}: {family_planning_type}" + relevance: "family_planning_type != ''" --- group: malaria_prophylaxis fields: -- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_1}}: {date}" - relevance: "iptp_sp1 == 'Done'" + - template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_1}}: {date}" + relevance: "iptp_sp1 == 'Done'" -- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_2}}: {date}" - relevance: "iptp_sp2 == 'Done'" + - template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_2}}: {date}" + relevance: "iptp_sp2 == 'Done'" -- template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_3}}: {date}" - relevance: "iptp_sp3 == 'Done'" + - template: "{{profile_overview.malaria_prophylaxis.iptp_sp_dose_3}}: {date}" + relevance: "iptp_sp3 == 'Done'" --- group: immunisation_status fields: -- template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" - relevance: "tt_immun_status != ''" - isRedFont: "tt_immun_status == 'ttcv_not_received' || tt_immun_status == 'unknown'" + - template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status_value}" + relevance: "tt_immun_status != ''" + isRedFont: "tt_immun_status == 'ttcv_not_received' || tt_immun_status == 'unknown'" -- template: "{{profile_overview.immunisation_status.tt_dose_1}}: {tt1_date}" - relevance: "tt1_date == 'Done today' || tt1_date == 'Done earlier'" + - template: "{{profile_overview.immunisation_status.tt_dose_1}}: {tt1_date_value}" + relevance: "tt1_date == 'done_today' || tt1_date == 'done_earlier'" -- template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date}" - relevance: "tt2_date == 'Done today' || tt2_date == 'Done earlier'" + - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" + relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" -- template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" - relevance: "flu_immun_status != ''" - isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" + - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" + relevance: "flu_immun_status != ''" + isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" -- template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date}" - relevance: "flu_date == 'Done today' || flu_date == 'Done earlier'" \ No newline at end of file + - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" + relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 254c9c100..e06401b16 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -265,7 +265,7 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1542AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select one", + "openmrs_data_type": "select multiple", "type": "check_box", "label": "{{anc_profile.step1.occupation.label}}", "hint": "{{anc_profile.step1.occupation.hint}}", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index a1739b603..170b81286 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -57,8 +57,8 @@ public class ProfileContactsFragment extends BaseProfileFragment implements Prof private LinearLayout lastContactLayout; private LinearLayout testLayout; private LinearLayout testsDisplayLayout; - private ProfileContactsActionHandler profileContactsActionHandler = new ProfileContactsActionHandler(); - private ANCJsonFormUtils formUtils = new ANCJsonFormUtils(); + private final ProfileContactsActionHandler profileContactsActionHandler = new ProfileContactsActionHandler(); + private final ANCJsonFormUtils formUtils = new ANCJsonFormUtils(); private ProfileFragmentContract.Presenter presenter; private String baseEntityId; private String contactNo; @@ -67,7 +67,7 @@ public class ProfileContactsFragment extends BaseProfileFragment implements Prof private HashMap clientDetails; private View noHealthRecordLayout; private ScrollView profileContactsLayout; - private Utils utils = new Utils(); + private final Utils utils = new Utils(); public static ProfileContactsFragment newInstance(Bundle bundle) { Bundle args = bundle; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java index 35eaed0e0..b501baf0d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileOverviewFragment.java @@ -14,10 +14,13 @@ import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.ProfileActivity; import org.smartregister.anc.library.adapter.ProfileOverviewAdapter; +import org.smartregister.anc.library.contract.ProfileFragmentContract; import org.smartregister.anc.library.domain.ButtonAlertStatus; import org.smartregister.anc.library.domain.YamlConfig; import org.smartregister.anc.library.domain.YamlConfigItem; import org.smartregister.anc.library.domain.YamlConfigWrapper; +import org.smartregister.anc.library.model.Task; +import org.smartregister.anc.library.presenter.ProfileFragmentPresenter; import org.smartregister.anc.library.util.ConstantsUtils; import org.smartregister.anc.library.util.DBConstantsUtils; import org.smartregister.anc.library.util.FilePathUtils; @@ -33,7 +36,7 @@ /** * Created by ndegwamartin on 12/07/2018. */ -public class ProfileOverviewFragment extends BaseProfileFragment { +public class ProfileOverviewFragment extends BaseProfileFragment implements ProfileFragmentContract.View { private List yamlConfigListGlobal; private Button dueButton; private ButtonAlertStatus buttonAlertStatus; @@ -41,7 +44,9 @@ public class ProfileOverviewFragment extends BaseProfileFragment { private String contactNo; private View noHealthRecordLayout; private RecyclerView profileOverviewRecycler; - private Utils utils = new Utils(); + private ProfileFragmentContract.Presenter presenter; + private final Utils utils = new Utils(); + private HashMap clientDetails = new HashMap<>(); public static ProfileOverviewFragment newInstance(Bundle bundle) { Bundle bundles = bundle; @@ -56,13 +61,20 @@ public static ProfileOverviewFragment newInstance(Bundle bundle) { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + initializePresenter(); + } + + protected void initializePresenter() { + if (getActivity() == null || getActivity().getIntent() == null) { + return; + } + presenter = new ProfileFragmentPresenter(this); } @Override protected void onCreation() { if (getActivity() != null && getActivity().getIntent() != null) { - HashMap clientDetails = - (HashMap) getActivity().getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); + clientDetails = (HashMap) getActivity().getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); if (clientDetails != null) { buttonAlertStatus = Utils.getButtonAlertStatus(clientDetails, getActivity(), true); contactNo = String.valueOf(Utils.getTodayContact(clientDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT))); @@ -78,7 +90,7 @@ protected void onCreation() { protected void onResumption() { try { yamlConfigListGlobal = new ArrayList<>(); //This makes sure no data duplication happens - Facts facts = AncLibrary.getInstance().getPreviousContactRepository().getPreviousContactFacts(baseEntityId, contactNo, false); + Facts facts = presenter.getImmediatePreviousContact(clientDetails, baseEntityId, contactNo); Iterable ruleObjects = utils.loadRulesFiles(FilePathUtils.FileUtils.PROFILE_OVERVIEW); for (Object ruleObject : ruleObjects) { @@ -145,4 +157,19 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa return fragmentView; } + + @Override + public void setContactTasks(List contactTasks) { + // Implement here + } + + @Override + public void updateTask(Task task) { + // Implement here + } + + @Override + public void refreshTasksList(boolean refresh) { + // Implement here + } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 33a441014..7ad3add56 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -475,9 +475,7 @@ private static void processAbnormalValues(Facts facts, JSONObject jsonObject) th } public static String getSecondaryKey(JSONObject jsonObject) throws JSONException { - return getObjectKey(jsonObject) + ConstantsUtils.SuffixUtils.VALUE; - } /** diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 095a80446..e92198902 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 1 +ext.versionPatch = 2 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 6163743f74f7ba3993cd59cf5b7c1dc5e9913e77 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 12 Mar 2021 13:48:33 +0300 Subject: [PATCH 100/302] :construction: Update the app version --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index e92198902..11c0fe33a 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 2 +ext.versionPatch = 3 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 055826db2050f1a8a00731cb9d069706054836e3 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Sat, 13 Mar 2021 03:02:23 +0300 Subject: [PATCH 101/302] :construction: Update form bug fixes --- .../src/main/assets/config/contact-summary.yml | 8 ++++---- .../src/main/assets/config/profile-overview.yml | 8 ++------ .../assets/json.form/anc_counselling_treatment.json | 9 ++------- .../src/main/assets/json.form/anc_physical_exam.json | 9 ++------- .../sub_form/tests_hepatitis_b_sub_form.json | 1 - .../anc/library/activity/ContactJsonFormActivity.java | 2 +- .../library/task/BackPressedPersistPartialTask.java | 11 ++++++----- opensrp-anc/src/main/resources/anc_test.properties | 8 ++++---- .../src/main/resources/profile_overview.properties | 2 +- .../resources/tests_hepatitis_b_sub_form.properties | 1 - 10 files changed, 22 insertions(+), 37 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index 318bf7a80..ed93990e1 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -143,19 +143,19 @@ fields: group: immunisation_status fields: -- template: "{{contact_summary.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" +- template: "{{contact_summary.immunisation_status.tt_immunisation_status}}: {tt_immun_status_value}" relevance: "tt_immun_status_value != ''" -- template: "{{contact_summary.immunisation_status.tt_dose_1}}: {tt1_date_done}" +- template: "{{contact_summary.immunisation_status.tt_dose_1}}: {tt1_date_done_date_today_hidden} {tt1_date_done}" relevance: "tt1_date == 'done_today' || tt1_date == 'done_earlier'" -- template: "{{contact_summary.immunisation_status.tt_dose_2}}: {tt2_date_done}" +- template: "{{contact_summary.immunisation_status.tt_dose_2}}:{tt2_date_done_date_today_hidden} {tt2_date_done}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - template: "{{contact_summary.immunisation_status.tt_dose_not_given}}: {tt_dose_notdone_value}" relevance: "tt1_date == 'not_done' || tt2_date == 'not_done'" -- template: "{{contact_summary.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" +- template: "{{contact_summary.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" relevance: "flu_immun_status_value != ''" - template: "{{contact_summary.immunisation_status.flu_dose}}: {flu_date_done}" diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 0686f98f5..627701e5a 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -61,10 +61,6 @@ fields: relevance: "!prev_preg_comps.isEmpty() && (!prev_preg_comps.contains('dont_know') || !prev_preg_comps.contains('none'))" isRedFont: "true" - - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used}}: {alcohol_substance_use_value},{other_substance_use}" - relevance: "(!alcohol_substance_use.contains('none') && !alcohol_substance_use.isEmpty())" - isRedFont: "true" - - template: "{{profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used}}: {substances_used_value},{substances_used_other}" relevance: "(!substances_used.contains('none') && !substances_used.isEmpty())" isRedFont: "true" @@ -211,8 +207,8 @@ fields: relevance: "condom_use == 'no'" isRedFont: "true" - - template: "Alcohol / substances currently using: {alcohol_substance_use_value} {other_substance_use}" - relevance: "!other_substance_use.isEmpty() || (!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none'))" + - template: "Alcohol / substances currently using: {alcohol_substance_use_value}, {other_substance_use_value}" + relevance: "!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none')" isRedFont: "true" - template: "Reduced or no fetal movement perceived by woman: {mat_percept_fetal_move}" diff --git a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json index c9ed9efa7..d29d10cd1 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json +++ b/opensrp-anc/src/main/assets/json.form/anc_counselling_treatment.json @@ -3765,13 +3765,8 @@ "edit_type": "name", "relevance": { "step8:ipv_support_notdone": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] + "type": "string", + "ex": "equalTo(., \"other\")" } } }, diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 55c9f360e..4dd3e34de 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -2194,13 +2194,8 @@ "edit_type": "name", "relevance": { "step3:ipv_clinical_enquiry_not_done_reason": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] + "type": "string", + "ex": "equalTo(., \"other\")" } } }, diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json index 5684adf54..af56458c8 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json @@ -7,7 +7,6 @@ "openmrs_entity_id": "163725AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "label": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.label}}", "label_text_style": "bold", - "label_info_text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_status.label_info_text}}", "text_color": "#000000", "type": "extended_radio_button", "options": [ diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 5566f0a26..8d7da8e23 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -259,7 +259,7 @@ public void hideProgressDialog() { } /** - * Partially saves the Quick Check forms details then proceeds to the main contact page + * Partially saves the contact forms details then proceeds to the main contact page * * @author dubdabasoduba */ diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java index e5e9f12d9..a7713cb3c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/BackPressedPersistPartialTask.java @@ -10,10 +10,11 @@ import org.smartregister.anc.library.util.ConstantsUtils; public class BackPressedPersistPartialTask extends AsyncTask { - private Contact contact; - private ContactJsonFormActivity contactJsonFormActivity; - private Intent intent; - private String currentJsonState; + private final Contact contact; + private final ContactJsonFormActivity contactJsonFormActivity; + private final Intent intent; + private final String currentJsonState; + private final ANCFormUtils ancFormUtils = new ANCFormUtils(); public BackPressedPersistPartialTask(Contact contact, Context context, Intent intent, String currentJsonState) { this.contact = contact; @@ -27,7 +28,7 @@ protected Void doInBackground(Void... voids) { if (intent != null) { int contactNo = intent.getIntExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, 0); Contact currentContact = contact; - currentContact.setJsonForm(currentJsonState); + currentContact.setJsonForm(ancFormUtils.addFormDetails(currentJsonState)); currentContact.setContactNumber(contactNo); ANCFormUtils.persistPartial(intent.getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID), currentContact); } diff --git a/opensrp-anc/src/main/resources/anc_test.properties b/opensrp-anc/src/main/resources/anc_test.properties index ebeed0e39..abf44db85 100644 --- a/opensrp-anc/src/main/resources/anc_test.properties +++ b/opensrp-anc/src/main/resources/anc_test.properties @@ -14,8 +14,8 @@ anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where th anc_test.step2.title = Other anc_test.step2.accordion_hiv.accordion_info_title = HIV test anc_test.step2.accordion_blood_type.text = Blood Type test -anc_test.step1.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. -anc_test.step2.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. +anc_test.step1.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended. +anc_test.step2.accordion_hepatitis_b.accordion_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended. anc_test.step2.accordion_tb_screening.text = TB Screening anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. @@ -41,8 +41,8 @@ anc_test.step2.accordion_hiv.accordion_info_text = An HIV test is required for a anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test anc_test.step1.accordion_urine.text = Urine test anc_test.step1.accordion_hiv.accordion_info_text = An HIV test is required for all pregnant women at the first contact in pregnancy and again at the first contact of the 3rd trimester (28 weeks), if the HIV prevalence in the pregnant woman population is 5% or higher. A test isn't required if the woman is already confirmed HIV+. -anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. -anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. +anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). +anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). anc_test.step1.accordion_hiv.text = HIV test anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening anc_test.step2.accordion_hiv.text = HIV test diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 1c212a508..21c00e7a5 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -13,7 +13,7 @@ profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths = No. profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections = No. of C-sections profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems = Past pregnancy problems profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used = Past alcohol used -profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used = Past substances used +profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used = Past alcohol / substances used profile_overview.overview_of_pregnancy.medical_history.blood_type = Blood type profile_overview.overview_of_pregnancy.medical_history.allergies = Allergies profile_overview.overview_of_pregnancy.medical_history.surgeries = Surgeries diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties index e34aec44b..8e4f5b8f6 100644 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties +++ b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form.properties @@ -21,7 +21,6 @@ tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = BsAg laboratory- tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = HBsAg laboratory-based immunoassay (recommended) tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positive tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Hepatitis B test -tests_hepatitis_b_sub_form.step1.hepb_test_status.label_info_text = In settings where the proportion of HBsAg seroprevalence in the general population is 2% or higher or in settings where there is a national Hep B ANC routine screening program in place, or if the woman is HIV positive, injects drugs, or is a sex worker, then Hep B testing is recommended if the woman is not fully vaccinated against Hep B. tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negative tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Reason tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positive From c72de503825f36a2008c8350b896f352089c2566 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Sat, 13 Mar 2021 03:02:59 +0300 Subject: [PATCH 102/302] :arrow_up: Bump up version --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 11c0fe33a..b3ae595f6 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 3 +ext.versionPatch = 4 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 2ebed39a3c69332b508c3caa25839707de379767 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 17 Mar 2021 14:40:09 +0300 Subject: [PATCH 103/302] :construction: Updating the partial save on back pressed --- .../anc/library/activity/ContactJsonFormActivity.java | 5 +++-- opensrp-anc/src/main/resources/profile_overview.properties | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 8d7da8e23..4afa90d06 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -23,7 +23,6 @@ import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.fragment.ContactWizardJsonFormFragment; import org.smartregister.anc.library.helper.AncRulesEngineFactory; -import org.smartregister.anc.library.task.BackPressedPersistPartialTask; import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; @@ -151,7 +150,9 @@ public void onBackPressed() { getmJSONObject().optString(JsonFormConstants.ENCOUNTER_TYPE) + ":" + contactWizardJsonFormFragment.getPresenter().getInvalidFields().size()); setResult(RESULT_OK, intent); } - new BackPressedPersistPartialTask(getContact(), this, getIntent(), currentJsonState()).execute(); + + proceedToMainContactPage(); + // new BackPressedPersistPartialTask(getContact(), this, getIntent(), currentJsonState()).execute(); } public Contact getContact() { diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 21c00e7a5..63cc84f68 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -55,8 +55,8 @@ profile_overview.birth_plan_counseling.fp_method_accepted = FP method accepted profile_overview.malaria_prophylaxis.iptp_sp_dose_1 = IPTp-SP dose 1 profile_overview.malaria_prophylaxis.iptp_sp_dose_2 = IPTp-SP dose 2 profile_overview.malaria_prophylaxis.iptp_sp_dose_3 = IPTp-SP dose 3 -profile_overview.immunisation_status.tt_immunisation_status = TT immunisation status -profile_overview.immunisation_status.tt_dose_1 = TT dose #1 -profile_overview.immunisation_status.tt_dose_2 = TT dose #2 +profile_overview.immunisation_status.tt_immunisation_status = TTCV immunisation status +profile_overview.immunisation_status.tt_dose_1 = TTCV dose #1 +profile_overview.immunisation_status.tt_dose_2 = TTCV dose #2 profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation status profile_overview.immunisation_status.flu_dose = Flu dose \ No newline at end of file From 50c5a6122cda902d300214e3468d9566c0dabe87 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Wed, 17 Mar 2021 14:41:00 +0300 Subject: [PATCH 104/302] :construction: Update the gradle --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index b3ae595f6..494f0584b 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 4 +ext.versionPatch = 5 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 0487e3d5e3957a692e3cf13de43c0148d4d089c8 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Tue, 20 Apr 2021 11:08:30 +0300 Subject: [PATCH 105/302] :construction: Update summary pages --- opensrp-anc/src/main/assets/config/contact-summary.yml | 2 +- .../org/smartregister/anc/library/fragment/MeFragment.java | 4 ++-- reference-app/build.gradle | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/contact-summary.yml b/opensrp-anc/src/main/assets/config/contact-summary.yml index ed93990e1..d557ca4da 100644 --- a/opensrp-anc/src/main/assets/config/contact-summary.yml +++ b/opensrp-anc/src/main/assets/config/contact-summary.yml @@ -170,7 +170,7 @@ fields: - template: "{{contact_summary.medications.current_medications}}: {medications_value}" relevance: "!medications_value.isEmpty()" -- template: "{{contact_summary.medications.current_medications}}: {vita}, {alben_meben}, {mag_calc}, {nausea_pharma}, {antacid}, {penicillin}, {antibiotic}, {prep}, {sp}, {ifa}, {ifa_medication}, {aspirin}, {calcium}" +- template: "{{contact_summary.medications.medications_prescribed}}: {vita}, {alben_meben}, {mag_calc}, {nausea_pharma}, {antacid}, {penicillin}, {antibiotic}, {prep}, {sp}, {ifa}, {ifa_medication}, {aspirin}, {calcium}" relevance: "vita != '' || mag_calc != '' || nausea_pharma != '' || vita != '' || alben_meben != '' || antacid != '' || penicillin != '' || antibiotic != '' || prep != '' || sp != '' || ifa != '' || ifa_medication != '' || aspirin != '' || calcium != ''" isMultiWidget: true diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 1ed15b151..79d4812ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -167,8 +167,8 @@ private String getFullLanguage(Locale locale) { private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); - locales.put(getString(R.string.french_language), Locale.FRENCH); - //locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); + //locales.put(getString(R.string.french_language), Locale.FRENCH); + locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); } } \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 494f0584b..6e0ec52b4 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 5 +ext.versionPatch = 6 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From fa531d212acc3702c20c3c297c61d416c4574575 Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 30 Apr 2021 12:45:14 +0300 Subject: [PATCH 106/302] :commit: Updated the core client --- opensrp-anc/build.gradle | 4 ++-- reference-app/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 8bff42c38..bdd43d586 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -151,7 +151,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.6-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.10-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -162,7 +162,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.2.1300-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.3.3002-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 6e0ec52b4..5a24684b9 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -228,7 +228,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.6-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.0.10-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' @@ -240,7 +240,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.2.1300-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.3.3002-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' From 64e494d150460345c03c45d473680f742d31c82b Mon Sep 17 00:00:00 2001 From: Benjamin Mwalimu Date: Fri, 30 Apr 2021 14:02:06 +0300 Subject: [PATCH 107/302] :construction: Update the server URLs to the keycloak version --- reference-app/build.gradle | 4 ++-- .../org/smartregister/anc/application/AncApplication.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 5a24684b9..209f6c904 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -143,7 +143,7 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' @@ -159,7 +159,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc-stage.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 788b11d6b..ffc4474fc 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -43,7 +43,6 @@ */ public class AncApplication extends DrishtiApplication implements TimeChangedBroadcastReceiver.OnTimeChangedListener { private static CommonFtsObject commonFtsObject; - private String password; @Override public void onCreate() { From 9fb1f053ae6048efbf8d6431e1425c0475259c27 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Wed, 12 May 2021 13:54:38 +0500 Subject: [PATCH 108/302] integrate OptiBP widget in physical exam --- .../assets/json.form/anc_physical_exam.json | 187 +++++++++++++----- .../rule/physical-exam-relevance-rules.yml | 60 ++++++ .../library/activity/MainContactActivity.java | 11 ++ 3 files changed, 209 insertions(+), 49 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 4dd3e34de..bb7cd1a13 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -459,6 +459,42 @@ "title": "{{anc_physical_exam.step2.title}}", "next": "step3", "fields": [ + { + "key": "bp_measurement_method", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "check_box", + "label": "Which BP measurement method are you using?", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "optibp", + "manually" + ], + "options": [ + { + "key": "optibp", + "text": "OptiBP", + "value": false, + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "manually", + "text": "Manually", + "value": false, + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + } + ], + "v_required": { + "value": "true", + "err": "Please select measurement method" + } + }, { "key": "bp_systolic_label", "type": "label", @@ -469,14 +505,10 @@ "value": true }, "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "not": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -505,14 +537,10 @@ "err": "{{anc_physical_exam.step2.bp_systolic.v_required.err}}" }, "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "not": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -524,14 +552,10 @@ "type": "spacer", "spacer_height": "10sp", "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "not": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -545,14 +569,10 @@ "value": true }, "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "not": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -581,14 +601,10 @@ "err": "{{anc_physical_exam.step2.bp_diastolic.v_required.err}}" }, "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "not": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -607,7 +623,14 @@ "openmrs_entity": "", "openmrs_entity_id": "" } - ] + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } }, { "key": "cant_record_bp_reason", @@ -646,14 +669,54 @@ "err": "{{anc_physical_exam.step2.cant_record_bp_reason.v_required.err}}" }, "relevance": { - "step2:cant_record_bp": { - "ex-checkbox": [ - { - "or": [ - "cant_record_bp" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, + { + "key": "cant_record_bp_reason_opt", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "label": "Reason blood pressure not taken", + "type": "check_box", + "label_text_style": "bold", + "text_color": "#000000", + "options": [ + { + "key": "optibp_didnt_load", + "text": "OptiBP didn't load/respond", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "optibp_returned_error", + "text": "OptiBP returned an error/message", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "other", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason.options.other.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": "true", + "err": "{{anc_physical_exam.step2.cant_record_bp_reason.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } } } }, @@ -665,6 +728,32 @@ "type": "spacer", "spacer_height": "10sp" }, + { + "key": "record_bp_using_optibp_button", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "optibp", + "label": "Measure woman blood pressure using OptiBP", + "optibp_button_bg_color": "#d32f2f", + "optibp_button_text_color": "#FFFFFF", + "read_only": false, + "optibp_data": { + "clientId": "", + "clientOpenSRPId": "" + }, + "fields_to_use_value": [ + "bp_systolic", + "bp_diastolic" + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, { "key": "toaster7", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index a4860f2f7..98da3240d 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -1,4 +1,64 @@ --- +name: step2_bp_systolic_label +description: BP Systolic Label +priority: 1 +condition: "(step2_bp_measurement_method.contains('manually') || step2_bp_measurement_method.contains('optibp')) + && !step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_bp_systolic +description: BP Systolic Value +priority: 1 +condition: "(step2_bp_measurement_method.contains('manually') || step2_bp_measurement_method.contains('optibp')) + && !step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_bp_diastolic_label +description: BP Diastolic Label +priority: 1 +condition: "(step2_bp_measurement_method.contains('manually') || step2_bp_measurement_method.contains('optibp')) + && !step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_bp_diastolic +description: BP Diastolic Value +priority: 1 +condition: "(step2_bp_measurement_method.contains('manually') || step2_bp_measurement_method.contains('optibp')) + && !step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_cant_record_bp +description: BP Diastolic Value +priority: 1 +condition: "step2_bp_measurement_method.contains('manually') || step2_bp_measurement_method.contains('optibp')" +actions: + - "isRelevant = true" +--- +name: step2_record_bp_using_optibp_button +description: BP Measurement Widget +priority: 1 +condition: "step2_bp_measurement_method.contains('optibp') && !step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_cant_record_bp_reason +description: Cant record BP reason +priority: 1 +condition: "step2_bp_measurement_method.contains('manually') && step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- +name: step2_cant_record_bp_reason_opt +description: Cant record BP reason via OptiBP +priority: 1 +condition: "step2_bp_measurement_method.contains('optibp') && step2_cant_record_bp.contains('cant_record_bp')" +actions: + - "isRelevant = true" +--- name: step2_toaster7 description: BP measurement warning toaster priority: 1 diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index cc2775292..d7ae1093c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -9,6 +9,7 @@ import com.google.gson.reflect.TypeToken; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; +import com.vijay.jsonwizard.utils.FormUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -55,6 +56,7 @@ public class MainContactActivity extends BaseContactActivity implements ContactC private List globalValueFields = new ArrayList<>(); private List editableFields = new ArrayList<>(); private String baseEntityId; + private String womanOpenSRPId; private String womanAge = ""; private final List invisibleRequiredFields = new ArrayList<>(); private final String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, @@ -72,6 +74,7 @@ protected void onResume() { (Map) getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); if (womanDetails != null && womanDetails.size() > 0) { womanAge = String.valueOf(Utils.getAgeFromDate(womanDetails.get(DBConstantsUtils.KeyUtils.DOB))); + womanOpenSRPId = womanDetails.get(DBConstantsUtils.KeyUtils.ANC_ID); } if (!presenter.baseEntityIdExists()) { presenter.setBaseEntityId(baseEntityId); @@ -657,6 +660,14 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } } } + + if (fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_button")) { + if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { + fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); + } + JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId); + fieldObject.put(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA, optiBPData); + } } private void getValueMap(JSONObject object) throws JSONException { From 5f4e428c32d170801a3f5a9c0235338ea4684524 Mon Sep 17 00:00:00 2001 From: Allan O Date: Mon, 17 May 2021 11:17:11 +0300 Subject: [PATCH 109/302] :speech_balloon: Update severe pre-eclampsia note --- opensrp-anc/src/main/resources/anc_physical_exam.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index b7e1d45fc..bc6ea5ea3 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -88,7 +88,7 @@ anc_physical_exam.step3.toaster17.text = Abnormal pulse rate. Check again after anc_physical_exam.step1.toaster5.text = Increase daily energy and protein intake counseling anc_physical_exam.step2.urine_protein.options.none.text = None anc_physical_exam.step2.cant_record_bp_reason.label = Reason -anc_physical_exam.step2.toaster13.text = Severe pre-eclampsia diagnosis! Provide urgent treatment and refer to hospital! +anc_physical_exam.step2.toaster13.text = "Woman has severe pre-eclampsia - SBP of 160 mmHg or above and/or DBP of 110 mmHg or above and proteinuria 23+ OR woman has SBP of 140 mmHg or above and/or DBP of 90 mmHg or above and proteinuria 2+ with at least one symptom of severe pre-eclampsia.\n\nProcedure: \n- Give magnesium sulphate \n- Give appropriate anti-hypertensives \n- Revise the birth plan \n- Refer urgently to hospital!" anc_physical_exam.step3.pallor.label = Pallor present? anc_physical_exam.step4.fetal_movement.v_required.err = Please this field is required. anc_physical_exam.step4.title = Fetal Assessment From 8d72f7089a24caeaa0525d3835b7ad14c505e697 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Tue, 18 May 2021 15:43:06 +0500 Subject: [PATCH 110/302] Add 2nd OptiBP widget --- .../assets/json.form/anc_physical_exam.json | 28 ++++++++++++++++++- .../rule/physical-exam-relevance-rules.yml | 24 ++++++++++++---- .../library/activity/MainContactActivity.java | 5 ++-- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index bb7cd1a13..232be3f0d 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -734,7 +734,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "optibp", - "label": "Measure woman blood pressure using OptiBP", + "label": "Measure woman blood pressure using OptiBP main", "optibp_button_bg_color": "#d32f2f", "optibp_button_text_color": "#FFFFFF", "read_only": false, @@ -885,6 +885,32 @@ } } }, + { + "key": "record_bp_using_optibp_2nd_reading_button", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "optibp", + "label": "Measure woman blood pressure using OptiBP", + "optibp_button_bg_color": "#d32f2f", + "optibp_button_text_color": "#FFFFFF", + "read_only": false, + "optibp_data": { + "clientId": "", + "clientOpenSRPId": "" + }, + "fields_to_use_value": [ + "bp_systolic_repeat", + "bp_diastolic_repeat" + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "physical-exam-relevance-rules.yml" + } + } + } + }, { "key": "toaster8", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index 98da3240d..a319af013 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -41,7 +41,7 @@ actions: name: step2_record_bp_using_optibp_button description: BP Measurement Widget priority: 1 -condition: "step2_bp_measurement_method.contains('optibp') && !step2_cant_record_bp.contains('cant_record_bp')" +condition: "!(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) && step2_bp_measurement_method.contains('optibp') && !step2_cant_record_bp.contains('cant_record_bp')" actions: - "isRelevant = true" --- @@ -62,35 +62,47 @@ actions: name: step2_toaster7 description: BP measurement warning toaster priority: 1 -condition: "step2_bp_systolic >= 140 || step2_bp_diastolic >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_bp_systolic_repeat_label description: BP measurement priority: 1 -condition: "step2_bp_systolic >= 140 || step2_bp_diastolic >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_bp_systolic_repeat description: BP measurement priority: 1 -condition: "step2_bp_systolic >= 140 || step2_bp_diastolic >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_bp_diastolic_repeat_label description: BP measurement priority: 1 -condition: "step2_bp_systolic >= 140 || step2_bp_diastolic >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_bp_diastolic_repeat description: BP measurement priority: 1 -condition: "step2_bp_systolic >= 140 || step2_bp_diastolic >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" +actions: + - "isRelevant = true" +--- +name: step2_record_bp_using_optibp_2nd_reading_button +description: BP measurement method 2 +priority: 1 +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) && step2_bp_measurement_method.contains('optibp')" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index d7ae1093c..6eca344f9 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -303,7 +303,7 @@ private void processRequiredStepsField(JSONObject object) throws Exception { requiredFieldsMap.put(object.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_TYPE), 0); } if (contactNo > 1 && ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(encounterType) - && !PatientRepository.isFirstVisit(baseEntityId)) { + && !PatientRepository.isFirstVisit(baseEntityId)) { requiredFieldsMap.put(ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE, 0); } @@ -661,7 +661,8 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } } - if (fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_button")) { + if (fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_button") + || fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_2nd_reading_button")) { if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); } From cd72c21eb6d0b7e7513f2dce28b1bf2b9d7d0a95 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Wed, 19 May 2021 18:05:42 +0500 Subject: [PATCH 111/302] Fix relevance for symptoms selections --- .../main/assets/rule/physical-exam-relevance-rules.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index a319af013..4e73bcc90 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -109,21 +109,24 @@ actions: name: step2_toaster8 description: BP measurement warning toaster8 priority: 1 -condition: "step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_symp_sev_preeclampsia description: Check if the woman has any of the following symptoms of severe pre-eclampsia. priority: 1 -condition: "step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- name: step2_urine_protein description: Enter the result for the dipstick test - protein. priority: 1 -condition: "step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90" +condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) + && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" --- From cf95e7990b34d253d88ad8fdfbebbbf2ec1f99f5 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Thu, 20 May 2021 14:16:03 +0500 Subject: [PATCH 112/302] Fix relevance for symptoms selections 2 --- .../src/main/assets/json.form/anc_physical_exam.json | 2 +- .../src/main/assets/rule/physical-exam-relevance-rules.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 232be3f0d..507d7d70b 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -734,7 +734,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "optibp", - "label": "Measure woman blood pressure using OptiBP main", + "label": "Measure woman blood pressure using OptiBP", "optibp_button_bg_color": "#d32f2f", "optibp_button_text_color": "#FFFFFF", "read_only": false, diff --git a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml index 4e73bcc90..ebca97831 100644 --- a/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml +++ b/opensrp-anc/src/main/assets/rule/physical-exam-relevance-rules.yml @@ -109,7 +109,7 @@ actions: name: step2_toaster8 description: BP measurement warning toaster8 priority: 1 -condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) +condition: "(step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90) && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" @@ -117,7 +117,7 @@ actions: name: step2_symp_sev_preeclampsia description: Check if the woman has any of the following symptoms of severe pre-eclampsia. priority: 1 -condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) +condition: "(step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90) && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" @@ -125,7 +125,7 @@ actions: name: step2_urine_protein description: Enter the result for the dipstick test - protein. priority: 1 -condition: "(step2_bp_systolic >= 140 || step2_bp_diastolic >= 90) +condition: "(step2_bp_systolic_repeat >= 140 || step2_bp_diastolic_repeat >= 90) && (step2_bp_measurement_method.contains('optibp') || step2_bp_measurement_method.contains('manually'))" actions: - "isRelevant = true" From 7badc35fd7c523e0ab717fc6f51c8f65297984a9 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Thu, 20 May 2021 14:16:35 +0500 Subject: [PATCH 113/302] Update app version to v1.6.8 --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 209f6c904..fc52bab61 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 6 +ext.versionPatch = 8 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From b78a806cf409aa712b1ade71a933e738ffe72ae9 Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Fri, 21 May 2021 15:57:13 +0500 Subject: [PATCH 114/302] Update MLS strings for physical exam form --- .../assets/json.form/anc_physical_exam.json | 78 +++++++++---------- .../resources/anc_physical_exam.properties | 39 +++++++++- 2 files changed, 77 insertions(+), 40 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 507d7d70b..1130904c4 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -106,11 +106,11 @@ }, "v_min": { "value": "100", - "err": "Height must be equal or greater than 100" + "err": "{{anc_physical_exam.step1.height.v_min.err}}" }, "v_max": { "value": "200", - "err": "Height must be equal or less than 200" + "err": "{{anc_physical_exam.step1.height.v_max.err}}" } }, { @@ -168,11 +168,11 @@ }, "v_min": { "value": "30", - "err": "Weight must be equal or greater than 30" + "err": "{{anc_physical_exam.step1.pregest_weight.v_min.err}}" }, "v_max": { "value": "180", - "err": "Weight must be equal or less than 180" + "err": "{{anc_physical_exam.step1.pregest_weight.v_max.err}}" }, "v_required": { "value": "true", @@ -228,11 +228,11 @@ }, "v_min": { "value": "30", - "err": "Weight must be equal or greater than 30" + "err": "{{anc_physical_exam.step1.current_weight.v_min.err}}" }, "v_max": { "value": "180", - "err": "Weight must be equal or less than 180" + "err": "{{anc_physical_exam.step1.current_weight.v_max.err}}" }, "v_required": { "value": "true", @@ -465,7 +465,7 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "check_box", - "label": "Which BP measurement method are you using?", + "label": "{{anc_physical_exam.step2.bp_measurement_method.label}}", "label_text_style": "bold", "text_color": "#000000", "exclusive": [ @@ -475,7 +475,7 @@ "options": [ { "key": "optibp", - "text": "OptiBP", + "text": "{{anc_physical_exam.step2.bp_measurement_method.options.optibp.text}}", "value": false, "openmrs_entity": "", "openmrs_entity_id": "", @@ -483,7 +483,7 @@ }, { "key": "manually", - "text": "Manually", + "text": "{{anc_physical_exam.step2.bp_measurement_method.options.manually.text}}", "value": false, "openmrs_entity": "", "openmrs_entity_id": "", @@ -492,7 +492,7 @@ ], "v_required": { "value": "true", - "err": "Please select measurement method" + "err": "{{anc_physical_exam.step2.bp_measurement_method.v_required.err}}" } }, { @@ -526,11 +526,11 @@ }, "v_min": { "value": "20", - "err": "SBP must be equal or greater than 20" + "err": "{{anc_physical_exam.step2.bp_systolic.v_min.err}}" }, "v_max": { "value": "260", - "err": "SBP must be equal or less than 260" + "err": "{{anc_physical_exam.step2.bp_systolic.v_max.err}}" }, "v_required": { "value": "true", @@ -590,11 +590,11 @@ }, "v_min": { "value": "20", - "err": "DBP must be equal to or greater than 20" + "err": "{{anc_physical_exam.step2.bp_diastolic.v_min.err}}" }, "v_max": { "value": "260", - "err": "DBP must be equal to or less than 260" + "err": "{{anc_physical_exam.step2.bp_diastolic.v_max.err}}" }, "v_required": { "value": "true", @@ -681,21 +681,21 @@ "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165428AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "label": "Reason blood pressure not taken", + "label": "{{anc_physical_exam.step2.cant_record_bp_reason_opt.label}}", "type": "check_box", "label_text_style": "bold", "text_color": "#000000", "options": [ { "key": "optibp_didnt_load", - "text": "OptiBP didn't load/respond", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason_opt.options.optibp_didnt_load.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165386AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" }, { "key": "optibp_returned_error", - "text": "OptiBP returned an error/message", + "text": "{{anc_physical_exam.step2.cant_record_bp_reason_opt.options.optibp_returned_error.text}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165179AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -734,8 +734,8 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "optibp", - "label": "Measure woman blood pressure using OptiBP", - "optibp_button_bg_color": "#d32f2f", + "label": "{{anc_physical_exam.step2.record_bp_using_optibp_button.label}}", + "optibp_button_bg_color": "#EB5281", "optibp_button_text_color": "#FFFFFF", "read_only": false, "optibp_data": { @@ -810,11 +810,11 @@ }, "v_min": { "value": "20", - "err": "SBP must be equal or greater than 20" + "err": "{{anc_physical_exam.step2.bp_systolic_repeat.v_min.err}}" }, "v_max": { "value": "260", - "err": "SBP must be equal or less than 260" + "err": "{{anc_physical_exam.step2.bp_systolic_repeat.v_max.err}}" }, "v_required": { "value": "true", @@ -867,11 +867,11 @@ }, "v_min": { "value": "20", - "err": "DBP must be equal or greater than 20" + "err": "{{anc_physical_exam.step2.bp_diastolic_repeat.v_min.err}}" }, "v_max": { "value": "260", - "err": "DBP must be equal or less than 260" + "err": "{{anc_physical_exam.step2.bp_diastolic_repeat.v_max.err}}" }, "v_required": { "value": "true", @@ -891,8 +891,8 @@ "openmrs_entity": "concept", "openmrs_entity_id": "", "type": "optibp", - "label": "Measure woman blood pressure using OptiBP", - "optibp_button_bg_color": "#d32f2f", + "label": "{{anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.label}}", + "optibp_button_bg_color": "#EB5281", "optibp_button_text_color": "#FFFFFF", "read_only": false, "optibp_data": { @@ -1254,11 +1254,11 @@ }, "v_min": { "value": "35", - "err": "Temperature must be equal to or greater than 35" + "err": "{{anc_physical_exam.step3.body_temp.v_min.err}}" }, "v_max": { "value": "42", - "err": "Temperature must be equal to or less than 42" + "err": "{{anc_physical_exam.step3.body_temp.v_max.err}}" } }, { @@ -1326,11 +1326,11 @@ }, "v_min": { "value": "35", - "err": "Temperature must be equal to or greater than 35" + "err": "{{anc_physical_exam.step3.body_temp_repeat.v_min.err}}" }, "v_max": { "value": "42", - "err": "Temperature must be equal to or less than 42" + "err": "{{anc_physical_exam.step3.body_temp_repeat.v_max.err}}" } }, { @@ -1386,11 +1386,11 @@ }, "v_min": { "value": "20", - "err": "Pulse rate must be equal to or greater than 20" + "err": "{{anc_physical_exam.step3.pulse_rate.v_min.err}}" }, "v_max": { "value": "200", - "err": "Pulse rate must be equal to or less than 200" + "err": "{{anc_physical_exam.step3.pulse_rate.v_max.err}}" } }, { @@ -1450,11 +1450,11 @@ }, "v_min": { "value": "20", - "err": "Pulse rate must be equal to or greater than 20" + "err": "{{anc_physical_exam.step3.pulse_rate_repeat.v_min.err}}" }, "v_max": { "value": "200", - "err": "Pulse rate must be equal to or less than 200" + "err": "{{anc_physical_exam.step3.pulse_rate_repeat.v_max.err}}" }, "v_required": { "value": "true", @@ -2434,15 +2434,15 @@ "edit_type": "number", "v_min": { "value": "0.1", - "err": "SFH must be greater than 0" + "err": "{{anc_physical_exam.step4.sfh.v_min.err}}" }, "v_max": { "value": "44", - "err": "SFH must be less than or equal to 44" + "err": "{{anc_physical_exam.step4.sfh.v_max.err}}" }, "v_numeric_integer": { "value": "true", - "err": "Enter a valid sfh" + "err": "{{anc_physical_exam.step4.sfh.v_numeric_integer.err}}" }, "v_required": { "value": "false", @@ -2555,15 +2555,15 @@ "edit_type": "number", "v_min": { "value": "80", - "err": "Fetal heartbeat must be equal or greater than 80" + "err": "{{anc_physical_exam.step4.fetal_heart_rate.v_min.err}}" }, "v_max": { "value": "200", - "err": "Fetal heartbeat must be less than or equal to 200" + "err": "{{anc_physical_exam.step4.fetal_heart_rate.v_max.err}}" }, "v_numeric_integer": { "value": "true", - "err": "Enter a valid number" + "err": "{{anc_physical_exam.step4.fetal_heart_rate.v_numeric_integer.err}}" }, "relevance": { "step4:fetal_heartbeat": { diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index bc6ea5ea3..d50ae3722 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -182,4 +182,41 @@ anc_physical_exam.step3.ipv_subject_violence_types.label_info_text = What type(s anc_physical_exam.step3.ipv_subject_violence_types.options.phys_violence.text = Physical violence (e.g. slapping, kicking, burning) anc_physical_exam.step3.ipv_subject_violence_types.options.sexual_violence.text = Sexual violence anc_physical_exam.step3.ipv_subject_violence_types.options.emotional_abuse.text = Psychological or emotional abuse (e.g. being threatened or intimidated, controlling behaviors, such as taking away money) -anc_physical_exam.step3.ipv_subject_violence_types.options.family_member_violence.text = Violence by other family members (not intimate partner) \ No newline at end of file +anc_physical_exam.step3.ipv_subject_violence_types.options.family_member_violence.text = Violence by other family members (not intimate partner) +anc_physical_exam.step1.height.v_min.err = Height must be equal or greater than 100 +anc_physical_exam.step1.pregest_weight.v_min.err = Weight must be equal or greater than 30 +anc_physical_exam.step1.current_weight.v_max.err = Weight must be equal or less than 180 +anc_physical_exam.step2.bp_systolic.v_max.err = SBP must be equal or less than 260 +anc_physical_exam.step2.cant_record_bp_reason_opt.options.optibp_didnt_load.text = OptiBP didn't load/respond +anc_physical_exam.step3.pulse_rate.v_min.err = Pulse rate must be equal to or greater than 20 +anc_physical_exam.step2.cant_record_bp_reason_opt.options.optibp_returned_error.text = OptiBP returned an error/message +anc_physical_exam.step4.fetal_heart_rate.v_min.err = Fetal heartbeat must be equal or greater than 80 +anc_physical_exam.step4.sfh.v_min.err = SFH must be greater than 0 +anc_physical_exam.step2.bp_diastolic_repeat.v_min.err = DBP must be equal or greater than 20 +anc_physical_exam.step3.body_temp.v_max.err = Temperature must be equal to or less than 42 +anc_physical_exam.step2.bp_measurement_method.options.manually.text = Manually +anc_physical_exam.step2.bp_measurement_method.label = Which BP measurement method are you using? +anc_physical_exam.step2.cant_record_bp_reason_opt.label = Reason blood pressure not taken +anc_physical_exam.step2.bp_diastolic.v_max.err = DBP must be equal to or less than 260 +anc_physical_exam.step1.height.v_max.err = Height must be equal or less than 200 +anc_physical_exam.step3.pulse_rate_repeat.v_min.err = Pulse rate must be equal to or greater than 20 +anc_physical_exam.step2.bp_systolic_repeat.v_max.err = SBP must be equal or less than 260 +anc_physical_exam.step3.pulse_rate.v_max.err = Pulse rate must be equal to or less than 200 +anc_physical_exam.step2.record_bp_using_optibp_button.label = Measure woman blood pressure using OptiBP +anc_physical_exam.step2.bp_measurement_method.options.optibp.text = OptiBP +anc_physical_exam.step4.fetal_heart_rate.v_numeric_integer.err = Enter a valid number +anc_physical_exam.step2.bp_systolic.v_min.err = SBP must be equal or greater than 20 +anc_physical_exam.step1.current_weight.v_min.err = Weight must be equal or greater than 30 +anc_physical_exam.step4.fetal_heart_rate.v_max.err = Fetal heartbeat must be less than or equal to 200 +anc_physical_exam.step1.pregest_weight.v_max.err = Weight must be equal or less than 180 +anc_physical_exam.step4.sfh.v_numeric_integer.err = Enter a valid sfh +anc_physical_exam.step2.bp_diastolic.v_min.err = DBP must be equal to or greater than 20 +anc_physical_exam.step3.body_temp_repeat.v_max.err = Temperature must be equal to or greater than 35 +anc_physical_exam.step4.sfh.v_max.err = SFH must be less than or equal to 44 +anc_physical_exam.step3.body_temp.v_min.err = Temperature must be equal to or greater than 35 +anc_physical_exam.step2.bp_diastolic_repeat.v_max.err = DBP must be equal or less than 260 +anc_physical_exam.step2.bp_systolic_repeat.v_min.err = SBP must be equal or greater than 20 +anc_physical_exam.step3.pulse_rate_repeat.v_max.err = Pulse rate must be equal to or less than 200 +anc_physical_exam.step2.bp_measurement_method.v_required.err = Please select measurement method +anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.label = Measure woman blood pressure using OptiBP +anc_physical_exam.step3.body_temp_repeat.v_min.err = Temperature must be equal to or greater than 35 \ No newline at end of file From b2952fc4500267a149db1b89bdc650e63df2f9dd Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Wed, 2 Jun 2021 11:08:08 +0500 Subject: [PATCH 115/302] Update native-form to v2.1.0 --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index bdd43d586..4c350de8a 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -151,7 +151,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' - implementation('org.smartregister:opensrp-client-native-form:2.0.10-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.0-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index fc52bab61..1502831e3 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -228,7 +228,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.0.10-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.0-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From ba5f6be6a054499a7bf04b94d45d33dadbfdebbd Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Thu, 3 Jun 2021 10:49:58 +0500 Subject: [PATCH 116/302] Reference strings from constants class --- .../anc/library/activity/MainContactActivity.java | 5 +++-- .../anc/library/constants/ANCJsonFormConstants.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 opensrp-anc/src/main/java/org/smartregister/anc/library/constants/ANCJsonFormConstants.java diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 6eca344f9..88b2ab24a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -17,6 +17,7 @@ import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; +import org.smartregister.anc.library.constants.ANCJsonFormConstants; import org.smartregister.anc.library.contract.ContactContract; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.model.PartialContact; @@ -661,8 +662,8 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } } - if (fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_button") - || fieldObject.getString(JsonFormConstants.KEY).equals("record_bp_using_optibp_2nd_reading_button")) { + if (fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) + || fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND)) { if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/ANCJsonFormConstants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/ANCJsonFormConstants.java new file mode 100644 index 000000000..cc256be7d --- /dev/null +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/ANCJsonFormConstants.java @@ -0,0 +1,12 @@ +package org.smartregister.anc.library.constants; + +import com.vijay.jsonwizard.constants.JsonFormConstants; + +public class ANCJsonFormConstants extends JsonFormConstants { + + public static class KeyConstants { + public static final String OPTIBP_BUTTON = "record_bp_using_optibp_button"; + public static final String OPTIBP_BUTTON_SECOND = "record_bp_using_optibp_2nd_reading_button"; + } + +} From b5b94e1e84cbebec46f846acf3f1b606d6250a06 Mon Sep 17 00:00:00 2001 From: Shoaib Mushtaq Date: Wed, 13 Oct 2021 12:21:56 +0500 Subject: [PATCH 117/302] Fixed unused imports --- .../src/main/java/org/smartregister/anc/library/util/Utils.java | 2 -- .../org/smartregister/anc/library/model/LoginModelTest.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 48647406e..b58626e51 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -41,8 +41,6 @@ import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; import org.smartregister.anc.library.activity.ContactJsonFormActivity; import org.smartregister.anc.library.activity.ContactSummaryFinishActivity; -import org.smartregister.anc.library.activity.MainContactActivity; -import org.smartregister.anc.library.activity.ProfileActivity; import org.smartregister.anc.library.constants.AncAppPropertyConstants; import org.smartregister.anc.library.domain.ButtonAlertStatus; import org.smartregister.anc.library.domain.Contact; diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java index 1220a54b6..be1c23af6 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java @@ -10,8 +10,6 @@ import org.smartregister.login.model.BaseLoginModel; import org.smartregister.view.contract.BaseLoginContract; -import java.nio.charset.StandardCharsets; - /** * Created by ndegwamartin on 28/06/2018. */ From 235c1392d2da0b4512da2320ecb972b33ce611bc Mon Sep 17 00:00:00 2001 From: Hamza Ahmed Khan Date: Thu, 18 Nov 2021 17:08:03 +0500 Subject: [PATCH 118/302] Fix OptiBP App version --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 586a750ef..e4075640f 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 11 +ext.versionPatch = 10 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 0198444bb5e1204ae6c769097ad436d99f320db1 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 9 Dec 2021 10:20:25 +0300 Subject: [PATCH 119/302] Solved missing Task List --- reference-app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 6c034e58b..01f8cbfb7 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -143,7 +143,7 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -159,7 +159,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -217,7 +217,7 @@ private String generateVersionName() { if (ext.versionClassifier != null) { versionName += "-" + ext.versionClassifier } - return versionName; + return versionName } tasks.withType(Test) { From 9b84d3658ce98ba93934b56217be6b79d1a00e88 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 23 Dec 2021 12:45:26 +0500 Subject: [PATCH 120/302] version updated for the debug release --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 01f8cbfb7..ee264da50 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 10 +ext.versionPatch = 12 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From d8cd7a4d3d04dc4285f93ad25615884f531c1b70 Mon Sep 17 00:00:00 2001 From: vend Date: Fri, 7 Jan 2022 17:20:40 +0500 Subject: [PATCH 121/302] update the optibp widget on remeasurement prompt --- opensrp-anc/src/main/assets/json.form/anc_physical_exam.json | 1 + opensrp-anc/src/main/resources/anc_physical_exam.properties | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 1130904c4..eee158e90 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -894,6 +894,7 @@ "label": "{{anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.label}}", "optibp_button_bg_color": "#EB5281", "optibp_button_text_color": "#FFFFFF", + "optibp_button_text": "{{anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.text}}", "read_only": false, "optibp_data": { "clientId": "", diff --git a/opensrp-anc/src/main/resources/anc_physical_exam.properties b/opensrp-anc/src/main/resources/anc_physical_exam.properties index a2787bacf..83842dc53 100644 --- a/opensrp-anc/src/main/resources/anc_physical_exam.properties +++ b/opensrp-anc/src/main/resources/anc_physical_exam.properties @@ -217,6 +217,7 @@ anc_physical_exam.step2.bp_diastolic_repeat.v_max.err = DBP must be equal or les anc_physical_exam.step2.bp_systolic_repeat.v_min.err = SBP must be equal or greater than 20 anc_physical_exam.step3.pulse_rate_repeat.v_max.err = Pulse rate must be equal to or less than 200 anc_physical_exam.step2.bp_measurement_method.v_required.err = Please select measurement method -anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.label = Measure woman blood pressure using OptiBP +anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.label = Remeasure woman blood pressure using OptiBP +anc_physical_exam.step2.record_bp_using_optibp_2nd_reading_button.text = Remeasure anc_physical_exam.step3.body_temp_repeat.v_min.err = Temperature must be equal to or greater than 35 anc_physical_exam.step3.ipv_subject_violence_types.options.family_member_violence.text = Violence by other family members (not intimate partner) \ No newline at end of file From aad920418cbb251f3f318796b6f1e4eef7455f65 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 12 Jan 2022 10:36:45 +0300 Subject: [PATCH 122/302] Rules Engine Factory performance improvement --- opensrp-anc/build.gradle | 2 +- .../library/helper/AncRulesEngineFactory.java | 24 ++++--------------- reference-app/build.gradle | 2 +- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 8cb0080d9..f12736f6c 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -153,7 +153,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineFactory.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineFactory.java index 704c55a5f..5d5b201e3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineFactory.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/helper/AncRulesEngineFactory.java @@ -2,47 +2,31 @@ import android.content.Context; -import com.vijay.jsonwizard.rules.RuleConstant; + import com.vijay.jsonwizard.rules.RulesEngineFactory; import org.jeasy.rules.api.Facts; -import org.jeasy.rules.api.Rule; import org.json.JSONObject; import java.util.Map; public class AncRulesEngineFactory extends RulesEngineFactory { - private Map globalValues; - private AncRulesEngineHelper ancRulesEngineHelper; - private String selectedRuleName; + + private final AncRulesEngineHelper ancRulesEngineHelper; public AncRulesEngineFactory(Context context, Map globalValues, JSONObject mJSONObject) { super(context, globalValues); this.ancRulesEngineHelper = new AncRulesEngineHelper(context); this.ancRulesEngineHelper.setJsonObject(mJSONObject); - this.globalValues = globalValues; } @Override protected Facts initializeFacts(Facts facts) { - if (globalValues != null) { - for (Map.Entry entry : globalValues.entrySet()) { - facts.put(RuleConstant.PREFIX.GLOBAL + entry.getKey(), getValue(entry.getValue())); - } - - facts.asMap().putAll(globalValues); - } - - selectedRuleName = facts.get(RuleConstant.SELECTED_RULE); - + super.initializeFacts(facts); facts.put("helper", ancRulesEngineHelper); return facts; } - @Override - public boolean beforeEvaluate(Rule rule, Facts facts) { - return selectedRuleName != null && selectedRuleName.equals(rule.getName()); - } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index ee264da50..13d669986 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From d94cf6529568737aedd87c3786422360f4afba8d Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 13 Jan 2022 11:18:42 +0300 Subject: [PATCH 123/302] OPtiBP Delayed reponse on test page --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 13d669986..5f2b88083 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -159,7 +159,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', 'https://anc.labs.smartregister.org/opensrp/' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' From 617b75e5b58845eabb53327ee741532e8dd4a187 Mon Sep 17 00:00:00 2001 From: vend Date: Fri, 14 Jan 2022 12:38:20 +0500 Subject: [PATCH 124/302] upgraded native form library to 2.1.15 --- opensrp-anc/build.gradle | 4 +++- reference-app/build.gradle | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 8cb0080d9..755a5fc1e 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -153,7 +153,9 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + //implementation(project(':android-json-form-wizard')) + implementation('org.smartregister:opensrp-client-native-form:2.1.15-SNAPSHOT@aar') + { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index ee264da50..a16903b10 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 12 +ext.versionPatch = 13 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion @@ -229,7 +229,9 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + // implementation(project(':android-json-form-wizard')) + implementation('org.smartregister:opensrp-client-native-form:2.1.15-SNAPSHOT@aar') + { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 477acefbd90ea1cf206658abfa6b565e5e1cf933 Mon Sep 17 00:00:00 2001 From: vend Date: Tue, 18 Jan 2022 16:15:27 +0500 Subject: [PATCH 125/302] unique source id updated to 1 --- reference-app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index a16903b10..aedecce99 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -146,7 +146,7 @@ android { resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '2' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" @@ -162,7 +162,7 @@ android { resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '2' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" From f448e4afb51461d05a02c89e2f184bf4e394ed35 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 19 Jan 2022 16:58:47 +0300 Subject: [PATCH 126/302] Read data --- opensrp-anc/build.gradle | 2 +- .../repository/PreviousContactRepository.java | 29 ++++++++++++++++--- .../anc/library/util/ANCFormUtils.java | 2 +- reference-app/build.gradle | 2 +- reference-app/src/main/assets/app.properties | 3 +- 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 9086d8a3f..7b692a29f 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 5631313ae..93d95bf29 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; +import org.json.JSONException; +import org.json.JSONObject; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; import org.smartregister.anc.library.util.ANCFormUtils; @@ -52,7 +54,7 @@ public class PreviousContactRepository extends BaseRepository { private static final String INDEX_CONTACT_NO = "CREATE INDEX " + TABLE_NAME + "_" + CONTACT_NO + "_index ON " + TABLE_NAME + "(" + CONTACT_NO + " COLLATE NOCASE);"; - private String[] projectionArgs = new String[]{ID, CONTACT_NO, KEY, VALUE, BASE_ENTITY_ID, CREATED_AT}; + private final String[] projectionArgs = new String[]{ID, CONTACT_NO, KEY, VALUE, BASE_ENTITY_ID, CREATED_AT}; public static void createTable(SQLiteDatabase database) { database.execSQL(CREATE_TABLE_SQL); @@ -62,6 +64,17 @@ public static void createTable(SQLiteDatabase database) { database.execSQL(INDEX_CONTACT_NO); } + private static String readRadiaButtonText(JSONObject dbValues) { + String text = null; + try { + text = dbValues.get("text").toString(); + } catch (Exception e) { + Timber.e("Error occurred while reading text values" + e); + + } + return text; + } + public void savePreviousContact(PreviousContact previousContact) { if (previousContact == null) return; previousContact.setVisitDate(Utils.getDBDateToday()); @@ -321,9 +334,17 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), - mCursor.getString(mCursor.getColumnIndex(VALUE))); - +// previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), +// mCursor.getString(mCursor.getColumnIndex(VALUE))); + try{ + JSONObject object=new JSONObject(mCursor.getString(mCursor.getColumnIndex(VALUE))); + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), + object.get("text").toString()); + } + catch (JSONException e){ + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), + mCursor.getString(mCursor.getColumnIndex(VALUE))); + } } previousContactFacts.put(CONTACT_NO, selectionArgs[1]); return previousContactFacts; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index db2b9ce84..a80906877 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -384,7 +384,7 @@ private static void processRequiredStepsExpansionPanelValues(Facts facts, JSONOb for (int j = 0; j < expansionPanelValue.length(); j++) { JSONObject jsonObject = expansionPanelValue.getJSONObject(j); - ExpansionPanelItemModel expansionPanelItem = getExpansionPanelItem( + ExpansionPanelItemModel expansionPanelItem = getExpansionPanelItem( jsonObject.getString(JsonFormConstants.KEY), expansionPanelValue); if (jsonObject.has(JsonFormConstants.TYPE) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.getString(JsonFormConstants.TYPE)) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 6b63a7f9e..60f6b6ddb 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.11-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index 4fb7bd0bc..074102b57 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -4,4 +4,5 @@ SHOULD_VERIFY_CERTIFICATE=false SYNC_DOWNLOAD_BATCH_SIZE=100 CAN_SAVE_INITIAL_SITE_SETTING=true MAX_CONTACT_SCHEDULE_DISPLAYED=5 -language.switching.enabled=true \ No newline at end of file +language.switching.enabled=true +widget.radio.button.value.translated=true \ No newline at end of file From eea063b2e33157bcd12d14ff9310e367c1ace289 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 20 Jan 2022 15:32:33 +0300 Subject: [PATCH 127/302] Get text from JSON Object in Previous contact repository --- .../repository/PreviousContactRepository.java | 32 ++++++------------- .../anc/library/util/ConstantsUtils.java | 1 + reference-app/src/main/assets/app.properties | 2 +- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 93d95bf29..051894de1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.repository; import android.content.ContentValues; +import android.content.Context; import android.text.TextUtils; import android.util.Log; @@ -9,8 +10,8 @@ import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; -import org.json.JSONException; import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; import org.smartregister.anc.library.util.ANCFormUtils; @@ -64,16 +65,6 @@ public static void createTable(SQLiteDatabase database) { database.execSQL(INDEX_CONTACT_NO); } - private static String readRadiaButtonText(JSONObject dbValues) { - String text = null; - try { - text = dbValues.get("text").toString(); - } catch (Exception e) { - Timber.e("Error occurred while reading text values" + e); - - } - return text; - } public void savePreviousContact(PreviousContact previousContact) { if (previousContact == null) return; @@ -331,20 +322,17 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool } mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, null, null, orderBy, null); - if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { -// previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), -// mCursor.getString(mCursor.getColumnIndex(VALUE))); - try{ - JSONObject object=new JSONObject(mCursor.getString(mCursor.getColumnIndex(VALUE))); - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), - object.get("text").toString()); - } - catch (JSONException e){ - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), - mCursor.getString(mCursor.getColumnIndex(VALUE))); + Context context = AncLibrary.getInstance().getApplicationContext(); + String value = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.NATIVE_WIDGET_TRANSALATED_VALUE, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + JSONObject dbObject = new JSONObject(mCursor.getString(mCursor.getColumnIndex(VALUE))); + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), dbObject.get("text").toString()); + } else { + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), mCursor.getString(mCursor.getColumnIndex(VALUE))); } + } previousContactFacts.put(CONTACT_NO, selectionArgs[1]); return previousContactFacts; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index c025dca7b..a01f106ee 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -73,6 +73,7 @@ public interface Properties { String CAN_SAVE_SITE_INITIAL_SETTING = "CAN_SAVE_INITIAL_SITE_SETTING"; String MAX_CONTACT_SCHEDULE_DISPLAYED = "MAX_CONTACT_SCHEDULE_DISPLAYED"; String DUE_CHECK_STRATEGY = "DUE_CHECK_STRATEGY"; + String NATIVE_WIDGET_TRANSALATED_VALUE="NATIVE_WIDGET_TRANSALATED_VALUE"; } public interface DueCheckStrategy { diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index 074102b57..c61d48937 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -5,4 +5,4 @@ SYNC_DOWNLOAD_BATCH_SIZE=100 CAN_SAVE_INITIAL_SITE_SETTING=true MAX_CONTACT_SCHEDULE_DISPLAYED=5 language.switching.enabled=true -widget.radio.button.value.translated=true \ No newline at end of file +NATIVE_WIDGET_TRANSALATED_VALUE=true \ No newline at end of file From d6f519c34b7f9c24ab162b0baacf6eb6c6ec0309 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 24 Jan 2022 09:10:28 +0300 Subject: [PATCH 128/302] Fragment refactoring --- opensrp-anc/build.gradle | 2 +- .../ContactSummaryFinishActivity.java | 4 +- .../anc/library/activity/ProfileActivity.java | 1 + .../presenter/ProfileFragmentPresenter.java | 11 +- .../repository/PreviousContactRepository.java | 19 ++- .../anc/library/task/FinalizeContactTask.java | 6 +- .../anc/library/util/ANCFormUtils.java | 14 +- .../anc/library/util/ConstantsUtils.java | 3 +- .../smartregister/anc/library/util/Utils.java | 159 +++++++++--------- reference-app/build.gradle | 2 +- reference-app/src/main/assets/app.properties | 2 +- 11 files changed, 123 insertions(+), 100 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 7b692a29f..63c820d69 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.16-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.17-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java index c5850bf95..ed39e6d27 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.activity; import android.Manifest; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; @@ -36,6 +37,7 @@ import org.smartregister.util.PermissionUtils; import java.io.FileNotFoundException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -182,7 +184,7 @@ protected void onResumption() {//Overriden from Secured Activity } private void saveFinishForm() { - new FinalizeContactTask(this, mProfilePresenter, getIntent()).execute(); + new FinalizeContactTask(new WeakReference(this), mProfilePresenter, getIntent()).execute(); } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java index 294e8739a..0836f775a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ProfileActivity.java @@ -152,6 +152,7 @@ public void onClick(View view) { if (StringUtils.isNotBlank(baseEntityId)) { Utils.proceedToContact(baseEntityId, detailMap, getActivity()); + finish(); } } else { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 397c4a5b0..bfc52f443 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -66,12 +66,19 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri if (!TextUtils.isEmpty(attentionFlags)) { JSONObject jsonObject = new JSONObject(attentionFlags); + if (jsonObject.length() > 0) { Iterator keys = jsonObject.keys(); - while (keys.hasNext()) { String key = keys.next(); - facts.put(key, jsonObject.get(key)); + String attentionFlagValue = jsonObject.getString(key); + if (attentionFlagValue.charAt(0) == '{') { + JSONObject valueObject = new JSONObject(attentionFlagValue); + facts.put(key, valueObject.get("text")); + } else { + facts.put(key, jsonObject.get(key)); + } + } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 051894de1..d8e959f65 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -315,20 +315,29 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool Facts previousContactFacts = new Facts(); try { SQLiteDatabase db = getReadableDatabase(); - if (StringUtils.isNotBlank(baseEntityId) && StringUtils.isNotBlank(contactNo)) { selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; selectionArgs = new String[]{baseEntityId, getContactNo(contactNo, checkNegative)}; } - mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, null, null, orderBy, null); if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { Context context = AncLibrary.getInstance().getApplicationContext(); - String value = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.NATIVE_WIDGET_TRANSALATED_VALUE, "false"); + String value = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - JSONObject dbObject = new JSONObject(mCursor.getString(mCursor.getColumnIndex(VALUE))); - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), dbObject.get("text").toString()); + String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); + String previousContactKey = mCursor.getString(mCursor.getColumnIndex(KEY)); + if (previousContactValue.charAt(0) == '{') { + JSONObject previousContactObject = new JSONObject(previousContactValue); + if (previousContactObject.has("value") && previousContactObject.has("text")) { + previousContactFacts.put(previousContactKey, previousContactObject.get("text")); + } else { + previousContactFacts.put(previousContactKey, previousContactValue); + } + } else { + previousContactFacts.put(previousContactKey, previousContactValue); + } + } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), mCursor.getString(mCursor.getColumnIndex(VALUE))); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FinalizeContactTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FinalizeContactTask.java index 5dfd86d28..3626f197b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FinalizeContactTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FinalizeContactTask.java @@ -11,6 +11,7 @@ import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.util.ConstantsUtils; +import java.lang.ref.WeakReference; import java.util.HashMap; import timber.log.Timber; @@ -21,8 +22,8 @@ public class FinalizeContactTask extends AsyncTask { private ProfileContract.Presenter mProfilePresenter; private Intent intent; - public FinalizeContactTask(Context context, ProfileContract.Presenter mProfilePresenter, Intent intent) { - this.context = context; + public FinalizeContactTask(WeakReference context, ProfileContract.Presenter mProfilePresenter, Intent intent) { + this.context = context.get(); this.mProfilePresenter = mProfilePresenter; this.intent = intent; } @@ -64,5 +65,6 @@ protected void onPostExecute(Void result) { contactSummaryIntent.putExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP, newWomanProfileDetails); context.startActivity(contactSummaryIntent); + ((ContactSummaryFinishActivity) context).finish(); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index a80906877..60cb8eb69 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -381,10 +381,10 @@ private static void processRequiredStepsExpansionPanelValues(Facts facts, JSONOb JsonFormConstants.EXPANSION_PANEL.equals(fieldObject.getString(JsonFormConstants.TYPE)) && fieldObject.has(JsonFormConstants.VALUE)) { JSONArray expansionPanelValue = fieldObject.getJSONArray(JsonFormConstants.VALUE); - - for (int j = 0; j < expansionPanelValue.length(); j++) { + int length = expansionPanelValue.length(); + for (int j = 0; j < length; j++) { JSONObject jsonObject = expansionPanelValue.getJSONObject(j); - ExpansionPanelItemModel expansionPanelItem = getExpansionPanelItem( + ExpansionPanelItemModel expansionPanelItem = getExpansionPanelItem( jsonObject.getString(JsonFormConstants.KEY), expansionPanelValue); if (jsonObject.has(JsonFormConstants.TYPE) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.getString(JsonFormConstants.TYPE)) @@ -737,8 +737,9 @@ public void updateFormFields(JSONObject form, JSONArray fields) { /** * Update form properties file name according to the test fields populated - * @param taskValue {@link JSONObject} - * @param form {@link JSONObject} + * + * @param taskValue {@link JSONObject} + * @param form {@link JSONObject} */ public void updateFormPropertiesFileName(JSONObject form, JSONObject taskValue, Context context) { try { @@ -757,8 +758,9 @@ public void updateFormPropertiesFileName(JSONObject form, JSONObject taskValue, /** * get translated form name according to key + * * @param formKey {@link String} - * @param context {@link Context} + * @param context {@link Context} */ public String getTranslatedFormTitle(String formKey, Context context) { try { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java index a01f106ee..0f803764f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ConstantsUtils.java @@ -69,11 +69,12 @@ public abstract class ConstantsUtils { public static final String ANDROID_SWITCHER = "android:switcher:"; public static final String IS_FIRST_CONTACT = "is_first_contact"; + public interface Properties { String CAN_SAVE_SITE_INITIAL_SETTING = "CAN_SAVE_INITIAL_SITE_SETTING"; String MAX_CONTACT_SCHEDULE_DISPLAYED = "MAX_CONTACT_SCHEDULE_DISPLAYED"; String DUE_CHECK_STRATEGY = "DUE_CHECK_STRATEGY"; - String NATIVE_WIDGET_TRANSALATED_VALUE="NATIVE_WIDGET_TRANSALATED_VALUE"; + String WIDGET_VALUE_TRANSLATED = "widget.value.translated"; } public interface DueCheckStrategy { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 2c736d54e..52478760d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -346,8 +346,8 @@ private static String processValue(String key, Facts facts) { String value = ""; if (facts.get(key) instanceof String) { value = facts.get(key); - if((key.equals(ConstantsUtils.PrescriptionUtils.NAUSEA_PHARMA) || key.equals(ConstantsUtils.PrescriptionUtils.ANTACID) || key.equals(ConstantsUtils.PrescriptionUtils.PENICILLIN) || key.equals(ConstantsUtils.PrescriptionUtils.ANTIBIOTIC) || key.equals(ConstantsUtils.PrescriptionUtils.IFA_MEDICATION) || key.equals(ConstantsUtils.PrescriptionUtils.VITA) - || key.equals(ConstantsUtils.PrescriptionUtils.MAG_CALC) || key.equals(ConstantsUtils.PrescriptionUtils.ALBEN_MEBEN) || key.equals(ConstantsUtils.PrescriptionUtils.PREP) || key.equals(ConstantsUtils.PrescriptionUtils.SP) || key.equals(ConstantsUtils.PrescriptionUtils.IFA) || key.equals(ConstantsUtils.PrescriptionUtils.ASPIRIN) || key.equals(ConstantsUtils.PrescriptionUtils.CALCIUM)) && (value!= null && value.equals("0"))) + if ((key.equals(ConstantsUtils.PrescriptionUtils.NAUSEA_PHARMA) || key.equals(ConstantsUtils.PrescriptionUtils.ANTACID) || key.equals(ConstantsUtils.PrescriptionUtils.PENICILLIN) || key.equals(ConstantsUtils.PrescriptionUtils.ANTIBIOTIC) || key.equals(ConstantsUtils.PrescriptionUtils.IFA_MEDICATION) || key.equals(ConstantsUtils.PrescriptionUtils.VITA) + || key.equals(ConstantsUtils.PrescriptionUtils.MAG_CALC) || key.equals(ConstantsUtils.PrescriptionUtils.ALBEN_MEBEN) || key.equals(ConstantsUtils.PrescriptionUtils.PREP) || key.equals(ConstantsUtils.PrescriptionUtils.SP) || key.equals(ConstantsUtils.PrescriptionUtils.IFA) || key.equals(ConstantsUtils.PrescriptionUtils.ASPIRIN) || key.equals(ConstantsUtils.PrescriptionUtils.CALCIUM)) && (value != null && value.equals("0"))) return ANCFormUtils.keyToValueConverter(""); if (value != null && value.endsWith(OTHER_SUFFIX)) { @@ -374,16 +374,16 @@ private static String cleanValueResult(String result) { if (!nonEmptyItems.isEmpty() && nonEmptyItems.get(0).contains(":")) { String[] separatedLabel = nonEmptyItems.get(0).split(":"); itemLabel = separatedLabel[0]; - if (separatedLabel.length > 1 ) { + if (separatedLabel.length > 1) { nonEmptyItems.set(0, nonEmptyItems.get(0).split(":")[1]); if (StringUtils.isBlank(nonEmptyItems.get(0))) nonEmptyItems.remove(0); }//replace with extracted value } - if(!itemLabel.equals(StringUtils.join(nonEmptyItems.toArray(),",").replace(":",""))) - return itemLabel + (!TextUtils.isEmpty(itemLabel) ? ": " : "") + StringUtils.join(nonEmptyItems.toArray(), ","); + if (!itemLabel.equals(StringUtils.join(nonEmptyItems.toArray(), ",").replace(":", ""))) + return itemLabel + (!TextUtils.isEmpty(itemLabel) ? ": " : "") + StringUtils.join(nonEmptyItems.toArray(), ","); else - return itemLabel+":"; + return itemLabel + ":"; } public static void navigateToHomeRegister(Context context, boolean isRemote, Class homeRegisterActivityClass) { @@ -451,7 +451,7 @@ public static ButtonAlertStatus getButtonAlertStatus(Map details public static int getGestationAgeFromEDDate(String expectedDeliveryDate) { try { - if (!"0".equals(expectedDeliveryDate)) { + if (!"0".equals(expectedDeliveryDate) && expectedDeliveryDate.length() > 0) { LocalDate date = SQLITE_DATE_DF.withOffsetParsed().parseLocalDate(expectedDeliveryDate); LocalDate lmpDate = date.minusWeeks(ConstantsUtils.DELIVERY_DATE_WEEKS); Weeks weeks = Weeks.weeksBetween(lmpDate, LocalDate.now()); @@ -665,71 +665,6 @@ public static Boolean enableLanguageSwitching() { return AncLibrary.getInstance().getProperties().getPropertyBoolean(AncAppPropertyConstants.KeyUtils.LANGUAGE_SWITCHING_ENABLED); } - /** - * Loads yaml files that contain rules for the profile displays - * - * @param filename {@link String} - * @return - * @throws IOException - */ - public Iterable loadRulesFiles(String filename) throws IOException { - return AncLibrary.getInstance().readYaml(filename); - } - - /** - * Creates the {@link Task} partial contact form. This is done any time we update tasks. - * - * @param baseEntityId {@link String} - The patient base entity id - * @param context {@link Context} - application context - * @param contactNo {@link Integer} - the contact that the partial contact belongs in. - * @param doneTasks {@link List} - A list of all the done/completed tasks. - */ - public void createTasksPartialContainer(String baseEntityId, Context context, int contactNo, List doneTasks) { - try { - if (contactNo > 0 && doneTasks != null && doneTasks.size() > 0) { - JSONArray fields = createFieldsArray(doneTasks); - - ANCFormUtils ANCFormUtils = new ANCFormUtils(); - JSONObject jsonForm = ANCFormUtils.loadTasksForm(context); - if (jsonForm != null) { - ANCFormUtils.updateFormFields(jsonForm, fields); - } - - createAndPersistPartialContact(baseEntityId, contactNo, jsonForm); - } - } catch (JSONException e) { - Timber.e(e, " --> createTasksPartialContainer"); - } - } - - @NotNull - private JSONArray createFieldsArray(List doneTasks) throws JSONException { - JSONArray fields = new JSONArray(); - for (Task task : doneTasks) { - JSONObject field = new JSONObject(task.getValue()); - fields.put(field); - } - return fields; - } - - private void createAndPersistPartialContact(String baseEntityId, int contactNo, JSONObject jsonForm) { - Contact contact = new Contact(); - contact.setJsonForm(String.valueOf(jsonForm)); - contact.setContactNumber(contactNo); - contact.setFormName(ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS); - - ANCFormUtils.persistPartial(baseEntityId, contact); - } - - /** - * Returns the Contact Tasks Repository {@link ContactTasksRepository} - * - * @return contactTasksRepository - */ - public ContactTasksRepository getContactTasksRepositoryHelper() { - return AncLibrary.getInstance().getContactTasksRepository(); - } - public static String getDueCheckStrategy() { return getProperties(AncLibrary.getInstance().getApplicationContext()).getProperty(ConstantsUtils.Properties.DUE_CHECK_STRATEGY, ""); } @@ -871,7 +806,6 @@ public static void createPreviousVisitFromGroup(@NonNull String strGroup, @NonNu } } - public static Event addContactVisitDetails(String attentionFlagsString, Event event, String referral, String currentContactState) { event.addDetails(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS, attentionFlagsString); @@ -881,6 +815,71 @@ public static Event addContactVisitDetails(String attentionFlagsString, Event ev return event; } + /** + * Loads yaml files that contain rules for the profile displays + * + * @param filename {@link String} + * @return + * @throws IOException + */ + public Iterable loadRulesFiles(String filename) throws IOException { + return AncLibrary.getInstance().readYaml(filename); + } + + /** + * Creates the {@link Task} partial contact form. This is done any time we update tasks. + * + * @param baseEntityId {@link String} - The patient base entity id + * @param context {@link Context} - application context + * @param contactNo {@link Integer} - the contact that the partial contact belongs in. + * @param doneTasks {@link List} - A list of all the done/completed tasks. + */ + public void createTasksPartialContainer(String baseEntityId, Context context, int contactNo, List doneTasks) { + try { + if (contactNo > 0 && doneTasks != null && doneTasks.size() > 0) { + JSONArray fields = createFieldsArray(doneTasks); + + ANCFormUtils ANCFormUtils = new ANCFormUtils(); + JSONObject jsonForm = ANCFormUtils.loadTasksForm(context); + if (jsonForm != null) { + ANCFormUtils.updateFormFields(jsonForm, fields); + } + + createAndPersistPartialContact(baseEntityId, contactNo, jsonForm); + } + } catch (JSONException e) { + Timber.e(e, " --> createTasksPartialContainer"); + } + } + + @NotNull + private JSONArray createFieldsArray(List doneTasks) throws JSONException { + JSONArray fields = new JSONArray(); + for (Task task : doneTasks) { + JSONObject field = new JSONObject(task.getValue()); + fields.put(field); + } + return fields; + } + + private void createAndPersistPartialContact(String baseEntityId, int contactNo, JSONObject jsonForm) { + Contact contact = new Contact(); + contact.setJsonForm(String.valueOf(jsonForm)); + contact.setContactNumber(contactNo); + contact.setFormName(ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS); + + ANCFormUtils.persistPartial(baseEntityId, contact); + } + + /** + * Returns the Contact Tasks Repository {@link ContactTasksRepository} + * + * @return contactTasksRepository + */ + public ContactTasksRepository getContactTasksRepositoryHelper() { + return AncLibrary.getInstance().getContactTasksRepository(); + } + @Nullable public String getManifestVersion(Context context) { if (StringUtils.isNotBlank(CoreLibrary.getInstance().context().allSharedPreferences().fetchManifestVersion())) { @@ -899,7 +898,7 @@ public void createSavePdf(Context context, List yamlConfigList, Fact (new File(filePath)).delete(); } FileOutputStream fOut = new FileOutputStream(filePath); - PdfWriter pdfWriter = new PdfWriter((OutputStream) fOut); + PdfWriter pdfWriter = new PdfWriter(fOut); PdfDocument pdfDocument = new PdfDocument(pdfWriter); Document layoutDocument = new Document(pdfDocument); @@ -928,7 +927,7 @@ public void createSavePdf(Context context, List yamlConfigList, Fact layoutDocument.close(); - Toast.makeText(context, (CharSequence) (context.getResources().getString(R.string.pdf_saved_successfully) + filePath), Toast.LENGTH_SHORT).show(); + Toast.makeText(context, context.getResources().getString(R.string.pdf_saved_successfully) + filePath, Toast.LENGTH_SHORT).show(); } private String processUnderscores(String string) { @@ -949,11 +948,11 @@ private void prefillInjectableFacts(Facts facts, String template) { } private void addParagraph(Document layoutDocument, HorizontalAlignment horizontalAlignment, String headerDetails) { - layoutDocument.add((IBlockElement) (new Paragraph(headerDetails).setHorizontalAlignment(horizontalAlignment))); + layoutDocument.add(new Paragraph(headerDetails).setHorizontalAlignment(horizontalAlignment)); } private final String getAppPath(Context context) { - File dir = new File(Environment.getExternalStorageDirectory()+ File.separator + context.getResources().getString(R.string.app_name) + File.separator); + File dir = new File(Environment.getExternalStorageDirectory() + File.separator + context.getResources().getString(R.string.app_name) + File.separator); if (!dir.exists()) { dir.mkdir(); } @@ -962,19 +961,19 @@ private final String getAppPath(Context context) { } private final void addTitle(Document layoutDocument, String text) { - layoutDocument.add((IBlockElement) ((Paragraph) ((Paragraph) (new Paragraph(text)).setBold()).setUnderline()).setTextAlignment(TextAlignment.CENTER)); + layoutDocument.add((new Paragraph(text)).setBold().setUnderline().setTextAlignment(TextAlignment.CENTER)); } private final void addEmptyLine(Document layoutDocument, int number) { int i = 0; for (int j = number; i < j; ++i) { - layoutDocument.add((IBlockElement) (new Paragraph(" "))); + layoutDocument.add(new Paragraph(" ")); } } private final void addSubHeading(Document layoutDocument, String text) { - layoutDocument.add((IBlockElement) ((Paragraph) (new Paragraph(text)).setBold()).setHorizontalAlignment(HorizontalAlignment.LEFT)); + layoutDocument.add((new Paragraph(text)).setBold().setHorizontalAlignment(HorizontalAlignment.LEFT)); } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 60f6b6ddb..8d26f9666 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.16-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.17-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/assets/app.properties b/reference-app/src/main/assets/app.properties index c61d48937..7946eec03 100644 --- a/reference-app/src/main/assets/app.properties +++ b/reference-app/src/main/assets/app.properties @@ -5,4 +5,4 @@ SYNC_DOWNLOAD_BATCH_SIZE=100 CAN_SAVE_INITIAL_SITE_SETTING=true MAX_CONTACT_SCHEDULE_DISPLAYED=5 language.switching.enabled=true -NATIVE_WIDGET_TRANSALATED_VALUE=true \ No newline at end of file +widget.value.translated=true \ No newline at end of file From c9c68f766bc9fc0134d7063cbe49310b5706eb75 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 24 Jan 2022 13:21:49 +0300 Subject: [PATCH 129/302] Profile Fragment Amendment --- opensrp-anc/build.gradle | 2 +- .../anc/library/presenter/ProfileFragmentPresenter.java | 5 ++--- .../anc/library/repository/PreviousContactRepository.java | 1 + reference-app/build.gradle | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 63c820d69..2b68fa685 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.17-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.18-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index bfc52f443..28826dc51 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -66,15 +66,14 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri if (!TextUtils.isEmpty(attentionFlags)) { JSONObject jsonObject = new JSONObject(attentionFlags); - if (jsonObject.length() > 0) { Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); String attentionFlagValue = jsonObject.getString(key); if (attentionFlagValue.charAt(0) == '{') { - JSONObject valueObject = new JSONObject(attentionFlagValue); - facts.put(key, valueObject.get("text")); + JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); + facts.put(key, attentionFlagObject.get("text")); } else { facts.put(key, jsonObject.get(key)); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index d8e959f65..cef373b05 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -327,6 +327,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); String previousContactKey = mCursor.getString(mCursor.getColumnIndex(KEY)); + //CHeck whether value is null if (previousContactValue.charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has("value") && previousContactObject.has("text")) { diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8d26f9666..e6513bb6d 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.17-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.18-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From a2883da693b0896f932799740abba45b2e0843c0 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 24 Jan 2022 19:18:46 +0300 Subject: [PATCH 130/302] JSON Form Utils radio buttons amendment --- opensrp-anc/build.gradle | 2 +- .../anc/library/activity/ContactSummaryFinishActivity.java | 1 - .../java/org/smartregister/anc/library/model/ContactVisit.java | 2 +- .../anc/library/presenter/ProfileFragmentPresenter.java | 2 +- .../anc/library/repository/PreviousContactRepository.java | 3 +-- .../java/org/smartregister/anc/library/util/ANCFormUtils.java | 1 + reference-app/build.gradle | 2 +- 7 files changed, 6 insertions(+), 7 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 2b68fa685..a1902c6b6 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.18-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.20-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java index ed39e6d27..dcd2bfc80 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java @@ -135,7 +135,6 @@ public void process() throws Exception { } Iterable ruleObjects = AncLibrary.getInstance().readYaml(FilePathUtils.FileUtils.CONTACT_SUMMARY); - yamlConfigList = new ArrayList<>(); for (Object ruleObject : ruleObjects) { YamlConfig yamlConfig = (YamlConfig) ruleObject; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java index 95dce4ce9..1770e1a34 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java @@ -113,7 +113,7 @@ public ContactVisit invoke() throws Exception { return this; } - /** + /**StringUtils.isNotBlank(previousContactValue) * Returns a {@link Map} of the tasks keys and task id. These are used to delete the tasks in case a test with the same key is completed doing the current contact. * * @param baseEntityId {@link String} Client's base entity id. diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 28826dc51..fd3dad435 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -71,7 +71,7 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri while (keys.hasNext()) { String key = keys.next(); String attentionFlagValue = jsonObject.getString(key); - if (attentionFlagValue.charAt(0) == '{') { + if (attentionFlagValue.trim().charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); facts.put(key, attentionFlagObject.get("text")); } else { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index cef373b05..78fcd8a91 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -327,8 +327,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); String previousContactKey = mCursor.getString(mCursor.getColumnIndex(KEY)); - //CHeck whether value is null - if (previousContactValue.charAt(0) == '{') { + if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has("value") && previousContactObject.has("text")) { previousContactFacts.put(previousContactKey, previousContactObject.get("text")); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 60cb8eb69..53c0d383e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -387,6 +387,7 @@ private static void processRequiredStepsExpansionPanelValues(Facts facts, JSONOb ExpansionPanelItemModel expansionPanelItem = getExpansionPanelItem( jsonObject.getString(JsonFormConstants.KEY), expansionPanelValue); + if (jsonObject.has(JsonFormConstants.TYPE) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.getString(JsonFormConstants.TYPE)) || JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.getString(JsonFormConstants.TYPE)) || JsonFormConstants.EXTENDED_RADIO_BUTTON.equals(jsonObject.getString(JsonFormConstants.TYPE)))) { diff --git a/reference-app/build.gradle b/reference-app/build.gradle index e6513bb6d..a201ac941 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.18-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.20-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 51c45063056c470f37267c28e28620e5bfb86af2 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 25 Jan 2022 12:52:08 +0300 Subject: [PATCH 131/302] JSON Forms refactoring --- .../tests_blood_haemoglobin_sub_form.json | 3 +++ .../sub_form/tests_blood_type_sub_form.json | 6 ++++++ .../sub_form/tests_hepatitis_b_sub_form.json | 9 ++++++++ .../sub_form/tests_hepatitis_c_sub_form.json | 9 ++++++++ .../sub_form/tests_hiv_sub_form.json | 3 +++ .../sub_form/tests_syphilis_sub_form.json | 7 +++++++ .../sub_form/tests_urine_sub_form.json | 21 +++++++++++++++++++ 7 files changed, 58 insertions(+) diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json index 4f1c8d669..7728afe6c 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_haemoglobin_sub_form.json @@ -176,6 +176,7 @@ { "key": "complete_blood_count", "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text}}", + "translation_text": "option.complete_blood_count", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -183,6 +184,7 @@ { "key": "hb_test_haemoglobinometer", "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text}}", + "translation_text": "option.hb_test_haemoglobinometer", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -190,6 +192,7 @@ { "key": "hb_test_colour_scale", "text": "{{tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text}}", + "translation_text": "option.hb_test_colour_scale", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165396AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json index 9459494c0..5a76fe2d3 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json @@ -112,6 +112,7 @@ { "key": "a", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.a.text}}", + "translation_text": "{{option.a}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -119,6 +120,7 @@ { "key": "b", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.b.text}}", + "translation_text": "option.b", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -126,6 +128,7 @@ { "key": "ab", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.ab.text}}", + "translation_text": "option.ab", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -133,6 +136,7 @@ { "key": "o", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.o.text}}", + "translation_text": "option.o", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -162,6 +166,7 @@ { "key": "positive", "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.positive.text}}", + "translation_text": "{{option.positive}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -169,6 +174,7 @@ { "key": "negative", "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.negative.text}}", + "translation_text": "{{option.negative}}", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json index aefbbc36b..97f58dd32 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_b_sub_form.json @@ -171,6 +171,7 @@ { "key": "hbsag_lab_based", "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text}}", + "translation_text": "option.hbsag_lab_based", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "159430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -178,6 +179,7 @@ { "key": "hbsag_rdt", "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text}}", + "translation_text": "option.hbsag_rdt", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165301AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -185,6 +187,7 @@ { "key": "hbsag_dbs", "text": "{{tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text}}", + "translation_text": "option.hbsag_dbs", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161472AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -214,6 +217,7 @@ { "key": "positive", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -221,6 +225,7 @@ { "key": "negative", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -250,6 +255,7 @@ { "key": "positive", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -257,6 +263,7 @@ { "key": "negative", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -286,6 +293,7 @@ { "key": "positive", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -293,6 +301,7 @@ { "key": "negative", "text": "{{tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json index ac99449d3..8591b7c0d 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hepatitis_c_sub_form.json @@ -171,6 +171,7 @@ { "key": "anti_hcv_lab_based", "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text}}", + "translation_text": "option.anti_hcv_lab_based", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1325AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -178,6 +179,7 @@ { "key": "anti_hcv_rdt", "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text}}", + "translation_text": "option.anti_hcv_rdt", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165302AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -185,6 +187,7 @@ { "key": "anti_hcv_dbs", "text": "{{tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text}}", + "translation_text": "option.anti_hcv_dbs", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "161471AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -213,6 +216,7 @@ { "key": "positive", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -220,6 +224,7 @@ { "key": "negative", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -248,6 +253,7 @@ { "key": "positive", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -255,6 +261,7 @@ { "key": "negative", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -283,6 +290,7 @@ { "key": "positive", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -290,6 +298,7 @@ { "key": "negative", "text": "{{tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json index 6080f020c..36ff6fbcb 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json @@ -172,6 +172,7 @@ { "key": "positive", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -179,6 +180,7 @@ { "key": "negative", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -186,6 +188,7 @@ { "key": "inconclusive", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text}}", + "translation_text": "option.inconclusive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json index bcc93c67a..5e978cd9a 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json @@ -205,6 +205,7 @@ { "key": "rapid_syphilis", "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text}}", + "translation_text": "option.rapid_syphilis", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165303AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -247,6 +248,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -254,6 +256,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -282,6 +285,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -289,6 +293,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -317,6 +322,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -324,6 +330,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json index 6b9f44a9b..05d7d5a92 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json @@ -216,6 +216,7 @@ { "key": "positive_any", "text": "{{tests_urine_sub_form.step1.urine_culture.options.positive_any.text}}", + "translation_text": "option.positive_any", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165390AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -223,6 +224,7 @@ { "key": "positive_gbs", "text": "{{tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text}}", + "translation_text": "option.positive_gbs", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165391AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -266,6 +268,7 @@ { "key": "positive", "text": "{{tests_urine_sub_form.step1.urine_gram_stain.options.positive.text}}", + "translation_text": "option.positive", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -273,6 +276,7 @@ { "key": "negative", "text": "{{tests_urine_sub_form.step1.urine_gram_stain.options.negative.text}}", + "translation_text": "option.negative", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -302,6 +306,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.none.text}}", + "translation_text": "option.none", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -309,6 +314,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_nitrites.options.plus_one.text}}", + "translation_text": "option.+", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -359,6 +365,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.none.text}}", + "translation_text": "option.none", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -366,6 +373,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text}}", + "translation_text": "option.+", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -373,6 +381,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text}}", + "translation_text": "option.++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -380,6 +389,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text}}", + "translation_text": "option.+++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -387,6 +397,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text}}", + "translation_text": "option.++++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -416,6 +427,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_protein.options.none.text}}", + "translation_text": "option.none", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -423,6 +435,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_one.text}}", + "translation_text": "option.+", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -430,6 +443,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_two.text}}", + "translation_text": "option.++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -437,6 +451,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_three.text}}", + "translation_text": "option.+++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -444,6 +459,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_four.text}}", + "translation_text": "option.++++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -473,6 +489,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.none.text}}", + "translation_text": "option.none", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -480,6 +497,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_one.text}}", + "translation_text": "option.+", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -487,6 +505,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_two.text}}", + "translation_text": "option.++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -494,6 +513,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_three.text}}", + "translation_text": "option.+++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -501,6 +521,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_four.text}}", + "translation_text": "option.++++", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" From 502b3370607ffa7c3248832abd85fcd768b979fa Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 26 Jan 2022 14:55:07 +0300 Subject: [PATCH 132/302] Added ultra sound test translation --- opensrp-anc/build.gradle | 2 +- .../main/assets/config/attention-flags.yml | 4 + .../main/assets/config/profile-overview.yml | 12 +- .../main/assets/json.form/anc_profile.json | 14 +- .../assets/json.form/anc_quick_check.json | 3 + .../sub_form/tests_blood_type_sub_form.json | 12 +- .../sub_form/tests_hiv_sub_form.json | 9 +- .../sub_form/tests_syphilis_sub_form.json | 16 ++- .../sub_form/tests_urine_sub_form.json | 30 ++--- .../fragment/ProfileContactsFragment.java | 4 +- .../presenter/ProfileFragmentPresenter.java | 11 +- .../repository/PreviousContactRepository.java | 9 +- .../src/main/resources/anc_profile.properties | 2 +- .../main/resources/anc_profile_pt.properties | 2 +- .../main/resources/attention_flags.properties | 122 +++++++++--------- .../resources/attention_flags_pr.properties | 2 + .../resources/profile_overview.properties | 6 +- .../tests_ultrasound_sub_form_pt.properties | 75 +++++------ reference-app/build.gradle | 2 +- 19 files changed, 190 insertions(+), 147 deletions(-) create mode 100644 opensrp-anc/src/main/resources/attention_flags_pr.properties diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index a1902c6b6..5bc3ba282 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.20-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.14-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/config/attention-flags.yml b/opensrp-anc/src/main/assets/config/attention-flags.yml index 40b825a48..90fb8aeb7 100644 --- a/opensrp-anc/src/main/assets/config/attention-flags.yml +++ b/opensrp-anc/src/main/assets/config/attention-flags.yml @@ -182,3 +182,7 @@ fields: - template: "{{attention_flags.red.tb_screening_positive}}" relevance: "tb_screening_result == 'positive'" + + #added + - template: "{{profile_contact_test.ultrasound_tests.ultrasound_test}}:{{anc_profile.step2.ultrasound_done.options.yes.text}}" + relevance: "ultrasound_done!=''" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 627701e5a..2e76fa218 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -331,9 +331,13 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" - relevance: "flu_immun_status != ''" - isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" +# - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" +# relevance: "flu_immun_status != ''" +# isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" - relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" \ No newline at end of file + relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" + #added + - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}" + relevance: "flu_immun_status != ''" + isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index baa45ddff..ecf069e6a 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -148,7 +148,7 @@ "title": "{{anc_profile.step1.title}}", "next": "step2", "fields": [ - { + { "key": "headss_toaster", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", @@ -406,6 +406,7 @@ { "key": "yes", "text": "{{anc_profile.step2.lmp_known.options.yes.text}}", + "translation_text": "anc_profile.step2.lmp_known.options.yes.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -418,6 +419,7 @@ { "key": "no", "text": "{{anc_profile.step2.lmp_known.options.no.text}}", + "translation_text": "anc_profile.step2.lmp_known.options.no.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -496,6 +498,7 @@ { "key": "yes", "text": "{{anc_profile.step2.ultrasound_done.options.yes.text}}", + "translation_text": "anc_profile.step2.ultrasound_done.options.yes.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -508,6 +511,7 @@ { "key": "no", "text": "{{anc_profile.step2.ultrasound_done.options.no.text}}", + "translation_text": "anc_profile.step2.ultrasound_done.options.no.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2385,6 +2389,7 @@ { "key": "3_doses", "text": "{{anc_profile.step5.tt_immun_status.options.3_doses.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.3_doses.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "164134AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2392,6 +2397,7 @@ { "key": "1-4_doses", "text": "{{anc_profile.step5.tt_immun_status.options.1-4_doses.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.1-4_doses.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2399,6 +2405,7 @@ { "key": "ttcv_not_received", "text": "{{anc_profile.step5.tt_immun_status.options.ttcv_not_received.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.ttcv_not_received.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2406,6 +2413,7 @@ { "key": "unknown", "text": "{{anc_profile.step5.tt_immun_status.options.unknown.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.unknown.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2475,6 +2483,7 @@ { "key": "seasonal_flu_dose_given", "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2482,6 +2491,7 @@ { "key": "seasonal_flu_dose_missing", "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -2489,6 +2499,7 @@ { "key": "unknown", "text": "{{anc_profile.step5.flu_immun_status.options.unknown.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.unknown.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3360,7 +3371,6 @@ "step8:partner_hiv_status": { "type": "string", "ex": "equalTo(., \"positive\")" - } } } diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index 9dd7f4efe..ce2191254 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -69,6 +69,7 @@ { "key": "first_contact", "text": "{{anc_quick_check.step1.contact_reason.options.first_contact.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.first_contact.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165269AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -76,6 +77,7 @@ { "key": "scheduled_contact", "text": "{{anc_quick_check.step1.contact_reason.options.scheduled_contact.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.scheduled_contact.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -83,6 +85,7 @@ { "key": "specific_complaint", "text": "{{anc_quick_check.step1.contact_reason.options.specific_complaint.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.specific_complaint.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json index 5a76fe2d3..a6f001262 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_blood_type_sub_form.json @@ -112,7 +112,7 @@ { "key": "a", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.a.text}}", - "translation_text": "{{option.a}}", + "translation_text": "tests_blood_type_sub_form.step1.blood_type.options.a.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163115AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -120,7 +120,7 @@ { "key": "b", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.b.text}}", - "translation_text": "option.b", + "translation_text": "tests_blood_type_sub_form.step1.blood_type.options.b.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163116AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -128,7 +128,7 @@ { "key": "ab", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.ab.text}}", - "translation_text": "option.ab", + "translation_text": "tests_blood_type_sub_form.step1.blood_type.options.ab.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -136,7 +136,7 @@ { "key": "o", "text": "{{tests_blood_type_sub_form.step1.blood_type.options.o.text}}", - "translation_text": "option.o", + "translation_text": "tests_blood_type_sub_form.step1.blood_type.options.o.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "163118AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -166,7 +166,7 @@ { "key": "positive", "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.positive.text}}", - "translation_text": "{{option.positive}}", + "translation_text": "tests_blood_type_sub_form.step1.rh_factor.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -174,7 +174,7 @@ { "key": "negative", "text": "{{tests_blood_type_sub_form.step1.rh_factor.options.negative.text}}", - "translation_text": "{{option.negative}}", + "translation_text": "tests_blood_type_sub_form.step1.rh_factor.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json index 36ff6fbcb..47954f228 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_hiv_sub_form.json @@ -69,6 +69,7 @@ { "key": "stock_out", "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text}}", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165183AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -76,6 +77,7 @@ { "key": "expired_stock", "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text}}", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165299AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -83,6 +85,7 @@ { "key": "other", "text": "{{tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text}}", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text", "openmrs_entity_parent": "165300AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -172,7 +175,7 @@ { "key": "positive", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.positive.text}}", - "translation_text": "option.positive", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_result.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -180,7 +183,7 @@ { "key": "negative", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.negative.text}}", - "translation_text": "option.negative", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_result.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -188,7 +191,7 @@ { "key": "inconclusive", "text": "{{tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text}}", - "translation_text": "option.inconclusive", + "translation_text": "tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json index 5e978cd9a..29f31762a 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_syphilis_sub_form.json @@ -205,7 +205,7 @@ { "key": "rapid_syphilis", "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text}}", - "translation_text": "option.rapid_syphilis", + "translation_text": "tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165303AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -213,6 +213,7 @@ { "key": "rapid_plasma", "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text}}", + "translation_text": "tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1619AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -220,6 +221,7 @@ { "key": "off_site_lab", "text": "{{tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text}}", + "translation_text": "tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165389AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -248,7 +250,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text}}", - "translation_text": "option.positive", + "translation_text": "tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -256,7 +258,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text}}", - "translation_text": "option.negative", + "translation_text": "tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -285,7 +287,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text}}", - "translation_text": "option.positive", + "translation_text": "tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -293,7 +295,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text}}", - "translation_text": "option.negative", + "translation_text": "tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -322,7 +324,7 @@ { "key": "positive", "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text}}", - "translation_text": "option.positive", + "translation_text": "tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -330,7 +332,7 @@ { "key": "negative", "text": "{{tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text}}", - "translation_text": "option.negative", + "translation_text": "tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json index 05d7d5a92..68561d8a1 100644 --- a/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json +++ b/opensrp-anc/src/main/assets/json.form/sub_form/tests_urine_sub_form.json @@ -365,7 +365,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.none.text}}", - "translation_text": "option.none", + "translation_text": "tests_urine_sub_form.step1.urine_leukocytes.options.none.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -373,7 +373,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text}}", - "translation_text": "option.+", + "translation_text": "tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -381,7 +381,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text}}", - "translation_text": "option.++", + "translation_text": "tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -389,7 +389,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text}}", - "translation_text": "option.+++", + "translation_text": "tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -397,7 +397,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text}}", - "translation_text": "option.++++", + "translation_text": "tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -427,7 +427,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_protein.options.none.text}}", - "translation_text": "option.none", + "translation_text": "tests_urine_sub_form.step1.urine_protein.options.none.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -435,7 +435,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_one.text}}", - "translation_text": "option.+", + "translation_text": "tests_urine_sub_form.step1.urine_protein.options.plus_one.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -443,7 +443,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_two.text}}", - "translation_text": "option.++", + "translation_text": "tests_urine_sub_form.step1.urine_protein.options.plus_two.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -451,7 +451,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_three.text}}", - "translation_text": "option.+++", + "translation_text": "tests_urine_sub_form.step1.urine_protein.options.plus_three.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -459,7 +459,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_protein.options.plus_four.text}}", - "translation_text": "option.++++", + "translation_text": "tests_urine_sub_form.step1.urine_protein.options.plus_four.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -489,7 +489,7 @@ { "key": "none", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.none.text}}", - "translation_text": "option.none", + "translation_text": "tests_urine_sub_form.step1.urine_glucose.options.none.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -497,7 +497,7 @@ { "key": "+", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_one.text}}", - "translation_text": "option.+", + "translation_text": "tests_urine_sub_form.step1.urine_glucose.options.plus_one.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1362AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -505,7 +505,7 @@ { "key": "++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_two.text}}", - "translation_text": "option.++", + "translation_text": "tests_urine_sub_form.step1.urine_glucose.options.plus_two.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1363AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -513,7 +513,7 @@ { "key": "+++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_three.text}}", - "translation_text": "option.+++", + "translation_text": "tests_urine_sub_form.step1.urine_glucose.options.plus_three.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1364AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -521,7 +521,7 @@ { "key": "++++", "text": "{{tests_urine_sub_form.step1.urine_glucose.options.plus_four.text}}", - "translation_text": "option.++++", + "translation_text": "tests_urine_sub_form.step1.urine_glucose.options.plus_four.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1365AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java index 52e453669..463b4fd2f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/ProfileContactsFragment.java @@ -226,13 +226,11 @@ private void addOtherRuleObjects(Facts facts) throws IOException { } } - private void addAttentionFlagsRuleObjects(Facts facts) throws IOException { + private void addAttentionFlagsRuleObjects(Facts facts) { Iterable attentionFlagsRuleObjects = AncLibrary.getInstance().readYaml(FilePathUtils.FileUtils.ATTENTION_FLAGS); - for (Object ruleObject : attentionFlagsRuleObjects) { YamlConfig attentionFlagConfig = (YamlConfig) ruleObject; for (YamlConfigItem yamlConfigItem : attentionFlagConfig.getFields()) { - if (AncLibrary.getInstance().getAncRulesEngineHelper() .getRelevance(facts, yamlConfigItem.getRelevance())) { lastContactDetails.add(new YamlConfigWrapper(null, null, yamlConfigItem)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index fd3dad435..bd25add39 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -71,9 +71,16 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri while (keys.hasNext()) { String key = keys.next(); String attentionFlagValue = jsonObject.getString(key); - if (attentionFlagValue.trim().charAt(0) == '{') { + if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); - facts.put(key, attentionFlagObject.get("text")); + if (attentionFlagObject.has("text") && attentionFlagObject.has("key")) { + String translation_text; + translation_text = !attentionFlagObject.getString("text").isEmpty() ? "{" + attentionFlagObject.getString("text") + "}" : ""; + facts.put(key, translation_text); + } else { + facts.put(key, jsonObject.get(key)); + } + } else { facts.put(key, jsonObject.get(key)); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 78fcd8a91..4b32def3f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -326,16 +326,17 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool String value = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - String previousContactKey = mCursor.getString(mCursor.getColumnIndex(KEY)); if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has("value") && previousContactObject.has("text")) { - previousContactFacts.put(previousContactKey, previousContactObject.get("text")); + String translation_text; + translation_text = !previousContactObject.getString("text").isEmpty() ? "{" + previousContactObject.getString("text") + "}" : ""; + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); } else { - previousContactFacts.put(previousContactKey, previousContactValue); + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); } } else { - previousContactFacts.put(previousContactKey, previousContactValue); + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); } } else { diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 1d8d3ec50..90ba744c6 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -314,4 +314,4 @@ anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant w anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink -anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. \ No newline at end of file +anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. diff --git a/opensrp-anc/src/main/resources/anc_profile_pt.properties b/opensrp-anc/src/main/resources/anc_profile_pt.properties index e12909cbe..3c2396f88 100644 --- a/opensrp-anc/src/main/resources/anc_profile_pt.properties +++ b/opensrp-anc/src/main/resources/anc_profile_pt.properties @@ -314,4 +314,4 @@ anc_profile.step2.lmp_ultrasound_gest_age_selection.label = anc_profile.step2.ultrasound_done.label_info_title = O exame de ultrassom foi feito? anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = Data do diagnóstico do HIV desconhecida? anc_profile.step2.lmp_known.label_info_text = DUM = primeiro dia da Data da Última Menstruação. Se a data exata não é conhecida, mas sim o período do mês, use o dia 5 para o início do mês, dia 15 para o meio e dia 25 para o final do mês. Se completamente desconhecido, selecione "Não" e calcule a IG pelo ultrassom (ou pela AU ou palpação abdominal como um último recurso) -anc_profile.step2.ultrasound_toaster.toaster_info_title = Recomenda-se exame de ultrassom +anc_profile.step2.ultrasound_toaster.toaster_info_title = Recomenda-se exame de ultrassomprof diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index cc38a5477..99cdb6de6 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -1,59 +1,63 @@ -attention_flags.yellow.age = Age -attention_flags.yellow.gravida = Gravida -attention_flags.yellow.parity = Parity -attention_flags.yellow.past_pregnancy_problems = Past pregnancy problems -attention_flags.yellow.past_alcohol_substances_used = Past alcohol / substances used -attention_flags.yellow.pre_eclampsia_risk = Pre-eclampsia risk -attention_flags.yellow.diabetes_risk = Diabetes risk -attention_flags.yellow.surgeries = Surgeries -attention_flags.yellow.chronic_health_conditions = Chronic health conditions -attention_flags.yellow.high_daily_consumption_of_caffeine = High daily consumption of caffeine -attention_flags.yellow.second_hand_exposure_to_tobacco_smoke = Second-hand exposure to tobacco smoke -attention_flags.yellow.persistent_physiological_symptoms = Persistent physiological symptoms -attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman = Reduced or no fetal movement perceived by woman -attention_flags.yellow.weight_category = Weight category -attention_flags.yellow.abnormal_breast_exam = Abnormal breast exam -attention_flags.yellow.abnormal_abdominal_exam = Abnormal abdominal exam -attention_flags.yellow.abnormal_pelvic_exam = Abnormal pelvic exam -attention_flags.yellow.oedema_present = Oedema present -attention_flags.yellow.rh_factor_negative = Rh factor negative -attention_flags.red.danger_sign = Danger sign(s) -attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Employment that puts woman at increased risk for HIV (e.g. sex worker) -attention_flags.red.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended -attention_flags.red.no_of_stillbirths = No. of stillbirths -attention_flags.red.no_of_C_sections = No. of C-sections -attention_flags.red.allergies = Allergies -attention_flags.red.tobacco_user_or_recently_quit = Tobacco user or recently quit -attention_flags.red.woman_and_her_partner_do_not_use_condoms = Woman and her partner(s) do not use condoms -attention_flags.red.alcohol_substances_currently_using = Alcohol / substances currently using -attention_flags.red.hypertension_diagnosis = Hypertension diagnosis -attention_flags.red.severe_hypertension = Severe hypertension -attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia -attention_flags.red.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis -attention_flags.red.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis -attention_flags.red.fever = Fever -attention_flags.red.abnormal_pulse_rate = Abnormal pulse rate -attention_flags.red.anaemia_diagnosis = Anaemia diagnosis -attention_flags.red.respiratory_distress = Respiratory distress -attention_flags.red.low_oximetry = Low oximetry -attention_flags.red.abnormal_cardiac_exam = Abnormal cardiac exam -attention_flags.red.cervix_dilated = Cervix dilated -attention_flags.red.no_fetal_heartbeat_observed = No fetal heartbeat observed -attention_flags.red.abnormal_fetal_heart_rate = Abnormal fetal heart rate -attention_flags.red.no_of_fetuses = No. of fetuses -attention_flags.red.fetal_presentation = Fetal presentation -attention_flags.red.amniotic_fluid = Amniotic fluid -attention_flags.red.placenta_location = Placenta location -attention_flags.red.hiv_risk = HIV risk -attention_flags.red.hiv_positive = HIV positive -attention_flags.red.hepatitis_b_positive = Hepatitis B positive -attention_flags.red.hepatitis_c_positive = Hepatitis C positive -attention_flags.red.syphilis_positive = Syphilis positive -attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis = Asymptomatic bacteriuria (ASB) diagnosis -attention_flags.red.group_b_streptococcus_gbs_diagnosis = Group B Streptococcus (GBS) diagnosis -attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis = Gestational Diabetes Mellitus (GDM) diagnosis -attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis = Diabetes Mellitus (DM) in pregnancy diagnosis -attention_flags.red.hematocrit_ht = Hematocrit (Ht) -attention_flags.red.white_blood_cell_wbc_count = White blood cell (WBC) count -attention_flags.red.platelet_count = Platelet count -attention_flags.red.tb_screening_positive = TB screening positive +attention_flags.yellow.age=Age +attention_flags.yellow.gravida=Gravida +attention_flags.yellow.parity=Parity +attention_flags.yellow.past_pregnancy_problems=Past pregnancy problems +attention_flags.yellow.past_alcohol_substances_used=Past alcohol / substances used +attention_flags.yellow.pre_eclampsia_risk=Pre-eclampsia risk +attention_flags.yellow.diabetes_risk=Diabetes risk +attention_flags.yellow.surgeries=Surgeries +attention_flags.yellow.chronic_health_conditions=Chronic health conditions +attention_flags.yellow.high_daily_consumption_of_caffeine=High daily consumption of caffeine +attention_flags.yellow.second_hand_exposure_to_tobacco_smoke=Second-hand exposure to tobacco smoke +attention_flags.yellow.persistent_physiological_symptoms=Persistent physiological symptoms +attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman=Reduced or no fetal movement perceived by woman +attention_flags.yellow.weight_category=Weight category +attention_flags.yellow.abnormal_breast_exam=Abnormal breast exam +attention_flags.yellow.abnormal_abdominal_exam=Abnormal abdominal exam +attention_flags.yellow.abnormal_pelvic_exam=Abnormal pelvic exam +attention_flags.yellow.oedema_present=Oedema present +attention_flags.yellow.rh_factor_negative=Rh factor negative +attention_flags.red.danger_sign=Danger sign(s) +attention_flags.red.occupation_informal_employment_sex_worker=Occupation: Employment that puts woman at increased risk for HIV (e.g. sex worker) +attention_flags.red.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended +attention_flags.red.no_of_stillbirths=No. of stillbirths +attention_flags.red.no_of_C_sections=No. of C-sections +attention_flags.red.allergies=Allergies +attention_flags.red.tobacco_user_or_recently_quit=Tobacco user or recently quit +attention_flags.red.woman_and_her_partner_do_not_use_condoms=Woman and her partner(s) do not use condoms +attention_flags.red.alcohol_substances_currently_using=Alcohol / substances currently using +attention_flags.red.hypertension_diagnosis=Hypertension diagnosis +attention_flags.red.severe_hypertension=Severe hypertension +attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia +attention_flags.red.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis +attention_flags.red.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis +attention_flags.red.fever=Fever +attention_flags.red.abnormal_pulse_rate=Abnormal pulse rate +attention_flags.red.anaemia_diagnosis=Anaemia diagnosis +attention_flags.red.respiratory_distress=Respiratory distress +attention_flags.red.low_oximetry=Low oximetry +attention_flags.red.abnormal_cardiac_exam=Abnormal cardiac exam +attention_flags.red.cervix_dilated=Cervix dilated +attention_flags.red.no_fetal_heartbeat_observed=No fetal heartbeat observed +attention_flags.red.abnormal_fetal_heart_rate=Abnormal fetal heart rate +attention_flags.red.no_of_fetuses=No. of fetuses +attention_flags.red.fetal_presentation=Fetal presentation +attention_flags.red.amniotic_fluid=Amniotic fluid +attention_flags.red.placenta_location=Placenta location +attention_flags.red.hiv_risk=HIV risk +attention_flags.red.hiv_positive=HIV positive +attention_flags.red.hepatitis_b_positive=Hepatitis B positive +attention_flags.red.hepatitis_c_positive=Hepatitis C positive +attention_flags.red.syphilis_positive=Syphilis positive +attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis=Asymptomatic bacteriuria (ASB) diagnosis +attention_flags.red.group_b_streptococcus_gbs_diagnosis=Group B Streptococcus (GBS) diagnosis +attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis=Gestational Diabetes Mellitus (GDM) diagnosis +attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis=Diabetes Mellitus (DM) in pregnancy diagnosis +attention_flags.red.hematocrit_ht=Hematocrit (Ht) +attention_flags.red.white_blood_cell_wbc_count=White blood cell (WBC) count +attention_flags.red.platelet_count=Platelet count +attention_flags.red.tb_screening_positive=TB screening positive +#added +anc_profile.step2.ultrasound_done.options.yes.text=Ultra som feito hoje +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo +profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/attention_flags_pr.properties b/opensrp-anc/src/main/resources/attention_flags_pr.properties new file mode 100644 index 000000000..1e317d55d --- /dev/null +++ b/opensrp-anc/src/main/resources/attention_flags_pr.properties @@ -0,0 +1,2 @@ +anc_profile.step2.ultrasound_done.options.yes.text=Ultra som feito hoje +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 63cc84f68..da9eef5d8 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -59,4 +59,8 @@ profile_overview.immunisation_status.tt_immunisation_status = TTCV immunisation profile_overview.immunisation_status.tt_dose_1 = TTCV dose #1 profile_overview.immunisation_status.tt_dose_2 = TTCV dose #2 profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation status -profile_overview.immunisation_status.flu_dose = Flu dose \ No newline at end of file +profile_overview.immunisation_status.flu_dose = Flu dose + +#added +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo +profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test. \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties index 1ae18c26a..b5c5d078d 100644 --- a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties +++ b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties @@ -1,37 +1,38 @@ -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Especifique -tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Data em que o Ultrassom foi realizado. -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Especifique se outro motivo. -tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fúndica -tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Lateral direita -tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Lateral Esquerda -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Indisponível -tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Baixa -tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pélvico -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Outro (Especifique) -tests_ultrasound_sub_form.step1.ultrasound_date.hint = Data do Ultrassom -tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverso -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia -tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = Se for necessário atualizar IG, favor retorne ao Perfil, na página de Gestação Atual -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Exame precoce de Ultrassom realizado! -tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduzido -tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior -tests_ultrasound_sub_form.step1.ultrasound.label = Exame de Ultrassom -tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cefálico -tests_ultrasound_sub_form.step1.placenta_location.label = Localização da placenta -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. -tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Outro -tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior -tests_ultrasound_sub_form.step1.no_of_fetuses.label = N° de fetos -tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = N° de fetos -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Postergado para próxima consulta -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia -tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Aumentado -tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal -tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Favor, especificar não realização do Ultrassom -tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Prévia -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = Um Ultrassom precoce é essencial para estimar a idade gestacional, melhorar a detecção de anomalias fetais e de gestação múltipla, reduzir indução de parto em gestações prolongadas e melhorar a experiência que a mulher tem com sua gestação. -tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Motivo -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Exame precoce de Ultrassom realizado! -tests_ultrasound_sub_form.step1.fetal_presentation.label = Apresentação fetal -tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. -tests_ultrasound_sub_form.step1.amniotic_fluid.label = Líquido Amniótico +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint=Especifique +tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err=Data em que o Ultrassom foi realizado. +tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err=Especifique se outro motivo. +tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text=Fúndica +tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text=Lateral direita +tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text=Lateral Esquerda +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text=Indisponível +tests_ultrasound_sub_form.step1.placenta_location.options.low.text=Baixa +tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text=Pélvico +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text=Outro (Especifique) +tests_ultrasound_sub_form.step1.ultrasound_date.hint=Data do Ultrassom +tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text=Transverso +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text=Aconselhamento sobre risco de pré-eclâmpsia +tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text=Se for necessário atualizar IG, favor retorne ao Perfil, na página de Gestação Atual +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text=Exame precoce de Ultrassom realizado! +tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text=Reduzido +tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text=Posterior +tests_ultrasound_sub_form.step1.ultrasound.label=Exame de Ultrassom +tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text=Cefálico +tests_ultrasound_sub_form.step1.placenta_location.label=Localização da placenta +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text=Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. +tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text=Outro +tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text=Anterior +tests_ultrasound_sub_form.step1.no_of_fetuses.label=N° de fetos +tests_ultrasound_sub_form.step1.no_of_fetuses_label.text=N° de fetos +tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text=Postergado para próxima consulta +tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title=Aconselhamento sobre risco de pré-eclâmpsia +tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text=Aumentado +tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text=Normal +tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err=Favor, especificar não realização do Ultrassom +tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text=Prévia +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text=Um Ultrassom precoce é essencial para estimar a idade gestacional, melhorar a detecção de anomalias fetais e de gestação múltipla, reduzir indução de parto em gestações prolongadas e melhorar a experiência que a mulher tem com sua gestação. +tests_ultrasound_sub_form.step1.ultrasound_notdone.label=Motivo +tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title=Exame precoce de Ultrassom realizado! +tests_ultrasound_sub_form.step1.fetal_presentation.label=Apresentação fetal +tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text=Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. +tests_ultrasound_sub_form.step1.amniotic_fluid.label=Líquido Amniótico +anc_profile.step2.ultrasound_done.options.yes.text=sebastian_utrasound_testing *********** diff --git a/reference-app/build.gradle b/reference-app/build.gradle index a201ac941..09fc8b15e 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.20-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.14-dev-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 9e39752e71936ac00da0d7267e9f6f243aec1808 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 27 Jan 2022 12:17:17 +0300 Subject: [PATCH 133/302] QA Release --- .../anc/library/fragment/MeFragment.java | 3 +- opensrp-anc/src/main/res/values/strings.xml | 1 + .../main/resources/attention_flags.properties | 4 +- .../resources/attention_flags_ind.properties | 2 + .../resources/attention_flags_pr.properties | 2 - .../resources/profile_overview.properties | 4 +- .../resources/profile_overview_ind.properties | 65 +++++++++ .../PreviousContactRepositoryTest.java | 132 ++++++++++++++++++ 8 files changed, 206 insertions(+), 7 deletions(-) create mode 100644 opensrp-anc/src/main/resources/attention_flags_ind.properties delete mode 100644 opensrp-anc/src/main/resources/attention_flags_pr.properties create mode 100644 opensrp-anc/src/main/resources/profile_overview_ind.properties create mode 100644 reference-app/src/test/java/org/smartregister/anc/repository/PreviousContactRepositoryTest.java diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index e3727bf1d..4a5d92a7f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -30,11 +30,11 @@ import timber.log.Timber; public class MeFragment extends org.smartregister.view.fragment.MeFragment implements MeContract.View { + private final Map locales = new HashMap<>(); private RelativeLayout mePopCharacteristicsSection; private RelativeLayout siteCharacteristicsSection; private RelativeLayout languageSwitcherSection; private TextView languageSwitcherText; - private Map locales = new HashMap<>(); private String[] languages; @Nullable @@ -169,6 +169,7 @@ private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); //locales.put(getString(R.string.french_language), Locale.FRENCH); locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); + locales.put(getString(R.string.bahasa_indonesia_language), new Locale("ind")); } } \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index db64423ab..91b5144c3 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -424,6 +424,7 @@ English French Portuguese (Brazil) + Bahasa (Indonesia) Ultrasound test Blood Type test diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index 99cdb6de6..b2a4af743 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -58,6 +58,6 @@ attention_flags.red.white_blood_cell_wbc_count=White blood cell (WBC) count attention_flags.red.platelet_count=Platelet count attention_flags.red.tb_screening_positive=TB screening positive #added -anc_profile.step2.ultrasound_done.options.yes.text=Ultra som feito hoje -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo +anc_profile.step2.ultrasound_done.options.yes.text=Ultra Sound done today +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully Immunized profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/attention_flags_ind.properties b/opensrp-anc/src/main/resources/attention_flags_ind.properties new file mode 100644 index 000000000..1217d357c --- /dev/null +++ b/opensrp-anc/src/main/resources/attention_flags_ind.properties @@ -0,0 +1,2 @@ +anc_profile.step2.ultrasound_done.options.yes.text=USG selesai hari ini +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Sepenuhnya diimunisasi \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/attention_flags_pr.properties b/opensrp-anc/src/main/resources/attention_flags_pr.properties deleted file mode 100644 index 1e317d55d..000000000 --- a/opensrp-anc/src/main/resources/attention_flags_pr.properties +++ /dev/null @@ -1,2 +0,0 @@ -anc_profile.step2.ultrasound_done.options.yes.text=Ultra som feito hoje -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index da9eef5d8..8fb3f017a 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -62,5 +62,5 @@ profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation profile_overview.immunisation_status.flu_dose = Flu dose #added -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Flu imefanywa leo -profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test. \ No newline at end of file +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully Immunized +profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview_ind.properties b/opensrp-anc/src/main/resources/profile_overview_ind.properties new file mode 100644 index 000000000..9170bb04e --- /dev/null +++ b/opensrp-anc/src/main/resources/profile_overview_ind.properties @@ -0,0 +1,65 @@ +profile_overview.overview_of_pregnancy.demographic_info.occupation=Occupation +profile_overview.overview_of_pregnancy.current_pregnancy.ga=GA +profile_overview.overview_of_pregnancy.current_pregnancy.edd=EDD +profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date=Ultrasound date +profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses=No. of fetuses +profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation=Fetal presentation +profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid=Amniotic fluid +profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location=Placenta location +profile_overview.overview_of_pregnancy.obstetric_history.gravida=Gravida +profile_overview.overview_of_pregnancy.obstetric_history.parity=Parity +profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended +profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths=No. of stillbirths +profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections=No. of C-sections +profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems=Past pregnancy problems +profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used=Past alcohol used +profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used=Past alcohol / substances used +profile_overview.overview_of_pregnancy.medical_history.blood_type=Blood type +profile_overview.overview_of_pregnancy.medical_history.allergies=Allergies +profile_overview.overview_of_pregnancy.medical_history.surgeries=Surgeries +profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions=Chronic health conditions +profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date=Past HIV diagnosis date +profile_overview.overview_of_pregnancy.weight.bmi=BMI +profile_overview.overview_of_pregnancy.weight.weight_category=Weight category +profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy=Expected weight gain during the pregnancy +profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far=Total weight gain in pregnancy so far +profile_overview.overview_of_pregnancy.medications.current_medications=Current medications +profile_overview.overview_of_pregnancy.medications.medications_prescribed=Medications prescribed +profile_overview.overview_of_pregnancy.medications.calcium_compliance=Calcium compliance +profile_overview.overview_of_pregnancy.medications.calcium_side_effects=Calcium side effects +profile_overview.overview_of_pregnancy.medications.ifa_compliance=IFA compliance +profile_overview.overview_of_pregnancy.medications.ifa_side_effects=IFA side effects +profile_overview.overview_of_pregnancy.medications.aspirin_compliance=Aspirin compliance +profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance=Vitamin A compliance +profile_overview.overview_of_pregnancy.medications.penicillin_compliance=Penicillin compliance +profile_overview.hospital_referral_reasons.woman_referred_to_hospital=Woman referred to hospital +profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital=Woman not referred to hospital +profile_overview.hospital_referral_reasons.danger_signs=Danger sign(s) +profile_overview.hospital_referral_reasons.severe_hypertension=Severe hypertension +profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia +profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.fever=Fever +profile_overview.hospital_referral_reasons.abnormal_pulse_rate=Abnormal pulse rate +profile_overview.hospital_referral_reasons.respiratory_distress=Respiratory distress +profile_overview.hospital_referral_reasons.low_oximetry=Low oximetry +profile_overview.hospital_referral_reasons.abnormal_cardiac_exam=Abnormal cardiac exam +profile_overview.hospital_referral_reasons.abnormal_breast_exam=Abnormal breast exam +profile_overview.hospital_referral_reasons.abnormal_abdominal_exam=Abnormal abdominal exam +profile_overview.hospital_referral_reasons.abnormal_pelvic_exam=Abnormal pelvic exam +profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed=No fetal heartbeat observed +profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate=Abnormal fetal heart rate +profile_overview.physiological_symptoms.physiological_symptoms=Physiological symptoms +profile_overview.birth_plan_counseling.planned_birth_place=Planned birth place +profile_overview.birth_plan_counseling.fp_method_accepted=FP method accepted +profile_overview.malaria_prophylaxis.iptp_sp_dose_1=IPTp-SP dose 1 +profile_overview.malaria_prophylaxis.iptp_sp_dose_2=IPTp-SP dose 2 +profile_overview.malaria_prophylaxis.iptp_sp_dose_3=IPTp-SP dose 3 +profile_overview.immunisation_status.tt_immunisation_status=Status imunisasi TTCV +profile_overview.immunisation_status.tt_dose_1=TTCV dose #1 +profile_overview.immunisation_status.tt_dose_2=TTCV dose #2 +profile_overview.immunisation_status.flu_immunisation_status=Flu immunisation status +profile_overview.immunisation_status.flu_dose=Flu dose +#added +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Imunisasi lengkap +profile_contact_test.ultrasound_tests.ultrasound_test=Tes USG \ No newline at end of file diff --git a/reference-app/src/test/java/org/smartregister/anc/repository/PreviousContactRepositoryTest.java b/reference-app/src/test/java/org/smartregister/anc/repository/PreviousContactRepositoryTest.java new file mode 100644 index 000000000..66166ebe5 --- /dev/null +++ b/reference-app/src/test/java/org/smartregister/anc/repository/PreviousContactRepositoryTest.java @@ -0,0 +1,132 @@ +package org.smartregister.anc.repository; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.smartregister.anc.BaseUnitTest; +import org.smartregister.anc.library.repository.PreviousContactRepository; + +public class PreviousContactRepositoryTest extends BaseUnitTest { + @Mock + PreviousContactRepository previousContactRepository; + + + @Before + public void setUp() { + previousContactRepository = Mockito.spy(PreviousContactRepository.class); + } + + @Test + public void testGetPreviousContactFacts() { + String baseEntityId = "2ba62e25-3eaf-48e9-bcf7-d5748b023edb"; + String contactNo = "2"; + String jsonArray = "{\n" + + " \"ultrasound_date\":\"26-01-2022\",\n" + + " \"severe_preeclampsia\":\"0\",\n" + + " \"occupation\":\"[formal_employment]\",\n" + + " \"isRelevant\":true,\n" + + " \"behaviour_persist\":\"[none]\",\n" + + " \"select_gest_age_edd_lmp_ultrasound\":\"ultrasound\",\n" + + " \"pregest_weight\":\"54\",\n" + + " \"flu_immun_status\":\"{\\\"value\\\":\\\"seasonal_flu_dose_given\\\",\\\"text\\\":\\\"anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text\\\"}\",\n" + + " \"lmp_edd\":\"19-10-2022\",\n" + + " \"select_gest_age_edd\":\"ultrasound\",\n" + + " \"bp_diastolic\":\"78\",\n" + + " \"select_gest_age_edd_sfh_ultrasound\":\"0\",\n" + + " \"medications\":\"[aspirin, doxylamine, folic_acid]\",\n" + + " \"danger_signs\":\"[danger_bleeding]\",\n" + + " \"medications_value\":\"Aspirin, Doxylamine, Folic Acid\",\n" + + " \"height\":\"171\",\n" + + " \"eat_exercise_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"mat_percept_fetal_move\":\"{\\\"value\\\":\\\"reduced_fetal_move\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"preeclampsia\":\"0\",\n" + + " \"severe_hypertension\":\"0\",\n" + + " \"pulse_rate_repeat\":\"67\",\n" + + " \"toaster26_hidden\":\"0\",\n" + + " \"no_of_fetuses\":\"1\",\n" + + " \"weight_gain\":\"0\",\n" + + " \"danger_signs_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"behaviour_persist_value\":\"None\",\n" + + " \"other_sym_lbpp_value\":\"Contractions, Pain during urination (dysuria)\",\n" + + " \"other_symptoms_value\":\"Cough lasting more than 3 weeks, Headache\",\n" + + " \"referred_hosp\":\"{\\\"value\\\":\\\"yes\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"ipv_suspect\":\"0\",\n" + + " \"danger_signs_value\":\"Bleeding vaginally\",\n" + + " \"gest_age\":\"21 weeks 0 days\",\n" + + " \"tt1_date_done_date_today_hidden\":\"0\",\n" + + " \"ultrasound_ga_hidden\":\"0\",\n" + + " \"ultrasound_gest_age_wks\":\"21\",\n" + + " \"tobacco_user\":\"{\\\"value\\\":\\\"yes\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"exp_weight_gain\":\"12.5 - 18\",\n" + + " \"pulse_rate\":\"56\",\n" + + " \"tt_immun_status\":\"{\\\"value\\\":\\\"3_doses\\\",\\\"text\\\":\\\"anc_profile.step5.tt_immun_status.options.3_doses.text\\\"}\",\n" + + " \"tt2_dose_number\":\"0\",\n" + + " \"weight_gain_duration\":\"1\",\n" + + " \"tt1_dose_number\":\"0\",\n" + + " \"caffeine_intake\":\"[commercially_brewed_coffee, more_than_48_pieces_squares_of_chocolate]\",\n" + + " \"flu_date_done_date_today_hidden\":\"26-01-2022\",\n" + + " \"alcohol_substance_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"phys_symptoms_value\":\"Heartburn, Constipation\",\n" + + " \"bmi\":\"18.47\",\n" + + " \"delivery_place\":\"{\\\"value\\\":\\\"facility\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"ultrasound_edd\":\"08-06-2022\",\n" + + " \"gest_age_openmrs\":\"21\",\n" + + " \"tt2_date_done_date_today_hidden\":\"0\",\n" + + " \"select_gest_age_edd_all_values\":\"0\",\n" + + " \"gdm_risk\":\"0\",\n" + + " \"lmp_known_date\":\"12-01-2022\",\n" + + " \"ultrasound_date_today_hidden\":\"26-01-2022\",\n" + + " \"hiv_risk\":\"0\",\n" + + " \"helper\":null,\n" + + " \"flu_date\":\"{\\\"value\\\":\\\"done_today\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"ultrasound_done_date\":\"26-01-2022\",\n" + + " \"ultrasound_value\":\"Done today\",\n" + + " \"edd\":\"08-06-2022\",\n" + + " \"phys_symptoms\":\"[heartburn, constipation]\",\n" + + " \"weight_cat\":\"Underweight\",\n" + + " \"hiv_positive\":\"0\",\n" + + " \"family_planning_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"occupation_value\":\"Formal employment\",\n" + + " \"fetal_heartbeat\":\"{\\\"value\\\":\\\"no\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"bp_systolic\":\"53\",\n" + + " \"emergency_hosp_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"first_weight\":\"54\",\n" + + " \"sfh_edd\":\"0\",\n" + + " \"tot_weight_gain\":\"24\",\n" + + " \"current_weight\":\"78\",\n" + + " \"lmp_gest_age\":\"2 weeks 0 days\",\n" + + " \"lmp_ultrasound_gest_age_selection\":\"{\\\"value\\\":\\\"ultrasound\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"lmp_known\":\"{\\\"value\\\":\\\"yes\\\",\\\"text\\\":\\\"anc_profile.step2.lmp_known.options.yes.text\\\"}\",\n" + + " \"preeclampsia_risk\":\"0\",\n" + + " \"partner_hiv_positive\":\"0\",\n" + + " \"alcohol_substance_use\":\"[alcohol, marijuana]\",\n" + + " \"alcohol_substance_use_value\":\"Alcohol, Marijuana\",\n" + + " \"parity\":\"0\",\n" + + " \"partner_hiv_status\":\"{\\\"value\\\":\\\"dont_know\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"contact_reason\":\"{\\\"value\\\":\\\"first_contact\\\",\\\"text\\\":\\\"First contact\\\"}\",\n" + + " \"ultrasound_gest_age_concept\":\"0\",\n" + + " \"other_sym_lbpp\":\"[contractions, dysuria]\",\n" + + " \"ultrasound_done\":\"{\\\"value\\\":\\\"yes\\\",\\\"text\\\":\\\"anc_profile.step2.ultrasound_done.options.yes.text\\\"}\",\n" + + " \"educ_level\":\"{\\\"value\\\":\\\"secondary\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"caffeine_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"other_symptoms\":\"[cough, headache]\",\n" + + " \"anaemic\":\"0\",\n" + + " \"sfh_ga_hidden\":\"0\",\n" + + " \"no_of_fetuses_hidden\":\"0\",\n" + + " \"ultrasound_gest_age\":\"21 weeks 0 days\",\n" + + " \"caffeine_intake_value\":\"More than 2 cups of coffee (brewed, filtered, instant or espresso), More than 12 bars (50 g) of chocolate\",\n" + + " \"ultrasound\":\"done_today\",\n" + + " \"marital_status\":\"{\\\"value\\\":\\\"single\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"tobacco_counsel\":\"{\\\"value\\\":\\\"done\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"previous_pregnancies\":\"0\",\n" + + " \"alcohol_substance_enquiry\":\"{\\\"value\\\":\\\"yes\\\",\\\"text\\\":\\\"\\\"}\",\n" + + " \"hypertension\":\"0\",\n" + + " \"gravida\":\"1\",\n" + + " \"body_temp\":\"35\"\n" + + "}"; + Mockito.doReturn(jsonArray).when(previousContactRepository.getPreviousContactFacts(baseEntityId, contactNo, false)); + Assert.assertNotNull(previousContactRepository.getPreviousContactFacts(baseEntityId, contactNo, false)); + } +} From 15ae2c17270471c944955ba9097a1d00353e25c2 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 8 Feb 2022 11:16:53 +0300 Subject: [PATCH 134/302] CheckBox get previous values -1 --- build.gradle | 1 + opensrp-anc/build.gradle | 2 +- .../assets/json.form/anc_quick_check.json | 13 ++++++++++++ .../main/assets/json.form/anc_register.json | 1 + .../activity/ContactJsonFormActivity.java | 3 --- .../repository/PreviousContactRepository.java | 6 ++++-- .../smartregister/anc/library/util/Utils.java | 3 +-- .../interactor/ContactInteractorTest.java | 20 +++++++++++++++++-- reference-app/build.gradle | 2 +- 9 files changed, 40 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 29fb3ae58..eca3e3dec 100644 --- a/build.gradle +++ b/build.gradle @@ -95,6 +95,7 @@ coveralls { jacocoReportPath = "${buildDir}/reports/jacoco/jacocoFullReport/jacocoFullReport.xml" sourceDirs += ["opensrp-anc/src/main/java/", "reference-app/src/main/java"] } + apply plugin: 'io.codearte.nexus-staging' def isReleaseBuild() { diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 5bc3ba282..2da133795 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.14-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index ce2191254..f830d9357 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -494,6 +494,7 @@ { "key": "danger_none", "text": "{{anc_quick_check.step1.danger_signs.options.danger_none.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_none.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -502,6 +503,7 @@ { "key": "danger_bleeding", "text": "{{anc_quick_check.step1.danger_signs.options.danger_bleeding.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_bleeding.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -510,6 +512,7 @@ { "key": "central_cyanosis", "text": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_none.text", "label_info_text": "Bluish discolouration around the mucous membranes in the mouth, lips and tongue", "label_info_title": "Central cyanosis", "value": false, @@ -520,6 +523,7 @@ { "key": "convulsing", "text": "{{anc_quick_check.step1.danger_signs.options.convulsing.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.convulsing.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -528,6 +532,7 @@ { "key": "danger_fever", "text": "{{anc_quick_check.step1.danger_signs.options.danger_fever.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_fever.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -536,6 +541,7 @@ { "key": "severe_headache", "text": "{{anc_quick_check.step1.danger_signs.options.severe_headache.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_headache.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -544,6 +550,7 @@ { "key": "visual_disturbance", "text": "{{anc_quick_check.step1.danger_signs.options.visual_disturbance.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.visual_disturbance.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -552,6 +559,7 @@ { "key": "imminent_delivery", "text": "{{anc_quick_check.step1.danger_signs.options.imminent_delivery.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.imminent_delivery.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -560,6 +568,7 @@ { "key": "labour", "text": "{{anc_quick_check.step1.danger_signs.options.labour.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.labour.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -576,6 +585,7 @@ { "key": "severe_vomiting", "text": "{{anc_quick_check.step1.danger_signs.options.severe_vomiting.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_vomiting.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -584,6 +594,7 @@ { "key": "severe_pain", "text": "{{anc_quick_check.step1.danger_signs.options.severe_pain.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_pain.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -592,6 +603,7 @@ { "key": "severe_abdominal_pain", "text": "{{anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", @@ -600,6 +612,7 @@ { "key": "unconscious", "text": "{{anc_quick_check.step1.danger_signs.options.unconscious.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.unconscious.text", "value": false, "openmrs_entity_parent": "", "openmrs_entity": "concept", diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 06e606227..18a5d6f3b 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -192,6 +192,7 @@ { "key": "dob_unknown", "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "translation_text": "anc_register.step1.dob_unknown.options.dob_unknown.text", "text_size": "18px", "value": "false", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 43b656c54..dd468b4fd 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -115,7 +115,6 @@ protected void checkBoxWriteValue(String stepName, String parentKey, String chil synchronized (getmJSONObject()) { JSONObject jsonObject = getmJSONObject().getJSONObject(stepName); JSONArray fields = fetchFields(jsonObject, popup); - for (int i = 0; i < fields.length(); i++) { JSONObject item = fields.getJSONObject(i); String keyAtIndex = item.getString(JsonFormConstants.KEY); @@ -124,7 +123,6 @@ protected void checkBoxWriteValue(String stepName, String parentKey, String chil for (int j = 0; j < jsonArray.length(); j++) { JSONObject innerItem = jsonArray.getJSONObject(j); String anotherKeyAtIndex = innerItem.getString(JsonFormConstants.KEY); - if (childKey.equals(anotherKeyAtIndex)) { innerItem.put(JsonFormConstants.VALUE, value); if (StringUtils.isNotBlank(formName) && formName.equals(ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK)) { @@ -201,7 +199,6 @@ public void quickCheckDangerSignsSelectionHandler(JSONArray fields) throws JSONE for (int i = 0; i < fields.length(); i++) { JSONObject jsonObject = fields.getJSONObject(i); if (jsonObject != null && jsonObject.getString(JsonFormConstants.KEY).equals(ConstantsUtils.DANGER_SIGNS)) { - JSONArray jsonArray = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); for (int k = 0; k < jsonArray.length(); k++) { JSONObject item = jsonArray.getJSONObject(k); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 4b32def3f..27fac8f13 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -5,6 +5,8 @@ import android.text.TextUtils; import android.util.Log; +import com.vijay.jsonwizard.constants.JsonFormConstants; + import net.sqlcipher.Cursor; import net.sqlcipher.database.SQLiteDatabase; @@ -323,14 +325,14 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { Context context = AncLibrary.getInstance().getApplicationContext(); - String value = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has("value") && previousContactObject.has("text")) { String translation_text; - translation_text = !previousContactObject.getString("text").isEmpty() ? "{" + previousContactObject.getString("text") + "}" : ""; + translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}" : ""; previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 52478760d..2084d3687 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -217,8 +217,7 @@ public static void proceedToContact(String baseEntityId, HashMap partialContactRequest.setContactNo(quickCheck.getContactNumber()); partialContactRequest.setType(quickCheck.getFormName()); - String locationId = AncLibrary.getInstance().getContext().allSharedPreferences() - .getPreference(AllConstants.CURRENT_LOCATION_ID); + String locationId = AncLibrary.getInstance().getContext().allSharedPreferences().getPreference(AllConstants.CURRENT_LOCATION_ID); ContactModel baseContactModel = new ContactModel(); JSONObject form = baseContactModel.getFormAsJson(quickCheck.getFormName(), baseEntityId, locationId); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java index ad34c28ef..85291e4b1 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java @@ -27,6 +27,7 @@ import org.smartregister.anc.library.helper.AncRulesEngineHelper; import org.smartregister.anc.library.helper.ECSyncHelper; import org.smartregister.anc.library.model.PartialContact; +import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PatientRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; @@ -41,6 +42,7 @@ import org.smartregister.repository.EventClientRepository; import org.smartregister.service.UserService; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -94,11 +96,11 @@ public class ContactInteractorTest extends BaseUnitTest { @Mock private UserService userService; - private List partialContactList = new ArrayList<>(); + private final List partialContactList = new ArrayList<>(); @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); interactor = new ContactInteractor(new AppExecutors(Executors.newSingleThreadExecutor(), Executors.newSingleThreadExecutor(), Executors.newSingleThreadExecutor())); } @@ -228,4 +230,18 @@ private Map getStringStringMap(String firstName, String lastName details.put(ConstantsUtils.REFERRAL, "-1"); return details; } + + @Test + public void getCurrentContactStateTest() { + String baseEntityId = "84333de0-1b2b-4431-b7b8-44457fc9a32a", key = "contact_reason"; + long id = 7346; + String value = "{\"value\":\"first_contact\",\"text\":\"First contact\"}"; + String contactNo = "1"; + PreviousContact previousContact = new PreviousContact(baseEntityId, key, value, contactNo); + Mockito.doNothing().when(ancLibrary).getPreviousContactRepository().getPreviousContact(previousContact); +// getCurrentContactState.setAccessible(true); +// getCurrentContactState.invoke(interactor, null); + + + } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 09fc8b15e..89452ca54 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.14-dev-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-3-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 86c54bb334c8634788ef6f338cf69ca235f235da Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 10 Feb 2022 10:58:48 +0300 Subject: [PATCH 135/302] Mobile Number --- opensrp-anc/src/main/assets/json.form/anc_register.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 18a5d6f3b..e5a194d44 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -293,6 +293,10 @@ "v_required": { "value": "true", "err": "{{anc_register.step1.phone_number.v_required.err}}" + }, + "v_max_length": { + "value": "12", + "err": "Phone number characters cannot exceed 12 characters" } }, { From cf859066a101ddd0cb476d6a447bac89a171ad35 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:19:09 +0300 Subject: [PATCH 136/302] Final commit of translated Checkboxes --- .../test_checkbox_filter_json_form.json | 10 +++++++- .../anc/library/util/ANCFormUtils.java | 23 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json b/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json index 394876ebf..c19ac147b 100644 --- a/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json +++ b/opensrp-anc/src/main/assets/json_test_forms/test_checkbox_filter_json_form.json @@ -1310,6 +1310,7 @@ { "key": "none", "text": "None", + "translation_text": "anc.step4.phys_symptoms_persist.none.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1318,6 +1319,7 @@ { "key": "nausea_vomiting", "text": "Nausea and vomiting", + "translation_text": "anc.step4.phys_symptoms_persist.none.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "133473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1326,6 +1328,7 @@ { "key": "heartburn", "text": "Heartburn", + "translation_text": "anc.step4.phys_symptoms_persist.heartburn.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1334,6 +1337,7 @@ { "key": "leg_cramps", "text": "Leg cramps", + "translation_text": "anc.step4.phys_symptoms_persist.leg_cramps.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1342,6 +1346,7 @@ { "key": "constipation", "text": "Constipation", + "translation_text": "anc.step4.phys_symptoms_persist.constipation.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "996AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1350,6 +1355,7 @@ { "key": "low_back_pain", "text": "Low back pain", + "translation_text": "anc.step4.phys_symptoms_persist.low_back_pain.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1358,6 +1364,7 @@ { "key": "pelvic_pain", "text": "Pelvic pain", + "translation_text": "anc.step4.phys_symptoms_persist.pelvic_pain.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1366,6 +1373,7 @@ { "key": "varicose_veins", "text": "Varicose veins", + "translation_text": "anc.step4.phys_symptoms_persist.varicose_veins.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "156666AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1374,6 +1382,7 @@ { "key": "oedema", "text": "Oedema", + "translation_text": "anc.step4.phys_symptoms_persist.oedema.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -2294,7 +2303,6 @@ "key": "global_previous_shs_exposure", "value": "yes" }, - { "key": "global_previous_caffeine_intake", "value": "none" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 53c0d383e..553cdaf14 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -164,7 +164,13 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject.has(JsonFormConstants.VALUE) && jsonObject.getBoolean(JsonFormConstants.VALUE)) { - keyList.add(jsonObject.getString(JsonFormConstants.KEY)); + Context context = AncLibrary.getInstance().getApplicationContext(); + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + keyList.add(generateTranslatableValue(jsonObject.getString(JsonFormConstants.KEY), jsonObject) + ""); + } else { + keyList.add(jsonObject.getString(JsonFormConstants.KEY)); + } if (jsonObject.has(JsonFormConstants.SECONDARY_VALUE) && jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); @@ -180,6 +186,21 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List } } + private static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { + JSONObject newValue = new JSONObject(); + ANCFormUtils formUtils = new ANCFormUtils(); + if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { + JSONArray options = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); + JSONObject selectedOption = formUtils.getOptionFromOptionsUsingKey(options, value); + newValue.put(JsonFormConstants.VALUE, value); + newValue.put(JsonFormConstants.TEXT, selectedOption.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + return newValue; + } + newValue.put(JsonFormConstants.VALUE, value); + newValue.put(JsonFormConstants.TEXT, jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + return newValue; + } + public static void getRealSecondaryValue(JSONObject itemField) throws Exception { JSONArray secondaryValues = itemField.getJSONArray(JsonFormConstants.SECONDARY_VALUE); itemField.put(ConstantsUtils.KeyUtils.SECONDARY_VALUES, new JSONArray()); From 71f8a7d0375a22ce3dda53a2a305a301c1547e8b Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 14 Feb 2022 09:22:36 +0300 Subject: [PATCH 137/302] QA release --- .../smartregister/anc/library/fragment/MeFragment.java | 2 ++ .../anc/library/activity/BaseActivityUnitTest.java | 1 - .../anc/library/repository/PatientRepositoryTest.java | 9 +++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 4a5d92a7f..878b596a8 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import org.apache.commons.lang3.StringUtils; @@ -86,6 +87,7 @@ protected void initializePresenter() { presenter = new MePresenter(this); } + @VisibleForTesting @Override protected void onViewClicked(View view) { int viewId = view.getId(); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java index e2f027981..61bebeb20 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/activity/BaseActivityUnitTest.java @@ -69,7 +69,6 @@ public void setUp() { Mockito.when(configurableViewsLibrary.getConfigurableViewsHelper()).thenReturn(configurableViewsHelper); ReflectionHelpers.setStaticField(ConfigurableViewsLibrary.class, "instance", configurableViewsLibrary); - ConfigurableViewsHelper configurableViewsHelper = Mockito.mock(ConfigurableViewsHelper.class); Mockito.when(configurableViewsLibrary.getConfigurableViewsHelper()).thenReturn(configurableViewsHelper); DrishtiApplication drishtiApplication = Mockito.mock(DrishtiApplication.class); diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java index 556c4f89d..c8afc5caa 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java @@ -169,6 +169,15 @@ public void testUpdateContactVisitStartDateShouldPassCorrectArgsToUpdateDb() { Assert.assertNull(result.get(DBConstantsUtils.KeyUtils.VISIT_START_DATE)); } +// @Test +// public void isFirstVisitTest() { +// String baseEntityId="4faf5afa-fa7f-4d98-b4cd-4ee39c8d1eb1"; +// PatientRepository patientRepositoryHelper = new PatientRepository(); +// Assert.assertNotNull(patientRepositoryHelper); +// boolean isfistVisit = PatientRepository.isFirstVisit(baseEntityId); +// Assert.assertTrue(isfistVisit); +// } + @After public void tearDown() { ReflectionHelpers.setStaticField(AncLibrary.class, "instance", null); From 09df3cad33c4597f07375d61c732a1f2ec6f3748 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 14 Feb 2022 16:55:49 +0300 Subject: [PATCH 138/302] value ,text for Tests --- .../library/activity/MainContactActivity.java | 1 - .../repository/PreviousContactRepository.java | 17 ++++++++++++++--- .../anc/library/util/ANCFormUtils.java | 3 +-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 50861da31..dc14c2cdb 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -169,7 +169,6 @@ private void initializeMainContactContainers() { setRequiredFields(counsellingAndTreatment); counsellingAndTreatment.setFormName(ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT); contacts.add(counsellingAndTreatment); - contactAdapter.setContacts(contacts); contactAdapter.notifyDataSetChanged(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 27fac8f13..3c5b4f9f4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -223,11 +223,22 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { try { SQLiteDatabase db = getWritableDatabase(); mCursor = getAllTests(baseEntityId, db); - + Context context = AncLibrary.getInstance().getApplicationContext(); if (mCursor != null) { while (mCursor.moveToNext()) { - previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), - mCursor.getString(mCursor.getColumnIndex(VALUE))); + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + String jsonValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); + if (jsonValue.charAt(0) == '{') { + JSONObject valueObject = new JSONObject(jsonValue); + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), valueObject.optString(JsonFormConstants.TEXT, "")); + } else { + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); + } + } else { + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), + mCursor.getString(mCursor.getColumnIndex(VALUE))); + } } return previousContactsTestsFacts; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 553cdaf14..d065d4815 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -122,7 +122,6 @@ private static void processRadioButtonsSpecialWidget(JSONObject widget, List } } - private static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { + public static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { JSONObject newValue = new JSONObject(); ANCFormUtils formUtils = new ANCFormUtils(); if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { From 9534e503e3efef47832ab379c61691a3fde6e086 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 16 Feb 2022 17:39:34 +0300 Subject: [PATCH 139/302] Attention Flags allergies --- .../library/activity/MainContactActivity.java | 64 +++++++++-------- .../anc/library/model/ContactVisit.java | 34 ++++----- .../anc/library/util/ANCFormUtils.java | 41 +++++------ .../smartregister/anc/library/util/Utils.java | 14 ++++ .../resources/anc_quick_check_ind.properties | 69 +++++++++++++++++++ 5 files changed, 155 insertions(+), 67 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_quick_check_ind.properties diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index dc14c2cdb..7810d4b5b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -46,7 +46,6 @@ import timber.log.Timber; public class MainContactActivity extends BaseContactActivity implements ContactContract.View { - private TextView patientNameView; private final Map requiredFieldsMap = new HashMap<>(); private final Map eventToFileMap = new HashMap<>(); private final Yaml yaml = new Yaml(); @@ -54,17 +53,39 @@ public class MainContactActivity extends BaseContactActivity implements ContactC private final Map formGlobalValues = new HashMap<>(); private final Set globalKeys = new HashSet<>(); private final Set defaultValueFields = new HashSet<>(); + private final List invisibleRequiredFields = new ArrayList<>(); + private final String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, + ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, + ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT, ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS}; + private TextView patientNameView; private List globalValueFields = new ArrayList<>(); private List editableFields = new ArrayList<>(); private String baseEntityId; private String womanOpenSRPId; private String womanAge = ""; - private final List invisibleRequiredFields = new ArrayList<>(); - private final String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, - ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, - ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT, ConstantsUtils.JsonFormUtils.ANC_TEST_TASKS}; private String formInvalidFields = null; + public static void processAbnormalValues(Map facts, JSONObject jsonObject) throws Exception { + String fieldKey = ANCFormUtils.getObjectKey(jsonObject); + Object fieldValue = ANCFormUtils.getObjectValue(jsonObject); + String fieldKeySecondary = fieldKey.contains(ConstantsUtils.SuffixUtils.OTHER) ? + fieldKey.substring(0, fieldKey.indexOf(ConstantsUtils.SuffixUtils.OTHER)) + ConstantsUtils.SuffixUtils.VALUE : ""; + String fieldKeyOtherValue = fieldKey + ConstantsUtils.SuffixUtils.VALUE; + + if (fieldKey.endsWith(ConstantsUtils.SuffixUtils.OTHER) && !fieldKeySecondary.isEmpty() && + facts.get(fieldKeySecondary) != null && facts.get(fieldKeyOtherValue) != null) { + + List tempList = new ArrayList<>(Arrays.asList(facts.get(fieldKeySecondary).split("\\s*,\\s*"))); + tempList.remove(tempList.size() - 1); + tempList.add(StringUtils.capitalize(facts.get(fieldKeyOtherValue))); + facts.put(fieldKeySecondary, ANCFormUtils.getListValuesAsString(tempList)); + + } else { + facts.put(fieldKey, fieldValue.toString()); + } + + } + @Override protected void onResume() { super.onResume(); @@ -303,7 +324,7 @@ private void processRequiredStepsField(JSONObject object) throws Exception { requiredFieldsMap.put(object.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_TYPE), 0); } if (contactNo > 1 && ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE.equals(encounterType) - && !PatientRepository.isFirstVisit(baseEntityId)) { + && !PatientRepository.isFirstVisit(baseEntityId)) { requiredFieldsMap.put(ConstantsUtils.JsonFormUtils.ANC_PROFILE_ENCOUNTER_TYPE, 0); } @@ -368,9 +389,13 @@ private void updateFieldRequiredCount(JSONObject object, JSONObject fieldObject, private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { if (globalKeys.contains(fieldObject.getString(JsonFormConstants.KEY)) && fieldObject.has(JsonFormConstants.VALUE)) { - - formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), - fieldObject.getString(JsonFormConstants.VALUE));//Normal value + if (fieldObject.optString(JsonFormConstants.VALUE, "").charAt(0) == '{') { + JSONObject object = new JSONObject(fieldObject.optString(JsonFormConstants.VALUE)); + formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), object.optString(JsonFormConstants.TEXT, "")); + } else { + formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), + fieldObject.getString(JsonFormConstants.VALUE));//Normal value + } processAbnormalValues(formGlobalValues, fieldObject); String secKey = ANCFormUtils.getSecondaryKey(fieldObject); @@ -403,27 +428,6 @@ private void checkRequiredForSubForms(JSONObject fieldObject, JSONObject encount } } - public static void processAbnormalValues(Map facts, JSONObject jsonObject) throws Exception { - String fieldKey = ANCFormUtils.getObjectKey(jsonObject); - Object fieldValue = ANCFormUtils.getObjectValue(jsonObject); - String fieldKeySecondary = fieldKey.contains(ConstantsUtils.SuffixUtils.OTHER) ? - fieldKey.substring(0, fieldKey.indexOf(ConstantsUtils.SuffixUtils.OTHER)) + ConstantsUtils.SuffixUtils.VALUE : ""; - String fieldKeyOtherValue = fieldKey + ConstantsUtils.SuffixUtils.VALUE; - - if (fieldKey.endsWith(ConstantsUtils.SuffixUtils.OTHER) && !fieldKeySecondary.isEmpty() && - facts.get(fieldKeySecondary) != null && facts.get(fieldKeyOtherValue) != null) { - - List tempList = new ArrayList<>(Arrays.asList(facts.get(fieldKeySecondary).split("\\s*,\\s*"))); - tempList.remove(tempList.size() - 1); - tempList.add(StringUtils.capitalize(facts.get(fieldKeyOtherValue))); - facts.put(fieldKeySecondary, ANCFormUtils.getListValuesAsString(tempList)); - - } else { - facts.put(fieldKey, fieldValue.toString()); - } - - } - private void checkRequiredForCheckBoxOther(JSONObject fieldObject) throws Exception { //Other field for check boxes if (fieldObject.has(JsonFormConstants.VALUE) && !TextUtils.isEmpty(fieldObject.getString(JsonFormConstants.VALUE)) && diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java index 1770e1a34..81f8d2dd5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/ContactVisit.java @@ -26,7 +26,6 @@ import org.smartregister.clientandeventmodel.Event; import org.smartregister.util.JsonFormUtils; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -39,23 +38,23 @@ import timber.log.Timber; public class ContactVisit { - private Map details; - private String referral; - private String baseEntityId; - private int nextContact; - private String nextContactVisitDate; - private PartialContactRepository partialContactRepository; - private List partialContactList; + private final Map details; + private final String referral; + private final String baseEntityId; + private final int nextContact; + private final String nextContactVisitDate; + private final PartialContactRepository partialContactRepository; + private final List partialContactList; private Facts facts; private List formSubmissionIDs; private WomanDetail womanDetail; - private Map attentionFlagCountMap = new HashMap<>(); - private List parsableFormsList = + private final Map attentionFlagCountMap = new HashMap<>(); + private final List parsableFormsList = Arrays.asList(ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, ConstantsUtils.JsonFormUtils.ANC_SYMPTOMS_FOLLOW_UP, ConstantsUtils.JsonFormUtils.ANC_PHYSICAL_EXAM, ConstantsUtils.JsonFormUtils.ANC_TEST, ConstantsUtils.JsonFormUtils.ANC_COUNSELLING_TREATMENT); private Map currentClientTasks = new HashMap<>(); - private ANCFormUtils ancFormUtils = new ANCFormUtils(); + private final ANCFormUtils ancFormUtils = new ANCFormUtils(); public ContactVisit(Map details, String referral, String baseEntityId, int nextContact, String nextContactVisitDate, PartialContactRepository partialContactRepository, @@ -113,7 +112,8 @@ public ContactVisit invoke() throws Exception { return this; } - /**StringUtils.isNotBlank(previousContactValue) + /** + * StringUtils.isNotBlank(previousContactValue) * Returns a {@link Map} of the tasks keys and task id. These are used to delete the tasks in case a test with the same key is completed doing the current contact. * * @param baseEntityId {@link String} Client's base entity id. @@ -178,7 +178,7 @@ private WomanDetail getWomanDetail(String baseEntityId, String nextContactVisitD return womanDetail; } - private void processAttentionFlags(WomanDetail patientDetail, Facts facts) throws IOException { + private void processAttentionFlags(WomanDetail patientDetail, Facts facts) { Iterable ruleObjects = AncLibrary.getInstance().readYaml(FilePathUtils.FileUtils.ATTENTION_FLAGS); for (Object ruleObject : ruleObjects) { @@ -332,6 +332,10 @@ public Map getCurrentClientTasks() { return currentClientTasks; } + public void setCurrentClientTasks(Map currentClientTasks) { + this.currentClientTasks = currentClientTasks; + } + private void saveTasks(JSONObject field) { if (field != null) { String key = field.optString(JsonFormConstants.KEY); @@ -379,10 +383,6 @@ private Task getTask(JSONObject field, String key) { return task; } - public void setCurrentClientTasks(Map currentClientTasks) { - this.currentClientTasks = currentClientTasks; - } - protected PreviousContactRepository getPreviousContactRepository() { return AncLibrary.getInstance().getPreviousContactRepository(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index d065d4815..c96025590 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -160,13 +160,13 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List widget.remove(getSecondaryKey(widget)); } JSONArray jsonArray = widget.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); + Context context = AncLibrary.getInstance().getApplicationContext(); + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject.has(JsonFormConstants.VALUE) && jsonObject.getBoolean(JsonFormConstants.VALUE)) { - Context context = AncLibrary.getInstance().getApplicationContext(); - String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - keyList.add(generateTranslatableValue(jsonObject.getString(JsonFormConstants.KEY), jsonObject) + ""); + keyList.add(Utils.generateTranslatableValue(jsonObject.getString(JsonFormConstants.KEY), jsonObject) + ""); } else { keyList.add(jsonObject.getString(JsonFormConstants.KEY)); } @@ -174,7 +174,11 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); } else { - valueList.add(jsonObject.getString(JsonFormConstants.TEXT)); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + valueList.add(Utils.generateTranslatableValue(jsonObject.optString(JsonFormConstants.KEY, ""), jsonObject) + ""); + } else { + valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); + } } } } @@ -185,20 +189,6 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List } } - public static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { - JSONObject newValue = new JSONObject(); - ANCFormUtils formUtils = new ANCFormUtils(); - if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { - JSONArray options = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); - JSONObject selectedOption = formUtils.getOptionFromOptionsUsingKey(options, value); - newValue.put(JsonFormConstants.VALUE, value); - newValue.put(JsonFormConstants.TEXT, selectedOption.optString(JsonFormConstants.TRANSLATION_TEXT, "")); - return newValue; - } - newValue.put(JsonFormConstants.VALUE, value); - newValue.put(JsonFormConstants.TEXT, jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); - return newValue; - } public static void getRealSecondaryValue(JSONObject itemField) throws Exception { JSONArray secondaryValues = itemField.getJSONArray(JsonFormConstants.SECONDARY_VALUE); @@ -322,13 +312,24 @@ public static void processRequiredStepsField(Facts facts, JSONObject object) thr for (int i = 0; i < stepArray.length(); i++) { JSONObject fieldObject = stepArray.getJSONObject(i); processSpecialWidgets(fieldObject); - + Context context = AncLibrary.getInstance().getApplicationContext(); String fieldKey = getObjectKey(fieldObject); //Do not add to facts values from expansion panels since they are processed separately if (fieldKey != null && fieldObject.has(JsonFormConstants.VALUE) && fieldObject.has(JsonFormConstants.TYPE) && !JsonFormConstants.EXPANSION_PANEL.equals(fieldObject.getString(JsonFormConstants.TYPE))) { + if (JsonFormConstants.CHECK_BOX.equals(fieldObject.optString(JsonFormConstants.TYPE, ""))) { + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + facts.put(fieldKey, Utils.generateTranslatableValue(fieldKey, fieldObject)); + } else { + facts.put(fieldKey, fieldObject.getString(JsonFormConstants.VALUE)); + } + + } else { + facts.put(fieldKey, fieldObject.getString(JsonFormConstants.VALUE)); + } + - facts.put(fieldKey, fieldObject.getString(JsonFormConstants.VALUE)); processAbnormalValues(facts, fieldObject); String secKey = getSecondaryKey(fieldObject); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 2084d3687..5b91de64d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -975,4 +975,18 @@ private final void addEmptyLine(Document layoutDocument, int number) { private final void addSubHeading(Document layoutDocument, String text) { layoutDocument.add((new Paragraph(text)).setBold().setHorizontalAlignment(HorizontalAlignment.LEFT)); } + public static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { + JSONObject newValue = new JSONObject(); + ANCFormUtils formUtils = new ANCFormUtils(); + if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { + JSONArray options = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); + JSONObject selectedOption = formUtils.getOptionFromOptionsUsingKey(options, value); + newValue.put(JsonFormConstants.VALUE, value); + newValue.put(JsonFormConstants.TEXT, selectedOption.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + return newValue; + } + newValue.put(JsonFormConstants.VALUE, value); + newValue.put(JsonFormConstants.TEXT, jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + return newValue; + } } diff --git a/opensrp-anc/src/main/resources/anc_quick_check_ind.properties b/opensrp-anc/src/main/resources/anc_quick_check_ind.properties new file mode 100644 index 000000000..e58da3c04 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_quick_check_ind.properties @@ -0,0 +1,69 @@ +anc_quick_check.step1.specific_complaint.options.dizziness.text = Pusing +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Kekerasan pasangan intim +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Pendarahan lainnya +anc_quick_check.step1.specific_complaint.options.depression.text = Kesehatan mental - Depresi +anc_quick_check.step1.specific_complaint.options.heartburn.text = Mulas +anc_quick_check.step1.specific_complaint.options.other_specify.text = Masalah kesehatan lainnya (sebutkan) +anc_quick_check.step1.specific_complaint.options.oedema.text = Edema +anc_quick_check.step1.specific_complaint.options.contractions.text = Kontraksi +anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Kram kaki +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Kesehatan mental - Gejala psikologis lainnya +anc_quick_check.step1.specific_complaint.options.fever.text = Demam +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Kontak terjadwal +anc_quick_check.step1.danger_signs.options.severe_headache.text = Sakit kepala parah +anc_quick_check.step1.danger_signs.options.danger_fever.text = Demam +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Terlihat sangat sakit +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Gangguan visual +anc_quick_check.step1.specific_complaint.options.leg_redness.text = Kaki kemerahan +anc_quick_check.step1.specific_complaint_other.hint = Tentukan +anc_quick_check.step1.specific_complaint.options.tiredness.text = Kelelahan +anc_quick_check.step1.danger_signs.options.severe_pain.text = Sakit parah +anc_quick_check.step1.specific_complaint.options.constipation.text = Sembelit +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Sianosis sentral +anc_quick_check.step1.specific_complaint_other.v_regex.err = Harap masukkan konten yang valid +anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Kelainan kulit lainnya +anc_quick_check.step1.danger_signs.options.danger_none.text = Tidak ada +anc_quick_check.step1.specific_complaint.label = Masalah kesehatan +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Sakit - Kaki +anc_quick_check.step1.title = Pemeriksaan Cepat +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Gerakan janin - berkurang/buruk +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Perdarahan pervaginam +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Sakit - Perut +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Keputihan yang tidak normal (fisiologis) (berbau busuk) (seperti dadih) +anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Jenis kekerasan lainnya +anc_quick_check.step1.specific_complaint.options.other_pain.text = Sakit - Lainnya +anc_quick_check.step1.specific_complaint.options.anxiety.text = Kesehatan mental - Kecemasan +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Nyeri - Nyeri panggul yang ekstrem/tidak dapat berjalan (disfungsi simfisis pubis) +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Sakit - Panggul +anc_quick_check.step1.specific_complaint.options.bleeding.text = Pendarahan vagina +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Perubahan tekanan darah - naik (hipertensi) +anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text = Perubahan tekanan darah - turun (hipotensi) +anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Sesak napas +anc_quick_check.step1.specific_complaint.v_required.err = Diperlukan keluhan khusus +anc_quick_check.step1.contact_reason.v_required.err = Alasan harus datang ke fasilitas +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Kehilangan cairan (bocor) +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Sakit perut yang parah +anc_quick_check.step1.contact_reason.label = Alasan datang ke fasilitas +anc_quick_check.step1.danger_signs.label = Tanda bahaya +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Sakit - Punggung bawah +anc_quick_check.step1.specific_complaint.options.trauma.text = Cedera +anc_quick_check.step1.danger_signs.options.unconscious.text = Tidak sadar +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Penyakit kuning +anc_quick_check.step1.danger_signs.options.labour.text = Tenaga Kerja +anc_quick_check.step1.specific_complaint.options.headache.text = Sakit kepala +anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Gangguan penglihatan +anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Pengiriman segera +anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus +anc_quick_check.step1.specific_complaint.options.cough.text = Batuk +anc_quick_check.step1.specific_complaint.options.dysuria.text = Nyeri - Saat buang air kecil (disuria) +anc_quick_check.step1.contact_reason.options.first_contact.text = Kontak pertama +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Gejala flu +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Mual +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Gerakan janin - tidak ada +anc_quick_check.step1.danger_signs.options.convulsing.text = Mengejang +anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Muntah parah +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Masalah kesehatan +anc_quick_check.step1.danger_signs.v_required.err = Tanda bahaya diperlukan +anc_quick_check.step1.specific_complaint.options.vomiting.text = Muntah +anc_quick_check.step1.specific_complaint.options.diarrhea.text = Diare + From 7b9bc10979e4fad7942fe4490ee0877890c33957 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 18 Feb 2022 12:25:01 +0300 Subject: [PATCH 140/302] Spinners --- .../library/activity/MainContactActivity.java | 20 +++++++++++++------ .../library/presenter/RegisterPresenter.java | 2 -- .../anc/library/util/ANCFormUtils.java | 3 +-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 7810d4b5b..7295a2ea8 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -1,6 +1,7 @@ package org.smartregister.anc.library.activity; import android.annotation.SuppressLint; +import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.view.View; @@ -389,15 +390,23 @@ private void updateFieldRequiredCount(JSONObject object, JSONObject fieldObject, private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { if (globalKeys.contains(fieldObject.getString(JsonFormConstants.KEY)) && fieldObject.has(JsonFormConstants.VALUE)) { - if (fieldObject.optString(JsonFormConstants.VALUE, "").charAt(0) == '{') { - JSONObject object = new JSONObject(fieldObject.optString(JsonFormConstants.VALUE)); - formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), object.optString(JsonFormConstants.TEXT, "")); + Context context = AncLibrary.getInstance().getApplicationContext(); + String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + String valueString = fieldObject.optString(JsonFormConstants.VALUE, ""); + JSONArray jsonArray = new JSONArray(valueString); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.optJSONObject(i); + formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), + jsonObject.optString(JsonFormConstants.TEXT, "")); + } + } else { formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), fieldObject.getString(JsonFormConstants.VALUE));//Normal value } - processAbnormalValues(formGlobalValues, fieldObject); + processAbnormalValues(formGlobalValues, fieldObject); String secKey = ANCFormUtils.getSecondaryKey(fieldObject); if (fieldObject.has(secKey)) { formGlobalValues.put(secKey, fieldObject.getString(secKey));//Normal value secondary key @@ -435,8 +444,7 @@ private void checkRequiredForCheckBoxOther(JSONObject fieldObject) throws Except .get(fieldObject.getString(ConstantsUtils.KeyUtils.KEY).replace(ConstantsUtils.SuffixUtils.OTHER, ConstantsUtils.SuffixUtils.VALUE)) != null) { - formGlobalValues - .put(ANCFormUtils.getSecondaryKey(fieldObject), fieldObject.getString(JsonFormConstants.VALUE)); + formGlobalValues.put(ANCFormUtils.getSecondaryKey(fieldObject), fieldObject.getString(JsonFormConstants.VALUE)); processAbnormalValues(formGlobalValues, fieldObject); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java index ce186b0cb..234b18b3a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java @@ -136,8 +136,6 @@ public void closeAncRecord(String jsonString) { try { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getView().getContext()); AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); - - Timber.d(jsonString); getView().showProgressDialog(jsonString.contains(ConstantsUtils.EventTypeUtils.CLOSE) ? R.string.removing_dialog_title : R.string.saving_dialog_title); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index c96025590..456bd5040 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -484,8 +484,7 @@ private static void processAbnormalValues(Facts facts, JSONObject jsonObject) th if (fieldKey.endsWith(ConstantsUtils.SuffixUtils.OTHER) && !fieldKeySecondary.isEmpty() && facts.get(fieldKeySecondary) != null && facts.get(fieldKeyOtherValue) != null) { - List tempList = - new ArrayList<>(Arrays.asList(facts.get(fieldKeySecondary).toString().split("\\s*,\\s*"))); + List tempList = new ArrayList<>(Arrays.asList(facts.get(fieldKeySecondary).toString().split("\\s*,\\s*"))); tempList.remove(tempList.size() - 1); tempList.add(StringUtils.capitalize(facts.get(fieldKeyOtherValue).toString())); facts.put(fieldKeySecondary, getListValuesAsString(tempList)); From 7287fec86bae4f6cfd87d06f0d2ee8562bef4738 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 21 Feb 2022 09:41:06 +0300 Subject: [PATCH 141/302] Maincontact refactoring --- .../library/activity/MainContactActivity.java | 19 ++----------------- .../anc/library/util/ANCFormUtils.java | 9 +++------ 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 7295a2ea8..6a007f8c1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -1,7 +1,6 @@ package org.smartregister.anc.library.activity; import android.annotation.SuppressLint; -import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.view.View; @@ -84,9 +83,9 @@ public static void processAbnormalValues(Map facts, JSONObject j } else { facts.put(fieldKey, fieldValue.toString()); } - } + @Override protected void onResume() { super.onResume(); @@ -390,22 +389,8 @@ private void updateFieldRequiredCount(JSONObject object, JSONObject fieldObject, private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { if (globalKeys.contains(fieldObject.getString(JsonFormConstants.KEY)) && fieldObject.has(JsonFormConstants.VALUE)) { - Context context = AncLibrary.getInstance().getApplicationContext(); - String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - String valueString = fieldObject.optString(JsonFormConstants.VALUE, ""); - JSONArray jsonArray = new JSONArray(valueString); - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.optJSONObject(i); - formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), - jsonObject.optString(JsonFormConstants.TEXT, "")); - } - - } else { - formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), - fieldObject.getString(JsonFormConstants.VALUE));//Normal value - } + formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), fieldObject.getString(JsonFormConstants.VALUE));//Normal value processAbnormalValues(formGlobalValues, fieldObject); String secKey = ANCFormUtils.getSecondaryKey(fieldObject); if (fieldObject.has(secKey)) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 456bd5040..0fd45407d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -165,20 +165,17 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject.has(JsonFormConstants.VALUE) && jsonObject.getBoolean(JsonFormConstants.VALUE)) { - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - keyList.add(Utils.generateTranslatableValue(jsonObject.getString(JsonFormConstants.KEY), jsonObject) + ""); - } else { - keyList.add(jsonObject.getString(JsonFormConstants.KEY)); - } + keyList.add(jsonObject.getString(JsonFormConstants.KEY)); if (jsonObject.has(JsonFormConstants.SECONDARY_VALUE) && jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); } else { if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - valueList.add(Utils.generateTranslatableValue(jsonObject.optString(JsonFormConstants.KEY, ""), jsonObject) + ""); + valueList.add(jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); } + } } } From 2d7e9e0d9959d02ef8c41bae065ad228413b1653 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 21 Feb 2022 17:51:59 +0300 Subject: [PATCH 142/302] Refactoring Key Value converter --- .../anc/library/util/ANCFormUtils.java | 93 +++++++++++++++++-- .../smartregister/anc/library/util/Utils.java | 1 + 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 0fd45407d..3475086a0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import timber.log.Timber; @@ -165,7 +166,11 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); if (jsonObject.has(JsonFormConstants.VALUE) && jsonObject.getBoolean(JsonFormConstants.VALUE)) { - keyList.add(jsonObject.getString(JsonFormConstants.KEY)); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { + keyList.add(Utils.generateTranslatableValue(jsonObject.getString(JsonFormConstants.KEY), jsonObject) + ""); + } else { + keyList.add(jsonObject.getString(JsonFormConstants.KEY)); + } if (jsonObject.has(JsonFormConstants.SECONDARY_VALUE) && jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); @@ -505,8 +510,14 @@ public static String getListValuesAsString(List list) { public static String keyToValueConverter(String keys) { if (keys != null) { - String cleanKey = WordUtils.capitalizeFully(cleanValue(keys), ','); - if (!TextUtils.isEmpty(keys)) { + String cleanKey = ""; + if (!cleanValue(keys).contains(".") || !cleanValue(keys).contains("text")) { + cleanKey = WordUtils.capitalizeFully(cleanValue(keys), ','); + } else { + cleanKey = cleanValue(keys); + } + + if (!TextUtils.isEmpty(keys) && keys.contains("_") && !keys.contains(".")) { return cleanKey.replaceAll("_", " "); } else { return cleanKey; @@ -516,14 +527,80 @@ public static String keyToValueConverter(String keys) { } } - public static String cleanValue(String raw) { - if (raw.length() > 0 && raw.charAt(0) == '[') { - return raw.substring(1, raw.length() - 1); - } else { - return raw; +// public static String cleanValue(String raw) { +// String rawString = ""; +// if (raw.length() > 0 && raw.charAt(0) == '[') { +// rawString = raw.substring(1, raw.length() - 1); +// } else { +// try { +// if (raw.length() > 0 && raw.charAt(0) == '{' && raw.contains(",")) { +// String[] list = raw.split(","); +// for (String value : list) { +// if (value.charAt(0) == '{') { +// JSONObject object = new JSONObject(value); +// String finalOutputString = object.optString(JsonFormConstants.TEXT, ""); +// if (!finalOutputString.isEmpty()) { +// List strings = new ArrayList<>(); +// strings.add(finalOutputString); +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { +// rawString = strings.stream().collect(Collectors.joining(",")); +// } +// } +// } +// } +// } else { +// rawString = raw; +// } +// +// } catch (Exception e) { +// return rawString; +// } +// } +// return rawString; +// } + + private static String cleanValue(String value) { + String rawString = ""; + try { + if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { + for (String jsonString : value.substring(1, value.length() - 1).split(",")) { + if (jsonString.charAt(0) == '{') { + JSONObject object = new JSONObject(jsonString); + if (!object.optString(JsonFormConstants.TEXT, "").trim().isEmpty()) { + List list = Arrays.asList(object.optString(JsonFormConstants.TEXT, "")); + rawString = list.stream().collect(Collectors.joining(",")); + } + + } else { + List list = Arrays.asList(jsonString); + list.add(jsonString); + rawString = list.stream().collect(Collectors.joining(",")); + } + } + } else { + if (value.length() > 0 && value.charAt(0) == '{' && value.contains(",") && value.charAt(value.length() - 1) == '}') { + JSONArray jsonArrayString = new JSONArray("[" + value + "]"); + for (int i = 0; i < jsonArrayString.length(); i++) { + JSONObject object = jsonArrayString.optJSONObject(i); + String finalOutputString = object.optString(JsonFormConstants.TEXT, ""); + if (!finalOutputString.isEmpty()) { + List rawList = new ArrayList<>(); + rawList.add(finalOutputString); + rawString = rawList.stream().collect(Collectors.joining(",")); + + } + } + } else { + rawString = value; + } + } + } catch (Exception e) { + return rawString; } + return rawString; } + /** * Filters checkbox values based on specified list * diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 5b91de64d..26c482a5e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -365,6 +365,7 @@ private static String cleanValueResult(String result) { List nonEmptyItems = new ArrayList<>(); for (String item : result.split(",")) { if (item.length() > 0 && StringUtils.isNotBlank(item)) { + //Adding array items nonEmptyItems.add(item); } } From 2edc3fa670044f89ca69202958b277021a8a6207 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 21 Feb 2022 18:21:04 +0300 Subject: [PATCH 143/302] Generate Translation value refactoring --- .../anc/library/util/ANCFormUtils.java | 2 +- .../smartregister/anc/library/util/Utils.java | 34 +++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 3475086a0..da5ddc5ee 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -511,7 +511,7 @@ public static String getListValuesAsString(List list) { public static String keyToValueConverter(String keys) { if (keys != null) { String cleanKey = ""; - if (!cleanValue(keys).contains(".") || !cleanValue(keys).contains("text")) { + if (!cleanValue(keys).contains("[") || !cleanValue(keys).contains("]")) { cleanKey = WordUtils.capitalizeFully(cleanValue(keys), ','); } else { cleanKey = cleanValue(keys); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 26c482a5e..05af24acc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -22,7 +22,6 @@ import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; -import com.itextpdf.layout.element.IBlockElement; import com.itextpdf.layout.element.Paragraph; import com.itextpdf.layout.property.HorizontalAlignment; import com.itextpdf.layout.property.TextAlignment; @@ -71,7 +70,6 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -352,7 +350,7 @@ private static String processValue(String key, Facts facts) { if (value != null && value.endsWith(OTHER_SUFFIX)) { Object otherValue = value.endsWith(OTHER_SUFFIX) ? facts.get(key + ConstantsUtils.SuffixUtils.OTHER) : ""; value = otherValue != null ? - value.substring(0, value.lastIndexOf(",")) + ", " + otherValue.toString() + "]" : + value.substring(0, value.lastIndexOf(",")) + ", " + otherValue + "]" : value.substring(0, value.lastIndexOf(",")) + "]"; } @@ -815,6 +813,22 @@ public static Event addContactVisitDetails(String attentionFlagsString, Event ev return event; } + public static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { + JSONObject newValue = new JSONObject(); + ANCFormUtils formUtils = new ANCFormUtils(); + if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { + JSONArray options = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); + JSONObject selectedOption = formUtils.getOptionFromOptionsUsingKey(options, value); + newValue.put(JsonFormConstants.VALUE, value); + String text = selectedOption.optString(JsonFormConstants.TRANSLATION_TEXT, "").length() != 0 ? selectedOption.optString(JsonFormConstants.TEXT, "") : selectedOption.optString(JsonFormConstants.KEY, ""); + newValue.put(JsonFormConstants.TEXT, text); + return newValue; + } + newValue.put(JsonFormConstants.VALUE, value); + newValue.put(JsonFormConstants.TEXT, jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + return newValue; + } + /** * Loads yaml files that contain rules for the profile displays * @@ -976,18 +990,4 @@ private final void addEmptyLine(Document layoutDocument, int number) { private final void addSubHeading(Document layoutDocument, String text) { layoutDocument.add((new Paragraph(text)).setBold().setHorizontalAlignment(HorizontalAlignment.LEFT)); } - public static JSONObject generateTranslatableValue(String value, JSONObject jsonObject) throws JSONException { - JSONObject newValue = new JSONObject(); - ANCFormUtils formUtils = new ANCFormUtils(); - if (jsonObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { - JSONArray options = jsonObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME); - JSONObject selectedOption = formUtils.getOptionFromOptionsUsingKey(options, value); - newValue.put(JsonFormConstants.VALUE, value); - newValue.put(JsonFormConstants.TEXT, selectedOption.optString(JsonFormConstants.TRANSLATION_TEXT, "")); - return newValue; - } - newValue.put(JsonFormConstants.VALUE, value); - newValue.put(JsonFormConstants.TEXT, jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); - return newValue; - } } From 6ca85b951fc636c63131e07676cc976a72929c3e Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 21 Feb 2022 19:46:45 +0300 Subject: [PATCH 144/302] Addition of JSON Array checker --- .../main/assets/json.form/anc_profile.json | 42 ++++++++++----- .../anc/library/util/ANCFormUtils.java | 54 +++++-------------- .../smartregister/anc/library/util/Utils.java | 10 ++++ 3 files changed, 51 insertions(+), 55 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 42a5e8816..c9d9468f3 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -1821,98 +1821,112 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "dont_know", - "text": "{{anc_profile.step4.allergies.options.dont_know.text}}" + "text": "{{anc_profile.step4.allergies.options.dont_know.text}}", + "translation_text": "anc_profile.step4.allergies.options.dont_know.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "70439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "albendazole", - "text": "{{anc_profile.step4.allergies.options.albendazole.text}}" + "text": "{{anc_profile.step4.allergies.options.albendazole.text}}", + "translation_text": "anc_profile.step4.allergies.options.albendazole.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "70991AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "aluminium_hydroxide", - "text": "{{anc_profile.step4.allergies.options.aluminium_hydroxide.text}}" + "text": "{{anc_profile.step4.allergies.options.aluminium_hydroxide.text}}", + "translation_text": "anc_profile.step4.allergies.options.aluminium_hydroxide.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "calcium", - "text": "{{anc_profile.step4.allergies.options.calcium.text}}" + "text": "{{anc_profile.step4.allergies.options.calcium.text}}", + "translation_text": "anc_profile.step4.allergies.options.calcium.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "73154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "chamomile", - "text": "{{anc_profile.step4.allergies.options.chamomile.text}}" + "text": "{{anc_profile.step4.allergies.options.chamomile.text}}", + "translation_text": "anc_profile.step4.allergies.options.chamomile.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "folic_acid", - "text": "{{anc_profile.step4.allergies.options.folic_acid.text}}" + "text": "{{anc_profile.step4.allergies.options.folic_acid.text}}", + "translation_text": "anc_profile.step4.allergies.options.folic_acid.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "77001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "ginger", - "text": "{{anc_profile.step4.allergies.options.ginger.text}}" + "text": "{{anc_profile.step4.allergies.options.ginger.text}}", + "translation_text": "anc_profile.step4.allergies.options.ginger.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "iron", - "text": "{{anc_profile.step4.allergies.options.iron.text}}" + "text": "{{anc_profile.step4.allergies.options.iron.text}}", + "translation_text": "anc_profile.step4.allergies.options.iron.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "79229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "magnesium_carbonate", - "text": "{{anc_profile.step4.allergies.options.magnesium_carbonate.text}}" + "text": "{{anc_profile.step4.allergies.options.magnesium_carbonate.text}}", + "translation_text": "anc_profile.step4.allergies.options.magnesium_carbonate.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "924AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "malaria_medication", - "text": "{{anc_profile.step4.allergies.options.malaria_medication.text}}" + "text": "{{anc_profile.step4.allergies.options.malaria_medication.text}}", + "translation_text": "anc_profile.step4.allergies.options.malaria_medication.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "79413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "mebendazole", - "text": "{{anc_profile.step4.allergies.options.mebendazole.text}}" + "text": "{{anc_profile.step4.allergies.options.mebendazole.text}}", + "translation_text": "anc_profile.step4.allergies.options.mebendazole.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "81724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "penicillin", - "text": "{{anc_profile.step4.allergies.options.penicillin.text}}" + "text": "{{anc_profile.step4.allergies.options.penicillin.text}}", + "translation_text": "anc_profile.step4.allergies.options.penicillin.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "84797AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "prep_tenofovir_disoproxil_fumarate", - "text": "{{anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text}}" + "text": "{{anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text}}", + "translation_text": "anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text" }, { "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "other", - "text": "{{anc_profile.step4.allergies.options.other.text}}" + "text": "{{anc_profile.step4.allergies.options.other.text}}", + "translation_text": "anc_profile.step4.allergies.options.other.text" } ], "v_required": { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index da5ddc5ee..06aec967e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -511,10 +511,11 @@ public static String getListValuesAsString(List list) { public static String keyToValueConverter(String keys) { if (keys != null) { String cleanKey = ""; - if (!cleanValue(keys).contains("[") || !cleanValue(keys).contains("]")) { - cleanKey = WordUtils.capitalizeFully(cleanValue(keys), ','); + String value = cleanValue(keys); + if (!value.contains("text") || !value.contains(".")) { + cleanKey = WordUtils.capitalizeFully(value, ','); } else { - cleanKey = cleanValue(keys); + cleanKey = value; } if (!TextUtils.isEmpty(keys) && keys.contains("_") && !keys.contains(".")) { @@ -527,51 +528,21 @@ public static String keyToValueConverter(String keys) { } } -// public static String cleanValue(String raw) { -// String rawString = ""; -// if (raw.length() > 0 && raw.charAt(0) == '[') { -// rawString = raw.substring(1, raw.length() - 1); -// } else { -// try { -// if (raw.length() > 0 && raw.charAt(0) == '{' && raw.contains(",")) { -// String[] list = raw.split(","); -// for (String value : list) { -// if (value.charAt(0) == '{') { -// JSONObject object = new JSONObject(value); -// String finalOutputString = object.optString(JsonFormConstants.TEXT, ""); -// if (!finalOutputString.isEmpty()) { -// List strings = new ArrayList<>(); -// strings.add(finalOutputString); -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { -// rawString = strings.stream().collect(Collectors.joining(",")); -// } -// } -// } -// } -// } else { -// rawString = raw; -// } -// -// } catch (Exception e) { -// return rawString; -// } -// } -// return rawString; -// } private static String cleanValue(String value) { String rawString = ""; try { if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { - for (String jsonString : value.substring(1, value.length() - 1).split(",")) { - if (jsonString.charAt(0) == '{') { - JSONObject object = new JSONObject(jsonString); - if (!object.optString(JsonFormConstants.TEXT, "").trim().isEmpty()) { - List list = Arrays.asList(object.optString(JsonFormConstants.TEXT, "")); + if (Utils.checkJsonArrayString(value)) { + JSONArray jsonArray = new JSONArray(value); + for (int i = 0; i < jsonArray.length(); i++) { + if (!jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "").trim().isEmpty()) { + List list = Arrays.asList(jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "")); rawString = list.stream().collect(Collectors.joining(",")); } - - } else { + } + } else { + for (String jsonString : value.substring(1, value.length() - 1).split(",")) { List list = Arrays.asList(jsonString); list.add(jsonString); rawString = list.stream().collect(Collectors.joining(",")); @@ -598,6 +569,7 @@ private static String cleanValue(String value) { return rawString; } return rawString; + } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 05af24acc..e042cd82b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -829,6 +829,16 @@ public static JSONObject generateTranslatableValue(String value, JSONObject json return newValue; } + public static boolean checkJsonArrayString(String input) { + try { + JSONArray jsonArray = new JSONArray(input); + return jsonArray.optJSONObject(0) != null || jsonArray.optJSONObject(0).length() > 0; + } catch (Exception e) { + return false; + } + + } + /** * Loads yaml files that contain rules for the profile displays * From 27f87d42844d05d334bd874c52579713fffe6092 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 22 Feb 2022 11:56:50 +0300 Subject: [PATCH 145/302] Codacy checks --- .../java/org/smartregister/anc/library/util/ANCFormUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 06aec967e..cf6cd8c15 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -529,7 +529,7 @@ public static String keyToValueConverter(String keys) { } - private static String cleanValue(String value) { + static String cleanValue(String value) { String rawString = ""; try { if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { From acf6ec8ad2d3dea234e0a32e96f38d0785be0bfc Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 22 Feb 2022 20:42:10 +0300 Subject: [PATCH 146/302] Process Value ANCFormUtils --- .../main/assets/config/attention-flags.yml | 6 +- .../presenter/ProfileFragmentPresenter.java | 2 +- .../repository/PreviousContactRepository.java | 41 +- .../anc/library/util/ANCFormUtils.java | 46 +- .../smartregister/anc/library/util/Utils.java | 9 +- .../anc_counselling_treatment.properties | 4 +- .../anc_counselling_treatment_ind.properties | 648 ++++++++++++++++++ .../anc_symptoms_follow_up.properties | 446 ++++++------ .../resources/profile_overview.properties | 128 ++-- reference-app/build.gradle | 6 +- 10 files changed, 976 insertions(+), 360 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_counselling_treatment_ind.properties diff --git a/opensrp-anc/src/main/assets/config/attention-flags.yml b/opensrp-anc/src/main/assets/config/attention-flags.yml index 90fb8aeb7..6d16e2513 100644 --- a/opensrp-anc/src/main/assets/config/attention-flags.yml +++ b/opensrp-anc/src/main/assets/config/attention-flags.yml @@ -181,8 +181,4 @@ fields: relevance: "platelets < 100000" - template: "{{attention_flags.red.tb_screening_positive}}" - relevance: "tb_screening_result == 'positive'" - - #added - - template: "{{profile_contact_test.ultrasound_tests.ultrasound_test}}:{{anc_profile.step2.ultrasound_done.options.yes.text}}" - relevance: "ultrasound_done!=''" \ No newline at end of file + relevance: "tb_screening_result == 'positive'" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index bd25add39..b9a92bdea 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -75,7 +75,7 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); if (attentionFlagObject.has("text") && attentionFlagObject.has("key")) { String translation_text; - translation_text = !attentionFlagObject.getString("text").isEmpty() ? "{" + attentionFlagObject.getString("text") + "}" : ""; + translation_text = !attentionFlagObject.getString("text").isEmpty() ? "{{" + attentionFlagObject.getString("text") + "}}" : ""; facts.put(key, translation_text); } else { facts.put(key, jsonObject.get(key)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 3c5b4f9f4..1ba35b118 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -1,7 +1,6 @@ package org.smartregister.anc.library.repository; import android.content.ContentValues; -import android.content.Context; import android.text.TextUtils; import android.util.Log; @@ -13,7 +12,6 @@ import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.json.JSONObject; -import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; import org.smartregister.anc.library.util.ANCFormUtils; @@ -223,21 +221,14 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { try { SQLiteDatabase db = getWritableDatabase(); mCursor = getAllTests(baseEntityId, db); - Context context = AncLibrary.getInstance().getApplicationContext(); if (mCursor != null) { while (mCursor.moveToNext()) { - String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - String jsonValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - if (jsonValue.charAt(0) == '{') { - JSONObject valueObject = new JSONObject(jsonValue); - previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), valueObject.optString(JsonFormConstants.TEXT, "")); - } else { - previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); - } + String jsonValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); + if (StringUtils.isNotBlank(jsonValue) && jsonValue.trim().charAt(0) == '{') { + JSONObject valueObject = new JSONObject(jsonValue); + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), valueObject.optString(JsonFormConstants.TEXT, "")); } else { - previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), - mCursor.getString(mCursor.getColumnIndex(VALUE))); + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); } } @@ -335,28 +326,22 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, null, null, orderBy, null); if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { - Context context = AncLibrary.getInstance().getApplicationContext(); - String value = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { - JSONObject previousContactObject = new JSONObject(previousContactValue); - if (previousContactObject.has("value") && previousContactObject.has("text")) { + String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); + if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { + JSONObject previousContactObject = new JSONObject(previousContactValue); + if (previousContactObject.has("value") && previousContactObject.has("text")) { String translation_text; - translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}" : ""; - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); - } else { - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); - } + translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}}" : ""; + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); } - } else { - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), mCursor.getString(mCursor.getColumnIndex(VALUE))); + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); } } + previousContactFacts.put(CONTACT_NO, selectionArgs[1]); return previousContactFacts; } else if (Integer.parseInt(contactNo) > 0) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index cf6cd8c15..a6459d85b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -1,5 +1,6 @@ package org.smartregister.anc.library.util; +import android.annotation.SuppressLint; import android.content.Context; import android.text.TextUtils; @@ -175,12 +176,13 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); } else { - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - valueList.add(jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "")); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.optString(JsonFormConstants.TYPE)) || + JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.SPINNER.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.MULTI_SELECT_LIST.equals(jsonObject.optString(JsonFormConstants.TYPE)))) { + String translation_text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "") != null ? "{{" + jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "") + "}}" : ""; + valueList.add(translation_text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); } - } } } @@ -529,46 +531,28 @@ public static String keyToValueConverter(String keys) { } + @SuppressLint("NewApi") static String cleanValue(String value) { - String rawString = ""; try { if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { if (Utils.checkJsonArrayString(value)) { JSONArray jsonArray = new JSONArray(value); + List list = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); i++) { - if (!jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "").trim().isEmpty()) { - List list = Arrays.asList(jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "")); - rawString = list.stream().collect(Collectors.joining(",")); - } - } - } else { - for (String jsonString : value.substring(1, value.length() - 1).split(",")) { - List list = Arrays.asList(jsonString); - list.add(jsonString); - rawString = list.stream().collect(Collectors.joining(",")); - } - } - } else { - if (value.length() > 0 && value.charAt(0) == '{' && value.contains(",") && value.charAt(value.length() - 1) == '}') { - JSONArray jsonArrayString = new JSONArray("[" + value + "]"); - for (int i = 0; i < jsonArrayString.length(); i++) { - JSONObject object = jsonArrayString.optJSONObject(i); - String finalOutputString = object.optString(JsonFormConstants.TEXT, ""); - if (!finalOutputString.isEmpty()) { - List rawList = new ArrayList<>(); - rawList.add(finalOutputString); - rawString = rawList.stream().collect(Collectors.joining(",")); - + if (jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "") != null) { + String translatedText = jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, ""); + list.add(translatedText); } } + return list.size() > 1 ? String.join(",", list) : ""; } else { - rawString = value; + return value.substring(1, value.length() - 1); } - } + } else + return value; } catch (Exception e) { - return rawString; + return ""; } - return rawString; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index e042cd82b..f1af507cc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -831,14 +831,19 @@ public static JSONObject generateTranslatableValue(String value, JSONObject json public static boolean checkJsonArrayString(String input) { try { - JSONArray jsonArray = new JSONArray(input); - return jsonArray.optJSONObject(0) != null || jsonArray.optJSONObject(0).length() > 0; + if (StringUtils.isNotBlank(input)) { + JSONArray jsonArray = new JSONArray(input); + return jsonArray.optJSONObject(0) != null || jsonArray.optJSONObject(0).length() > 0; + } + return false; + } catch (Exception e) { return false; } } + /** * Loads yaml files that contain rules for the profile displays * diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties index 2ff7534e6..cb9fce2b9 100644 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment.properties +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment.properties @@ -643,4 +643,6 @@ anc_counselling_treatment.step8.ipv_referrals.options.legal_aid.text = Legal aid anc_counselling_treatment.step8.ipv_referrals.options.child_protection.text = Child protection anc_counselling_treatment.step8.ipv_referrals.options.livelihood_support.text = Livelihood support anc_counselling_treatment.step8.ipv_referrals.options.other.text = Other (specify) -anc_counselling_treatment.step8.ipv_referrals_other.hint = Specify \ No newline at end of file +anc_counselling_treatment.step8.ipv_referrals_other.hint = Specify +anc_quick_check.step1.danger_signs.options.danger_bleeding.text=Danger Bleeding Vaginally +anc_quick_check.step1.danger_signs.options.danger_none.text=Danger None \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_ind.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment_ind.properties new file mode 100644 index 000000000..61a6cd5c2 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_counselling_treatment_ind.properties @@ -0,0 +1,648 @@ +anc_counselling_treatment.step9.ifa_weekly.v_required.err=Please select an option +anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err=Please select an option +anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text=Done +anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.ifa_low_prev_notdone.label=Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone.hint=Reason +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title=Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step10.iptp_sp1.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err=Please select an option +anc_counselling_treatment.step5.ifa_anaemia_notdone.hint=Reason +anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text=Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint=Specify +anc_counselling_treatment.step9.calcium.text=0 +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title=Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text=Severe pre-eclampsia diagnosis +anc_counselling_treatment.step11.tt1_date.label=TTCV dose #1 +anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text=Done +anc_counselling_treatment.step3.heartburn_counsel.label=Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step9.ifa_high_prev.options.done.text=Done +anc_counselling_treatment.step6.gdm_risk_counsel.label=Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text=Not done +anc_counselling_treatment.step2.shs_counsel.label_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_counselling_treatment.step2.caffeine_counsel.options.done.text=Done +anc_counselling_treatment.step2.condom_counsel.label=Condom counseling +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text=Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label=Reason +anc_counselling_treatment.step3.nausea_counsel.label=Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step10.deworm_notdone_other.hint=Specify +anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step2.caffeine_counsel_notdone.hint=Reason +anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step5.hepc_positive_counsel.label=Hepatitis C positive counseling +anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text=Procedure:\n\n- Manage according to the local protocol for rapid assessment and management\n\n- Refer urgently to hospital! +anc_counselling_treatment.step5.hypertension_counsel.v_required.err=Please select an option +anc_counselling_treatment.step3.nausea_counsel_notdone.label=Reason +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label=Reason +anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text=Not done +anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text=Allergies +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err=Please select an option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text=Not done +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text=Woman is ill +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text=Not done +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text=Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err=Please select an option +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text=Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms\n\n- Proceed to further testing with an RPR test +anc_counselling_treatment.step10.deworm_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step7.delivery_place.options.facility_elective.text=Facility (elective C-section) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text=Done +anc_counselling_treatment.step7.breastfeed_counsel.options.done.text=Done +anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err=Please select an option +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err=Please select an option +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text=Stock out +anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title=Gestational diabetes mellitus (GDM) risk counseling +anc_counselling_treatment.step10.deworm.options.done.text=Done +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label=Reason +anc_counselling_treatment.step7.danger_signs_counsel.label_info_title=Seeking care for danger signs counseling +anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text=Woman did not accept +anc_counselling_treatment.step2.condom_counsel.label_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label=Reason +anc_counselling_treatment.step3.constipation_counsel.v_required.err=Please select an option +anc_counselling_treatment.step7.family_planning_counsel.options.done.text=Done +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title=Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_title=Caffeine reduction counseling +anc_counselling_treatment.step11.flu_date.options.not_done.text=Not done +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label=Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text=Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_counselling_treatment.step10.iptp_sp3.label_info_title=IPTp-SP dose 3 +anc_counselling_treatment.step3.back_pelvic_pain_toaster.text=Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_counselling_treatment.step6.prep_toaster.toaster_info_title=Partner HIV test recommended +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err=Please select an option +anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text=Not done +anc_counselling_treatment.step7.anc_contact_counsel.label=ANC contact schedule counseling +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text=Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err=Please select an option +anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text=Done +anc_counselling_treatment.step5.asb_positive_counsel.label_info_title=Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text=Done +anc_counselling_treatment.step10.iptp_sp1.label_info_title=IPTp-SP dose 1 +anc_counselling_treatment.step2.condom_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step5.ifa_anaemia.label_info_title=Prescribe daily dose of 120 mg iron and 0.4 mg folic acid for anaemia +anc_counselling_treatment.step10.iptp_sp3.v_required.err=Please select an option +anc_counselling_treatment.step1.referred_hosp.options.no.text=No +anc_counselling_treatment.step1.title=Hospital Referral +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err=Please select an option +anc_counselling_treatment.step4.body_mass_toaster.text=Body mass index (BMI) = {bmi}\n\nWoman is {weight_cat}. Weight gain during pregnancy should be {exp_weight_gain}. +anc_counselling_treatment.step5.hypertension_counsel.label=Hypertension counseling +anc_counselling_treatment.step10.deworm_notdone.hint=Reason +anc_counselling_treatment.step1.referred_hosp.label=Referred to hospital? +anc_counselling_treatment.step2.tobacco_counsel_notdone.hint=Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_title=Diabetes counseling +anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text=Not done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label=Syphilis counselling and further testing +anc_counselling_treatment.step5.high_prev_allergy_toaster.text=Allergies : {allergies_values} +anc_counselling_treatment.step5.high_prev_allergy_toaster.toaster_info_text=Erythromycin 500 mg orally four times daily for 14 days\nor\nAzithromycin 2 g once orally.\nRemarks: Although erythromycin and azithromycin treat the pregnant women, they do not cross the placental barrier completely and as a result the fetus is not treated. It is therefore necessary to treat the newborn infant soon after delivery. +anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err=Please select an option +anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text=Woman refused +anc_counselling_treatment.step2.tobacco_counsel.label_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title=HIV positive counseling +anc_counselling_treatment.step1.fever_toaster.toaster_info_text=Procedure:\n\n- Insert an IV line\n\n- Give fluids slowly\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title=Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text=Not necessary +anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text=Not done +anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err=Please select an option +anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text=Done +anc_counselling_treatment.step11.flu_dose_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text=Abnormal fetal heart rate: {fetal_heart_rate_repeat}bpm +anc_counselling_treatment.step11.tt1_date.label_info_text=TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step9.calcium_supp.label_info_text=Advice:\n\n- Divide the total dose into three doses, preferably taken at meal-time\n\n- Iron and calcium should preferably be administered several hours apart rather than concomitantly\n\n[Calcium sources folder] +anc_counselling_treatment.step9.ifa_high_prev_notdone.hint=Reason +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label=Reason +anc_counselling_treatment.step3.nausea_counsel.options.done.text=Done +anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_high_prev.label=Prescribe daily dose of 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step11.tt2_date.label_info_title=TTCV dose #2 +anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step9.ifa_weekly_notdone.hint=Reason +anc_counselling_treatment.step11.tt1_date.v_required.err=TTCV dose #1 is required +anc_counselling_treatment.step11.tt2_date.options.not_done.text=Not done +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text=Abnormal pulse rate: {pulse_rate_repeat}bpm +anc_counselling_treatment.step7.delivery_place.options.facility.text=Facility +anc_counselling_treatment.step10.iptp_sp1.label_info_text=Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.deworm_notdone.label=Reason +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step5.ifa_anaemia.label_info_text=If a woman is diagnosed with anaemia during pregnancy, her daily elemental iron should be increased to 120 mg until her haemoglobin (Hb) concentration rises to normal (Hb 110 g/L or higher). Thereafter, she can resume the standard daily antenatal iron dose to prevent re-occurrence of anaemia.\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate. +anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title=Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label=Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step10.malaria_counsel.options.done.text=Done +anc_counselling_treatment.step3.constipation_counsel_notdone.hint=Reason +anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step11.tt2_date.v_required.err=TTCV dose #2 is required +anc_counselling_treatment.step7.rh_negative_counsel.options.done.text=Done +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text=Woman is ill +anc_counselling_treatment.step9.ifa_low_prev.label=Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid for anaemia prevention +anc_counselling_treatment.step1.abn_breast_exam_toaster.text=Abnormal breast exam: {breast_exam_abnormal} +anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text=Pregnant women with GBS colonization should receive intrapartum antibiotic administration to prevent early neonatal GBS infection. +anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label=Syphilis counselling and treatment +anc_counselling_treatment.step10.iptp_sp_notdone.hint=Reason +anc_counselling_treatment.step9.ifa_low_prev.label_info_title=Prescribe daily dose of 30 to 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint=Specify +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title=Healthy eating and keeping physically active counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.label=Reason +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text=Pre-eclampsia diagnosis +anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err=Please select an option +anc_counselling_treatment.step5.tb_positive_counseling.label_info_text=Treat according to local protocol and/or refer for treatment. +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text=Procedure:\n\n- Give magnesium sulphate\n\n- Give appropriate anti-hypertensives\n\n- Revise the birth plan\n\n- Refer urgently to hospital! +anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text=Done +anc_counselling_treatment.step2.shs_counsel_notdone.label=Reason +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err=Please select an option +anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step7.rh_negative_counsel.label_info_title=Rh factor negative counseling +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label=Reason +anc_counselling_treatment.step5.ifa_anaemia.v_required.err=Please select an option +anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text=Severe danger signs include:\n\n- Vaginal bleeding\n\n- Convulsions/fits\n\n- Severe headaches with visual disturbance\n\n- Fever and too weak to get out of bed\n\n- Severe abdominal pain\n\n- Fast or difficult breathing +anc_counselling_treatment.step7.anc_contact_counsel.label_info_title=ANC contact schedule counseling +anc_counselling_treatment.step2.caffeine_counsel.label_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text=Procedure:\n\n- Refer to hospital +anc_counselling_treatment.step1.referred_hosp_notdone_other.hint=Specify +anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err=Please select an option +anc_counselling_treatment.step5.ifa_anaemia_notdone.label=Reason +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step9.vita_supp.options.done.text=Done +anc_counselling_treatment.step3.heartburn_counsel.label_info_title=Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_counselling_treatment.step5.hiv_positive_counsel.label=HIV positive counseling +anc_counselling_treatment.step7.family_planning_counsel.v_required.err=Please select an option +anc_counselling_treatment.step1.low_oximetry_toaster.text=Low oximetry: {oximetry}% +anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title=Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text=Not done +anc_counselling_treatment.step5.hepb_positive_counsel.label=Hepatitis B positive counseling +anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step10.malaria_counsel.label_info_title=Malaria prevention counseling +anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text=Done +anc_counselling_treatment.step9.ifa_weekly.label_info_title=Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid +anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text=Not done +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text=Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step10.malaria_counsel.label_info_text=Sleeping under an insecticide-treated bednet and the importance of seeking care and getting treatment as soon as she has any symptoms. +anc_counselling_treatment.step6.hiv_prep_notdone.label=Reason +anc_counselling_treatment.step2.caffeine_counsel.label=Caffeine reduction counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_text=Increase daily energy and protein intake to reduce the risk of low-birth-weight neonates. \n\n[Protein and Energy Sources Folder] +anc_counselling_treatment.step4.increase_energy_counsel_notdone.label=Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text=Done +anc_counselling_treatment.step11.tt1_date.options.done_today.text=Done today +anc_counselling_treatment.step1.resp_distress_toaster.text=Respiratory distress: {respiratory_exam_abnormal} +anc_counselling_treatment.step12.prep_toaster.text=Dietary supplements NOT recommended:\n\n- High protein supplement\n\n- Vitamin B6 supplement\n\n- Vitamin C and E supplement\n\n- Vitamin D supplement +anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err=Enter reason hospital referral was not done +anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text=Not done +anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step5.tb_positive_counseling.options.done.text=Done +anc_counselling_treatment.step4.increase_energy_counsel.label=Increase daily energy and protein intake counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title=Hepatitis C positive counseling +anc_counselling_treatment.step11.tt1_date_done.v_required.err=Date for TTCV dose #1 is required +anc_counselling_treatment.step9.vita_supp_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text=Abnormal cardiac exam: {cardiac_exam_abnormal} +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label=Reason +anc_counselling_treatment.step5.diabetes_counsel.label_info_text=Reassert dietary intervention and refer to high level care.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text=Done +anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err=Please select an option +anc_counselling_treatment.step9.calcium_supp.v_required.err=Please select an option +anc_counselling_treatment.step2.condom_counsel_notdone.hint=Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title=Wheat bran or other fiber supplements to relieve constipation counseling +anc_counselling_treatment.step9.calcium_supp.label_info_title=Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step7.danger_signs_counsel.options.done.text=Done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label=Reason +anc_counselling_treatment.step3.nausea_counsel.label_info_title=Non-pharma measures to relieve nausea and vomiting counseling +anc_counselling_treatment.step11.flu_date.label_info_title=Flu dose +anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text=Not done +anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text=Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err=Please select an option +anc_counselling_treatment.step10.malaria_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text=Stock out +anc_counselling_treatment.step2.condom_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.calcium_supp.options.done.text=Done +anc_counselling_treatment.step9.vita_supp.options.not_done.text=Not done +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text=Abnormal abdominal exam: {abdominal_exam_abnormal} +anc_counselling_treatment.step5.tb_positive_counseling.label_info_title=TB screening positive counseling +anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title=Severe pre-eclampsia diagnosis +anc_counselling_treatment.step7.encourage_facility_toaster.text=Encourage delivery at a facility! +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text=Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_counselling_treatment.step1.fever_toaster.text=Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text=Stock out +anc_counselling_treatment.step9.vita_supp_notdone.v_required.err=Please select an option +anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step3.heartburn_counsel.label_info_text=Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_counselling_treatment.step4.increase_energy_counsel.v_required.err=Please select an option +anc_counselling_treatment.step6.prep_toaster.toaster_info_text=Encourage woman to find out the status of her partner(s) or to bring them during the next contact visit to get tested. +anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text=Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err=Please select an option +anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text=Women who are taking co-trimoxazole SHOULD NOT receive IPTp-SP. Taking both co-trimoxazole and IPTp-SP together can enhance side effects, especially hematological side effects such as anaemia. +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step3.nausea_not_relieved_counsel.label=Pharmacological treatments for nausea and vomiting counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text=Stock out +anc_counselling_treatment.step9.ifa_low_prev_notdone.hint=Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.done.text=Done +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text=Done +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text=Procedure:\n\n- Refer to hospital\n\n- Revise the birth plan +anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text=Not done +anc_counselling_treatment.step3.heartburn_counsel.v_required.err=Please select an option +anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text=Not done +anc_counselling_treatment.step11.tt_dose_notdone_other.hint=Specify +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step5.diabetes_counsel.v_required.err=Please select an option +anc_counselling_treatment.step9.calcium_supp.label=Prescribe daily calcium supplementation (1.5–2.0 g oral elemental calcium) +anc_counselling_treatment.step5.asb_positive_counsel.label=Seven-day antibiotic regimen for asymptomatic bacteriuria (ASB) +anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text=Woman refused +anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text=Procedure:\n\n- If primary or secondary stage of syphilis, please give single dose of benzathine penicillin 2.400.000 IU\n\n- If late or unknown stage of syphilis, please give one dose of benzathine penicillin 2.400.000 IU weekly for 3 consecutive weeks\n\n- Advise on treating her partner\n\n- Encourage HIV testing and counselling\n\n- Reinforce use of condoms +anc_counselling_treatment.step3.constipation_counsel.label=Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step10.iptp_sp2.label_info_title=IPTp-SP dose 2 +anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err=Please select an option +anc_counselling_treatment.step2.condom_counsel.options.done.text=Done +anc_counselling_treatment.step10.malaria_counsel_notdone.label=Reason +anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text=Allergies +anc_counselling_treatment.step3.heartburn_counsel.options.done.text=Done +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label=Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step9.ifa_high_prev.v_required.err=Please select an option +anc_counselling_treatment.step9.calcium_supp_notdone_other.hint=Specify +anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint=Specify +anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text=Done +anc_counselling_treatment.step6.hiv_prep.label=PrEP for HIV prevention counseling +anc_counselling_treatment.step7.emergency_hosp_counsel.label=Counseling on going immediately to the hospital if severe danger signs +anc_counselling_treatment.step7.anc_contact_counsel.label_info_text=It is recommended that a woman sees a healthcare provider 8 times during pregnancy (this can change if the woman has any complications). This schedule shows when the woman should come in to be able to access all the important care and information. +anc_counselling_treatment.step5.title=Diagnoses +anc_counselling_treatment.step9.calcium_supp_notdone.hint=Reason +anc_counselling_treatment.step11.flu_dose_notdone_other.hint=Specify +anc_counselling_treatment.step7.gbs_agent_counsel.label=Intrapartum antibiotic to prevent early neonatal Group B Streptococcus (GBS) infection counseling +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint=Reason +anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text=Procedure:\n\n- Give oxygen\n\n- Refer urgently to hospital! +anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step10.iptp_sp3.options.not_done.text=Not done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step9.vita_supp_notdone_other.hint=Specify +anc_counselling_treatment.step10.deworm.v_required.err=Please select an option +anc_counselling_treatment.step5.diabetes_counsel.label=Diabetes counseling +anc_counselling_treatment.step9.calcium_supp.options.not_done.text=Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label=Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) and ensure that she continues to take her daily calcium supplement of 1.5 to 2 g until delivery for pre-eclampsia risk +anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text=Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step5.hypertension_counsel.options.done.text=Done +anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err=Please select an option +anc_counselling_treatment.step2.shs_counsel.label_info_title=Second-hand smoke counseling +anc_counselling_treatment.step11.tt_dose_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.vita_supp.v_required.err=Please select an option +anc_counselling_treatment.step7.breastfeed_counsel.label_info_text=To enable mothers to establish and sustain exclusive breastfeeding for 6 months, WHO and UNICEF recommend:\n\n- Initiation of breastfeeding within the first hour of life\n\n- Exclusive breastfeeding – that is the infant only receives breast milk without any additional food or drink, not even water\n\n- Breastfeeding on demand – that is as often as the child wants, day and night\n\n- No use of bottles, teats or pacifiers +anc_counselling_treatment.step2.caffeine_counsel.v_required.err=Please select an option +anc_counselling_treatment.step9.ifa_weekly.options.not_done.text=Not done +anc_counselling_treatment.step2.shs_counsel.label=Second-hand smoke counseling +anc_counselling_treatment.step10.iptp_sp3.label=IPTp-SP dose 3 +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text=Done +anc_counselling_treatment.step10.iptp_sp2.label_info_text=Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step7.birth_prep_counsel.label_info_text=This includes:\n\n- Skilled birth attendant\n\n- Labour and birth companion\n\n- Location of the closest facility for birth and in case of complications\n\n- Funds for any expenses related to birth and in case of complications\n\n- Supplies and materials necessary to bring to the facility\n\n- Support to look after the home and other children while she's away\n\n- Transport to a facility for birth or in case of a complication\n\n- Identification of compatible blood donors in case of complications +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint=Specify +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step5.asb_positive_counsel_notdone.label=Reason +anc_counselling_treatment.step2.shs_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.varicose_vein_toaster.text=Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_counselling_treatment.step7.birth_prep_counsel.label=Birth preparedness and complications readiness counseling +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title=No fetal heartbeat observed +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint=Reason +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step11.flu_date.v_required.err=Flu dose is required +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint=Reason +anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text=Abnormal pelvic exam: {pelvic_exam_abnormal} +anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err=Please select an option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err=Please select an option +anc_counselling_treatment.step7.birth_prep_counsel.label_info_title=Birth preparedness and complications readiness counseling +anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text=Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text=Referred instead +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step3.constipation_counsel.options.done.text=Done +anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text=Not done +anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.ifa_weekly.label=Change prescription to weekly dose of 120 mg iron and 2.8 mg folic acid for anaemia prevention +anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text=Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step3.nausea_counsel.v_required.err=Please select an option +anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text=Counseling:\n\n- Refer to HIV services\n\n- Advise on opportunistic infections and need to seek medical help\n\n- Proceed with systematic screening for active TB +anc_counselling_treatment.step11.flu_date.label_info_text=Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_counselling_treatment.step11.woman_immunised_flu_toaster.text=Woman is immunised against flu! +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text=No fetal heartbeat observed +anc_counselling_treatment.step11.flu_dose_notdone.v_required.err=Reason Flu dose was not done is required +anc_counselling_treatment.step10.deworm_notdone.v_required.err=Please select an option +anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title=Pre-eclampsia diagnosis +anc_counselling_treatment.step5.tb_positive_counseling.label=TB screening positive counseling +anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step11.tt2_date.label=TTCV dose #2 +anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text=Not done +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title=HIV risk counseling +anc_counselling_treatment.step2.shs_counsel.options.done.text=Done +anc_counselling_treatment.step6.hiv_prep.options.not_done.text=Not done +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text=Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_counselling_treatment.step9.ifa_weekly_notdone.label=Reason +anc_counselling_treatment.step11.tt1_date.options.not_done.text=Not done +anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label=Reason +anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err=Please select an option +anc_counselling_treatment.step9.vita_supp.label_info_text=Give a dose of up to 10,000 IU vitamin A per day, or a weekly dose of up to 25,000 IU.\n\nA single dose of a vitamin A supplement greater than 25,000 IU is not recommended as its safety is uncertain. Furthermore, a single dose of a vitamin A supplement greater than 25,000 IU might be teratogenic if consumed between day 15 and day 60 from conception.\n\n[Vitamin A sources folder] +anc_counselling_treatment.step7.danger_signs_counsel.label_info_text=Danger signs include:\n\n- Headache\n\n- No fetal movement\n\n- Contractions\n\n- Abnormal vaginal discharge\n\n- Fever\n\n- Abdominal pain\n\n- Feels ill\n\n- Swollen fingers, face or legs +anc_counselling_treatment.step10.iptp_sp_toaster.text=Do not give IPTp-SP, because woman is taking co-trimoxazole. +anc_counselling_treatment.step5.hypertension_counsel.label_info_text=Counseling:\n\n- Advise to reduce workload and to rest\n\n- Advise on danger signs\n\n- Reassess at the next contact or in 1 week if 8 months pregnant\n\n- If hypertension persists after 1 week or at next contact, refer to hospital or discuss case with the doctor, if available\n\nWomen with non-severe hypertension during pregnancy should be offered antihypertensive drug treatment: Oral alpha-agonist (methyldopa) and beta-blockers should be considered as effective treatment options for non-severe hypertension during pregnancy. +anc_counselling_treatment.step1.referred_hosp_notdone.label=Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text=Done +anc_counselling_treatment.step2.condom_counsel_notdone.label=Reason +anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text=Not done +anc_counselling_treatment.step3.leg_cramp_counsel.label=Non-pharmacological treatment for the relief of leg cramps counseling +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text=If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_counselling_treatment.step9.ifa_high_prev.label_info_text=Due to the population's high anaemia prevalence, a daily dose of 60 mg of elemental iron is preferred over a lower dose. A daily dose of 400 mcg (0.4 mg) folic acid is also recommended.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.ifa_weekly.options.done.text=Done +anc_counselling_treatment.step11.flu_date.label=Flu dose +anc_counselling_treatment.step9.vita_supp.label=Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint=Reason +anc_counselling_treatment.step6.hiv_prep.label_info_text=Oral pre-exposure prophylaxis (PrEP) containing tenofovir disoproxil fumarate (TDF) should be offered as an additional prevention choice for pregnant women at substantial risk of HIV infection as part of combination prevention approaches.\n\n[PrEP offering framework] +anc_counselling_treatment.step10.deworm.label_info_text=In areas with a population prevalence of infection with any soil-transmitted helminths 20% or higher OR a population anaemia prevalence 40% or higher, preventive antihelminthic treatment is recommended for pregnant women after the first trimester as part of worm infection reduction programmes. +anc_counselling_treatment.step11.tt2_date.options.done_today.text=Done today +anc_counselling_treatment.step11.tt3_date.options.not_done.text=Not done +anc_counselling_treatment.step6.hiv_prep.options.done.text=Done +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint=Reason +anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step11.tt3_date.options.done_today.text=Done today +anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text=Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_counselling_treatment.step3.constipation_counsel.label_info_text=Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text=Please provide appropriate counseling for GDM risk mitigation, including:\n\n- Reasserting dietary interventions\n\n- Reasserting physical activity during pregnancy +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text=Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step1.referred_hosp.v_required.err=Please select an option +anc_counselling_treatment.step1.severe_hypertension_toaster.text=Severe hypertension: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg +anc_counselling_treatment.step4.average_weight_toaster.text=Counseling on healthy eating and keeping physically active done! +anc_counselling_treatment.step11.tt_dose_notdone.label=Reason +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text=Allergy +anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.iptp_sp_notdone.label=Reason +anc_counselling_treatment.step7.delivery_place.options.home.text=Home +anc_counselling_treatment.step2.caffeine_counsel_notdone.label=Reason +anc_counselling_treatment.step4.eat_exercise_counsel.label=Healthy eating and keeping physically active counseling +anc_counselling_treatment.step10.iptp_sp3.options.done.text=Done +anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text=Procedure:\n\n- Refer urgently to hospital! +anc_counselling_treatment.step9.vita_supp_notdone.label=Reason +anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.iptp_sp3.label_info_text=Intermittent preventive treatment in pregnancy of malaria with sulfadoxine-pyrimethamine (IPTp-SP) is recommended in malaria endemic areas. Doses should be given at least one month apart, starting in the 2nd trimester, with the objective of ensuring that at least three doses are received. +anc_counselling_treatment.step11.flu_date_done.hint=Date flu dose was given +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text=Done +anc_counselling_treatment.step9.ifa_low_prev.options.done.text=Done +anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text=Procedure:\n\n- Refer urgently to hospital for further investigation and management! +anc_counselling_treatment.step7.breastfeed_counsel.label_info_title=Breastfeeding counseling +anc_counselling_treatment.step2.shs_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text=Not done +anc_counselling_treatment.step2.shs_counsel_notdone.hint=Reason +anc_counselling_treatment.step8.title=Intimate Partner Violence (IPV) +anc_counselling_treatment.step10.iptp_sp1.v_required.err=Please select an option +anc_counselling_treatment.step2.shs_counsel.v_required.err=Please select an option +anc_counselling_treatment.step3.varicose_oedema_counsel.label=Non-pharmacological options for varicose veins and oedema counseling +anc_counselling_treatment.step7.delivery_place.options.other.text=Other +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_high_prev.label_info_title=Prescribe daily dose of 60 mg iron and 0.4 mg folic acid +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text=Side effects +anc_counselling_treatment.step7.danger_signs_counsel.label=Seeking care for danger signs counseling +anc_counselling_treatment.step4.increase_energy_counsel.label_info_title=Increase daily energy and protein intake counseling +anc_counselling_treatment.step10.iptp_sp1.label=IPTp-SP dose 1 +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text=Side effects +anc_counselling_treatment.step7.family_planning_type.label=FP method accepted +anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step11.tt3_date.options.done_earlier.text=Done earlier +anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step6.pe_risk_aspirin.label=Prescribe aspirin 75 mg daily until delivery (starting at 12 weeks gestation) for pre-eclampsia risk +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title=Alcohol / substance use counseling +anc_counselling_treatment.step3.constipation_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.malaria_counsel.label=Malaria prevention counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step10.deworm.options.not_done.text=Not done +anc_counselling_treatment.step10.iptp_sp2.options.not_done.text=Not done +anc_counselling_treatment.step11.title=Immunizations +anc_counselling_treatment.step2.tobacco_counsel_notdone.label=Reason +anc_counselling_treatment.step7.breastfeed_counsel.label=Breastfeeding counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text=Expired +anc_counselling_treatment.step5.asb_positive_counsel.v_required.err=Please select an option +anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text=Procedure:\n\n- Refer for further investigation +anc_counselling_treatment.step3.nausea_counsel.label_info_text=Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text=Done +anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step7.birth_prep_counsel.options.done.text=Done +anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text=Not done +anc_counselling_treatment.step10.iptp_sp2.v_required.err=Please select an option +anc_counselling_treatment.step7.rh_negative_counsel.label=Rh factor negative counseling +anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title=Syphilis counselling and further testing +anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text=Stock out +anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text=Not done +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text=Balanced energy and protein dietary supplementation is recommended for pregnant women to reduce the risk of stillbirths and small-for-gestational-age neonates. +anc_counselling_treatment.step5.ifa_anaemia.label=Prescribe daily dose of 120 mg iron and 0.4 mg folic acid for anaemia +anc_counselling_treatment.step7.rh_negative_counsel.label_info_text=Counseling:\n\n- Woman is at risk of alloimmunisation if the baby's father is Rh positive or unknown\n\n- Proceed with local protocol to investigate sensitization and the need for referral\n\n- If non-sensitized, woman should receive anti-D prophylaxis postnatally if the baby is Rh positive +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text=Allergy +anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text=Stock out +anc_counselling_treatment.step10.iptp_sp2.options.done.text=Done +anc_counselling_treatment.step11.flu_dose_notdone.label=Reason +anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text=Provide comprehensive HIV prevention options:\n\n- STI screening and treatment (syndromic and syphilis)\n\n- Condom promotion\n\n- Risk reduction counselling\n\n- PrEP with emphasis on adherence\n\n- Emphasize importance of follow-up ANC contact visits +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step2.title=Behaviour Counseling +anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step11.tt2_date_done.v_required.err=Date for TTCV dose #2 is required +anc_counselling_treatment.step2.tobacco_counsel.label=Tobacco cessation counseling +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.ifa_low_prev.label_info_text=Daily oral iron and folic acid supplementation with 30 mg to 60 mg of elemental iron and 400 mcg (0.4 mg) of folic acid is recommended to prevent maternal anaemia, puerperal sepsis, low birth weight, and preterm birth.\n\nThe equivalent of 60 mg of elemental iron is 300 mg of ferrous sulfate heptahydrate, 180 mg of ferrous fumarate, or 500 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step6.hiv_risk_counsel.label=HIV risk counseling +anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step2.condom_counsel.label_info_title=Condom counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text=Done +anc_counselling_treatment.step10.deworm.label=Prescribe single dose albendazole 400 mg or mebendazole 500 mg +anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text=Procedure:\n\n- Inform the woman that you cannot find the heartbeat and need to refer her to check if there's a problem.\n\n- Refer to hospital. +anc_counselling_treatment.step9.vita_supp.label_info_title=Prescribe a daily dose of up to 10,000 IU vitamin A, or a weekly dose of up to 25,000 IU +anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_low_prev.v_required.err=Please select an option +anc_counselling_treatment.step11.flu_date.options.done_today.text=Done today +anc_counselling_treatment.step11.tt1_date_done.hint=Date TTCV dose #1 was given. +anc_counselling_treatment.step3.title=Physiological Symptoms Counseling +anc_counselling_treatment.step5.hypertension_counsel.label_info_title=Hypertension counseling +anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text=Counseling:\n\n- Provide post-testing counselling\n\n- Request confirmatory Nucleic Acid Testing (NAT)\n\n- Refer to hospital +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step9.title=Nutrition Supplementation +anc_counselling_treatment.step2.alcohol_substance_counsel.label=Alcohol / substance use counseling +anc_counselling_treatment.step7.birth_plan_toaster.text=Woman should plan to give birth at a facility due to risk factors +anc_counselling_treatment.step10.malaria_counsel_notdone.hint=Reason +anc_counselling_treatment.step7.anc_contact_counsel.options.done.text=Done +anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint=Specify +anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step3.constipation_counsel_notdone.label=Reason +anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err=Please select an option +anc_counselling_treatment.step11.tt1_date.options.done_earlier.text=Done earlier +anc_counselling_treatment.step1.fever_toaster.toaster_info_title=Fever: {body_temp_repeat}ºC +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title=Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text=Side effects prevent woman from taking it +anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint=Reason +anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err=Please select an option +anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label=Antacid preparations to relieve heartburn counseling +anc_counselling_treatment.step4.title=Diet Counseling +anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text=Stock out +anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint=Reason +anc_counselling_treatment.step2.tobacco_counsel.v_required.err=Please select an option +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label=Reason +anc_counselling_treatment.step9.calcium_supp_notdone.label=Reason +anc_counselling_treatment.step11.tt2_date.label_info_text=TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus.\n\nIf the pregnant woman has never received TTCV, or if she does not know if she has ever received TTCV, she should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_counselling_treatment.step12.title=Not Recommended +anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text=Done +anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text=Not done +anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint=Reason +anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title=Hepatitis B positive counseling +anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text=Not done +anc_counselling_treatment.step11.tt_dose_notdone.v_required.err=Reason TTCV dose was not given is required +anc_counselling_treatment.step4.increase_energy_counsel.options.done.text=Done +anc_counselling_treatment.step7.title=Counseling +anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text=Healthy eating and keeping physically active during pregnancy is recommended for pregnant women to stay healthy and to prevent excessive weight gain during pregnancy.\n\n[Nutritional and Exercise Folder] +anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text=Not done +anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text=Not done +anc_counselling_treatment.step9.ifa_weekly.label_info_text=If daily iron is not acceptable due to side effects, provide intermittent iron and folic acid supplementation instead (120 mg of elemental iron and 2.8 mg of folic acid once weekly).\n\nThe equivalent of 120 mg of elemental iron equals 600 mg of ferrous sulfate heptahydrate, 360 mg of ferrous fumarate, or 1000 mg of ferrous gluconate.\n\n[Iron sources folder] +anc_counselling_treatment.step2.tobacco_counsel.options.done.text=Done +anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text=Done +anc_counselling_treatment.step10.iptp_sp1.options.done.text=Done +anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text=Hypertension and symptom of severe pre-eclampsia: {symp_sev_preeclampsia} +anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step6.hiv_prep_notdone_other.hint=Specify +anc_counselling_treatment.step5.ifa_anaemia.options.done.text=Done +anc_counselling_treatment.step10.iptp_sp2.label=IPTp-SP dose 2 +anc_counselling_treatment.step5.asb_positive_counsel.label_info_text=A seven-day antibiotic regimen is recommended for all pregnant women with asymptomatic bacteriuria (ASB) to prevent persistent bacteriuria, preterm birth and low birth weight neonates. +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint=Reason +anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text=Woman refused +anc_counselling_treatment.step9.vita_supp_notdone.hint=Reason +anc_counselling_treatment.step6.title=Risks +anc_counselling_treatment.step6.hiv_prep.label_info_title=PrEP for HIV prevention counseling +anc_counselling_treatment.step5.diabetes_counsel.options.done.text=Done +anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step3.heartburn_counsel_notdone.label=Reason +anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint=Specify +anc_counselling_treatment.step3.constipation_counsel.label_info_title=Dietary modifications to relieve constipation counseling +anc_counselling_treatment.step1.danger_signs_toaster.text=Danger sign(s): {danger_signs} +anc_counselling_treatment.step6.prep_toaster.text=Partner HIV test recommended +anc_counselling_treatment.step1.referred_hosp_notdone.hint=Reason +anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step11.tt2_date.options.done_earlier.text=Done earlier +anc_counselling_treatment.step3.nausea_counsel.options.not_done.text=Not done +anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text=Not done +anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text=Risk factors necessitating a facility birth:\n- Age 17 or under\n- Primigravida\n- Parity 6 or higher\n- Prior C-section\n- Previous pregnancy complications: Heavy bleeding, Forceps or vacuum delivery, Convulsions, or 3rd or 4th degree tear\n- Vaginal bleeding\n- Multiple fetuses\n- Abnormal fetal presentation\n- HIV+\n- Wants IUD or tubal ligation following delivery +anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step10.title=Deworming & Malaria Prophylaxis +anc_counselling_treatment.step3.nausea_counsel_notdone.hint=Reason +anc_counselling_treatment.step11.flu_date.options.done_earlier.text=Done earlier +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint=Reason +anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint=Specify +anc_counselling_treatment.step10.iptp_sp_notdone_other.hint=Specify +anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title=Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text=Referred instead +anc_counselling_treatment.step4.balanced_energy_counsel.label=Balanced energy and protein dietary supplementation counseling +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step12.prep_toaster.toaster_info_text=Vitamin B6: Moderate certainty evidence shows that vitamin B6 (pyridoxine) probably provides some relief for nausea during pregnancy.\n\nVitamin C: Vitamin C is important for improving the bioavailability of oral iron. Low-certainty evidence on vitamin C alone suggests that it may prevent pre-labour rupture of membranes (PROM). However, it is relatively easy to consume sufficient quantities of vitamin C from food sources.\n\nVitamin D: Pregnant women should be advised that sunlight is the most important source of vitamin D. For pregnant women with documented vitamin D deficiency, vitamin D supplements may be given at the current recommended nutrient intake (RNI) of 200 IU (5 μg) per day. +anc_counselling_treatment.step1.referred_hosp.options.yes.text=Yes +anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title=Syphilis counselling and treatment +anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint=Reason +anc_counselling_treatment.step7.delivery_place.label=Planned birth place +anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title=Magnesium and calcium to relieve leg cramps counseling +anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text=Done +anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label=Reason +anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text=Procedure:\n\n- Check for fever, infection, respiratory distress, and arrhythmia\n\n- Refer for further investigation +anc_counselling_treatment.step7.family_planning_counsel.label=Postpartum family planning counseling +anc_counselling_treatment.step2.tobacco_counsel.label_info_title=Tobacco cessation counseling +anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step11.tt2_date_done.hint=Date TTCV dose #2 was given. +anc_counselling_treatment.step7.family_planning_type.options.none.text=None +anc_counselling_treatment.step7.family_planning_type.options.cu_iud.text=Copper-bearing intrauterine device (Cu-IUD) +anc_counselling_treatment.step7.family_planning_type.options.lng_iud.text=Levonorgestrel intrauterine device (LNG-IUD) +anc_counselling_treatment.step7.family_planning_type.options.etg_implant.text=Etonogestrel (ETG) one-rod implant +anc_counselling_treatment.step7.family_planning_type.options.lng_implant.text=Levonorgestrel (LNG) two-rod implant +anc_counselling_treatment.step7.family_planning_type.options.dmpa_im.text=DMPA-IM +anc_counselling_treatment.step7.family_planning_type.options.dmpa_sc.text=DMPA-SC +anc_counselling_treatment.step7.family_planning_type.options.net_en.text=NET-EN norethisterone enanthate +anc_counselling_treatment.step7.family_planning_type.options.pop.text=Progestogen-only pills (POP) +anc_counselling_treatment.step7.family_planning_type.options.coc.text=Combined oral contraceptives (COCs) +anc_counselling_treatment.step7.family_planning_type.options.combined_patch.text=Combined contraceptive patch +anc_counselling_treatment.step7.family_planning_type.options.combined_ring.text=Combined contraceptive vaginal ring (CVR) +anc_counselling_treatment.step7.family_planning_type.options.pvr.text=Progesterone-releasing vaginal ring (PVR) +anc_counselling_treatment.step7.family_planning_type.options.lam.text=Lactational amenorrhea method (LAM) +anc_counselling_treatment.step7.family_planning_type.options.female_condoms.text=Female condoms +anc_counselling_treatment.step7.family_planning_type.options.male_condoms.text=Male condoms +anc_counselling_treatment.step7.family_planning_type.options.male_sterilization.text=Male sterilization +anc_counselling_treatment.step7.family_planning_type.options.female_sterilization.text=Female sterilization +anc_counselling_treatment.step8.ipv_support.label=IPV first line support provided +anc_counselling_treatment.step8.ipv_support.label_info_text=First-line support includes basic counselling or psychosocial support using LIVES, which involves the following steps: Listen, Inquire, Validate, Enhance safety, and Support +anc_counselling_treatment.step8.ipv_support.label_info_title=IPV first-line support +anc_counselling_treatment.step8.ipv_support.options.yes.text=Yes +anc_counselling_treatment.step8.ipv_support.options.no.text=No +anc_counselling_treatment.step8.ipv_support.v_required.err=Please select an answer +anc_counselling_treatment.step8.ipv_support_notdone.label=Reason IPV first line support not provided +anc_counselling_treatment.step8.ipv_support_notdone.options.referred.text=Client was referred +anc_counselling_treatment.step8.ipv_support_notdone.options.provider_unavailable.text=Trained provider unavailable +anc_counselling_treatment.step8.ipv_support_notdone.options.space_unavailable.text=Private/safe space unavailable +anc_counselling_treatment.step8.ipv_support_notdone.options.confidentiality.text=Confidentiality could not be assured +anc_counselling_treatment.step8.ipv_support_notdone.options.other.text=Other (specify) +anc_counselling_treatment.step8.ipv_support_notdone_other.hint=Other reason +anc_counselling_treatment.step8.ipv_care.options.no_action.text=No action necessary +anc_counselling_treatment.step8.ipv_care.options.safety_assessment.text=Safety assessment conducted +anc_counselling_treatment.step8.ipv_care.options.mental_health_care.text=Mental health care +anc_counselling_treatment.step8.ipv_care.options.care_other_symptoms.text=Care for other presenting signs and symptoms +anc_counselling_treatment.step8.ipv_care.options.referred.text=Client was referred +anc_counselling_treatment.step8.ipv_care.label=What additional type of care was provided +anc_counselling_treatment.step8.phys_violence_worse.label=Has the physical violence happened more often or gotten worse over the past 6 months? +anc_counselling_treatment.step8.phys_violence_worse.options.yes.text=Yes +anc_counselling_treatment.step8.phys_violence_worse.options.no.text=No +anc_counselling_treatment.step8.used_weapon.label=Has he ever used a weapon or threatened you with a weapon? +anc_counselling_treatment.step8.used_weapon.options.yes.text=Yes +anc_counselling_treatment.step8.used_weapon.options.no.text=No +anc_counselling_treatment.step8.strangle.label=Has he ever tried to strangle you? +anc_counselling_treatment.step8.strangle.options.yes.text=Yes +anc_counselling_treatment.step8.strangle.options.no.text=No +anc_counselling_treatment.step8.beaten.label=Has he ever beaten you when you were pregnant? +anc_counselling_treatment.step8.beaten.options.yes.text=Yes +anc_counselling_treatment.step8.beaten.options.no.text=No +anc_counselling_treatment.step8.jealous.label=Is he violently and constantly jealous of you? +anc_counselling_treatment.step8.jealous.options.yes.text=Yes +anc_counselling_treatment.step8.jealous.options.no.text=No +anc_counselling_treatment.step8.believe_kill.label=Do you believe he could kill you? +anc_counselling_treatment.step8.believe_kill.options.yes.text=Yes +anc_counselling_treatment.step8.believe_kill.options.no.text=No +anc_counselling_treatment.step8.ipv_referrals.label=Referrals made as part of first line support and care +anc_counselling_treatment.step8.ipv_referrals.options.care_health_facility.text=Care at another health facility +anc_counselling_treatment.step8.ipv_referrals.options.crisis_intervention.text=Crisis intervention or counselling +anc_counselling_treatment.step8.ipv_referrals.options.police.text=Police +anc_counselling_treatment.step8.ipv_referrals.options.shelter.text=Shelter or housing +anc_counselling_treatment.step8.ipv_referrals.options.legal_aid.text=Legal aid & services +anc_counselling_treatment.step8.ipv_referrals.options.child_protection.text=Child protection +anc_counselling_treatment.step8.ipv_referrals.options.livelihood_support.text=Livelihood support +anc_counselling_treatment.step8.ipv_referrals.options.other.text=Other (specify) +anc_counselling_treatment.step8.ipv_referrals_other.hint=Specify +anc_quick_check.step1.danger_signs.options.danger_bleeding.text=Bahaya Pendarahan Vagina +anc_quick_check.step1.danger_signs.options.danger_none.text=Bahaya Tidak ada \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties index c121e67d2..11b3f9c8d 100644 --- a/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up.properties @@ -1,225 +1,221 @@ -anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contractions -anc_symptoms_follow_up.step4.other_symptoms_other.hint = Specify -anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Oedema -anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none -anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step2.toaster0.text = Caffeine reduction counseling -anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Please specify any other symptoms related varicose vein/oedema or select none -anc_symptoms_follow_up.step2.title = Previous Behaviour -anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Low back pain -anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anti-convulsive -anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = None -anc_symptoms_follow_up.step4.toaster18.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_symptoms_follow_up.step3.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? -anc_symptoms_follow_up.step3.toaster5.text = Pharmacological treatments for nausea and vomiting counseling -anc_symptoms_follow_up.step3.toaster11.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. -anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussive -anc_symptoms_follow_up.step1.medications.options.dont_know.text = Don't know -anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. -anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = None -anc_symptoms_follow_up.step1.calcium_effects.options.no.text = No -anc_symptoms_follow_up.step3.toaster13.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema -anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Hemorrhoidal medication -anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Yes -anc_symptoms_follow_up.step2.toaster1.text = Tobacco cessation counseling -anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Leg cramps -anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Headache -anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = None -anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabetic -anc_symptoms_follow_up.step4.toaster19.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain -anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Other antibiotics -anc_symptoms_follow_up.step4.title = Physiological Symptoms -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Oedema -anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Other (specify) -anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_symptoms_follow_up.step1.medications.options.calcium.text = Calcium -anc_symptoms_follow_up.step1.medications_other.hint = Specify -anc_symptoms_follow_up.step3.toaster7.toaster_info_text = If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. -anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Fever -anc_symptoms_follow_up.step2.behaviour_persist.label = Which of the following behaviours persist? -anc_symptoms_follow_up.step4.toaster16.text = Non-pharmacological treatment for the relief of leg cramps counseling -anc_symptoms_follow_up.step4.toaster21.text = Non-pharmacological options for varicose veins and oedema counseling -anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = No -anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Substance use -anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Fever -anc_symptoms_follow_up.step4.phys_symptoms.label = Any physiological symptoms? -anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Current tobacco use or recently quit -anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Please enter valid content -anc_symptoms_follow_up.step1.medications.options.iron.text = Iron -anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamin A -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = No fetal movement -anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Yes -anc_symptoms_follow_up.step4.toaster15.text = Diet and lifestyle changes to prevent and relieve heartburn counseling -anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazole -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Pelvic pain -anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamin -anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = High caffeine intake -anc_symptoms_follow_up.step2.toaster3.text = Condom counseling -anc_symptoms_follow_up.step3.toaster11.text = Urine test required -anc_symptoms_follow_up.step1.vita_comply.label = Is she taking her Vitamin A supplements? -anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Please specify any other symptoms related low back and pelvic pain or select none -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Leg pain -anc_symptoms_follow_up.step1.medications.v_required.err = Please specify the medication(s) that the woman is still taking -anc_symptoms_follow_up.step1.medications.options.antacids.text = Antacids -anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnesium -anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Leg cramps -anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Yes -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Normal fetal movement -anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirals -anc_symptoms_follow_up.step4.toaster22.text = Please investigate any possible complications, including thrombosis, related to varicose veins and oedema -anc_symptoms_follow_up.step1.ifa_comply.label = Is she taking her IFA tablets? -anc_symptoms_follow_up.step1.penicillin_comply.label = Is she taking her penicillin treatment for syphilis? -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = None -anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Nausea and vomiting -anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. -anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Which of the following physiological symptoms persist? -anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = Previous persisting behaviour is required -anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Heartburn -anc_symptoms_follow_up.step1.medications.label = What medications (including supplements and vitamins) is she still taking? -anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = None -anc_symptoms_follow_up.step3.toaster6.text = Antacid preparations to relieve heartburn counseling -anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Pelvic pain -anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = Has the woman felt the baby move? -anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = No -anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_symptoms_follow_up.step4.other_sym_vvo.label = Any other symptoms related to varicose veins or oedema? -anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Heartburn -anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) -anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Gets tired easily -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Breathing difficulty -anc_symptoms_follow_up.step1.ifa_comply.options.no.text = No -anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Please specify any other symptoms related to low back pain or select none -anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hypertensive -anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirin -anc_symptoms_follow_up.step1.calcium_comply.label = Is she taking her calcium supplements? -anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. -anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Anti-malarials -anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) -anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramide -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Nausea and vomiting -anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Cough lasting more than 3 weeks -anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Headache -anc_symptoms_follow_up.step3.title = Previous Symptoms -anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. -anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Folic Acid -anc_symptoms_follow_up.step3.toaster9.text = Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling -anc_symptoms_follow_up.step3.toaster10.text = Please investigate any possible complications or onset of labour, related to low back and pelvic pain -anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Visual disturbance -anc_symptoms_follow_up.step4.other_symptoms.options.none.text = None -anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Breathless during routine activities -anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. -anc_symptoms_follow_up.step3.other_symptoms_persist.label = Which of the following other symptoms persist? -anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Please specify any other symptoms or select none -anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipation -anc_symptoms_follow_up.step1.ifa_effects.options.no.text = No -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Low back pain -anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). -anc_symptoms_follow_up.step1.medications.options.none.text = None -anc_symptoms_follow_up.step2.toaster4.text = Alcohol / substance use counseling -anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposure to second-hand smoke in the home -anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Pain during urination (dysuria) -anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Cough lasting more than 3 weeks -anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirals (ARVs) -anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hematinic -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Leg pain -anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Reduced or poor fetal movement -anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgesic -anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = No condom use during sex -anc_symptoms_follow_up.step1.title = Medication Follow-up -anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = Field has the woman felt the baby move is required -anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = None -anc_symptoms_follow_up.step1.medications.options.other.text = Other (specify) -anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Yes -anc_symptoms_follow_up.step1.toaster0.text = allergies : {allergies_values} -anc_symptoms_follow_up.step1.toaster0.toaster_info_text = Erythromycin 500 mg orally four times daily for 14 days\nor\nAzithromycin 2 g once orally.\nRemarks: Although erythromycin and azithromycin treat the pregnant women, they do not cross the placental barrier completely and as a result the fetus is not treated. It is therefore necessary to treat the newborn infant soon after delivery. -anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxylamine -anc_symptoms_follow_up.step3.toaster7.text = Magnesium and calcium to relieve leg cramps counseling -anc_symptoms_follow_up.step1.calcium_effects.label = Any calcium supplement side effects? -anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Visual disturbance -anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = None -anc_symptoms_follow_up.step4.toaster20.toaster_info_text = Woman has dysuria. Please investigate urinary tract infection and treat if positive. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipation -anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Anthelmintic -anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Syphilis Compliance -anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Alcohol use -anc_symptoms_follow_up.step4.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? -anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Breathing difficulty -anc_symptoms_follow_up.step4.other_symptoms.label = Any other symptoms? -anc_symptoms_follow_up.step1.medications.options.asthma.text = Asthma -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Vaginal bleeding -anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Please specify any other physiological symptoms or select none -anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contractions -anc_symptoms_follow_up.step1.vita_comply.options.no.text = No -anc_symptoms_follow_up.step1.calcium_comply.options.no.text = No -anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varicose veins -anc_symptoms_follow_up.step4.toaster14.text = Non-pharma measures to relieve nausea and vomiting counseling -anc_symptoms_follow_up.step1.ifa_effects.label = Any IFA side effects? -anc_symptoms_follow_up.step4.toaster17.text = Dietary modifications to relieve constipation counseling -anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Caffeine intake folder -anc_symptoms_follow_up.step1.medications_other.v_regex.err = Please enter valid content -anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. -anc_symptoms_follow_up.step3.toaster8.text = Wheat bran or other fiber supplements to relieve constipation counseling -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Breathless during routine activities -anc_symptoms_follow_up.step4.toaster20.text = Urine test required -anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = None -anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Yes -anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Yes -anc_symptoms_follow_up.step3.other_sym_lbpp.label = Any other symptoms related to low back and pelvic pain? -anc_symptoms_follow_up.step1.aspirin_comply.label = Is she taking her aspirin tablets? -anc_symptoms_follow_up.step1.medications.options.thyroid.text = Thyroid medication -anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = Previous persisting physiological symptoms is required -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Leg redness -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Vaginal bleeding -anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Yes -anc_symptoms_follow_up.step2.toaster2.text = Second-hand smoke counseling -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Leg redness -anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varicose veins -anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Extreme pelvic pain, can't walk (symphysis pubis dysfunction) -anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = A maximum of up to 3 weekly doses may be required. -anc_symptoms_follow_up.step3.toaster12.text = Non-pharmacological options for varicose veins and oedema counseling -anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Gets tired easily -anc_symptoms_follow_up.step1.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV -anc_symptoms_follow_up.step4.ipv_signs_symptoms.label = Presenting signs and symptoms that trigger suspicion of IPV -anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_text = What signs or symptoms does the client present with that are due to or trigger suspicion of intimate partner violence (IPV)? -anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_title = Presenting signs and symptoms of IPV -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.none.text = No presenting signs or symptoms indicative of IPV -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.stress.text = Ongoing stress -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.anxiety.text = Ongoing anxiety -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.depression.text = Ongoing depression -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.emotional_health_issues.text = Unspecified ongoing emotional health issues -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.alcohol_misuse.text = Misuse of alcohol -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.drugs_misuse.text = Misuse of drugs -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.harmful_behaviour.text = Unspecified harmful behaviours -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_thoughts.text = Thoughts of self-harm or (attempted) suicide -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_plans.text = Plans of self-harm or (attempt) suicide -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_acts.text = Acts of self-harm or attempted suicide -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_stis.text = Repeated sexually transmitted infections (STIs) -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unwanted_pregnancies.text = Unwanted pregnancies -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.chronic_pain.text = Unexplained chronic pain -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.gastro_symptoms.text = Unexplained chronic gastrointestinal symptoms -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.genitourinary_symptoms.text = Unexplained genitourinary symptoms -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.adverse_repro_outcomes.text = Adverse reproductive outcomes -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unexplained_repro_symptoms.text = Unexplained reproductive symptoms -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_vaginal_bleeding.text = Repeated vaginal bleeding -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text = Injury to abdomen -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text = Injury other (specify) -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text = Problems with central nervous system -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text = Repeated health consultations with no clear diagnosis -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text = Woman's partner or husband is intrusive during consultations -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text = Woman often misses her own or her children's health-care appointments -anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text = Children have emotional and behavioural problems -anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint = Other injury - specify -anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err = Please enter valid content -anc_symptoms_follow_up.step4.toaster23.text = Woman is suspected of being subjected to IPV. Please conduct an IPV clinical enquiry during the physical exam part of the contact. -<<<<<<< HEAD - -======= ->>>>>>> 55c127186cdb8f0bd7bdf739e374a1fbf041bf94 +anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text=Contractions +anc_symptoms_follow_up.step4.other_symptoms_other.hint=Specify +anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text=Oedema +anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err=Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step3.toaster12.toaster_info_text=Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.toaster9.toaster_info_text=Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step2.toaster0.text=Caffeine reduction counseling +anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err=Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step2.title=Previous Behaviour +anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text=Low back pain +anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text=Anti-convulsive +anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text=None +anc_symptoms_follow_up.step4.toaster18.text=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.other_sym_vvo.label=Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step3.toaster5.text=Pharmacological treatments for nausea and vomiting counseling +anc_symptoms_follow_up.step3.toaster11.toaster_info_text=Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step1.medications.options.antitussive.text=Antitussive +anc_symptoms_follow_up.step1.medications.options.dont_know.text=Don't know +anc_symptoms_follow_up.step3.toaster8.toaster_info_text=Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_symptoms_follow_up.step2.toaster3.toaster_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text=None +anc_symptoms_follow_up.step1.calcium_effects.options.no.text=No +anc_symptoms_follow_up.step3.toaster13.text=Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text=Hemorrhoidal medication +anc_symptoms_follow_up.step1.ifa_effects.options.yes.text=Yes +anc_symptoms_follow_up.step2.toaster1.text=Tobacco cessation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text=Abnormal vaginal discharge (physiological) (foul smelling) (curd like) +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text=Leg cramps +anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text=Headache +anc_symptoms_follow_up.step4.toaster21.toaster_info_text=Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text=None +anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text=Anti-diabetic +anc_symptoms_follow_up.step4.toaster19.text=Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step1.medications.options.antibiotics.text=Other antibiotics +anc_symptoms_follow_up.step4.title=Physiological Symptoms +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text=Oedema +anc_symptoms_follow_up.step4.other_symptoms.options.other.text=Other (specify) +anc_symptoms_follow_up.step2.toaster4.toaster_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_symptoms_follow_up.step1.medications.options.calcium.text=Calcium +anc_symptoms_follow_up.step1.medications_other.hint=Specify +anc_symptoms_follow_up.step3.toaster7.toaster_info_text=If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text=Fever +anc_symptoms_follow_up.step2.behaviour_persist.label=Which of the following behaviours persist? +anc_symptoms_follow_up.step4.toaster16.text=Non-pharmacological treatment for the relief of leg cramps counseling +anc_symptoms_follow_up.step4.toaster21.text=Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step1.penicillin_comply.options.no.text=No +anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text=Substance use +anc_symptoms_follow_up.step4.other_symptoms.options.fever.text=Fever +anc_symptoms_follow_up.step4.phys_symptoms.label=Any physiological symptoms? +anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text=Current tobacco use or recently quit +anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step1.medications.options.iron.text=Iron +anc_symptoms_follow_up.step1.medications.options.vitamina.text=Vitamin A +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text=No fetal movement +anc_symptoms_follow_up.step1.ifa_comply.options.yes.text=Yes +anc_symptoms_follow_up.step4.toaster15.text=Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text=Cotrimoxazole +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text=Pelvic pain +anc_symptoms_follow_up.step1.medications.options.multivitamin.text=Multivitamin +anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text=High caffeine intake +anc_symptoms_follow_up.step2.toaster3.text=Condom counseling +anc_symptoms_follow_up.step3.toaster11.text=Urine test required +anc_symptoms_follow_up.step1.vita_comply.label=Is she taking her Vitamin A supplements? +anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err=Please specify any other symptoms related low back and pelvic pain or select none +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text=Leg pain +anc_symptoms_follow_up.step1.medications.v_required.err=Please specify the medication(s) that the woman is still taking +anc_symptoms_follow_up.step1.medications.options.antacids.text=Antacids +anc_symptoms_follow_up.step1.medications.options.magnesium.text=Magnesium +anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text=Leg cramps +anc_symptoms_follow_up.step1.calcium_comply.options.yes.text=Yes +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text=Normal fetal movement +anc_symptoms_follow_up.step1.medications.options.antivirals.text=Antivirals +anc_symptoms_follow_up.step4.toaster22.text=Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.ifa_comply.label=Is she taking her IFA tablets? +anc_symptoms_follow_up.step1.penicillin_comply.label=Is she taking her penicillin treatment for syphilis? +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text=None +anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text=Nausea and vomiting +anc_symptoms_follow_up.step4.toaster14.toaster_info_text=Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_symptoms_follow_up.step3.phys_symptoms_persist.label=Which of the following physiological symptoms persist? +anc_symptoms_follow_up.step2.behaviour_persist.v_required.err=Previous persisting behaviour is required +anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text=Heartburn +anc_symptoms_follow_up.step1.medications.label=What medications (including supplements and vitamins) is she still taking? +anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text=None +anc_symptoms_follow_up.step3.toaster6.text=Antacid preparations to relieve heartburn counseling +anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text=Pelvic pain +anc_symptoms_follow_up.step4.mat_percept_fetal_move.label=Has the woman felt the baby move? +anc_symptoms_follow_up.step1.aspirin_comply.options.no.text=No +anc_symptoms_follow_up.step2.toaster1.toaster_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_symptoms_follow_up.step4.other_sym_vvo.label=Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text=Abnormal vaginal discharge (physiological) (foul smelling) (curd like) +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text=Heartburn +anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text=Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text=Gets tired easily +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text=Breathing difficulty +anc_symptoms_follow_up.step1.ifa_comply.options.no.text=No +anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err=Please specify any other symptoms related to low back pain or select none +anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text=Anti-hypertensive +anc_symptoms_follow_up.step1.medications.options.aspirin.text=Aspirin +anc_symptoms_follow_up.step1.calcium_comply.label=Is she taking her calcium supplements? +anc_symptoms_follow_up.step4.toaster16.toaster_info_text=Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_symptoms_follow_up.step1.medications.options.anti_malarials.text=Anti-malarials +anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text=Pain during urination (dysuria) +anc_symptoms_follow_up.step1.medications.options.metoclopramide.text=Metoclopramide +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text=Nausea and vomiting +anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text=Cough lasting more than 3 weeks +anc_symptoms_follow_up.step4.other_symptoms.options.headache.text=Headache +anc_symptoms_follow_up.step3.title=Previous Symptoms +anc_symptoms_follow_up.step4.toaster15.toaster_info_text=Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_symptoms_follow_up.step1.medications.options.folic_acid.text=Folic Acid +anc_symptoms_follow_up.step3.toaster9.text=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.toaster10.text=Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text=Visual disturbance +anc_symptoms_follow_up.step4.other_symptoms.options.none.text=None +anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text=Breathless during routine activities +anc_symptoms_follow_up.step3.toaster5.toaster_info_text=Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_symptoms_follow_up.step3.other_symptoms_persist.label=Which of the following other symptoms persist? +anc_symptoms_follow_up.step4.other_symptoms.v_required.err=Please specify any other symptoms or select none +anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text=Constipation +anc_symptoms_follow_up.step1.ifa_effects.options.no.text=No +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text=Low back pain +anc_symptoms_follow_up.step4.toaster17.toaster_info_text=Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_symptoms_follow_up.step1.medications.options.none.text=None +anc_symptoms_follow_up.step2.toaster4.text=Alcohol / substance use counseling +anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text=Exposure to second-hand smoke in the home +anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text=Pain during urination (dysuria) +anc_symptoms_follow_up.step4.other_symptoms.options.cough.text=Cough lasting more than 3 weeks +anc_symptoms_follow_up.step1.medications.options.arvs.text=Antiretrovirals (ARVs) +anc_symptoms_follow_up.step1.medications.options.hematinic.text=Hematinic +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text=Leg pain +anc_symptoms_follow_up.step3.toaster6.toaster_info_text=Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text=Reduced or poor fetal movement +anc_symptoms_follow_up.step1.medications.options.analgesic.text=Analgesic +anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text=No condom use during sex +anc_symptoms_follow_up.step1.title=Medication Follow-up +anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err=Field has the woman felt the baby move is required +anc_symptoms_follow_up.step4.phys_symptoms.options.none.text=None +anc_symptoms_follow_up.step1.medications.options.other.text=Other (specify) +anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text=Yes +anc_symptoms_follow_up.step1.toaster0.text=allergies : {allergies_values} +anc_symptoms_follow_up.step1.toaster0.toaster_info_text=Erythromycin 500 mg orally four times daily for 14 days\nor\nAzithromycin 2 g once orally.\nRemarks: Although erythromycin and azithromycin treat the pregnant women, they do not cross the placental barrier completely and as a result the fetus is not treated. It is therefore necessary to treat the newborn infant soon after delivery. +anc_symptoms_follow_up.step1.medications.options.doxylamine.text=Doxylamine +anc_symptoms_follow_up.step3.toaster7.text=Magnesium and calcium to relieve leg cramps counseling +anc_symptoms_follow_up.step1.calcium_effects.label=Any calcium supplement side effects? +anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text=Visual disturbance +anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text=None +anc_symptoms_follow_up.step4.toaster20.toaster_info_text=Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text=Constipation +anc_symptoms_follow_up.step1.medications.options.anthelmintic.text=Anthelmintic +anc_symptoms_follow_up.step1.penicillin_comply.label_info_title=Syphilis Compliance +anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text=Alcohol use +anc_symptoms_follow_up.step4.other_sym_lbpp.label=Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step2.toaster2.toaster_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text=Breathing difficulty +anc_symptoms_follow_up.step4.other_symptoms.label=Any other symptoms? +anc_symptoms_follow_up.step1.medications.options.asthma.text=Asthma +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text=Vaginal bleeding +anc_symptoms_follow_up.step4.phys_symptoms.v_required.err=Please specify any other physiological symptoms or select none +anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text=Contractions +anc_symptoms_follow_up.step1.vita_comply.options.no.text=No +anc_symptoms_follow_up.step1.calcium_comply.options.no.text=No +anc_symptoms_follow_up.step4.toaster18.toaster_info_text=Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text=Varicose veins +anc_symptoms_follow_up.step4.toaster14.text=Non-pharma measures to relieve nausea and vomiting counseling +anc_symptoms_follow_up.step1.ifa_effects.label=Any IFA side effects? +anc_symptoms_follow_up.step4.toaster17.text=Dietary modifications to relieve constipation counseling +anc_symptoms_follow_up.step2.toaster0.toaster_info_title=Caffeine intake folder +anc_symptoms_follow_up.step1.medications_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step2.toaster0.toaster_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. +anc_symptoms_follow_up.step3.toaster8.text=Wheat bran or other fiber supplements to relieve constipation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text=Breathless during routine activities +anc_symptoms_follow_up.step4.toaster20.text=Urine test required +anc_symptoms_follow_up.step2.behaviour_persist.options.none.text=None +anc_symptoms_follow_up.step1.calcium_effects.options.yes.text=Yes +anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text=Yes +anc_symptoms_follow_up.step3.other_sym_lbpp.label=Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step1.aspirin_comply.label=Is she taking her aspirin tablets? +anc_symptoms_follow_up.step1.medications.options.thyroid.text=Thyroid medication +anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err=Previous persisting physiological symptoms is required +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text=Leg redness +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text=Vaginal bleeding +anc_symptoms_follow_up.step1.vita_comply.options.yes.text=Yes +anc_symptoms_follow_up.step2.toaster2.text=Second-hand smoke counseling +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text=Leg redness +anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text=Varicose veins +anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text=Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step1.penicillin_comply.label_info_text=A maximum of up to 3 weekly doses may be required. +anc_symptoms_follow_up.step3.toaster12.text=Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text=Gets tired easily +anc_symptoms_follow_up.step1.medications.options.prep_hiv.text=Oral pre-exposure prophylaxis (PrEP) for HIV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label=Presenting signs and symptoms that trigger suspicion of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_text=What signs or symptoms does the client present with that are due to or trigger suspicion of intimate partner violence (IPV)? +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_title=Presenting signs and symptoms of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.none.text=No presenting signs or symptoms indicative of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.stress.text=Ongoing stress +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.anxiety.text=Ongoing anxiety +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.depression.text=Ongoing depression +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.emotional_health_issues.text=Unspecified ongoing emotional health issues +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.alcohol_misuse.text=Misuse of alcohol +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.drugs_misuse.text=Misuse of drugs +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.harmful_behaviour.text=Unspecified harmful behaviours +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_thoughts.text=Thoughts of self-harm or (attempted) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_plans.text=Plans of self-harm or (attempt) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_acts.text=Acts of self-harm or attempted suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_stis.text=Repeated sexually transmitted infections (STIs) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unwanted_pregnancies.text=Unwanted pregnancies +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.chronic_pain.text=Unexplained chronic pain +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.gastro_symptoms.text=Unexplained chronic gastrointestinal symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.genitourinary_symptoms.text=Unexplained genitourinary symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.adverse_repro_outcomes.text=Adverse reproductive outcomes +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unexplained_repro_symptoms.text=Unexplained reproductive symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_vaginal_bleeding.text=Repeated vaginal bleeding +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text=Injury to abdomen +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text=Injury other (specify) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text=Problems with central nervous system +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text=Repeated health consultations with no clear diagnosis +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text=Woman's partner or husband is intrusive during consultations +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text=Woman often misses her own or her children's health-care appointments +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text=Children have emotional and behavioural problems +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint=Other injury - specify +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step4.toaster23.text=Woman is suspected of being subjected to IPV. Please conduct an IPV clinical enquiry during the physical exam part of the contact. \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 8fb3f017a..9200b0926 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -1,66 +1,66 @@ -profile_overview.overview_of_pregnancy.demographic_info.occupation = Occupation -profile_overview.overview_of_pregnancy.current_pregnancy.ga = GA -profile_overview.overview_of_pregnancy.current_pregnancy.edd = EDD -profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date = Ultrasound date -profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses = No. of fetuses -profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation = Fetal presentation -profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid = Amniotic fluid -profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location = Placenta location -profile_overview.overview_of_pregnancy.obstetric_history.gravida = Gravida -profile_overview.overview_of_pregnancy.obstetric_history.parity = Parity -profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended -profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths = No. of stillbirths -profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections = No. of C-sections -profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems = Past pregnancy problems -profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used = Past alcohol used -profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used = Past alcohol / substances used -profile_overview.overview_of_pregnancy.medical_history.blood_type = Blood type -profile_overview.overview_of_pregnancy.medical_history.allergies = Allergies -profile_overview.overview_of_pregnancy.medical_history.surgeries = Surgeries -profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions = Chronic health conditions -profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date = Past HIV diagnosis date -profile_overview.overview_of_pregnancy.weight.bmi = BMI -profile_overview.overview_of_pregnancy.weight.weight_category = Weight category -profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy = Expected weight gain during the pregnancy -profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far = Total weight gain in pregnancy so far -profile_overview.overview_of_pregnancy.medications.current_medications = Current medications -profile_overview.overview_of_pregnancy.medications.medications_prescribed = Medications prescribed -profile_overview.overview_of_pregnancy.medications.calcium_compliance = Calcium compliance -profile_overview.overview_of_pregnancy.medications.calcium_side_effects = Calcium side effects -profile_overview.overview_of_pregnancy.medications.ifa_compliance = IFA compliance -profile_overview.overview_of_pregnancy.medications.ifa_side_effects = IFA side effects -profile_overview.overview_of_pregnancy.medications.aspirin_compliance = Aspirin compliance -profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance = Vitamin A compliance -profile_overview.overview_of_pregnancy.medications.penicillin_compliance = Penicillin compliance -profile_overview.hospital_referral_reasons.woman_referred_to_hospital = Woman referred to hospital -profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital = Woman not referred to hospital -profile_overview.hospital_referral_reasons.danger_signs = Danger sign(s) -profile_overview.hospital_referral_reasons.severe_hypertension = Severe hypertension -profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia -profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis -profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis -profile_overview.hospital_referral_reasons.fever = Fever -profile_overview.hospital_referral_reasons.abnormal_pulse_rate = Abnormal pulse rate -profile_overview.hospital_referral_reasons.respiratory_distress = Respiratory distress -profile_overview.hospital_referral_reasons.low_oximetry = Low oximetry -profile_overview.hospital_referral_reasons.abnormal_cardiac_exam = Abnormal cardiac exam -profile_overview.hospital_referral_reasons.abnormal_breast_exam = Abnormal breast exam -profile_overview.hospital_referral_reasons.abnormal_abdominal_exam = Abnormal abdominal exam -profile_overview.hospital_referral_reasons.abnormal_pelvic_exam = Abnormal pelvic exam -profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed = No fetal heartbeat observed -profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate = Abnormal fetal heart rate -profile_overview.physiological_symptoms.physiological_symptoms = Physiological symptoms -profile_overview.birth_plan_counseling.planned_birth_place = Planned birth place -profile_overview.birth_plan_counseling.fp_method_accepted = FP method accepted -profile_overview.malaria_prophylaxis.iptp_sp_dose_1 = IPTp-SP dose 1 -profile_overview.malaria_prophylaxis.iptp_sp_dose_2 = IPTp-SP dose 2 -profile_overview.malaria_prophylaxis.iptp_sp_dose_3 = IPTp-SP dose 3 -profile_overview.immunisation_status.tt_immunisation_status = TTCV immunisation status -profile_overview.immunisation_status.tt_dose_1 = TTCV dose #1 -profile_overview.immunisation_status.tt_dose_2 = TTCV dose #2 -profile_overview.immunisation_status.flu_immunisation_status = Flu immunisation status -profile_overview.immunisation_status.flu_dose = Flu dose - +profile_overview.overview_of_pregnancy.demographic_info.occupation=Occupation +profile_overview.overview_of_pregnancy.current_pregnancy.ga=GA +profile_overview.overview_of_pregnancy.current_pregnancy.edd=EDD +profile_overview.overview_of_pregnancy.current_pregnancy.ultrasound_date=Ultrasound date +profile_overview.overview_of_pregnancy.current_pregnancy.no_of_fetuses=No. of fetuses +profile_overview.overview_of_pregnancy.current_pregnancy.fetal_presentation=Fetal presentation +profile_overview.overview_of_pregnancy.current_pregnancy.amniotic_fluid=Amniotic fluid +profile_overview.overview_of_pregnancy.current_pregnancy.placenta_location=Placenta location +profile_overview.overview_of_pregnancy.obstetric_history.gravida=Gravida +profile_overview.overview_of_pregnancy.obstetric_history.parity=Parity +profile_overview.overview_of_pregnancy.obstetric_history.no_of_pregnancies_lost_ended=No. of pregnancies lost/ended +profile_overview.overview_of_pregnancy.obstetric_history.no_of_stillbirths=No. of stillbirths +profile_overview.overview_of_pregnancy.obstetric_history.no_of_c_sections=No. of C-sections +profile_overview.overview_of_pregnancy.obstetric_history.past_pregnancy_problems=Past pregnancy problems +profile_overview.overview_of_pregnancy.obstetric_history.past_alcohol_used=Past alcohol used +profile_overview.overview_of_pregnancy.obstetric_history.past_substances_used=Past alcohol / substances used +profile_overview.overview_of_pregnancy.medical_history.blood_type=Blood type +profile_overview.overview_of_pregnancy.medical_history.allergies=Allergies +profile_overview.overview_of_pregnancy.medical_history.surgeries=Surgeries +profile_overview.overview_of_pregnancy.medical_history.chronic_health_conditions=Chronic health conditions +profile_overview.overview_of_pregnancy.medical_history.past_hiv_diagnosis_date=Past HIV diagnosis date +profile_overview.overview_of_pregnancy.weight.bmi=BMI +profile_overview.overview_of_pregnancy.weight.weight_category=Weight category +profile_overview.overview_of_pregnancy.weight.expected_weight_gain_during_the_pregnancy=Expected weight gain during the pregnancy +profile_overview.overview_of_pregnancy.weight.total_weight_gain_in_pregnancy_so_far=Total weight gain in pregnancy so far +profile_overview.overview_of_pregnancy.medications.current_medications=Current medications +profile_overview.overview_of_pregnancy.medications.medications_prescribed=Medications prescribed +profile_overview.overview_of_pregnancy.medications.calcium_compliance=Calcium compliance +profile_overview.overview_of_pregnancy.medications.calcium_side_effects=Calcium side effects +profile_overview.overview_of_pregnancy.medications.ifa_compliance=IFA compliance +profile_overview.overview_of_pregnancy.medications.ifa_side_effects=IFA side effects +profile_overview.overview_of_pregnancy.medications.aspirin_compliance=Aspirin compliance +profile_overview.overview_of_pregnancy.medications.vitamin_a_compliance=Vitamin A compliance +profile_overview.overview_of_pregnancy.medications.penicillin_compliance=Penicillin compliance +profile_overview.hospital_referral_reasons.woman_referred_to_hospital=Woman referred to hospital +profile_overview.hospital_referral_reasons.woman_not_referred_to_hospital=Woman not referred to hospital +profile_overview.hospital_referral_reasons.danger_signs=Danger sign(s) +profile_overview.hospital_referral_reasons.severe_hypertension=Severe hypertension +profile_overview.hospital_referral_reasons.hypertension_and_symptom_of_severe_pre_eclampsia=Hypertension and symptom of severe pre-eclampsia +profile_overview.hospital_referral_reasons.pre_eclampsia_diagnosis=Pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.severe_pre_eclampsia_diagnosis=Severe pre-eclampsia diagnosis +profile_overview.hospital_referral_reasons.fever=Fever +profile_overview.hospital_referral_reasons.abnormal_pulse_rate=Abnormal pulse rate +profile_overview.hospital_referral_reasons.respiratory_distress=Respiratory distress +profile_overview.hospital_referral_reasons.low_oximetry=Low oximetry +profile_overview.hospital_referral_reasons.abnormal_cardiac_exam=Abnormal cardiac exam +profile_overview.hospital_referral_reasons.abnormal_breast_exam=Abnormal breast exam +profile_overview.hospital_referral_reasons.abnormal_abdominal_exam=Abnormal abdominal exam +profile_overview.hospital_referral_reasons.abnormal_pelvic_exam=Abnormal pelvic exam +profile_overview.hospital_referral_reasons.no_fetal_heartbeat_observed=No fetal heartbeat observed +profile_overview.hospital_referral_reasons.abnormal_fetal_heart_rate=Abnormal fetal heart rate +profile_overview.physiological_symptoms.physiological_symptoms=Physiological symptoms +profile_overview.birth_plan_counseling.planned_birth_place=Planned birth place +profile_overview.birth_plan_counseling.fp_method_accepted=FP method accepted +profile_overview.malaria_prophylaxis.iptp_sp_dose_1=IPTp-SP dose 1 +profile_overview.malaria_prophylaxis.iptp_sp_dose_2=IPTp-SP dose 2 +profile_overview.malaria_prophylaxis.iptp_sp_dose_3=IPTp-SP dose 3 +profile_overview.immunisation_status.tt_immunisation_status=TTCV immunisation status +profile_overview.immunisation_status.tt_dose_1=TTCV dose #1 +profile_overview.immunisation_status.tt_dose_2=TTCV dose #2 +profile_overview.immunisation_status.flu_immunisation_status=Flu immunisation status +profile_overview.immunisation_status.flu_dose=Flu dose #added anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully Immunized -profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test \ No newline at end of file +profile_contact_test.ultrasound_tests.ultrasound_test=Ultrasound test +anc_profile.step2.ultrasound_done.options.yes.text=Ultra Sound Done Today \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 89452ca54..55c5495ca 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -6,7 +6,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.1.3' classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.3' - classpath 'com.google.gms:google-services:4.3.9' + classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' classpath 'org.smartregister:gradle-jarjar-plugin:1.0.0-SNAPSHOT' } @@ -285,7 +285,7 @@ dependencies { } implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.constraintlayout:constraintlayout:2.1.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation group: 'org.yaml', name: 'snakeyaml', version: '1.27' implementation 'de.hdodenhof:circleimageview:3.1.0' implementation 'org.jeasy:easy-rules-core:3.3.0' @@ -350,6 +350,6 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea jarJar { - // Dependencies and related JarJar rules + // Dependencies and related Jar rules remove = ['fhir-model-4.8.3.jar': 'com.ibm.fhir.model.visitor.CopyingVisitor*'] } \ No newline at end of file From 21a2d2aa981b3f9624ad1b026b0fa08927fe97e5 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 23 Feb 2022 11:57:17 +0300 Subject: [PATCH 147/302] NativeForm Lang Utils --- .../anc/library/repository/PreviousContactRepository.java | 4 ++-- .../java/org/smartregister/anc/library/util/ANCFormUtils.java | 3 ++- opensrp-anc/src/main/resources/attention_flags.properties | 3 ++- opensrp-anc/src/main/resources/profile_overview.properties | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 1ba35b118..b9d3d5156 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -330,8 +330,8 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has("value") && previousContactObject.has("text")) { - String translation_text; - translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}}" : ""; + String translation_text; + translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}" : ""; previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index a6459d85b..3e6001506 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -9,6 +9,7 @@ import com.vijay.jsonwizard.domain.ExpansionPanelItemModel; import com.vijay.jsonwizard.rules.RuleConstant; import com.vijay.jsonwizard.utils.FormUtils; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.WordUtils; @@ -541,7 +542,7 @@ static String cleanValue(String value) { for (int i = 0; i < jsonArray.length(); i++) { if (jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "") != null) { String translatedText = jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, ""); - list.add(translatedText); + list.add(NativeFormLangUtils.getTranslatedString(translatedText)); } } return list.size() > 1 ? String.join(",", list) : ""; diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index b2a4af743..cd744a884 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -60,4 +60,5 @@ attention_flags.red.tb_screening_positive=TB screening positive #added anc_profile.step2.ultrasound_done.options.yes.text=Ultra Sound done today anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully Immunized -profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test \ No newline at end of file +profile_contact_test.ultrasound_tests.ultrasound_test = Ultrasound test +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/profile_overview.properties b/opensrp-anc/src/main/resources/profile_overview.properties index 9200b0926..391cab47f 100644 --- a/opensrp-anc/src/main/resources/profile_overview.properties +++ b/opensrp-anc/src/main/resources/profile_overview.properties @@ -63,4 +63,5 @@ profile_overview.immunisation_status.flu_dose=Flu dose #added anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully Immunized profile_contact_test.ultrasound_tests.ultrasound_test=Ultrasound test -anc_profile.step2.ultrasound_done.options.yes.text=Ultra Sound Done Today \ No newline at end of file +anc_profile.step2.ultrasound_done.options.yes.text=Ultra Sound Done Today +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide \ No newline at end of file From 75780df52a280320aefa54feb3da80d5f44f6e56 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 23 Feb 2022 17:00:11 +0300 Subject: [PATCH 148/302] CleanValue Read key from json object --- .../main/assets/config/profile-overview.yml | 8 +- .../main/assets/json.form/anc_profile.json | 3 +- .../anc/library/util/ANCFormUtils.java | 8 +- .../main/resources/anc_profile_ind.properties | 317 ++++++++++++++++++ 4 files changed, 328 insertions(+), 8 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_profile_ind.properties diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 2e76fa218..6e78d8bb8 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -331,13 +331,13 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" -# - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" -# relevance: "flu_immun_status != ''" -# isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" + # - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" + # relevance: "flu_immun_status != ''" + # isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" #added - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}" relevance: "flu_immun_status != ''" - isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" + isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index c9d9468f3..002508def 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -2117,7 +2117,8 @@ "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "key": "none", - "text": "{{anc_profile.step4.health_conditions.options.none.text}}" + "text": "{{anc_profile.step4.health_conditions.options.none.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.none.text" }, { "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 3e6001506..564bba7c2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -540,9 +540,11 @@ static String cleanValue(String value) { JSONArray jsonArray = new JSONArray(value); List list = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); i++) { - if (jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, "") != null) { - String translatedText = jsonArray.optJSONObject(i).optString(JsonFormConstants.TEXT, ""); - list.add(NativeFormLangUtils.getTranslatedString(translatedText)); + JSONObject jsonObject = jsonArray.optJSONObject(i); + if (jsonObject != null && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { + String text = jsonObject.optString(JsonFormConstants.TEXT), translatedText = ""; + translatedText = NativeFormLangUtils.getTranslatedString(text); + list.add(translatedText); } } return list.size() > 1 ? String.join(",", list) : ""; diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties new file mode 100644 index 000000000..90ba744c6 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_profile_ind.properties @@ -0,0 +1,317 @@ +anc_profile.step1.occupation.options.other.text = Other (specify) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 12 bars (50 g) of chocolate +anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_done.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit +anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) +anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required +anc_profile.step3.prev_preg_comps_other.hint = Specify +anc_profile.step6.medications.options.antibiotics.text = Other antibiotics +anc_profile.step6.medications.options.aspirin.text = Aspirin +anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine +anc_profile.step8.partner_hiv_status.label = Partner HIV status +anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) +anc_profile.step1.occupation.options.formal_employment.text = Formal employment +anc_profile.step3.substances_used.options.marijuana.text = Marijuana +anc_profile.step2.lmp_known.options.no.text = No +anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step7.other_substance_use.hint = Specify +anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems +anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia +anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age +anc_profile.step1.educ_level.options.secondary.text = Secondary +anc_profile.step5.title = Immunisation Status +anc_profile.step3.gravida.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? +anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) +anc_profile.step4.allergies.label = Any allergies? +anc_profile.step6.medications.options.folic_acid.text = Folic Acid +anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive +anc_profile.step7.condom_counseling_toaster.text = Condom counseling +anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused +anc_profile.step6.medications_other.hint = Specify +anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) +anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) +anc_profile.step8.partner_hiv_status.options.negative.text = Negative +anc_profile.step7.caffeine_intake.options.none.text = None of the above +anc_profile.step4.title = Medical History +anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions +anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days +anc_profile.step3.substances_used.label = Specify illicit substance use +anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage +anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling +anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused +anc_profile.step3.c_sections.v_required.err = C-sections is required +anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures +anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Perineal tear (3rd or 4th degree) +anc_profile.step4.allergies.options.folic_acid.text = Folic acid +anc_profile.step6.medications.options.other.text = Other (specify) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs +anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days +anc_profile.step2.ultrasound_done.options.yes.text = Yes +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling +anc_profile.step1.occupation.hint = Occupation +anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) +anc_profile.step7.caffeine_intake.label = Daily caffeine intake +anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) +anc_profile.step5.flu_immun_status.label = Flu immunisation status +anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? +anc_profile.step1.occupation_other.v_required.err = Please specify your occupation +anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) +anc_profile.step1.educ_level.options.higher.text = Higher +anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use +anc_profile.step6.medications.label = Current medications +anc_profile.step6.medications.options.magnesium.text = Magnesium +anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic +anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) +anc_profile.step1.educ_level.v_required.err = Please specify your education level +anc_profile.step4.health_conditions.options.hiv.text = HIV +anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling +anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products +anc_profile.step3.substances_used.options.other.text = Other (specify) +anc_profile.step6.medications.options.calcium.text = Calcium +anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_profile.step6.title = Medications +anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication +anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling +anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step4.surgeries.options.dont_know.text = Don't know +anc_profile.step6.medications.v_required.err = Please select at least one medication +anc_profile.step1.occupation.options.student.text = Student +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs +anc_profile.step5.flu_immun_status.options.unknown.text = Unknown +anc_profile.step7.alcohol_substance_enquiry.options.no.text = No +anc_profile.step4.surgeries.label = Any surgeries? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Fully immunized +anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive +anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know +anc_profile.step5.tt_immun_status.options.unknown.text = Unknown +anc_profile.step5.flu_immun_status.v_required.err = Please select flu immunisation status +anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes +anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended +anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_profile.step1.marital_status.options.divorced.text = Divorced / separated +anc_profile.step5.tt_immun_status.options.3_doses.text = Fully immunized +anc_profile.step8.title = Partner's HIV Status +anc_profile.step4.allergies.options.iron.text = Iron +anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) +anc_profile.step6.medications.options.multivitamin.text = Multivitamin +anc_profile.step7.shs_exposure.options.no.text = No +anc_profile.step1.educ_level.options.dont_know.text = Don't know +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling +anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy +anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required +anc_profile.step4.allergies.v_required.err = Please select at least one allergy +anc_profile.step4.surgeries.options.none.text = None +anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = No doses +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps +anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended +anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step3.substances_used_other.hint = Specify +anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products +anc_profile.step6.medications.options.antitussive.text = Antitussive +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) +anc_profile.step5.tt_immun_status.label = TTCV immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TTCV immunisation recommended +anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana +anc_profile.step4.allergies.options.calcium.text = Calcium +anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee +anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status +anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use +anc_profile.step2.lmp_known.options.yes.text = Yes +anc_profile.step2.lmp_known.label_info_title = LMP known? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_profile.step4.allergies.options.chamomile.text = Chamomile +anc_profile.step2.lmp_known.label = LMP known? +anc_profile.step3.live_births.v_required.err = Live births is required +anc_profile.step7.condom_use.options.no.text = No +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth +anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures +anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation +anc_profile.step1.marital_status.label = Marital status +anc_profile.step7.title = Woman's Behaviour +anc_profile.step4.surgeries_other.hint = Other surgeries +anc_profile.step3.substances_used.options.cocaine.text = Cocaine +anc_profile.step1.educ_level.options.primary.text = Primary +anc_profile.step4.health_conditions.options.other.text = Other (specify) +anc_profile.step6.medications_other.v_required.err = Please specify the Other medications +anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling +anc_profile.step1.educ_level.options.none.text = None +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia +anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions +anc_profile.step7.alcohol_substance_use.options.none.text = None +anc_profile.step7.tobacco_user.options.yes.text = Yes +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups of coffee (brewed, filtered, instant or espresso) +anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) +anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment +anc_profile.step6.medications.options.none.text = None +anc_profile.step2.ultrasound_done.label = Ultrasound done? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step6.medications.options.iron.text = Iron +anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease +anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling +anc_profile.step4.health_conditions.options.diabetes.text = Diabetes, pre-existing type 1 +anc_profile.step1.occupation_other.hint = Specify +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation +anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. +anc_profile.step1.marital_status.v_required.err = Please specify your marital status +anc_profile.step8.partner_hiv_status.v_required.err = Please select one +anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step3.prev_preg_comps.options.none.text = None +anc_profile.step4.allergies.options.dont_know.text = Don't know +anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling +anc_profile.step4.allergies.hint = Any allergies? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date +anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment +anc_profile.step4.surgeries.hint = Any surgeries? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts +anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? +anc_profile.step7.tobacco_user.label = Uses tobacco products? +anc_profile.step1.occupation.label = Occupation +anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products +anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know +anc_profile.step6.medications.options.hematinic.text = Hematinic +anc_profile.step3.c_sections_label.text = No. of C-sections +anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions +anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol +anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required +anc_profile.step4.allergies.options.albendazole.text = Albendazole +anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended +anc_profile.step1.educ_level.label = Highest level of school +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling +anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes +anc_profile.step4.allergies.options.penicillin.text = Penicillin +anc_profile.step1.occupation.options.unemployed.text = Unemployed +anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required +anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) +anc_profile.step1.marital_status.options.widowed.text = Widowed +anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? +anc_profile.step4.health_conditions_other.hint = Other health condition - specify +anc_profile.step6.medications.options.antivirals.text = Antivirals +anc_profile.step6.medications.options.antacids.text = Antacids +anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling +anc_profile.step3.title = Obstetric History +anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! +anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling +anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) +anc_profile.step4.health_conditions.label = Any chronic or past health conditions? +anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries +anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know +anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required +anc_profile.step4.health_conditions.options.dont_know.text = Don't know +anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? +anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease +anc_profile.step6.medications.options.vitamina.text = Vitamin A +anc_profile.step6.medications.options.dont_know.text = Don't know +anc_profile.step7.condom_use.options.yes.text = Yes +anc_profile.step4.health_conditions.options.cancer.text = Cancer - gynaecological +anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = No doses +anc_profile.step4.allergies_other.hint = Specify +anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step7.caffeine_intake.hint = Daily caffeine intake +anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks +anc_profile.step4.allergies.options.other.text = Other (specify) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling +anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries +anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks +anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP +anc_profile.step4.allergies.options.none.text = None +anc_profile.step3.stillbirths.v_required.err = Still births is required +anc_profile.step7.tobacco_user.options.no.text = No +anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems +anc_profile.step1.marital_status.options.married.text = Married or living together +anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date +anc_profile.step7.shs_exposure.options.yes.text = Yes +anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. +anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) +anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date +anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) +anc_profile.step4.allergies.options.mebendazole.text = Mebendazole +anc_profile.step7.condom_use.label = Uses (male or female) condoms during sex? +anc_profile.step1.occupation.v_required.err = Please select at least one occupation +anc_profile.step6.medications.options.analgesic.text = Analgesic +anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits +anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age +anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) +anc_profile.step8.partner_hiv_status.options.positive.text = Positive +anc_profile.step4.allergies.options.ginger.text = Ginger +anc_profile.step2.title = Current Pregnancy +anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age +anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under - immunized +anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia +anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! +anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) +anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate +anc_profile.step4.health_conditions.options.none.text = None +anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound +anc_profile.step6.medications.options.asthma.text = Asthma +anc_profile.step6.medications.options.doxylamine.text = Doxylamine +anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use +anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. +anc_profile.step3.last_live_birth_preterm.options.no.text = No +anc_profile.step3.stillbirths_label.v_required.err = Still births is required +anc_profile.step4.health_conditions.options.hypertension.text = Hypertension +anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. +anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole +anc_profile.step6.medications.options.thyroid.text = Thyroid medication +anc_profile.step1.title = Demographic Info +anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? +anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). +anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended +anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. +anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? +anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment +anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery +anc_profile.step4.health_conditions.options.cancer_other.text = Cancer - other site (specify) +anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) +anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, other or unspecified +anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 +anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify +anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer +anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV +anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea +anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink +anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. From 0a30c2850f4f49247bf6d1a3a3818890b4cfeefe Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 24 Feb 2022 09:59:53 +0300 Subject: [PATCH 149/302] Reading key and text from JsonFormConstant --- .../main/assets/config/profile-overview.yml | 3 - .../smartregister/anc/library/AncLibrary.java | 64 +++++++++---------- .../ContactSummaryFinishActivity.java | 26 +++----- .../presenter/ProfileFragmentPresenter.java | 4 +- .../anc/library/util/ANCFormUtils.java | 3 +- .../repository/PatientRepositoryTest.java | 8 --- 6 files changed, 44 insertions(+), 64 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 6e78d8bb8..7f78721c8 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -331,9 +331,6 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - # - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" - # relevance: "flu_immun_status != ''" - # isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java index 22d5cac1a..a79db3322 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AncLibrary.java @@ -53,7 +53,7 @@ public class AncLibrary { private static AncLibrary instance; private final Context context; - private JsonSpecHelper jsonSpecHelper; + private final JsonSpecHelper jsonSpecHelper; private PartialContactRepository partialContactRepository; private PreviousContactRepository previousContactRepository; private ContactTasksRepository contactTasksRepository; @@ -64,13 +64,13 @@ public class AncLibrary { private AncRulesEngineHelper ancRulesEngineHelper; private RegisterQueryProvider registerQueryProvider; private ClientProcessorForJava clientProcessorForJava; - private JSONObject defaultContactFormGlobals = new JSONObject(); + private final JSONObject defaultContactFormGlobals = new JSONObject(); private Compressor compressor; private Gson gson; private Yaml yaml; - private SubscriberInfoIndex subscriberInfoIndex; - private int databaseVersion; - private ActivityConfiguration activityConfiguration; + private final SubscriberInfoIndex subscriberInfoIndex; + private final int databaseVersion; + private final ActivityConfiguration activityConfiguration; private AncMetadata ancMetadata = new AncMetadata(); private AppExecutors appExecutors; @@ -106,33 +106,6 @@ private AncLibrary(@NonNull Context context, int dbVersion, @NonNull ActivityCon initializeYamlConfigs(); } - public android.content.Context getApplicationContext() { - return context.applicationContext(); - } - - private void setUpEventHandling() { - try { - EventBusBuilder eventBusBuilder = EventBus.builder() - .addIndex(new ANCEventBusIndex()); - - if (subscriberInfoIndex != null) { - eventBusBuilder.addIndex(subscriberInfoIndex); - } - - eventBusBuilder.installDefaultEventBus(); - } catch (Exception e) { - Timber.e(e, " --> setUpEventHandling"); - } - } - - private void initializeYamlConfigs() { - Constructor constructor = new Constructor(YamlConfig.class); - TypeDescription customTypeDescription = new TypeDescription(YamlConfig.class); - customTypeDescription.addPropertyParameters(YamlConfigItem.FIELD_CONTACT_SUMMARY_ITEMS, YamlConfigItem.class); - constructor.addTypeDescription(customTypeDescription); - yaml = new Yaml(constructor); - } - public static void init(@NonNull Context context, int dbVersion) { init(context, dbVersion, new ActivityConfiguration()); } @@ -187,6 +160,33 @@ public static AncLibrary getInstance() { return instance; } + public android.content.Context getApplicationContext() { + return context.applicationContext(); + } + + private void setUpEventHandling() { + try { + EventBusBuilder eventBusBuilder = EventBus.builder() + .addIndex(new ANCEventBusIndex()); + + if (subscriberInfoIndex != null) { + eventBusBuilder.addIndex(subscriberInfoIndex); + } + + eventBusBuilder.installDefaultEventBus(); + } catch (Exception e) { + Timber.e(e, " --> setUpEventHandling"); + } + } + + private void initializeYamlConfigs() { + Constructor constructor = new Constructor(YamlConfig.class); + TypeDescription customTypeDescription = new TypeDescription(YamlConfig.class); + customTypeDescription.addPropertyParameters(YamlConfigItem.FIELD_CONTACT_SUMMARY_ITEMS, YamlConfigItem.class); + constructor.addTypeDescription(customTypeDescription); + yaml = new Yaml(constructor); + } + public PartialContactRepository getPartialContactRepository() { if (partialContactRepository == null) { partialContactRepository = new PartialContactRepository(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java index dcd2bfc80..c6454306c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactSummaryFinishActivity.java @@ -19,7 +19,6 @@ import org.jeasy.rules.api.Facts; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.BuildConfig; import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.ProfileContract; import org.smartregister.anc.library.domain.YamlConfig; @@ -54,7 +53,7 @@ public class ContactSummaryFinishActivity extends BaseProfileActivity implements private TextView ancIdView; private ImageView imageView; private ImageRenderHelper imageRenderHelper; - private Facts facts = new Facts(); + private final Facts facts = new Facts(); private List yamlConfigList = new ArrayList<>(); private String baseEntityId; private int contactNo; @@ -105,8 +104,7 @@ protected void loadContactSummaryData() { @Override public void onResume() { super.onResume(); - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && Environment.isExternalStorageManager()) - { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && Environment.isExternalStorageManager()) { generateFileinStorage(); } } @@ -236,9 +234,7 @@ public void createContactSummaryPdf() { if (isPermissionGranted() && (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)) { generateFileinStorage(); - } - else if (!isPermissionGranted() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) - { + } else if (!isPermissionGranted() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Intent intent = new Intent(); intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); Uri uri = Uri.fromParts("package", this.getPackageName(), null); @@ -247,8 +243,7 @@ else if (!isPermissionGranted() && Build.VERSION.SDK_INT >= Build.VERSION_CODES. } } - public void generateFileinStorage() - { + public void generateFileinStorage() { try { new Utils().createSavePdf(this, yamlConfigList, facts); } catch (FileNotFoundException e) { @@ -280,15 +275,10 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in } protected boolean isPermissionGranted() { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) - { - if(Environment.isExternalStorageManager()) - return true; - else - return false; - } - else - return PermissionUtils.isPermissionGranted(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, PermissionUtils.WRITE_EXTERNAL_STORAGE_REQUEST_CODE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + return Environment.isExternalStorageManager(); + } else + return PermissionUtils.isPermissionGranted(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, PermissionUtils.WRITE_EXTERNAL_STORAGE_REQUEST_CODE); } public List getYamlConfigList() { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index b9a92bdea..5e51c725f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -2,6 +2,8 @@ import android.text.TextUtils; +import com.vijay.jsonwizard.constants.JsonFormConstants; + import org.jeasy.rules.api.Facts; import org.json.JSONException; import org.json.JSONObject; @@ -73,7 +75,7 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri String attentionFlagValue = jsonObject.getString(key); if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); - if (attentionFlagObject.has("text") && attentionFlagObject.has("key")) { + if (attentionFlagObject.has(JsonFormConstants.TEXT) && attentionFlagObject.has(JsonFormConstants.KEY)) { String translation_text; translation_text = !attentionFlagObject.getString("text").isEmpty() ? "{{" + attentionFlagObject.getString("text") + "}}" : ""; facts.put(key, translation_text); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 564bba7c2..3ee904f4c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -30,7 +30,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import timber.log.Timber; @@ -543,7 +542,7 @@ static String cleanValue(String value) { JSONObject jsonObject = jsonArray.optJSONObject(i); if (jsonObject != null && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { String text = jsonObject.optString(JsonFormConstants.TEXT), translatedText = ""; - translatedText = NativeFormLangUtils.getTranslatedString(text); + translatedText = NativeFormLangUtils.getTranslatedString(text,AncLibrary.getInstance().getApplicationContext()); list.add(translatedText); } } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java index c8afc5caa..0911cbb58 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/repository/PatientRepositoryTest.java @@ -169,14 +169,6 @@ public void testUpdateContactVisitStartDateShouldPassCorrectArgsToUpdateDb() { Assert.assertNull(result.get(DBConstantsUtils.KeyUtils.VISIT_START_DATE)); } -// @Test -// public void isFirstVisitTest() { -// String baseEntityId="4faf5afa-fa7f-4d98-b4cd-4ee39c8d1eb1"; -// PatientRepository patientRepositoryHelper = new PatientRepository(); -// Assert.assertNotNull(patientRepositoryHelper); -// boolean isfistVisit = PatientRepository.isFirstVisit(baseEntityId); -// Assert.assertTrue(isfistVisit); -// } @After public void tearDown() { From fe29284848e8886169d060c3b62f6b92ec6904d4 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 24 Feb 2022 19:50:03 +0300 Subject: [PATCH 150/302] ANC String translations --- opensrp-anc/build.gradle | 2 +- .../src/main/assets/config/profile-overview.yml | 1 - .../presenter/ProfileFragmentPresenter.java | 8 +++++--- .../repository/PreviousContactRepository.java | 16 +++++++++++----- .../anc/library/util/ANCFormUtils.java | 11 +++++++---- .../main/resources/anc_profile_ind.properties | 6 +++--- reference-app/build.gradle | 2 +- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 2da133795..4360470d3 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 7f78721c8..30734d891 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -331,7 +331,6 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" #added diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 5e51c725f..b34e67d80 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -3,6 +3,7 @@ import android.text.TextUtils; import com.vijay.jsonwizard.constants.JsonFormConstants; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.jeasy.rules.api.Facts; import org.json.JSONException; @@ -76,9 +77,10 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); if (attentionFlagObject.has(JsonFormConstants.TEXT) && attentionFlagObject.has(JsonFormConstants.KEY)) { - String translation_text; - translation_text = !attentionFlagObject.getString("text").isEmpty() ? "{{" + attentionFlagObject.getString("text") + "}}" : ""; - facts.put(key, translation_text); + String translated_text, text; + text = attentionFlagObject.optString(JsonFormConstants.TEXT); + translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + facts.put(key, translated_text); } else { facts.put(key, jsonObject.get(key)); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index b9d3d5156..515b156ca 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -5,6 +5,7 @@ import android.util.Log; import com.vijay.jsonwizard.constants.JsonFormConstants; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import net.sqlcipher.Cursor; import net.sqlcipher.database.SQLiteDatabase; @@ -12,6 +13,7 @@ import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.PreviousContactsSummaryModel; import org.smartregister.anc.library.util.ANCFormUtils; @@ -226,7 +228,10 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { String jsonValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); if (StringUtils.isNotBlank(jsonValue) && jsonValue.trim().charAt(0) == '{') { JSONObject valueObject = new JSONObject(jsonValue); - previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), valueObject.optString(JsonFormConstants.TEXT, "")); + String text, translated_text; + text = valueObject.optString(JsonFormConstants.TEXT); + translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); } @@ -329,10 +334,11 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { JSONObject previousContactObject = new JSONObject(previousContactValue); - if (previousContactObject.has("value") && previousContactObject.has("text")) { - String translation_text; - translation_text = !previousContactObject.optString(JsonFormConstants.TEXT, "").isEmpty() ? "{" + previousContactObject.optString(JsonFormConstants.TEXT, "") + "}" : ""; - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translation_text); + if (previousContactObject.has(JsonFormConstants.KEY) && previousContactObject.has(JsonFormConstants.TEXT)) { + String translated_text, text; + text = previousContactObject.optString(JsonFormConstants.TEXT); + translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 3ee904f4c..d449b46e3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -178,8 +178,10 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List } else { if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.SPINNER.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.MULTI_SELECT_LIST.equals(jsonObject.optString(JsonFormConstants.TYPE)))) { - String translation_text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "") != null ? "{{" + jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT, "") + "}}" : ""; - valueList.add(translation_text); + String translated_text, text; + text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); + translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + valueList.add(translated_text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); } @@ -514,7 +516,7 @@ public static String keyToValueConverter(String keys) { if (keys != null) { String cleanKey = ""; String value = cleanValue(keys); - if (!value.contains("text") || !value.contains(".")) { + if (!value.contains("text") || !value.contains(".") && !value.isEmpty()) { cleanKey = WordUtils.capitalizeFully(value, ','); } else { cleanKey = value; @@ -542,7 +544,7 @@ static String cleanValue(String value) { JSONObject jsonObject = jsonArray.optJSONObject(i); if (jsonObject != null && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { String text = jsonObject.optString(JsonFormConstants.TEXT), translatedText = ""; - translatedText = NativeFormLangUtils.getTranslatedString(text,AncLibrary.getInstance().getApplicationContext()); + translatedText = NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()); list.add(translatedText); } } @@ -553,6 +555,7 @@ static String cleanValue(String value) { } else return value; } catch (Exception e) { + Timber.e(e, "Clean Value in ANCFormUtils"); return ""; } diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties index 90ba744c6..0196e6453 100644 --- a/opensrp-anc/src/main/resources/anc_profile_ind.properties +++ b/opensrp-anc/src/main/resources/anc_profile_ind.properties @@ -12,7 +12,7 @@ anc_profile.step6.medications.options.antibiotics.text = Other antibiotics anc_profile.step6.medications.options.aspirin.text = Aspirin anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hidroksida anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine anc_profile.step8.partner_hiv_status.label = Partner HIV status anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended @@ -87,7 +87,7 @@ anc_profile.step4.health_conditions.options.hiv.text = HIV anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products anc_profile.step3.substances_used.options.other.text = Other (specify) -anc_profile.step6.medications.options.calcium.text = Calcium +anc_profile.step6.medications.options.calcium.text = Kalsium anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. anc_profile.step6.title = Medications anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication @@ -150,7 +150,7 @@ anc_profile.step2.lmp_known.options.yes.text = Yes anc_profile.step2.lmp_known.label_info_title = LMP known? anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text = Chamomile +anc_profile.step4.allergies.options.chamomile.text = Kamomil anc_profile.step2.lmp_known.label = LMP known? anc_profile.step3.live_births.v_required.err = Live births is required anc_profile.step7.condom_use.options.no.text = No diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 55c5495ca..202c2bb01 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-3-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-5-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 2123c15506d72f176c5048b4994ec706641905a3 Mon Sep 17 00:00:00 2001 From: vend Date: Fri, 25 Feb 2022 10:58:47 +0500 Subject: [PATCH 151/302] version upgrade --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index e7a42953f..450458522 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 13 +ext.versionPatch = 14 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 051357564c6a1bc2fffd2e70e9491468d4029543 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 25 Feb 2022 13:33:41 +0300 Subject: [PATCH 152/302] Resource Bundle error --- opensrp-anc/build.gradle | 2 +- .../presenter/ProfileFragmentPresenter.java | 43 ++++++++++++++++--- .../repository/PreviousContactRepository.java | 4 +- .../anc/library/util/ANCFormUtils.java | 4 +- reference-app/build.gradle | 2 +- 5 files changed, 42 insertions(+), 13 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 4360470d3..e6020e17f 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -152,7 +152,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-5-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index b34e67d80..c01483204 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -1,11 +1,13 @@ package org.smartregister.anc.library.presenter; +import android.annotation.SuppressLint; import android.text.TextUtils; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.jeasy.rules.api.Facts; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; @@ -15,8 +17,13 @@ import org.smartregister.anc.library.util.ConstantsUtils; import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; +import java.util.List; +import java.util.Locale; import java.util.Map; +import java.util.ResourceBundle; import timber.log.Timber; @@ -55,6 +62,7 @@ public ProfileFragmentContract.View getProfileView() { } } + @SuppressLint("NewApi") @Override public Facts getImmediatePreviousContact(Map clientDetails, String baseEntityId, String contactNo) { Facts facts = new Facts(); @@ -73,18 +81,39 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); - String attentionFlagValue = jsonObject.getString(key); - if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{') { - JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); - if (attentionFlagObject.has(JsonFormConstants.TEXT) && attentionFlagObject.has(JsonFormConstants.KEY)) { + String attentionFlagValue = jsonObject.optString(key); + if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{' && attentionFlagValue.charAt(0) == '[') { + if (attentionFlagValue.charAt(0) == '[') { + if (org.smartregister.anc.library.util.Utils.checkJsonArrayString(attentionFlags)) { + JSONArray object = new JSONArray(attentionFlagValue); + List list = new ArrayList<>(); + for (int i = 0; i < jsonObject.length(); i++) { + list.add(object.optJSONObject(i).optString(JsonFormConstants.TEXT)); + } + facts.put(key, list); + } else { + facts.put(key, attentionFlagValue); + } + + } else { + JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); String translated_text, text; text = attentionFlagObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; facts.put(key, translated_text); - } else { - facts.put(key, jsonObject.get(key)); } + } else if (key.endsWith(ConstantsUtils.KeyUtils.VALUE) && attentionFlagValue.contains(",") && attentionFlagValue.contains(JsonFormConstants.TEXT)) { + List attentionFlagValueArray = Arrays.asList(attentionFlagValue.split(",")); + List translatedList = new ArrayList<>(); + for (int i = 0; i < attentionFlagValueArray.size(); i++) { + String textToTranslate = attentionFlagValueArray.get(i), translatedText; + ResourceBundle resourceBundle = ResourceBundle.getBundle(textToTranslate.split("\\.")[0], Locale.getDefault()); + Timber.i("Resource Bundle %s", resourceBundle.getBaseBundleName()); + translatedText = NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()); + translatedList.add(translatedText); + } + facts.put(key, String.join(",", translatedList)); } else { facts.put(key, jsonObject.get(key)); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 515b156ca..508daf74d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -230,7 +230,7 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { JSONObject valueObject = new JSONObject(jsonValue); String text, translated_text; text = valueObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); @@ -337,7 +337,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (previousContactObject.has(JsonFormConstants.KEY) && previousContactObject.has(JsonFormConstants.TEXT)) { String translated_text, text; text = previousContactObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index d449b46e3..e55901407 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -180,7 +180,7 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.SPINNER.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.MULTI_SELECT_LIST.equals(jsonObject.optString(JsonFormConstants.TYPE)))) { String translated_text, text; text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; valueList.add(translated_text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); @@ -544,7 +544,7 @@ static String cleanValue(String value) { JSONObject jsonObject = jsonArray.optJSONObject(i); if (jsonObject != null && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { String text = jsonObject.optString(JsonFormConstants.TEXT), translatedText = ""; - translatedText = NativeFormLangUtils.getTranslatedANCString(text, AncLibrary.getInstance().getApplicationContext()); + translatedText = NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()); list.add(translatedText); } } diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 202c2bb01..d4eb0e5c5 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.15-dev-5-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 5d66c90b327139cd18a32dc73b50872ab91fb6d4 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 25 Feb 2022 21:47:08 +0300 Subject: [PATCH 153/302] Creating a uniform translate function in utils based on object --- .../PreviousContactsDetailsActivity.java | 8 ++- .../presenter/ProfileFragmentPresenter.java | 50 ++-------------- .../repository/PreviousContactRepository.java | 8 +-- .../anc/library/task/AttentionFlagsTask.java | 24 +++++--- .../anc/library/util/ANCFormUtils.java | 10 ++-- .../smartregister/anc/library/util/Utils.java | 60 +++++++++++++++++++ 6 files changed, 98 insertions(+), 62 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 5a1007f25..89d67a1d3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -155,7 +155,13 @@ public void loadPreviousContactsDetails(Map> allContactFacts while (keys.hasNext()) { String key = keys.next(); - factsToUpdate.put(key, jsonObject.get(key)); + String valueObject = jsonObject.optString(key), value; + value = Utils.returnTranslatedStringJoinedValue(valueObject, key); + if (value.length() > 1) { + factsToUpdate.put(key, value); + } else { + factsToUpdate.put(key, ""); + } } } catch (JSONException e) { Log.e(TAG, Log.getStackTraceString(e)); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index c01483204..6172692b6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -3,11 +3,7 @@ import android.annotation.SuppressLint; import android.text.TextUtils; -import com.vijay.jsonwizard.constants.JsonFormConstants; -import com.vijay.jsonwizard.utils.NativeFormLangUtils; - import org.jeasy.rules.api.Facts; -import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; @@ -15,15 +11,11 @@ import org.smartregister.anc.library.interactor.ProfileFragmentInteractor; import org.smartregister.anc.library.model.Task; import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.Utils; import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; -import java.util.List; -import java.util.Locale; import java.util.Map; -import java.util.ResourceBundle; import timber.log.Timber; @@ -81,43 +73,13 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); - String attentionFlagValue = jsonObject.optString(key); - if (attentionFlagValue.length() != 0 && attentionFlagValue.charAt(0) == '{' && attentionFlagValue.charAt(0) == '[') { - if (attentionFlagValue.charAt(0) == '[') { - if (org.smartregister.anc.library.util.Utils.checkJsonArrayString(attentionFlags)) { - JSONArray object = new JSONArray(attentionFlagValue); - List list = new ArrayList<>(); - for (int i = 0; i < jsonObject.length(); i++) { - list.add(object.optJSONObject(i).optString(JsonFormConstants.TEXT)); - } - facts.put(key, list); - } else { - facts.put(key, attentionFlagValue); - } - - } else { - JSONObject attentionFlagObject = new JSONObject(attentionFlagValue); - String translated_text, text; - text = attentionFlagObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - facts.put(key, translated_text); - } - - } else if (key.endsWith(ConstantsUtils.KeyUtils.VALUE) && attentionFlagValue.contains(",") && attentionFlagValue.contains(JsonFormConstants.TEXT)) { - List attentionFlagValueArray = Arrays.asList(attentionFlagValue.split(",")); - List translatedList = new ArrayList<>(); - for (int i = 0; i < attentionFlagValueArray.size(); i++) { - String textToTranslate = attentionFlagValueArray.get(i), translatedText; - ResourceBundle resourceBundle = ResourceBundle.getBundle(textToTranslate.split("\\.")[0], Locale.getDefault()); - Timber.i("Resource Bundle %s", resourceBundle.getBaseBundleName()); - translatedText = NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()); - translatedList.add(translatedText); - } - facts.put(key, String.join(",", translatedList)); + String valueObject = jsonObject.optString(key), value; + value = Utils.returnTranslatedStringJoinedValue(valueObject, key); + if (value.length() > 1) { + facts.put(key, value); } else { - facts.put(key, jsonObject.get(key)); + facts.put(key, ""); } - } } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 508daf74d..06afec174 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -229,8 +229,8 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { if (StringUtils.isNotBlank(jsonValue) && jsonValue.trim().charAt(0) == '{') { JSONObject valueObject = new JSONObject(jsonValue); String text, translated_text; - text = valueObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + text = valueObject.optString(JsonFormConstants.TEXT).trim(); + translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactsTestsFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), jsonValue); @@ -336,8 +336,8 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has(JsonFormConstants.KEY) && previousContactObject.has(JsonFormConstants.TEXT)) { String translated_text, text; - text = previousContactObject.optString(JsonFormConstants.TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + text = previousContactObject.optString(JsonFormConstants.TEXT).trim(); + translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); } else { previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index 79a92a220..a8baffc97 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -1,5 +1,6 @@ package org.smartregister.anc.library.task; +import android.annotation.SuppressLint; import android.os.AsyncTask; import org.jeasy.rules.api.Facts; @@ -17,13 +18,14 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Objects; import timber.log.Timber; public class AttentionFlagsTask extends AsyncTask { - private BaseHomeRegisterActivity baseHomeRegisterActivity; - private List attentionFlagList = new ArrayList<>(); - private CommonPersonObjectClient pc; + private final BaseHomeRegisterActivity baseHomeRegisterActivity; + private final List attentionFlagList = new ArrayList<>(); + private final CommonPersonObjectClient pc; public AttentionFlagsTask(BaseHomeRegisterActivity baseHomeRegisterActivity, CommonPersonObjectClient pc) { this.baseHomeRegisterActivity = baseHomeRegisterActivity; @@ -31,20 +33,25 @@ public AttentionFlagsTask(BaseHomeRegisterActivity baseHomeRegisterActivity, Com } @Override + @SuppressLint("NewApi") protected Void doInBackground(Void... voids) { try { - JSONObject jsonObject = new JSONObject(AncLibrary.getInstance().getDetailsRepository().getAllDetailsForClient(pc.getCaseId()).get(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS)); - + JSONObject jsonObject = new JSONObject(Objects.requireNonNull(AncLibrary.getInstance().getDetailsRepository().getAllDetailsForClient(pc.getCaseId()).get(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS))); Facts facts = new Facts(); Iterator keys = jsonObject.keys(); - while (keys.hasNext()) { String key = keys.next(); - facts.put(key, jsonObject.get(key)); + String ValueObject = jsonObject.optString(key); + String value = Utils.returnTranslatedStringJoinedValue(ValueObject, key); + if (value.length() > 1) { + facts.put(key, value); + } else { + facts.put(key, ""); + } + } Iterable ruleObjects = AncLibrary.getInstance().readYaml(FilePathUtils.FileUtils.ATTENTION_FLAGS); - for (Object ruleObject : ruleObjects) { YamlConfig attentionFlagConfig = (YamlConfig) ruleObject; if (attentionFlagConfig != null && attentionFlagConfig.getFields() != null) { @@ -63,6 +70,7 @@ protected Void doInBackground(Void... voids) { return null; } + @Override protected void onPostExecute(Void result) { baseHomeRegisterActivity.showAttentionFlagsDialog(attentionFlagList); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index e55901407..589464a96 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -180,7 +180,7 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.SPINNER.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.MULTI_SELECT_LIST.equals(jsonObject.optString(JsonFormConstants.TYPE)))) { String translated_text, text; text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); - translated_text = !text.isEmpty() ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; valueList.add(translated_text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); @@ -516,7 +516,7 @@ public static String keyToValueConverter(String keys) { if (keys != null) { String cleanKey = ""; String value = cleanValue(keys); - if (!value.contains("text") || !value.contains(".") && !value.isEmpty()) { + if (!value.contains("text") || !value.contains(".") && StringUtils.isNotBlank(value)) { cleanKey = WordUtils.capitalizeFully(value, ','); } else { cleanKey = value; @@ -542,9 +542,9 @@ static String cleanValue(String value) { List list = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.optJSONObject(i); - if (jsonObject != null && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { - String text = jsonObject.optString(JsonFormConstants.TEXT), translatedText = ""; - translatedText = NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()); + if (StringUtils.isNotBlank(jsonObject.toString()) && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { + String text = jsonObject.optString(JsonFormConstants.TEXT).trim(), translatedText = ""; + translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; list.add(translatedText); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index f1af507cc..16a5eed9d 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -1,5 +1,6 @@ package org.smartregister.anc.library.util; +import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -27,6 +28,7 @@ import com.itextpdf.layout.property.TextAlignment; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import net.sqlcipher.database.SQLiteDatabase; @@ -843,6 +845,64 @@ public static boolean checkJsonArrayString(String input) { } + /** + * @param receives iterated keys and values and passes them through transaltion in nativeform + * to return a string. It checks whether the value is an array, a json object or a normal string separated by , + * @param key + * @return + */ + @SuppressLint({"NewApi"}) + public static String returnTranslatedStringJoinedValue(String value, String key) { + try { + if (value.startsWith("[")) { + if (Utils.checkJsonArrayString(value)) { + JSONArray jsonArray = new JSONArray(value); + List translatedList = new ArrayList<>(); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject object = jsonArray.optJSONObject(i); + String text, translatedText; + text = object.optString(JsonFormConstants.TEXT).trim(); + translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + translatedList.add(translatedText); + } + return String.join(",", translatedList); + } else { + List valueList = Arrays.asList(value.trim().split(",")); + List translatedList = new ArrayList<>(); + for (int i = 0; i < valueList.size(); i++) { + String textToTranslate = valueList.get(i).trim(), translatedText; + translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; + translatedList.add(translatedText); + } + return String.join(",", translatedList); + } + } + if (value.startsWith("{")) { + JSONObject attentionFlagObject = new JSONObject(value); + String translated_text, text; + text = attentionFlagObject.optString(JsonFormConstants.TEXT).trim(); + translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + return translated_text; + } + if (key.endsWith(ConstantsUtils.KeyUtils.VALUE) && value.contains(",") && value.contains(JsonFormConstants.TEXT)) { + List attentionFlagValueArray = Arrays.asList(value.trim().split(",")); + List translatedList = new ArrayList<>(); + for (int i = 0; i < attentionFlagValueArray.size(); i++) { + String textToTranslate = attentionFlagValueArray.get(i).trim(), translatedText; + translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; + translatedList.add(translatedText); + } + return String.join(",", translatedList); + } + return value; + } catch (Exception e) { + e.printStackTrace(); + Timber.e("Failed to translate String %s", e.toString()); + return ""; + } + + } + /** * Loads yaml files that contain rules for the profile displays From 74e9efae7114c65b20f7388a1a7a0f79d0965f41 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 1 Mar 2022 10:56:10 +0300 Subject: [PATCH 154/302] Misisng overview values --- .../main/assets/json.form/anc_profile.json | 6 + .../json.form/anc_symptoms_follow_up.json | 9 + .../PreviousContactsDetailsActivity.java | 3 +- .../presenter/ProfileFragmentPresenter.java | 1 - .../anc/library/util/ANCFormUtils.java | 33 ++- .../smartregister/anc/library/util/Utils.java | 27 ++- .../main/resources/anc_profile_ind.properties | 20 +- .../anc_symptoms_follow_up_ind.properties | 221 ++++++++++++++++++ 8 files changed, 284 insertions(+), 36 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_symptoms_follow_up_ind.properties diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 002508def..2b09973c0 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -3140,6 +3140,7 @@ { "key": "none", "text": "{{anc_profile.step7.alcohol_substance_use.options.none.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.none.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3147,6 +3148,7 @@ { "key": "alcohol", "text": "{{anc_profile.step7.alcohol_substance_use.options.alcohol.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.alcohol.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3154,6 +3156,7 @@ { "key": "marijuana", "text": "{{anc_profile.step7.alcohol_substance_use.options.marijuana.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.marijuana.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3161,6 +3164,7 @@ { "key": "cocaine", "text": "{{anc_profile.step7.alcohol_substance_use.options.cocaine.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.cocaine.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3168,6 +3172,7 @@ { "key": "injectable_drugs", "text": "{{anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3175,6 +3180,7 @@ { "key": "other", "text": "{{anc_profile.step7.alcohol_substance_use.options.other.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.other.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json index 70a8656a1..bf9becc72 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json +++ b/opensrp-anc/src/main/assets/json.form/anc_symptoms_follow_up.json @@ -1375,6 +1375,7 @@ { "key": "none", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.none.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.none.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1383,6 +1384,7 @@ { "key": "nausea_vomiting", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "133473AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1391,6 +1393,7 @@ { "key": "heartburn", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1399,6 +1402,7 @@ { "key": "leg_cramps", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1407,6 +1411,7 @@ { "key": "constipation", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "996AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1415,6 +1420,7 @@ { "key": "low_back_pain", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1423,6 +1429,7 @@ { "key": "pelvic_pain", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1431,6 +1438,7 @@ { "key": "varicose_veins", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "156666AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", @@ -1439,6 +1447,7 @@ { "key": "oedema", "text": "{{anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text}}", + "translation_text": "anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text", "value": false, "openmrs_entity": "concept", "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 89d67a1d3..7733d2815 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -149,8 +149,7 @@ public void loadPreviousContactsDetails(Map> allContactFacts if (factsToUpdate.asMap().get(ConstantsUtils.ATTENTION_FLAG_FACTS) != null) { try { - JSONObject jsonObject = new JSONObject( - (String) factsToUpdate.asMap().get(ConstantsUtils.ATTENTION_FLAG_FACTS)); + JSONObject jsonObject = new JSONObject((String) factsToUpdate.asMap().get(ConstantsUtils.ATTENTION_FLAG_FACTS)); Iterator keys = jsonObject.keys(); while (keys.hasNext()) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 6172692b6..7258715a6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -60,7 +60,6 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri Facts facts = new Facts(); try { facts = AncLibrary.getInstance().getPreviousContactRepository().getPreviousContactFacts(baseEntityId, contactNo, true); - Map factsAsMap = facts.asMap(); String attentionFlags = ""; if (factsAsMap.containsKey(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS)) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 589464a96..398df7537 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -176,12 +176,11 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List jsonObject.getJSONArray(JsonFormConstants.SECONDARY_VALUE).length() > 0) { getRealSecondaryValue(jsonObject); } else { - if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value) && (JsonFormConstants.CHECK_BOX.equals(jsonObject.optString(JsonFormConstants.TYPE)) || - JsonFormConstants.NATIVE_RADIO_BUTTON.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.SPINNER.equals(jsonObject.optString(JsonFormConstants.TYPE)) || JsonFormConstants.MULTI_SELECT_LIST.equals(jsonObject.optString(JsonFormConstants.TYPE)))) { + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { String translated_text, text; text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - valueList.add(translated_text); + valueList.add(text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); } @@ -509,7 +508,20 @@ public static String getSecondaryKey(JSONObject jsonObject) throws JSONException * @return comma separated string of list values */ public static String getListValuesAsString(List list) { - return list != null ? list.toString().substring(1, list.toString().length() - 1) : ""; + List returnList = new ArrayList<>(); + if (list.size() != 0) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).contains(JsonFormConstants.TEXT) || list.get(i).contains("_")) { + if (StringUtils.isNotBlank(list.get(i))) { + returnList.add(NativeFormLangUtils.translateDatabaseString(list.get(i), AncLibrary.getInstance().getApplicationContext())); + } + } else { + returnList.add(list.get(i)); + } + } + + } + return String.join(",", returnList); } public static String keyToValueConverter(String keys) { @@ -535,6 +547,7 @@ public static String keyToValueConverter(String keys) { @SuppressLint("NewApi") static String cleanValue(String value) { + String returnValue = ""; try { if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { if (Utils.checkJsonArrayString(value)) { @@ -542,18 +555,20 @@ static String cleanValue(String value) { List list = new ArrayList<>(); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.optJSONObject(i); - if (StringUtils.isNotBlank(jsonObject.toString()) && !jsonObject.optString(JsonFormConstants.TEXT).isEmpty()) { + if (StringUtils.isNotBlank(jsonObject.toString()) && StringUtils.isNotBlank(jsonObject.optString(JsonFormConstants.TEXT))) { String text = jsonObject.optString(JsonFormConstants.TEXT).trim(), translatedText = ""; translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; list.add(translatedText); } } - return list.size() > 1 ? String.join(",", list) : ""; + returnValue = list.size() > 1 ? String.join(",", list) : list.get(0); } else { - return value.substring(1, value.length() - 1); + returnValue = value.substring(1, value.length() - 1); } - } else - return value; + } else { + returnValue = value; + } + return returnValue; } catch (Exception e) { Timber.e(e, "Clean Value in ANCFormUtils"); return ""; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 16a5eed9d..2b65d05af 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -346,9 +346,14 @@ private static String processValue(String key, Facts facts) { if (facts.get(key) instanceof String) { value = facts.get(key); if ((key.equals(ConstantsUtils.PrescriptionUtils.NAUSEA_PHARMA) || key.equals(ConstantsUtils.PrescriptionUtils.ANTACID) || key.equals(ConstantsUtils.PrescriptionUtils.PENICILLIN) || key.equals(ConstantsUtils.PrescriptionUtils.ANTIBIOTIC) || key.equals(ConstantsUtils.PrescriptionUtils.IFA_MEDICATION) || key.equals(ConstantsUtils.PrescriptionUtils.VITA) - || key.equals(ConstantsUtils.PrescriptionUtils.MAG_CALC) || key.equals(ConstantsUtils.PrescriptionUtils.ALBEN_MEBEN) || key.equals(ConstantsUtils.PrescriptionUtils.PREP) || key.equals(ConstantsUtils.PrescriptionUtils.SP) || key.equals(ConstantsUtils.PrescriptionUtils.IFA) || key.equals(ConstantsUtils.PrescriptionUtils.ASPIRIN) || key.equals(ConstantsUtils.PrescriptionUtils.CALCIUM)) && (value != null && value.equals("0"))) + || key.equals(ConstantsUtils.PrescriptionUtils.MAG_CALC) || key.equals(ConstantsUtils.PrescriptionUtils.ALBEN_MEBEN) || key.equals(ConstantsUtils.PrescriptionUtils.PREP) || key.equals(ConstantsUtils.PrescriptionUtils.SP) || key.equals(ConstantsUtils.PrescriptionUtils.IFA) || key.equals(ConstantsUtils.PrescriptionUtils.ASPIRIN) || key.equals(ConstantsUtils.PrescriptionUtils.CALCIUM)) && (value != null && value.equals("0"))) { + Context context = AncLibrary.getInstance().getApplicationContext(); + String translationIsOn = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(translationIsOn)) { + return ANCFormUtils.keyToValueConverter(value); + } return ANCFormUtils.keyToValueConverter(""); - + } if (value != null && value.endsWith(OTHER_SUFFIX)) { Object otherValue = value.endsWith(OTHER_SUFFIX) ? facts.get(key + ConstantsUtils.SuffixUtils.OTHER) : ""; value = otherValue != null ? @@ -846,7 +851,7 @@ public static boolean checkJsonArrayString(String input) { } /** - * @param receives iterated keys and values and passes them through transaltion in nativeform + * @param receives iterated keys and values and passes them through translation in nativeform * to return a string. It checks whether the value is an array, a json object or a normal string separated by , * @param key * @return @@ -865,16 +870,9 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return String.join(",", translatedList); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); } else { - List valueList = Arrays.asList(value.trim().split(",")); - List translatedList = new ArrayList<>(); - for (int i = 0; i < valueList.size(); i++) { - String textToTranslate = valueList.get(i).trim(), translatedText; - translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; - translatedList.add(translatedText); - } - return String.join(",", translatedList); + return value; } } if (value.startsWith("{")) { @@ -892,9 +890,10 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return String.join(",", translatedList); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); } return value; + } catch (Exception e) { e.printStackTrace(); Timber.e("Failed to translate String %s", e.toString()); @@ -911,7 +910,7 @@ public static String returnTranslatedStringJoinedValue(String value, String key) * @return * @throws IOException */ - public Iterable loadRulesFiles(String filename) throws IOException { + public Iterable loadRulesFiles(String filename) { return AncLibrary.getInstance().readYaml(filename); } diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties index 0196e6453..0ac56a8db 100644 --- a/opensrp-anc/src/main/resources/anc_profile_ind.properties +++ b/opensrp-anc/src/main/resources/anc_profile_ind.properties @@ -12,8 +12,8 @@ anc_profile.step6.medications.options.antibiotics.text = Other antibiotics anc_profile.step6.medications.options.aspirin.text = Aspirin anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hidroksida -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine +anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide +anc_profile.step7.alcohol_substance_use.options.cocaine.text = Kokain anc_profile.step8.partner_hiv_status.label = Partner HIV status anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age @@ -59,7 +59,7 @@ anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Perineal tear (3rd or 4th degree) anc_profile.step4.allergies.options.folic_acid.text = Folic acid anc_profile.step6.medications.options.other.text = Other (specify) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Obat suntik anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). @@ -139,8 +139,8 @@ anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia r anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) anc_profile.step5.tt_immun_status.label = TTCV immunisation status anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TTCV immunisation recommended -anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana -anc_profile.step4.allergies.options.calcium.text = Calcium +anc_profile.step7.alcohol_substance_use.options.marijuana.text = Ganja +anc_profile.step4.allergies.options.calcium.text = Kalsium anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status @@ -150,7 +150,7 @@ anc_profile.step2.lmp_known.options.yes.text = Yes anc_profile.step2.lmp_known.label_info_title = LMP known? anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text = Kamomil +anc_profile.step4.allergies.options.chamomile.text = Chamomile anc_profile.step2.lmp_known.label = LMP known? anc_profile.step3.live_births.v_required.err = Live births is required anc_profile.step7.condom_use.options.no.text = No @@ -160,7 +160,7 @@ anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation anc_profile.step1.marital_status.label = Marital status anc_profile.step7.title = Woman's Behaviour anc_profile.step4.surgeries_other.hint = Other surgeries -anc_profile.step3.substances_used.options.cocaine.text = Cocaine +anc_profile.step3.substances_used.options.cocaine.text = Kokain anc_profile.step1.educ_level.options.primary.text = Primary anc_profile.step4.health_conditions.options.other.text = Other (specify) anc_profile.step6.medications_other.v_required.err = Please specify the Other medications @@ -208,13 +208,13 @@ anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know anc_profile.step6.medications.options.hematinic.text = Hematinic anc_profile.step3.c_sections_label.text = No. of C-sections anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions -anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol +anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alkohol anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required -anc_profile.step4.allergies.options.albendazole.text = Albendazole +anc_profile.step4.allergies.options.albendazole.text = Dawa Albendazol Bahasa anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended anc_profile.step1.educ_level.label = Highest level of school anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling -anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes +anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Ya anc_profile.step4.allergies.options.penicillin.text = Penicillin anc_profile.step1.occupation.options.unemployed.text = Unemployed anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_ind.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_ind.properties new file mode 100644 index 000000000..18cd72220 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_ind.properties @@ -0,0 +1,221 @@ +anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text=Contractions +anc_symptoms_follow_up.step4.other_symptoms_other.hint=Specify +anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text=Busung +anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err=Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step3.toaster12.toaster_info_text=Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.toaster9.toaster_info_text=Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step2.toaster0.text=Caffeine reduction counseling +anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err=Please specify any other symptoms related varicose vein/oedema or select none +anc_symptoms_follow_up.step2.title=Previous Behaviour +anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text=Nyeri punggung bawah +anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text=Anti-convulsive +anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text=None +anc_symptoms_follow_up.step4.toaster18.text=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.other_sym_vvo.label=Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step3.toaster5.text=Pharmacological treatments for nausea and vomiting counseling +anc_symptoms_follow_up.step3.toaster11.toaster_info_text=Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step1.medications.options.antitussive.text=Antitussive +anc_symptoms_follow_up.step1.medications.options.dont_know.text=Don't know +anc_symptoms_follow_up.step3.toaster8.toaster_info_text=Wheat bran or other fiber supplements can be used to relieve constipation, if dietary modifications are not enough, and if they are available and appropriate. +anc_symptoms_follow_up.step2.toaster3.toaster_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text=None +anc_symptoms_follow_up.step1.calcium_effects.options.no.text=No +anc_symptoms_follow_up.step3.toaster13.text=Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text=Hemorrhoidal medication +anc_symptoms_follow_up.step1.ifa_effects.options.yes.text=Yes +anc_symptoms_follow_up.step2.toaster1.text=Tobacco cessation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text=Abnormal vaginal discharge (physiological) (foul smelling) (curd like) +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text=Leg cramps +anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text=Headache +anc_symptoms_follow_up.step4.toaster21.toaster_info_text=Non-pharmacological options, such as compression stockings, leg elevation and water immersion, can be used for the management of varicose veins and oedema in pregnancy, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text=None +anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text=Anti-diabetic +anc_symptoms_follow_up.step4.toaster19.text=Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step1.medications.options.antibiotics.text=Other antibiotics +anc_symptoms_follow_up.step4.title=Physiological Symptoms +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text=Oedema +anc_symptoms_follow_up.step4.other_symptoms.options.other.text=Other (specify) +anc_symptoms_follow_up.step2.toaster4.toaster_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_symptoms_follow_up.step1.medications.options.calcium.text=Calcium +anc_symptoms_follow_up.step1.medications_other.hint=Specify +anc_symptoms_follow_up.step3.toaster7.toaster_info_text=If leg cramps are not relieved with non-pharma measures, then give 300–360 mg magnesium per day in two or three divided doses; give calcium 1 g twice daily for two weeks. +anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text=Fever +anc_symptoms_follow_up.step2.behaviour_persist.label=Which of the following behaviours persist? +anc_symptoms_follow_up.step4.toaster16.text=Non-pharmacological treatment for the relief of leg cramps counseling +anc_symptoms_follow_up.step4.toaster21.text=Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step1.penicillin_comply.options.no.text=No +anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text=Substance use +anc_symptoms_follow_up.step4.other_symptoms.options.fever.text=Fever +anc_symptoms_follow_up.step4.phys_symptoms.label=Any physiological symptoms? +anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text=Current tobacco use or recently quit +anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step1.medications.options.iron.text=Iron +anc_symptoms_follow_up.step1.medications.options.vitamina.text=Vitamin A +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text=No fetal movement +anc_symptoms_follow_up.step1.ifa_comply.options.yes.text=Yes +anc_symptoms_follow_up.step4.toaster15.text=Diet and lifestyle changes to prevent and relieve heartburn counseling +anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text=Cotrimoxazole +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text=Pelvic pain +anc_symptoms_follow_up.step1.medications.options.multivitamin.text=Multivitamin +anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text=High caffeine intake +anc_symptoms_follow_up.step2.toaster3.text=Condom counseling +anc_symptoms_follow_up.step3.toaster11.text=Urine test required +anc_symptoms_follow_up.step1.vita_comply.label=Is she taking her Vitamin A supplements? +anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err=Please specify any other symptoms related low back and pelvic pain or select none +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text=Leg pain +anc_symptoms_follow_up.step1.medications.v_required.err=Please specify the medication(s) that the woman is still taking +anc_symptoms_follow_up.step1.medications.options.antacids.text=Antacids +anc_symptoms_follow_up.step1.medications.options.magnesium.text=Magnesium +anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text=Keram kaki +anc_symptoms_follow_up.step1.calcium_comply.options.yes.text=Yes +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text=Normal fetal movement +anc_symptoms_follow_up.step1.medications.options.antivirals.text=Antivirals +anc_symptoms_follow_up.step4.toaster22.text=Please investigate any possible complications, including thrombosis, related to varicose veins and oedema +anc_symptoms_follow_up.step1.ifa_comply.label=Is she taking her IFA tablets? +anc_symptoms_follow_up.step1.penicillin_comply.label=Is she taking her penicillin treatment for syphilis? +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text=None +anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text=Mual dan muntah +anc_symptoms_follow_up.step4.toaster14.toaster_info_text=Ginger, chamomile, vitamin B6 and/or acupuncture are recommended for the relief of nausea in early pregnancy, based on a woman’s preferences and available options. Women should be informed that symptoms of nausea and vomiting usually resolve in the second half of pregnancy. +anc_symptoms_follow_up.step3.phys_symptoms_persist.label=Which of the following physiological symptoms persist? +anc_symptoms_follow_up.step2.behaviour_persist.v_required.err=Previous persisting behaviour is required +anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text=Maag +anc_symptoms_follow_up.step1.medications.label=What medications (including supplements and vitamins) is she still taking? +anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text=None +anc_symptoms_follow_up.step3.toaster6.text=Antacid preparations to relieve heartburn counseling +anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text=Sakit panggul +anc_symptoms_follow_up.step4.mat_percept_fetal_move.label=Has the woman felt the baby move? +anc_symptoms_follow_up.step1.aspirin_comply.options.no.text=No +anc_symptoms_follow_up.step2.toaster1.toaster_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_symptoms_follow_up.step4.other_sym_vvo.label=Any other symptoms related to varicose veins or oedema? +anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text=Abnormal vaginal discharge (physiological) (foul smelling) (curd like) +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text=Heartburn +anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text=Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text=Gets tired easily +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text=Breathing difficulty +anc_symptoms_follow_up.step1.ifa_comply.options.no.text=No +anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err=Please specify any other symptoms related to low back pain or select none +anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text=Anti-hypertensive +anc_symptoms_follow_up.step1.medications.options.aspirin.text=Aspirin +anc_symptoms_follow_up.step1.calcium_comply.label=Is she taking her calcium supplements? +anc_symptoms_follow_up.step4.toaster16.toaster_info_text=Non-pharmacological therapies, including muscle stretching, relaxation, heat therapy, dorsiflexion of the foot, and massage can be used for the relief of leg cramps in pregnancy. +anc_symptoms_follow_up.step1.medications.options.anti_malarials.text=Anti-malarials +anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text=Pain during urination (dysuria) +anc_symptoms_follow_up.step1.medications.options.metoclopramide.text=Metoclopramide +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text=Nausea and vomiting +anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text=Cough lasting more than 3 weeks +anc_symptoms_follow_up.step4.other_symptoms.options.headache.text=Headache +anc_symptoms_follow_up.step3.title=Previous Symptoms +anc_symptoms_follow_up.step4.toaster15.toaster_info_text=Advice on diet and lifestyle is recommended to prevent and relieve heartburn in pregnancy. Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. +anc_symptoms_follow_up.step1.medications.options.folic_acid.text=Folic Acid +anc_symptoms_follow_up.step3.toaster9.text=Regular exercise, physiotherapy, support belts and acupuncture to relieve low back and pelvic pain counseling +anc_symptoms_follow_up.step3.toaster10.text=Please investigate any possible complications or onset of labour, related to low back and pelvic pain +anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text=Visual disturbance +anc_symptoms_follow_up.step4.other_symptoms.options.none.text=None +anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text=Breathless during routine activities +anc_symptoms_follow_up.step3.toaster5.toaster_info_text=Pharmacological treatments for nausea and vomiting, such as doxylamine and metoclopramide, should be reserved for those pregnant women experiencing distressing symptoms that are not relieved by non-pharmacological options, under the supervision of a medical doctor. +anc_symptoms_follow_up.step3.other_symptoms_persist.label=Which of the following other symptoms persist? +anc_symptoms_follow_up.step4.other_symptoms.v_required.err=Please specify any other symptoms or select none +anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text=Sembelit +anc_symptoms_follow_up.step1.ifa_effects.options.no.text=No +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text=Low back pain +anc_symptoms_follow_up.step4.toaster17.toaster_info_text=Dietary modifications to relieve constipation include promoting adequate intake of water and dietary fibre (found in vegetables, nuts, fruits and whole grains). +anc_symptoms_follow_up.step1.medications.options.none.text=None +anc_symptoms_follow_up.step2.toaster4.text=Alcohol / substance use counseling +anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text=Exposure to second-hand smoke in the home +anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text=Pain during urination (dysuria) +anc_symptoms_follow_up.step4.other_symptoms.options.cough.text=Cough lasting more than 3 weeks +anc_symptoms_follow_up.step1.medications.options.arvs.text=Antiretrovirals (ARVs) +anc_symptoms_follow_up.step1.medications.options.hematinic.text=Hematinic +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text=Leg pain +anc_symptoms_follow_up.step3.toaster6.toaster_info_text=Antacid preparations can be offered to women with troublesome symptoms that are not relieved by lifestyle modification. Magnesium carbonate and aluminium hydroxide preparations are probably unlikely to cause harm in recommended dosages. +anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text=Reduced or poor fetal movement +anc_symptoms_follow_up.step1.medications.options.analgesic.text=Analgesic +anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text=No condom use during sex +anc_symptoms_follow_up.step1.title=Medication Follow-up +anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err=Field has the woman felt the baby move is required +anc_symptoms_follow_up.step4.phys_symptoms.options.none.text=Tidak ada +anc_symptoms_follow_up.step1.medications.options.other.text=Other (specify) +anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text=Yes +anc_symptoms_follow_up.step1.toaster0.text=allergies : {allergies_values} +anc_symptoms_follow_up.step1.toaster0.toaster_info_text=Erythromycin 500 mg orally four times daily for 14 days\nor\nAzithromycin 2 g once orally.\nRemarks: Although erythromycin and azithromycin treat the pregnant women, they do not cross the placental barrier completely and as a result the fetus is not treated. It is therefore necessary to treat the newborn infant soon after delivery. +anc_symptoms_follow_up.step1.medications.options.doxylamine.text=Doxylamine +anc_symptoms_follow_up.step3.toaster7.text=Magnesium and calcium to relieve leg cramps counseling +anc_symptoms_follow_up.step1.calcium_effects.label=Any calcium supplement side effects? +anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text=Visual disturbance +anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text=None +anc_symptoms_follow_up.step4.toaster20.toaster_info_text=Woman has dysuria. Please investigate urinary tract infection and treat if positive. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text=Constipation +anc_symptoms_follow_up.step1.medications.options.anthelmintic.text=Anthelmintic +anc_symptoms_follow_up.step1.penicillin_comply.label_info_title=Syphilis Compliance +anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text=Alcohol use +anc_symptoms_follow_up.step4.other_sym_lbpp.label=Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step2.toaster2.toaster_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text=Breathing difficulty +anc_symptoms_follow_up.step4.other_symptoms.label=Any other symptoms? +anc_symptoms_follow_up.step1.medications.options.asthma.text=Asthma +anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text=Vaginal bleeding +anc_symptoms_follow_up.step4.phys_symptoms.v_required.err=Please specify any other physiological symptoms or select none +anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text=Contractions +anc_symptoms_follow_up.step1.vita_comply.options.no.text=No +anc_symptoms_follow_up.step1.calcium_comply.options.no.text=No +anc_symptoms_follow_up.step4.toaster18.toaster_info_text=Regular exercise throughout pregnancy is recommended to prevent low back and pelvic pain. There are a number of different treatment options that can be used, such as physiotherapy, support belts and acupuncture, based on a woman’s preferences and available options. +anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text=Varicose veins +anc_symptoms_follow_up.step4.toaster14.text=Non-pharma measures to relieve nausea and vomiting counseling +anc_symptoms_follow_up.step1.ifa_effects.label=Any IFA side effects? +anc_symptoms_follow_up.step4.toaster17.text=Dietary modifications to relieve constipation counseling +anc_symptoms_follow_up.step2.toaster0.toaster_info_title=Caffeine intake folder +anc_symptoms_follow_up.step1.medications_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step2.toaster0.toaster_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 mL serving. +anc_symptoms_follow_up.step3.toaster8.text=Wheat bran or other fiber supplements to relieve constipation counseling +anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text=Breathless during routine activities +anc_symptoms_follow_up.step4.toaster20.text=Urine test required +anc_symptoms_follow_up.step2.behaviour_persist.options.none.text=None +anc_symptoms_follow_up.step1.calcium_effects.options.yes.text=Yes +anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text=Yes +anc_symptoms_follow_up.step3.other_sym_lbpp.label=Any other symptoms related to low back and pelvic pain? +anc_symptoms_follow_up.step1.aspirin_comply.label=Is she taking her aspirin tablets? +anc_symptoms_follow_up.step1.medications.options.thyroid.text=Thyroid medication +anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err=Previous persisting physiological symptoms is required +anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text=Leg redness +anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text=Vaginal bleeding +anc_symptoms_follow_up.step1.vita_comply.options.yes.text=Yes +anc_symptoms_follow_up.step2.toaster2.text=Second-hand smoke counseling +anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text=Leg redness +anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text=Pembuluh mekar +anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text=Extreme pelvic pain, can't walk (symphysis pubis dysfunction) +anc_symptoms_follow_up.step1.penicillin_comply.label_info_text=A maximum of up to 3 weekly doses may be required. +anc_symptoms_follow_up.step3.toaster12.text=Non-pharmacological options for varicose veins and oedema counseling +anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text=Gets tired easily +anc_symptoms_follow_up.step1.medications.options.prep_hiv.text=Oral pre-exposure prophylaxis (PrEP) for HIV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label=Presenting signs and symptoms that trigger suspicion of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_text=What signs or symptoms does the client present with that are due to or trigger suspicion of intimate partner violence (IPV)? +anc_symptoms_follow_up.step4.ipv_signs_symptoms.label_info_title=Presenting signs and symptoms of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.none.text=No presenting signs or symptoms indicative of IPV +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.stress.text=Ongoing stress +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.anxiety.text=Ongoing anxiety +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.depression.text=Ongoing depression +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.emotional_health_issues.text=Unspecified ongoing emotional health issues +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.alcohol_misuse.text=Misuse of alcohol +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.drugs_misuse.text=Misuse of drugs +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.harmful_behaviour.text=Unspecified harmful behaviours +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_thoughts.text=Thoughts of self-harm or (attempted) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_plans.text=Plans of self-harm or (attempt) suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.suicide_acts.text=Acts of self-harm or attempted suicide +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_stis.text=Repeated sexually transmitted infections (STIs) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unwanted_pregnancies.text=Unwanted pregnancies +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.chronic_pain.text=Unexplained chronic pain +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.gastro_symptoms.text=Unexplained chronic gastrointestinal symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.genitourinary_symptoms.text=Unexplained genitourinary symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.adverse_repro_outcomes.text=Adverse reproductive outcomes +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.unexplained_repro_symptoms.text=Unexplained reproductive symptoms +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_vaginal_bleeding.text=Repeated vaginal bleeding +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_abdomen.text=Injury to abdomen +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.injury_other.text=Injury other (specify) +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.problems_cns.text=Problems with central nervous system +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.repeat_health_consultations.text=Repeated health consultations with no clear diagnosis +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.intrusive_partner.text=Woman's partner or husband is intrusive during consultations +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.misses_appointments.text=Woman often misses her own or her children's health-care appointments +anc_symptoms_follow_up.step4.ipv_signs_symptoms.options.children_emotional_problems.text=Children have emotional and behavioural problems +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.hint=Other injury - specify +anc_symptoms_follow_up.step4.ipv_signs_symptoms_injury_other.v_regex.err=Please enter valid content +anc_symptoms_follow_up.step4.toaster23.text=Woman is suspected of being subjected to IPV. Please conduct an IPV clinical enquiry during the physical exam part of the contact. \ No newline at end of file From 0a868b98128683ff2f0feb95c62952ba5a392ae8 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 1 Mar 2022 13:47:59 +0300 Subject: [PATCH 155/302] Pairing session --- .../java/org/smartregister/anc/library/util/ANCFormUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 398df7537..0f1bd2cec 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -513,7 +513,7 @@ public static String getListValuesAsString(List list) { for (int i = 0; i < list.size(); i++) { if (list.get(i).contains(JsonFormConstants.TEXT) || list.get(i).contains("_")) { if (StringUtils.isNotBlank(list.get(i))) { - returnList.add(NativeFormLangUtils.translateDatabaseString(list.get(i), AncLibrary.getInstance().getApplicationContext())); + returnList.add(list.get(i)); } } else { returnList.add(list.get(i)); From 39d71f0b376453bf1be7865256a1660bd85727f0 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 2 Mar 2022 12:18:08 +0300 Subject: [PATCH 156/302] Attention Flag not updating --- .../anc/library/activity/MainContactActivity.java | 1 - .../org/smartregister/anc/library/util/ANCFormUtils.java | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 6a007f8c1..71bb7b2f5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -389,7 +389,6 @@ private void updateFieldRequiredCount(JSONObject object, JSONObject fieldObject, private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { if (globalKeys.contains(fieldObject.getString(JsonFormConstants.KEY)) && fieldObject.has(JsonFormConstants.VALUE)) { - formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), fieldObject.getString(JsonFormConstants.VALUE));//Normal value processAbnormalValues(formGlobalValues, fieldObject); String secKey = ANCFormUtils.getSecondaryKey(fieldObject); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index 0f1bd2cec..ffef830cf 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -177,9 +177,7 @@ private static void processCheckBoxSpecialWidget(JSONObject widget, List getRealSecondaryValue(jsonObject); } else { if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(value)) { - String translated_text, text; - text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); - translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + String text = jsonObject.optString(JsonFormConstants.TRANSLATION_TEXT); valueList.add(text); } else { valueList.add(jsonObject.optString(JsonFormConstants.TEXT, "")); @@ -507,6 +505,7 @@ public static String getSecondaryKey(JSONObject jsonObject) throws JSONException /** * @return comma separated string of list values */ + @SuppressLint("NewApi") public static String getListValuesAsString(List list) { List returnList = new ArrayList<>(); if (list.size() != 0) { @@ -519,9 +518,11 @@ public static String getListValuesAsString(List list) { returnList.add(list.get(i)); } } + return String.join(",", returnList); } - return String.join(",", returnList); + return ""; + } public static String keyToValueConverter(String keys) { From feeac128710e6c269a9e1740c2b4e95fd5f0299c Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 2 Mar 2022 17:32:45 +0300 Subject: [PATCH 157/302] Updating Danger signs on form global Vavlues --- .../activity/ContactJsonFormActivity.java | 17 +++++++++++++++-- .../library/activity/MainContactActivity.java | 8 ++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index dd468b4fd..1e8abec6e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -3,7 +3,6 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; -import android.text.TextUtils; import androidx.fragment.app.Fragment; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -14,6 +13,7 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; +import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -27,7 +27,9 @@ import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; +import java.util.Arrays; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import timber.log.Timber; @@ -37,10 +39,10 @@ */ public class ContactJsonFormActivity extends FormConfigurationJsonFormActivity { + private final ANCFormUtils ancFormUtils = new ANCFormUtils(); protected AncRulesEngineFactory rulesEngineFactory = null; private ProgressDialog progressDialog; private String formName; - private final ANCFormUtils ancFormUtils = new ANCFormUtils(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -65,6 +67,17 @@ public void init(String json) { .fromJson(getmJSONObject().getJSONObject(JsonFormConstants.JSON_FORM_KEY.GLOBAL).toString(), new TypeToken>() { }.getType()); + String danger_signs_value = globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE); + if (danger_signs_value.contains(",") && danger_signs_value.contains(".")) { + List list = Arrays.asList(danger_signs_value.split(",")), finalList = new LinkedList<>(); + for (int i = 0; i < list.size(); i++) { + String text = list.get(i).trim(); + String translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + finalList.add(translated_text); + } + globalValues.put(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE, finalList.size() > 1 ? String.join(",", finalList) : finalList.size() == 1 ? finalList.get(0) : ""); + + } } else { globalValues = new HashMap<>(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 71bb7b2f5..504ba5a97 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -65,7 +65,7 @@ public class MainContactActivity extends BaseContactActivity implements ContactC private String womanAge = ""; private String formInvalidFields = null; - public static void processAbnormalValues(Map facts, JSONObject jsonObject) throws Exception { + public static void processKeysWithExtensionValues(Map facts, JSONObject jsonObject) throws Exception { String fieldKey = ANCFormUtils.getObjectKey(jsonObject); Object fieldValue = ANCFormUtils.getObjectValue(jsonObject); String fieldKeySecondary = fieldKey.contains(ConstantsUtils.SuffixUtils.OTHER) ? @@ -390,7 +390,7 @@ private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { if (globalKeys.contains(fieldObject.getString(JsonFormConstants.KEY)) && fieldObject.has(JsonFormConstants.VALUE)) { formGlobalValues.put(fieldObject.getString(JsonFormConstants.KEY), fieldObject.getString(JsonFormConstants.VALUE));//Normal value - processAbnormalValues(formGlobalValues, fieldObject); + processKeysWithExtensionValues(formGlobalValues, fieldObject); String secKey = ANCFormUtils.getSecondaryKey(fieldObject); if (fieldObject.has(secKey)) { formGlobalValues.put(secKey, fieldObject.getString(secKey));//Normal value secondary key @@ -402,7 +402,7 @@ private void updateFormGlobalValues(JSONObject fieldObject) throws Exception { JSONArray secondaryValues = fieldObject.getJSONArray(ConstantsUtils.KeyUtils.SECONDARY_VALUES); for (int j = 0; j < secondaryValues.length(); j++) { JSONObject jsonObject = secondaryValues.getJSONObject(j); - processAbnormalValues(formGlobalValues, jsonObject); + processKeysWithExtensionValues(formGlobalValues, jsonObject); } } checkRequiredForCheckBoxOther(fieldObject); @@ -429,7 +429,7 @@ private void checkRequiredForCheckBoxOther(JSONObject fieldObject) throws Except null) { formGlobalValues.put(ANCFormUtils.getSecondaryKey(fieldObject), fieldObject.getString(JsonFormConstants.VALUE)); - processAbnormalValues(formGlobalValues, fieldObject); + processKeysWithExtensionValues(formGlobalValues, fieldObject); } } From 169c7ffab5c79aa54c5fdd74329f1dbfd8819c0d Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Thu, 3 Mar 2022 10:09:41 +0300 Subject: [PATCH 158/302] Attention Flags not updating --- .../activity/ContactJsonFormActivity.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 1e8abec6e..9e7dfeccc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -67,16 +67,17 @@ public void init(String json) { .fromJson(getmJSONObject().getJSONObject(JsonFormConstants.JSON_FORM_KEY.GLOBAL).toString(), new TypeToken>() { }.getType()); - String danger_signs_value = globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE); - if (danger_signs_value.contains(",") && danger_signs_value.contains(".")) { - List list = Arrays.asList(danger_signs_value.split(",")), finalList = new LinkedList<>(); - for (int i = 0; i < list.size(); i++) { - String text = list.get(i).trim(); - String translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - finalList.add(translated_text); + if (globalValues.containsKey(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE) && StringUtils.isNotBlank(globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE))) { + String danger_signs_value = globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE); + if (danger_signs_value.contains(",") && danger_signs_value.contains(".")) { + List list = Arrays.asList(danger_signs_value.split(",")), finalList = new LinkedList<>(); + for (int i = 0; i < list.size(); i++) { + String text = list.get(i).trim(); + String translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; + finalList.add(translated_text); + } + globalValues.put(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE, finalList.size() > 1 ? String.join(",", finalList) : finalList.size() == 1 ? finalList.get(0) : ""); } - globalValues.put(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE, finalList.size() > 1 ? String.join(",", finalList) : finalList.size() == 1 ? finalList.get(0) : ""); - } } else { globalValues = new HashMap<>(); From b7846405a476922655667f29b6c22526b2bd3d0e Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 4 Mar 2022 08:43:04 +0300 Subject: [PATCH 159/302] attention flags updates 1 --- opensrp-anc/build.gradle | 2 +- .../main/assets/config/profile-overview.yml | 12 ++-- .../assets/json.form/anc_physical_exam.json | 2 + .../main/assets/json.form/anc_profile.json | 3 + .../PreviousContactsDetailsActivity.java | 2 +- .../presenter/ProfileFragmentPresenter.java | 2 +- .../anc/library/task/AttentionFlagsTask.java | 2 +- .../anc/library/util/ANCFormUtils.java | 63 ++++++++----------- .../smartregister/anc/library/util/Utils.java | 20 +++--- .../main/resources/anc_profile_ind.properties | 2 +- reference-app/build.gradle | 2 +- 11 files changed, 53 insertions(+), 59 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index e6020e17f..1f733ef0f 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -163,7 +163,7 @@ dependencies { exclude group: 'org.yaml', module: 'snakeyaml' exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.3.22-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.3.26-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 30734d891..9583dead7 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -243,7 +243,7 @@ fields: relevance: "severe_preeclampsia == 1" isRedFont: "true" - - template: "Rh factor negative: {date}: {date}" + - template: "Rh factor negative: {date}" relevance: "rh_factor == 'negative'" isRedFont: "true" @@ -331,9 +331,9 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" - relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" - #added - - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}" + - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" relevance: "flu_immun_status != ''" - isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" \ No newline at end of file + isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" + + - template: "{{profile_overview.immunisation_status.flu_dose}}: {flu_date_value}" + relevance: "flu_date == 'done_today' || flu_date == 'done_earlier'" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index eee158e90..0e5c8e5bf 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -476,6 +476,7 @@ { "key": "optibp", "text": "{{anc_physical_exam.step2.bp_measurement_method.options.optibp.text}}", + "translation_text": "anc_physical_exam.step2.bp_measurement_method.options.optibp.text", "value": false, "openmrs_entity": "", "openmrs_entity_id": "", @@ -484,6 +485,7 @@ { "key": "manually", "text": "{{anc_physical_exam.step2.bp_measurement_method.options.manually.text}}", + "translation_text": "anc_physical_exam.step2.bp_measurement_method.options.manually.text", "value": false, "openmrs_entity": "", "openmrs_entity_id": "", diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 2b09973c0..4cafb2cad 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -3297,6 +3297,7 @@ { "key": "dont_know", "text": "{{anc_profile.step8.partner_hiv_status.options.dont_know.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.dont_know.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3304,6 +3305,7 @@ { "key": "positive", "text": "{{anc_profile.step8.partner_hiv_status.options.positive.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.positive.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" @@ -3311,6 +3313,7 @@ { "key": "negative", "text": "{{anc_profile.step8.partner_hiv_status.options.negative.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.negative.text", "openmrs_entity_parent": "", "openmrs_entity": "concept", "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 7733d2815..01e3a96b3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -155,7 +155,7 @@ public void loadPreviousContactsDetails(Map> allContactFacts while (keys.hasNext()) { String key = keys.next(); String valueObject = jsonObject.optString(key), value; - value = Utils.returnTranslatedStringJoinedValue(valueObject, key); + value = Utils.returnTranslatedStringJoinedValue(valueObject); if (value.length() > 1) { factsToUpdate.put(key, value); } else { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 7258715a6..14c3487dc 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -73,7 +73,7 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri while (keys.hasNext()) { String key = keys.next(); String valueObject = jsonObject.optString(key), value; - value = Utils.returnTranslatedStringJoinedValue(valueObject, key); + value = Utils.returnTranslatedStringJoinedValue(valueObject); if (value.length() > 1) { facts.put(key, value); } else { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index a8baffc97..2f1803c1b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -42,7 +42,7 @@ protected Void doInBackground(Void... voids) { while (keys.hasNext()) { String key = keys.next(); String ValueObject = jsonObject.optString(key); - String value = Utils.returnTranslatedStringJoinedValue(ValueObject, key); + String value = Utils.returnTranslatedStringJoinedValue(ValueObject); if (value.length() > 1) { facts.put(key, value); } else { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java index ffef830cf..b61a684c7 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCFormUtils.java @@ -546,35 +546,8 @@ public static String keyToValueConverter(String keys) { } - @SuppressLint("NewApi") - static String cleanValue(String value) { - String returnValue = ""; - try { - if (value.trim().length() > 0 && value.trim().charAt(0) == '[') { - if (Utils.checkJsonArrayString(value)) { - JSONArray jsonArray = new JSONArray(value); - List list = new ArrayList<>(); - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.optJSONObject(i); - if (StringUtils.isNotBlank(jsonObject.toString()) && StringUtils.isNotBlank(jsonObject.optString(JsonFormConstants.TEXT))) { - String text = jsonObject.optString(JsonFormConstants.TEXT).trim(), translatedText = ""; - translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - list.add(translatedText); - } - } - returnValue = list.size() > 1 ? String.join(",", list) : list.get(0); - } else { - returnValue = value.substring(1, value.length() - 1); - } - } else { - returnValue = value; - } - return returnValue; - } catch (Exception e) { - Timber.e(e, "Clean Value in ANCFormUtils"); - return ""; - } - + public static String cleanValue(String value) { + return Utils.returnTranslatedStringJoinedValue(value); } @@ -584,7 +557,8 @@ static String cleanValue(String value) { * @param mainJsonObject Main json object with all fields * @throws JSONException Capture Json Form errors */ - public static void processCheckboxFilteredItems(JSONObject mainJsonObject) throws JSONException { + public static void processCheckboxFilteredItems(JSONObject mainJsonObject) throws + JSONException { if (!mainJsonObject.has(ConstantsUtils.FILTERED_ITEMS) || mainJsonObject.getJSONArray(ConstantsUtils.FILTERED_ITEMS).length() < 1) { return; @@ -617,21 +591,26 @@ public static String removeKeyPrefix(String widgetKey, String prefix) { return widgetKey.replace(prefix + "_", ""); } - private static void getOptionsMap(Map optionsMap, JSONArray checkboxOptions) throws JSONException { + private static void getOptionsMap(Map optionsMap, JSONArray + checkboxOptions) throws JSONException { for (int i = 0; i < checkboxOptions.length(); i++) { JSONObject item = checkboxOptions.getJSONObject(i); optionsMap.put(item.getString(JsonFormConstants.KEY), item); } } - private static void setUpNoneForSpecialTreatment(ArrayList newOptionsList, Map optionsMap, boolean none, String none2) { + private static void setUpNoneForSpecialTreatment + (ArrayList newOptionsList, Map optionsMap, + boolean none, String none2) { //Treat none option as special. if (none) { newOptionsList.add(optionsMap.get(none2)); } } - private static boolean checkForFilterSources(JSONObject mainJsonObject, JSONObject checkBoxField, ArrayList newOptionsList, Map optionsMap) throws JSONException { + private static boolean checkForFilterSources(JSONObject mainJsonObject, JSONObject + checkBoxField, ArrayList newOptionsList, Map optionsMap) throws + JSONException { if (checkBoxField.has(ConstantsUtils.FILTER_OPTIONS_SOURCE)) { return getFilteredItemsWithSource(mainJsonObject, checkBoxField, newOptionsList, optionsMap); } else { @@ -639,7 +618,9 @@ private static boolean checkForFilterSources(JSONObject mainJsonObject, JSONObje } } - private static boolean getFilteredItemsWithSource(JSONObject mainJsonObject, JSONObject checkBoxField, ArrayList newOptionsList, Map optionsMap) throws JSONException { + private static boolean getFilteredItemsWithSource(JSONObject mainJsonObject, JSONObject + checkBoxField, ArrayList newOptionsList, Map optionsMap) throws + JSONException { String filterOptionsSource = checkBoxField.getString(ConstantsUtils.FILTER_OPTIONS_SOURCE); if (!filterOptionsSource.startsWith("global_")) { return true; @@ -659,7 +640,10 @@ private static boolean getFilteredItemsWithSource(JSONObject mainJsonObject, JSO return false; } - private static boolean getFilteredItemsWithoutFilteredSource(JSONObject mainJsonObject, JSONObject checkBoxField, ArrayList newOptionsList, Map optionsMap) throws JSONException { + private static boolean getFilteredItemsWithoutFilteredSource(JSONObject + mainJsonObject, JSONObject + checkBoxField, ArrayList newOptionsList, Map optionsMap) throws + JSONException { if (checkBoxField.has(ConstantsUtils.FILTER_OPTIONS)) { JSONArray filterOptions = checkBoxField.getJSONArray(ConstantsUtils.FILTER_OPTIONS); if (filterOptions.length() > 0) { @@ -732,7 +716,8 @@ private static boolean compareItemAndValueGlobal(String itemValue, String global * @param valueItem {@link String} - expansion panel value object * @throws JSONException */ - public void saveExpansionPanelValues(String baseEntityId, String contactNo, JSONObject valueItem) throws JSONException { + public void saveExpansionPanelValues(String baseEntityId, String contactNo, JSONObject + valueItem) throws JSONException { String result = ""; if (valueItem.has(JsonFormConstants.TYPE) && valueItem.has(JsonFormConstants.VALUES)) { String type = valueItem.optString(JsonFormConstants.TYPE); @@ -759,7 +744,8 @@ public void saveExpansionPanelValues(String baseEntityId, String contactNo, JSON * @param fieldObject {@link JSONObject} * @throws JSONException */ - public void savePreviousContactItem(String baseEntityId, JSONObject fieldObject) throws JSONException { + public void savePreviousContactItem(String baseEntityId, JSONObject fieldObject) throws + JSONException { PreviousContact previousContact = new PreviousContact(); previousContact.setKey(fieldObject.getString(JsonFormConstants.KEY)); previousContact.setValue(fieldObject.getString(JsonFormConstants.VALUE)); @@ -813,7 +799,8 @@ public void updateFormFields(JSONObject form, JSONArray fields) { * @param taskValue {@link JSONObject} * @param form {@link JSONObject} */ - public void updateFormPropertiesFileName(JSONObject form, JSONObject taskValue, Context context) { + public void updateFormPropertiesFileName(JSONObject form, JSONObject taskValue, Context + context) { try { if (taskValue != null && taskValue.has(JsonFormConstants.CONTENT_FORM)) { String subFormName = taskValue.getString(JsonFormConstants.CONTENT_FORM); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 2b65d05af..1a3ea45c4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -348,7 +348,7 @@ private static String processValue(String key, Facts facts) { if ((key.equals(ConstantsUtils.PrescriptionUtils.NAUSEA_PHARMA) || key.equals(ConstantsUtils.PrescriptionUtils.ANTACID) || key.equals(ConstantsUtils.PrescriptionUtils.PENICILLIN) || key.equals(ConstantsUtils.PrescriptionUtils.ANTIBIOTIC) || key.equals(ConstantsUtils.PrescriptionUtils.IFA_MEDICATION) || key.equals(ConstantsUtils.PrescriptionUtils.VITA) || key.equals(ConstantsUtils.PrescriptionUtils.MAG_CALC) || key.equals(ConstantsUtils.PrescriptionUtils.ALBEN_MEBEN) || key.equals(ConstantsUtils.PrescriptionUtils.PREP) || key.equals(ConstantsUtils.PrescriptionUtils.SP) || key.equals(ConstantsUtils.PrescriptionUtils.IFA) || key.equals(ConstantsUtils.PrescriptionUtils.ASPIRIN) || key.equals(ConstantsUtils.PrescriptionUtils.CALCIUM)) && (value != null && value.equals("0"))) { Context context = AncLibrary.getInstance().getApplicationContext(); - String translationIsOn = org.smartregister.util.Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); + String translationIsOn = Utils.getProperties(context).getProperty(ConstantsUtils.Properties.WIDGET_VALUE_TRANSLATED, "false"); if (StringUtils.isNotBlank(value) && Boolean.parseBoolean(translationIsOn)) { return ANCFormUtils.keyToValueConverter(value); } @@ -853,13 +853,12 @@ public static boolean checkJsonArrayString(String input) { /** * @param receives iterated keys and values and passes them through translation in nativeform * to return a string. It checks whether the value is an array, a json object or a normal string separated by , - * @param key * @return */ @SuppressLint({"NewApi"}) - public static String returnTranslatedStringJoinedValue(String value, String key) { + public static String returnTranslatedStringJoinedValue(String value) { try { - if (value.startsWith("[")) { + if (value.charAt(0) == '[') { if (Utils.checkJsonArrayString(value)) { JSONArray jsonArray = new JSONArray(value); List translatedList = new ArrayList<>(); @@ -870,19 +869,19 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.size() == 1 ? translatedList.get(0) : ""; } else { - return value; + return value.substring(1, value.length() - 1); } } - if (value.startsWith("{")) { + if (value.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(value); String translated_text, text; text = attentionFlagObject.optString(JsonFormConstants.TEXT).trim(); translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; return translated_text; } - if (key.endsWith(ConstantsUtils.KeyUtils.VALUE) && value.contains(",") && value.contains(JsonFormConstants.TEXT)) { + if (value.contains(",") && value.contains(".") && value.contains(JsonFormConstants.TEXT)) { List attentionFlagValueArray = Arrays.asList(value.trim().split(",")); List translatedList = new ArrayList<>(); for (int i = 0; i < attentionFlagValueArray.size(); i++) { @@ -890,7 +889,10 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.size() == 1 ? translatedList.get(0) : ""; + } + if (value.contains(".") && !value.contains(",")&& value.charAt(0) != '[' && !value.contains("{") && value.contains(JsonFormConstants.TEXT)) { + return NativeFormLangUtils.translateDatabaseString(value.trim(), AncLibrary.getInstance().getApplicationContext()); } return value; diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties index 0ac56a8db..d956820dc 100644 --- a/opensrp-anc/src/main/resources/anc_profile_ind.properties +++ b/opensrp-anc/src/main/resources/anc_profile_ind.properties @@ -169,7 +169,7 @@ anc_profile.step1.educ_level.options.none.text = None anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions -anc_profile.step7.alcohol_substance_use.options.none.text = None +anc_profile.step7.alcohol_substance_use.options.none.text = Tidak ada anc_profile.step7.tobacco_user.options.yes.text = Yes anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups of coffee (brewed, filtered, instant or espresso) anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). diff --git a/reference-app/build.gradle b/reference-app/build.gradle index d4eb0e5c5..e8f34196f 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -241,7 +241,7 @@ dependencies { exclude group: 'io.ona.rdt-capture', module: 'lib' } - implementation('org.smartregister:opensrp-client-core:4.3.22-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-core:4.3.26-SNAPSHOT@aar') { transitive = true exclude group: 'com.github.bmelnychuk', module: 'atv' exclude group: 'com.google.guava', module: 'guava' From f37da2830364647b39601af137498bf1b622a448 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 8 Mar 2022 09:39:27 +0300 Subject: [PATCH 160/302] Overview data missing --- .../main/assets/config/profile-overview.yml | 8 +- .../PreviousContactsDetailsActivity.java | 3 +- .../interactor/ProfileFragmentInteractor.java | 4 +- .../presenter/ProfileFragmentPresenter.java | 3 +- .../anc/library/task/AttentionFlagsTask.java | 3 +- .../smartregister/anc/library/util/Utils.java | 6 +- .../src/main/resources/anc_profile.properties | 634 +++++++++--------- .../main/resources/anc_profile_ind.properties | 634 +++++++++--------- 8 files changed, 649 insertions(+), 646 deletions(-) diff --git a/opensrp-anc/src/main/assets/config/profile-overview.yml b/opensrp-anc/src/main/assets/config/profile-overview.yml index 9583dead7..d677ae47c 100644 --- a/opensrp-anc/src/main/assets/config/profile-overview.yml +++ b/opensrp-anc/src/main/assets/config/profile-overview.yml @@ -243,11 +243,11 @@ fields: relevance: "severe_preeclampsia == 1" isRedFont: "true" - - template: "Rh factor negative: {date}" + - template: "Rh factor negative: {rh_factor}" relevance: "rh_factor == 'negative'" isRedFont: "true" - - template: "HIV positive: {date}" + - template: "HIV Status: {hiv_test_result}" relevance: "hiv_positive == 1" isRedFont: "true" @@ -321,7 +321,7 @@ fields: --- group: immunisation_status fields: - - template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status_value}" + - template: "{{profile_overview.immunisation_status.tt_immunisation_status}}: {tt_immun_status}" relevance: "tt_immun_status != ''" isRedFont: "tt_immun_status == 'ttcv_not_received' || tt_immun_status == 'unknown'" @@ -331,7 +331,7 @@ fields: - template: "{{profile_overview.immunisation_status.tt_dose_2}}: {tt2_date_value}" relevance: "tt2_date == 'done_today' || tt2_date == 'done_earlier'" - - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status_value}" + - template: "{{profile_overview.immunisation_status.flu_immunisation_status}}: {flu_immun_status}" relevance: "flu_immun_status != ''" isRedFont: "flu_immun_status == 'seasonal_flu_dose_missing' || flu_immun_status == 'unknown'" diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java index 01e3a96b3..b6a986e48 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/PreviousContactsDetailsActivity.java @@ -13,6 +13,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.json.JSONException; import org.json.JSONObject; @@ -156,7 +157,7 @@ public void loadPreviousContactsDetails(Map> allContactFacts String key = keys.next(); String valueObject = jsonObject.optString(key), value; value = Utils.returnTranslatedStringJoinedValue(valueObject); - if (value.length() > 1) { + if (StringUtils.isNotBlank(value)) { factsToUpdate.put(key, value); } else { factsToUpdate.put(key, ""); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ProfileFragmentInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ProfileFragmentInteractor.java index 160e39dad..f253c9d41 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ProfileFragmentInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ProfileFragmentInteractor.java @@ -21,8 +21,8 @@ */ public class ProfileFragmentInteractor implements ProfileFragmentContract.Interactor { private ProfileFragmentContract.Presenter mProfileFrgamentPresenter; - private ANCFormUtils ANCFormUtils = new ANCFormUtils(); - private Utils utils = new Utils(); + private final ANCFormUtils ANCFormUtils = new ANCFormUtils(); + private final Utils utils = new Utils(); public ProfileFragmentInteractor(ProfileFragmentContract.Presenter presenter) { this.mProfileFrgamentPresenter = presenter; diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java index 14c3487dc..cbd601bf5 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/ProfileFragmentPresenter.java @@ -3,6 +3,7 @@ import android.annotation.SuppressLint; import android.text.TextUtils; +import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.json.JSONException; import org.json.JSONObject; @@ -74,7 +75,7 @@ public Facts getImmediatePreviousContact(Map clientDetails, Stri String key = keys.next(); String valueObject = jsonObject.optString(key), value; value = Utils.returnTranslatedStringJoinedValue(valueObject); - if (value.length() > 1) { + if (StringUtils.isNotBlank(value)) { facts.put(key, value); } else { facts.put(key, ""); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index 2f1803c1b..5486819f7 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -3,6 +3,7 @@ import android.annotation.SuppressLint; import android.os.AsyncTask; +import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; @@ -43,7 +44,7 @@ protected Void doInBackground(Void... voids) { String key = keys.next(); String ValueObject = jsonObject.optString(key); String value = Utils.returnTranslatedStringJoinedValue(ValueObject); - if (value.length() > 1) { + if (StringUtils.isNotBlank(value)) { facts.put(key, value); } else { facts.put(key, ""); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 1a3ea45c4..099a48c7e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -858,7 +858,7 @@ public static boolean checkJsonArrayString(String input) { @SuppressLint({"NewApi"}) public static String returnTranslatedStringJoinedValue(String value) { try { - if (value.charAt(0) == '[') { + if (StringUtils.isNotBlank(value) && value.charAt(0) == '[') { if (Utils.checkJsonArrayString(value)) { JSONArray jsonArray = new JSONArray(value); List translatedList = new ArrayList<>(); @@ -874,7 +874,7 @@ public static String returnTranslatedStringJoinedValue(String value) { return value.substring(1, value.length() - 1); } } - if (value.charAt(0) == '{') { + if (StringUtils.isNotBlank(value) && value.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(value); String translated_text, text; text = attentionFlagObject.optString(JsonFormConstants.TEXT).trim(); @@ -891,7 +891,7 @@ public static String returnTranslatedStringJoinedValue(String value) { } return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.size() == 1 ? translatedList.get(0) : ""; } - if (value.contains(".") && !value.contains(",")&& value.charAt(0) != '[' && !value.contains("{") && value.contains(JsonFormConstants.TEXT)) { + if (StringUtils.isNotBlank(value) && value.contains(".") && !value.contains(",") && value.charAt(0) != '[' && !value.contains("{") && value.contains(JsonFormConstants.TEXT)) { return NativeFormLangUtils.translateDatabaseString(value.trim(), AncLibrary.getInstance().getApplicationContext()); } return value; diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 90ba744c6..09ac7085b 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -1,317 +1,317 @@ -anc_profile.step1.occupation.options.other.text = Other (specify) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 12 bars (50 g) of chocolate -anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_done.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy -anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit -anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) -anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required -anc_profile.step3.prev_preg_comps_other.hint = Specify -anc_profile.step6.medications.options.antibiotics.text = Other antibiotics -anc_profile.step6.medications.options.aspirin.text = Aspirin -anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaine -anc_profile.step8.partner_hiv_status.label = Partner HIV status -anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended -anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) -anc_profile.step1.occupation.options.formal_employment.text = Formal employment -anc_profile.step3.substances_used.options.marijuana.text = Marijuana -anc_profile.step2.lmp_known.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step7.other_substance_use.hint = Specify -anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems -anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia -anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age -anc_profile.step1.educ_level.options.secondary.text = Secondary -anc_profile.step5.title = Immunisation Status -anc_profile.step3.gravida.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? -anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) -anc_profile.step4.allergies.label = Any allergies? -anc_profile.step6.medications.options.folic_acid.text = Folic Acid -anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive -anc_profile.step7.condom_counseling_toaster.text = Condom counseling -anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused -anc_profile.step6.medications_other.hint = Specify -anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required -anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) -anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems -anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) -anc_profile.step8.partner_hiv_status.options.negative.text = Negative -anc_profile.step7.caffeine_intake.options.none.text = None of the above -anc_profile.step4.title = Medical History -anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions -anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days -anc_profile.step3.substances_used.label = Specify illicit substance use -anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling -anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage -anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling -anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused -anc_profile.step3.c_sections.v_required.err = C-sections is required -anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures -anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Perineal tear (3rd or 4th degree) -anc_profile.step4.allergies.options.folic_acid.text = Folic acid -anc_profile.step6.medications.options.other.text = Other (specify) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Injectable drugs -anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials -anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso -anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days -anc_profile.step2.ultrasound_done.options.yes.text = Yes -anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling -anc_profile.step1.occupation.hint = Occupation -anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) -anc_profile.step7.caffeine_intake.label = Daily caffeine intake -anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) -anc_profile.step5.flu_immun_status.label = Flu immunisation status -anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? -anc_profile.step1.occupation_other.v_required.err = Please specify your occupation -anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) -anc_profile.step1.educ_level.options.higher.text = Higher -anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use -anc_profile.step6.medications.label = Current medications -anc_profile.step6.medications.options.magnesium.text = Magnesium -anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic -anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) -anc_profile.step1.educ_level.v_required.err = Please specify your education level -anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling -anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products -anc_profile.step3.substances_used.options.other.text = Other (specify) -anc_profile.step6.medications.options.calcium.text = Calcium -anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. -anc_profile.step6.title = Medications -anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication -anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling -anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step4.surgeries.options.dont_know.text = Don't know -anc_profile.step6.medications.v_required.err = Please select at least one medication -anc_profile.step1.occupation.options.student.text = Student -anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs -anc_profile.step5.flu_immun_status.options.unknown.text = Unknown -anc_profile.step7.alcohol_substance_enquiry.options.no.text = No -anc_profile.step4.surgeries.label = Any surgeries? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Fully immunized -anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive -anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know -anc_profile.step5.tt_immun_status.options.unknown.text = Unknown -anc_profile.step5.flu_immun_status.v_required.err = Please select flu immunisation status -anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes -anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended -anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_profile.step1.marital_status.options.divorced.text = Divorced / separated -anc_profile.step5.tt_immun_status.options.3_doses.text = Fully immunized -anc_profile.step8.title = Partner's HIV Status -anc_profile.step4.allergies.options.iron.text = Iron -anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) -anc_profile.step6.medications.options.multivitamin.text = Multivitamin -anc_profile.step7.shs_exposure.options.no.text = No -anc_profile.step1.educ_level.options.dont_know.text = Don't know -anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling -anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling -anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy -anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required -anc_profile.step4.allergies.v_required.err = Please select at least one allergy -anc_profile.step4.surgeries.options.none.text = None -anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = No doses -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps -anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended -anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use -anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step3.substances_used_other.hint = Specify -anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products -anc_profile.step6.medications.options.antitussive.text = Antitussive -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) -anc_profile.step5.tt_immun_status.label = TTCV immunisation status -anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TTCV immunisation recommended -anc_profile.step7.alcohol_substance_use.options.marijuana.text = Marijuana -anc_profile.step4.allergies.options.calcium.text = Calcium -anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks -anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee -anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status -anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) -anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use -anc_profile.step2.lmp_known.options.yes.text = Yes -anc_profile.step2.lmp_known.label_info_title = LMP known? -anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) -anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text = Chamomile -anc_profile.step2.lmp_known.label = LMP known? -anc_profile.step3.live_births.v_required.err = Live births is required -anc_profile.step7.condom_use.options.no.text = No -anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth -anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures -anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation -anc_profile.step1.marital_status.label = Marital status -anc_profile.step7.title = Woman's Behaviour -anc_profile.step4.surgeries_other.hint = Other surgeries -anc_profile.step3.substances_used.options.cocaine.text = Cocaine -anc_profile.step1.educ_level.options.primary.text = Primary -anc_profile.step4.health_conditions.options.other.text = Other (specify) -anc_profile.step6.medications_other.v_required.err = Please specify the Other medications -anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling -anc_profile.step1.educ_level.options.none.text = None -anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia -anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions -anc_profile.step7.alcohol_substance_use.options.none.text = None -anc_profile.step7.tobacco_user.options.yes.text = Yes -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups of coffee (brewed, filtered, instant or espresso) -anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) -anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment -anc_profile.step6.medications.options.none.text = None -anc_profile.step2.ultrasound_done.label = Ultrasound done? -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step6.medications.options.iron.text = Iron -anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease -anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling -anc_profile.step4.health_conditions.options.diabetes.text = Diabetes, pre-existing type 1 -anc_profile.step1.occupation_other.hint = Specify -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step1.marital_status.v_required.err = Please specify your marital status -anc_profile.step8.partner_hiv_status.v_required.err = Please select one -anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step3.prev_preg_comps.options.none.text = None -anc_profile.step4.allergies.options.dont_know.text = Don't know -anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling -anc_profile.step4.allergies.hint = Any allergies? -anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes -anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date -anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment -anc_profile.step4.surgeries.hint = Any surgeries? -anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts -anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? -anc_profile.step7.tobacco_user.label = Uses tobacco products? -anc_profile.step1.occupation.label = Occupation -anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products -anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know -anc_profile.step6.medications.options.hematinic.text = Hematinic -anc_profile.step3.c_sections_label.text = No. of C-sections -anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions -anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol -anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required -anc_profile.step4.allergies.options.albendazole.text = Albendazole -anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended -anc_profile.step1.educ_level.label = Highest level of school -anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling -anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes -anc_profile.step4.allergies.options.penicillin.text = Penicillin -anc_profile.step1.occupation.options.unemployed.text = Unemployed -anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required -anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) -anc_profile.step1.marital_status.options.widowed.text = Widowed -anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? -anc_profile.step4.health_conditions_other.hint = Other health condition - specify -anc_profile.step6.medications.options.antivirals.text = Antivirals -anc_profile.step6.medications.options.antacids.text = Antacids -anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling -anc_profile.step3.title = Obstetric History -anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! -anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling -anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused -anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) -anc_profile.step4.health_conditions.label = Any chronic or past health conditions? -anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries -anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know -anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required -anc_profile.step4.health_conditions.options.dont_know.text = Don't know -anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? -anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease -anc_profile.step6.medications.options.vitamina.text = Vitamin A -anc_profile.step6.medications.options.dont_know.text = Don't know -anc_profile.step7.condom_use.options.yes.text = Yes -anc_profile.step4.health_conditions.options.cancer.text = Cancer - gynaecological -anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = No doses -anc_profile.step4.allergies_other.hint = Specify -anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step7.caffeine_intake.hint = Daily caffeine intake -anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks -anc_profile.step4.allergies.options.other.text = Other (specify) -anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries -anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks -anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step4.allergies.options.none.text = None -anc_profile.step3.stillbirths.v_required.err = Still births is required -anc_profile.step7.tobacco_user.options.no.text = No -anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems -anc_profile.step1.marital_status.options.married.text = Married or living together -anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date -anc_profile.step7.shs_exposure.options.yes.text = Yes -anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. -anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) -anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date -anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) -anc_profile.step4.allergies.options.mebendazole.text = Mebendazole -anc_profile.step7.condom_use.label = Uses (male or female) condoms during sex? -anc_profile.step1.occupation.v_required.err = Please select at least one occupation -anc_profile.step6.medications.options.analgesic.text = Analgesic -anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits -anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) -anc_profile.step8.partner_hiv_status.options.positive.text = Positive -anc_profile.step4.allergies.options.ginger.text = Ginger -anc_profile.step2.title = Current Pregnancy -anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under - immunized -anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia -anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! -anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) -anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate -anc_profile.step4.health_conditions.options.none.text = None -anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step6.medications.options.asthma.text = Asthma -anc_profile.step6.medications.options.doxylamine.text = Doxylamine -anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use -anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. -anc_profile.step3.last_live_birth_preterm.options.no.text = No -anc_profile.step3.stillbirths_label.v_required.err = Still births is required -anc_profile.step4.health_conditions.options.hypertension.text = Hypertension -anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. -anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole -anc_profile.step6.medications.options.thyroid.text = Thyroid medication -anc_profile.step1.title = Demographic Info -anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? -anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? -anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). -anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended -anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. -anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? -anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment -anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery -anc_profile.step4.health_conditions.options.cancer_other.text = Cancer - other site (specify) -anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) -anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, other or unspecified -anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 -anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify -anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer -anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. -anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV -anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea -anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink -anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. +anc_profile.step1.occupation.options.other.text=Other (specify) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text=More than 12 bars (50 g) of chocolate +anc_profile.step2.ultrasound_done.label_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_done.options.no.text=No +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text=Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step7.tobacco_user.options.recently_quit.text=Recently quit +anc_profile.step4.surgeries.options.removal_of_the_tube.text=Removal of the tube (salpingectomy) +anc_profile.step2.lmp_known.v_required.err=Lmp unknown is required +anc_profile.step3.prev_preg_comps_other.hint=Specify +anc_profile.step6.medications.options.antibiotics.text=Other antibiotics +anc_profile.step6.medications.options.aspirin.text=Aspirin +anc_profile.step8.bring_partners_toaster.toaster_info_title=Advise woman to bring partner(s) in for HIV testing. +anc_profile.step3.last_live_birth_preterm.label=Was the last live birth preterm (less than 37 weeks)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text=Aluminium hydroxide +anc_profile.step7.alcohol_substance_use.options.cocaine.text=Cocaine +anc_profile.step8.partner_hiv_status.label=Partner HIV status +anc_profile.step5.flu_immunisation_toaster.toaster_info_title=Flu immunisation recommended +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step4.surgeries.options.removal_of_ovary.text=Removal of ovary (oophorectomy) +anc_profile.step1.occupation.options.formal_employment.text=Formal employment +anc_profile.step3.substances_used.options.marijuana.text=Marijuana +anc_profile.step2.lmp_known.options.no.text=No +anc_profile.step3.gestational_diabetes_toaster.text=Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step7.other_substance_use.hint=Specify +anc_profile.step3.prev_preg_comps_other.v_required.err=Please specify other past pregnancy problems +anc_profile.step3.prev_preg_comps.options.macrosomia.text=Macrosomia +anc_profile.step2.select_gest_age_edd_label.v_required.err=Select preferred gestational age +anc_profile.step1.educ_level.options.secondary.text=Secondary +anc_profile.step5.title=Immunisation Status +anc_profile.step3.gravida.v_required.err=No of pregnancies is required +anc_profile.step3.prev_preg_comps.label=Any past pregnancy problems? +anc_profile.step4.allergies.options.malaria_medication.text=Malaria medication (sulfadoxine-pyrimethamine) +anc_profile.step4.allergies.label=Any allergies? +anc_profile.step6.medications.options.folic_acid.text=Folic Acid +anc_profile.step6.medications.options.anti_convulsive.text=Anti-convulsive +anc_profile.step7.condom_counseling_toaster.text=Condom counseling +anc_profile.step3.substances_used_other.v_required.err=Please specify other substances abused +anc_profile.step6.medications_other.hint=Specify +anc_profile.step3.previous_pregnancies.v_required.err=Previous pregnancies is required +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text=PrEP tenofovir disoproxil fumarate (TDF) +anc_profile.step3.prev_preg_comps.v_required.err=Please select at least one past pregnancy problems +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_profile.step3.miscarriages_abortions_label.text=No. of pregnancies lost/ended (before 22 weeks / 5 months) +anc_profile.step8.partner_hiv_status.options.negative.text=Negative +anc_profile.step7.caffeine_intake.options.none.text=None of the above +anc_profile.step4.title=Medical History +anc_profile.step4.health_conditions_other.v_required.err=Please specify the chronic or past health conditions +anc_profile.step2.ultrasound_gest_age_days.hint=GA from ultrasound - days +anc_profile.step3.substances_used.label=Specify illicit substance use +anc_profile.step7.condom_counseling_toaster.toaster_info_title=Condom counseling +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step4.surgeries.options.dilation_and_curettage.text=Dilation and curettage +anc_profile.step7.substance_use_toaster.text=Alcohol / substance use counseling +anc_profile.step7.other_substance_use.v_required.err=Please specify other substances abused +anc_profile.step3.c_sections.v_required.err=C-sections is required +anc_profile.step4.surgeries_other_gyn_proced.v_required.err=Please specify the other gynecological procedures +anc_profile.step3.gravida_label.v_required.err=No of pregnancies is required +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text=Perineal tear (3rd or 4th degree) +anc_profile.step4.allergies.options.folic_acid.text=Folic acid +anc_profile.step6.medications.options.other.text=Other (specify) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text=Injectable drugs +anc_profile.step6.medications.options.anti_malarials.text=Anti-malarials +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text=More than 2 small cups (50 ml) of espresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_gest_age_days.v_required.err=Please give the GA from ultrasound - days +anc_profile.step2.ultrasound_done.options.yes.text=Yes +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title=Tobacco cessation counseling +anc_profile.step1.occupation.hint=Occupation +anc_profile.step3.live_births_label.text=No. of live births (after 22 weeks) +anc_profile.step7.caffeine_intake.label=Daily caffeine intake +anc_profile.step6.medications.options.metoclopramide.text=Metoclopramide +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step4.surgeries.options.cervical_cone.text=Partial removal of the cervix (cervical cone) +anc_profile.step5.flu_immun_status.label=Flu immunisation status +anc_profile.step7.alcohol_substance_use.label=Uses alcohol and/or other substances? +anc_profile.step1.occupation_other.v_required.err=Please specify your occupation +anc_profile.step7.alcohol_substance_use.options.other.text=Other (specify) +anc_profile.step1.educ_level.options.higher.text=Higher +anc_profile.step3.substances_used.v_required.err=Please select at least one alcohol or illicit substance use +anc_profile.step6.medications.label=Current medications +anc_profile.step6.medications.options.magnesium.text=Magnesium +anc_profile.step6.medications.options.anthelmintic.text=Anthelmintic +anc_profile.step3.stillbirths_label.text=No. of stillbirths (after 22 weeks) +anc_profile.step1.educ_level.v_required.err=Please specify your education level +anc_profile.step4.health_conditions.options.hiv.text=HIV +anc_profile.step1.hiv_risk_counseling_toaster.text=HIV risk counseling +anc_profile.step7.tobacco_user.v_required.err=Please select if woman uses any tobacco products +anc_profile.step3.substances_used.options.other.text=Other (specify) +anc_profile.step6.medications.options.calcium.text=Calcium +anc_profile.step5.flu_immunisation_toaster.toaster_info_text=Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_profile.step6.title=Medications +anc_profile.step6.medications.options.hemorrhoidal.text=Hemorrhoidal medication +anc_profile.step8.hiv_risk_counselling_toaster.text=HIV risk counseling +anc_profile.step2.sfh_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step4.surgeries.options.dont_know.text=Don't know +anc_profile.step6.medications.v_required.err=Please select at least one medication +anc_profile.step1.occupation.options.student.text=Student +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title=Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step3.substances_used.options.injectable_drugs.text=Injectable drugs +anc_profile.step5.flu_immun_status.options.unknown.text=Unknown +anc_profile.step7.alcohol_substance_enquiry.options.no.text=No +anc_profile.step4.surgeries.label=Any surgeries? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully immunized +anc_profile.step6.medications.options.anti_hypertensive.text=Anti-hypertensive +anc_profile.step3.last_live_birth_preterm.options.dont_know.text=Don't know +anc_profile.step5.tt_immun_status.options.unknown.text=Unknown +anc_profile.step5.flu_immun_status.v_required.err=Please select flu immunisation status +anc_profile.step3.last_live_birth_preterm.options.yes.text=Yes +anc_profile.step2.ultrasound_toaster.text=Ultrasound recommended +anc_profile.step7.substance_use_toaster.toaster_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_profile.step1.marital_status.options.divorced.text=Divorced / separated +anc_profile.step5.tt_immun_status.options.3_doses.text=Fully immunized +anc_profile.step8.title=Partner's HIV Status +anc_profile.step4.allergies.options.iron.text=Iron +anc_profile.step6.medications.options.arvs.text=Antiretrovirals (ARVs) +anc_profile.step6.medications.options.multivitamin.text=Multivitamin +anc_profile.step7.shs_exposure.options.no.text=No +anc_profile.step1.educ_level.options.dont_know.text=Don't know +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title=Caffeine reduction counseling +anc_profile.step7.caffeine_reduction_toaster.text=Caffeine reduction counseling +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_profile.step4.health_conditions.options.epilepsy.text=Epilepsy +anc_profile.step3.miscarriages_abortions.v_required.err=Miscarriage abortions is required +anc_profile.step4.allergies.v_required.err=Please select at least one allergy +anc_profile.step4.surgeries.options.none.text=None +anc_profile.step2.sfh_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text=No doses +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text=Forceps +anc_profile.step5.flu_immunisation_toaster.text=Flu immunisation recommended +anc_profile.step3.prev_preg_comps.options.alcohol_use.text=Alcohol use +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step3.substances_used_other.hint=Specify +anc_profile.step7.condom_use.v_required.err=Please select if you use any tobacco products +anc_profile.step6.medications.options.antitussive.text=Antitussive +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title=Pre-eclampsia risk counseling +anc_profile.step4.health_conditions.options.blood_disorder.text=Blood disorder (e.g. sickle cell anemia, thalassemia) +anc_profile.step5.tt_immun_status.label=TTCV immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title=TTCV immunisation recommended +anc_profile.step7.alcohol_substance_use.options.marijuana.text=Marijuana +anc_profile.step4.allergies.options.calcium.text=Calcium +anc_profile.step2.ultrasound_gest_age_wks.v_required.err=Please give the GA from ultrasound - weeks +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text=More than 3 cups (300 ml) of instant coffee +anc_profile.step5.tt_immun_status.v_required.err=Please select TT Immunisation status +anc_profile.step4.surgeries.options.other.text=Other surgeries (specify) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text=Substance use +anc_profile.step2.lmp_known.options.yes.text=Yes +anc_profile.step2.lmp_known.label_info_title=LMP known? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text=Other gynecological procedures (specify) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_profile.step4.allergies.options.chamomile.text=Chamomile +anc_profile.step2.lmp_known.label=LMP known? +anc_profile.step3.live_births.v_required.err=Live births is required +anc_profile.step7.condom_use.options.no.text=No +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text=Baby died within 24 hours of birth +anc_profile.step4.surgeries_other_gyn_proced.hint=Other gynecological procedures +anc_profile.step1.occupation_other.v_regex.err=Please specify your occupation +anc_profile.step1.marital_status.label=Marital status +anc_profile.step7.title=Woman's Behaviour +anc_profile.step4.surgeries_other.hint=Other surgeries +anc_profile.step3.substances_used.options.cocaine.text=Cocaine +anc_profile.step1.educ_level.options.primary.text=Primary +anc_profile.step4.health_conditions.options.other.text=Other (specify) +anc_profile.step6.medications_other.v_required.err=Please specify the Other medications +anc_profile.step7.second_hand_smoke_toaster.text=Second-hand smoke counseling +anc_profile.step1.educ_level.options.none.text=None +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text=Pre-eclampsia +anc_profile.step7.condom_counseling_toaster.toaster_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_profile.step4.health_conditions.v_required.err=Please select at least one chronic or past health conditions +anc_profile.step7.alcohol_substance_use.options.none.text=None +anc_profile.step7.tobacco_user.options.yes.text=Yes +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text=More than 2 cups of coffee (brewed, filtered, instant or espresso) +anc_profile.step2.ultrasound_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step3.prev_preg_comps.options.other.text=Other (specify) +anc_profile.step2.facility_in_us_toaster.toaster_info_title=Refer for ultrasound in facility with U/S equipment +anc_profile.step6.medications.options.none.text=None +anc_profile.step2.ultrasound_done.label=Ultrasound done? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step6.medications.options.iron.text=Iron +anc_profile.step2.sfh_gest_age.hint=GA from SFH or palpation - weeks +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step4.health_conditions.options.kidney_disease.text=Kidney disease +anc_profile.step7.tobacco_cessation_toaster.text=Tobacco cessation counseling +anc_profile.step4.health_conditions.options.diabetes.text=Diabetes, pre-existing type 1 +anc_profile.step1.occupation_other.hint=Specify +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation +anc_profile.step8.bring_partners_toaster.text=Advise woman to bring partner(s) in for HIV testing. +anc_profile.step1.marital_status.v_required.err=Please specify your marital status +anc_profile.step8.partner_hiv_status.v_required.err=Please select one +anc_profile.step7.alcohol_substance_use.v_required.err=Please specify if woman uses alcohol/abuses substances +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step3.prev_preg_comps.options.none.text=None +anc_profile.step4.allergies.options.dont_know.text=Don't know +anc_profile.step3.pre_eclampsia_toaster.text=Pre-eclampsia risk counseling +anc_profile.step4.allergies.hint=Any allergies? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text=Gestational Diabetes +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err=Please select the unknown HIV Date +anc_profile.step2.facility_in_us_toaster.text=Refer for ultrasound in facility with U/S equipment +anc_profile.step4.surgeries.hint=Any surgeries? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text=Removal of ovarian cysts +anc_profile.step4.health_conditions.hint=Any chronic or past health conditions? +anc_profile.step7.tobacco_user.label=Uses tobacco products? +anc_profile.step1.occupation.label=Occupation +anc_profile.step7.alcohol_substance_enquiry.v_required.err=Please select if you use any tobacco products +anc_profile.step3.prev_preg_comps.options.dont_know.text=Don't know +anc_profile.step6.medications.options.hematinic.text=Hematinic +anc_profile.step3.c_sections_label.text=No. of C-sections +anc_profile.step3.prev_preg_comps.options.convulsions.text=Convulsions +anc_profile.step7.alcohol_substance_use.options.alcohol.text=Alcohol +anc_profile.step7.caffeine_intake.v_required.err=Daily caffeine intake is required +anc_profile.step4.allergies.options.albendazole.text=Albendazole +anc_profile.step5.tt_immunisation_toaster.text=TTCV immunisation recommended +anc_profile.step1.educ_level.label=Highest level of school +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title=Second-hand smoke counseling +anc_profile.step7.alcohol_substance_enquiry.options.yes.text=Yes +anc_profile.step4.allergies.options.penicillin.text=Penicillin +anc_profile.step1.occupation.options.unemployed.text=Unemployed +anc_profile.step2.ultrasound_done.v_required.err=Ultrasound done is required +anc_profile.step1.marital_status.options.single.text=Never married and never lived together (single) +anc_profile.step1.marital_status.options.widowed.text=Widowed +anc_profile.step7.shs_exposure.label=Anyone in the household smokes tobacco products? +anc_profile.step4.health_conditions_other.hint=Other health condition - specify +anc_profile.step6.medications.options.antivirals.text=Antivirals +anc_profile.step6.medications.options.antacids.text=Antacids +anc_profile.step2.ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text=Using LMP +anc_profile.step7.hiv_counselling_toaster.text=HIV risk counseling +anc_profile.step3.title=Obstetric History +anc_profile.step5.fully_immunised_toaster.text=Woman is fully immunised against tetanus! +anc_profile.step4.pre_eclampsia_two_toaster.text=Pre-eclampsia risk counseling +anc_profile.step3.substances_used_other.v_regex.err=Please specify other specify other substances abused +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text=Heavy bleeding (during or after delivery) +anc_profile.step4.health_conditions.label=Any chronic or past health conditions? +anc_profile.step4.surgeries.v_required.err=Please select at least one surgeries +anc_profile.step8.partner_hiv_status.options.dont_know.text=Don't know +anc_profile.step3.last_live_birth_preterm.v_required.err=Last live birth preterm is required +anc_profile.step4.health_conditions.options.dont_know.text=Don't know +anc_profile.step7.alcohol_substance_enquiry.label=Clinical enquiry for alcohol and other substance use done? +anc_profile.step4.health_conditions.options.autoimmune_disease.text=Autoimmune disease +anc_profile.step6.medications.options.vitamina.text=Vitamin A +anc_profile.step6.medications.options.dont_know.text=Don't know +anc_profile.step7.condom_use.options.yes.text=Yes +anc_profile.step4.health_conditions.options.cancer.text=Cancer - gynaecological +anc_profile.step7.substance_use_toaster.toaster_info_title=Alcohol / substance use counseling +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text=No doses +anc_profile.step4.allergies_other.hint=Specify +anc_profile.step7.hiv_counselling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step7.caffeine_intake.hint=Daily caffeine intake +anc_profile.step2.ultrasound_gest_age_wks.hint=GA from ultrasound - weeks +anc_profile.step4.allergies.options.other.text=Other (specify) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title=Pre-eclampsia risk counseling +anc_profile.step4.surgeries_other.v_required.err=Please specify the Other surgeries +anc_profile.step2.sfh_gest_age.v_required.err=Please give the GA from SFH or abdominal palpation - weeks +anc_profile.step2.lmp_gest_age_selection.options.lmp.text=Using LMP +anc_profile.step4.allergies.options.none.text=None +anc_profile.step3.stillbirths.v_required.err=Still births is required +anc_profile.step7.tobacco_user.options.no.text=No +anc_profile.step3.prev_preg_comps_other.v_regex.err=Please specify other past pregnancy problems +anc_profile.step1.marital_status.options.married.text=Married or living together +anc_profile.step4.hiv_diagnosis_date.v_required.err=Please enter the HIV diagnosis date +anc_profile.step7.shs_exposure.options.yes.text=Yes +anc_profile.step8.bring_partners_toaster.toaster_info_text=Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. +anc_profile.step4.surgeries.options.removal_of_fibroid.text=Removal of fibroids (myomectomy) +anc_profile.step4.hiv_diagnosis_date.hint=HIV diagnosis date +anc_profile.step7.shs_exposure.v_required.err=Please select if you use any tobacco products +anc_profile.step1.occupation.options.informal_employment_sex_worker.text=Employment that puts woman at increased risk for HIV (e.g. sex worker) +anc_profile.step4.allergies.options.mebendazole.text=Mebendazole +anc_profile.step7.condom_use.label=Uses (male or female) condoms during sex? +anc_profile.step1.occupation.v_required.err=Please select at least one occupation +anc_profile.step6.medications.options.analgesic.text=Analgesic +anc_profile.step7.hiv_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits +anc_profile.step2.lmp_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step3.gravida_label.text=No. of pregnancies (including this pregnancy) +anc_profile.step8.partner_hiv_status.options.positive.text=Positive +anc_profile.step4.allergies.options.ginger.text=Ginger +anc_profile.step2.title=Current Pregnancy +anc_profile.step2.select_gest_age_edd_label.text=Select preferred gestational age +anc_profile.step5.tt_immun_status.options.1-4_doses.text=Under - immunized +anc_profile.step3.prev_preg_comps.options.eclampsia.text=Eclampsia +anc_profile.step5.immunised_against_flu_toaster.text=Woman is immunised against flu! +anc_profile.step1.occupation.options.informal_employment_other.text=Informal employment (other) +anc_profile.step4.allergies.options.magnesium_carbonate.text=Magnesium carbonate +anc_profile.step4.health_conditions.options.none.text=None +anc_profile.step6.medications.options.anti_diabetic.text=Anti-diabetic +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step6.medications.options.asthma.text=Asthma +anc_profile.step6.medications.options.doxylamine.text=Doxylamine +anc_profile.step3.prev_preg_comps.options.tobacco_use.text=Tobacco use +anc_profile.step7.alcohol_substance_enquiry.label_info_text=This refers to the application of a specific enquiry to assess alcohol or other substance use. +anc_profile.step3.last_live_birth_preterm.options.no.text=No +anc_profile.step3.stillbirths_label.v_required.err=Still births is required +anc_profile.step4.health_conditions.options.hypertension.text=Hypertension +anc_profile.step5.tt_immunisation_toaster.toaster_info_text=TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. +anc_profile.step6.medications.options.cotrimoxazole.text=Cotrimoxazole +anc_profile.step6.medications.options.thyroid.text=Thyroid medication +anc_profile.step1.title=Demographic Info +anc_profile.step2.ultrasound_done.label_info_title=Ultrasound done? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text=HIV diagnosis date unknown? +anc_profile.step2.lmp_known.label_info_text=LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). +anc_profile.step2.ultrasound_toaster.toaster_info_title=Ultrasound recommended +anc_profile.step1.headss_toaster.text=Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. +anc_profile.step1.headss_toaster.toaster_info_text=Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? +anc_profile.step1.headss_toaster.toaster_info_title=Conduct HEADSS assessment +anc_profile.step3.prev_preg_comps.options.vacuum.text=Vacuum delivery +anc_profile.step4.health_conditions.options.cancer_other.text=Cancer - other site (specify) +anc_profile.step4.health_conditions.options.gest_diabetes.text=Diabetes arising in pregnancy (gestational diabetes) +anc_profile.step4.health_conditions.options.diabetes_other.text=Diabetes, other or unspecified +anc_profile.step4.health_conditions.options.diabetes_type2.text=Diabetes, pre-existing type 2 +anc_profile.step4.health_conditions_cancer_other.hint=Other cancer - specify +anc_profile.step4.health_conditions_cancer_other.v_required.err=Please specify the other type of cancer +anc_profile.step6.tt_immun_status.label_info_text=Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.medications.options.prep_hiv.text=Oral pre-exposure prophylaxis (PrEP) for HIV +anc_profile.step7.caffeine_intake.options.tea.text=More than 4 cups of tea +anc_profile.step7.caffeine_intake.options.soda.text=More than one can of soda or energy drink +anc_profile.step7.caffeine_intake.label_info_text=Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties index d956820dc..23730d062 100644 --- a/opensrp-anc/src/main/resources/anc_profile_ind.properties +++ b/opensrp-anc/src/main/resources/anc_profile_ind.properties @@ -1,317 +1,317 @@ -anc_profile.step1.occupation.options.other.text = Other (specify) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 12 bars (50 g) of chocolate -anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_done.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy -anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step7.tobacco_user.options.recently_quit.text = Recently quit -anc_profile.step4.surgeries.options.removal_of_the_tube.text = Removal of the tube (salpingectomy) -anc_profile.step2.lmp_known.v_required.err = Lmp unknown is required -anc_profile.step3.prev_preg_comps_other.hint = Specify -anc_profile.step6.medications.options.antibiotics.text = Other antibiotics -anc_profile.step6.medications.options.aspirin.text = Aspirin -anc_profile.step8.bring_partners_toaster.toaster_info_title = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step3.last_live_birth_preterm.label = Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Aluminium hydroxide -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Kokain -anc_profile.step8.partner_hiv_status.label = Partner HIV status -anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Flu immunisation recommended -anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step4.surgeries.options.removal_of_ovary.text = Removal of ovary (oophorectomy) -anc_profile.step1.occupation.options.formal_employment.text = Formal employment -anc_profile.step3.substances_used.options.marijuana.text = Marijuana -anc_profile.step2.lmp_known.options.no.text = No -anc_profile.step3.gestational_diabetes_toaster.text = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step7.other_substance_use.hint = Specify -anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems -anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia -anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age -anc_profile.step1.educ_level.options.secondary.text = Secondary -anc_profile.step5.title = Immunisation Status -anc_profile.step3.gravida.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? -anc_profile.step4.allergies.options.malaria_medication.text = Malaria medication (sulfadoxine-pyrimethamine) -anc_profile.step4.allergies.label = Any allergies? -anc_profile.step6.medications.options.folic_acid.text = Folic Acid -anc_profile.step6.medications.options.anti_convulsive.text = Anti-convulsive -anc_profile.step7.condom_counseling_toaster.text = Condom counseling -anc_profile.step3.substances_used_other.v_required.err = Please specify other substances abused -anc_profile.step6.medications_other.hint = Specify -anc_profile.step3.previous_pregnancies.v_required.err = Previous pregnancies is required -anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP tenofovir disoproxil fumarate (TDF) -anc_profile.step3.prev_preg_comps.v_required.err = Please select at least one past pregnancy problems -anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_profile.step3.miscarriages_abortions_label.text = No. of pregnancies lost/ended (before 22 weeks / 5 months) -anc_profile.step8.partner_hiv_status.options.negative.text = Negative -anc_profile.step7.caffeine_intake.options.none.text = None of the above -anc_profile.step4.title = Medical History -anc_profile.step4.health_conditions_other.v_required.err = Please specify the chronic or past health conditions -anc_profile.step2.ultrasound_gest_age_days.hint = GA from ultrasound - days -anc_profile.step3.substances_used.label = Specify illicit substance use -anc_profile.step7.condom_counseling_toaster.toaster_info_title = Condom counseling -anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilation and curettage -anc_profile.step7.substance_use_toaster.text = Alcohol / substance use counseling -anc_profile.step7.other_substance_use.v_required.err = Please specify other substances abused -anc_profile.step3.c_sections.v_required.err = C-sections is required -anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Please specify the other gynecological procedures -anc_profile.step3.gravida_label.v_required.err = No of pregnancies is required -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Perineal tear (3rd or 4th degree) -anc_profile.step4.allergies.options.folic_acid.text = Folic acid -anc_profile.step6.medications.options.other.text = Other (specify) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Obat suntik -anc_profile.step6.medications.options.anti_malarials.text = Anti-malarials -anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = More than 2 small cups (50 ml) of espresso -anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days -anc_profile.step2.ultrasound_done.options.yes.text = Yes -anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling -anc_profile.step1.occupation.hint = Occupation -anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) -anc_profile.step7.caffeine_intake.label = Daily caffeine intake -anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) -anc_profile.step5.flu_immun_status.label = Flu immunisation status -anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? -anc_profile.step1.occupation_other.v_required.err = Please specify your occupation -anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) -anc_profile.step1.educ_level.options.higher.text = Higher -anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use -anc_profile.step6.medications.label = Current medications -anc_profile.step6.medications.options.magnesium.text = Magnesium -anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic -anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) -anc_profile.step1.educ_level.v_required.err = Please specify your education level -anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling -anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products -anc_profile.step3.substances_used.options.other.text = Other (specify) -anc_profile.step6.medications.options.calcium.text = Kalsium -anc_profile.step5.flu_immunisation_toaster.toaster_info_text = Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. -anc_profile.step6.title = Medications -anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication -anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling -anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step4.surgeries.options.dont_know.text = Don't know -anc_profile.step6.medications.v_required.err = Please select at least one medication -anc_profile.step1.occupation.options.student.text = Student -anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs -anc_profile.step5.flu_immun_status.options.unknown.text = Unknown -anc_profile.step7.alcohol_substance_enquiry.options.no.text = No -anc_profile.step4.surgeries.label = Any surgeries? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Fully immunized -anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hypertensive -anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Don't know -anc_profile.step5.tt_immun_status.options.unknown.text = Unknown -anc_profile.step5.flu_immun_status.v_required.err = Please select flu immunisation status -anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes -anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended -anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_profile.step1.marital_status.options.divorced.text = Divorced / separated -anc_profile.step5.tt_immun_status.options.3_doses.text = Fully immunized -anc_profile.step8.title = Partner's HIV Status -anc_profile.step4.allergies.options.iron.text = Iron -anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) -anc_profile.step6.medications.options.multivitamin.text = Multivitamin -anc_profile.step7.shs_exposure.options.no.text = No -anc_profile.step1.educ_level.options.dont_know.text = Don't know -anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling -anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling -anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsy -anc_profile.step3.miscarriages_abortions.v_required.err = Miscarriage abortions is required -anc_profile.step4.allergies.v_required.err = Please select at least one allergy -anc_profile.step4.surgeries.options.none.text = None -anc_profile.step2.sfh_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = No doses -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Forceps -anc_profile.step5.flu_immunisation_toaster.text = Flu immunisation recommended -anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Alcohol use -anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step3.substances_used_other.hint = Specify -anc_profile.step7.condom_use.v_required.err = Please select if you use any tobacco products -anc_profile.step6.medications.options.antitussive.text = Antitussive -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.health_conditions.options.blood_disorder.text = Blood disorder (e.g. sickle cell anemia, thalassemia) -anc_profile.step5.tt_immun_status.label = TTCV immunisation status -anc_profile.step5.tt_immunisation_toaster.toaster_info_title = TTCV immunisation recommended -anc_profile.step7.alcohol_substance_use.options.marijuana.text = Ganja -anc_profile.step4.allergies.options.calcium.text = Kalsium -anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Please give the GA from ultrasound - weeks -anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = More than 3 cups (300 ml) of instant coffee -anc_profile.step5.tt_immun_status.v_required.err = Please select TT Immunisation status -anc_profile.step4.surgeries.options.other.text = Other surgeries (specify) -anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Substance use -anc_profile.step2.lmp_known.options.yes.text = Yes -anc_profile.step2.lmp_known.label_info_title = LMP known? -anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Other gynecological procedures (specify) -anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text = Chamomile -anc_profile.step2.lmp_known.label = LMP known? -anc_profile.step3.live_births.v_required.err = Live births is required -anc_profile.step7.condom_use.options.no.text = No -anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth -anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures -anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation -anc_profile.step1.marital_status.label = Marital status -anc_profile.step7.title = Woman's Behaviour -anc_profile.step4.surgeries_other.hint = Other surgeries -anc_profile.step3.substances_used.options.cocaine.text = Kokain -anc_profile.step1.educ_level.options.primary.text = Primary -anc_profile.step4.health_conditions.options.other.text = Other (specify) -anc_profile.step6.medications_other.v_required.err = Please specify the Other medications -anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling -anc_profile.step1.educ_level.options.none.text = None -anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia -anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions -anc_profile.step7.alcohol_substance_use.options.none.text = Tidak ada -anc_profile.step7.tobacco_user.options.yes.text = Yes -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = More than 2 cups of coffee (brewed, filtered, instant or espresso) -anc_profile.step2.ultrasound_toaster.toaster_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step3.prev_preg_comps.options.other.text = Other (specify) -anc_profile.step2.facility_in_us_toaster.toaster_info_title = Refer for ultrasound in facility with U/S equipment -anc_profile.step6.medications.options.none.text = None -anc_profile.step2.ultrasound_done.label = Ultrasound done? -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step6.medications.options.iron.text = Iron -anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease -anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling -anc_profile.step4.health_conditions.options.diabetes.text = Diabetes, pre-existing type 1 -anc_profile.step1.occupation_other.hint = Specify -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step1.marital_status.v_required.err = Please specify your marital status -anc_profile.step8.partner_hiv_status.v_required.err = Please select one -anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step3.prev_preg_comps.options.none.text = None -anc_profile.step4.allergies.options.dont_know.text = Don't know -anc_profile.step3.pre_eclampsia_toaster.text = Pre-eclampsia risk counseling -anc_profile.step4.allergies.hint = Any allergies? -anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Gestational Diabetes -anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Please select the unknown HIV Date -anc_profile.step2.facility_in_us_toaster.text = Refer for ultrasound in facility with U/S equipment -anc_profile.step4.surgeries.hint = Any surgeries? -anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts -anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? -anc_profile.step7.tobacco_user.label = Uses tobacco products? -anc_profile.step1.occupation.label = Occupation -anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products -anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know -anc_profile.step6.medications.options.hematinic.text = Hematinic -anc_profile.step3.c_sections_label.text = No. of C-sections -anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsions -anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alkohol -anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required -anc_profile.step4.allergies.options.albendazole.text = Dawa Albendazol Bahasa -anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended -anc_profile.step1.educ_level.label = Highest level of school -anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling -anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Ya -anc_profile.step4.allergies.options.penicillin.text = Penicillin -anc_profile.step1.occupation.options.unemployed.text = Unemployed -anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required -anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) -anc_profile.step1.marital_status.options.widowed.text = Widowed -anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? -anc_profile.step4.health_conditions_other.hint = Other health condition - specify -anc_profile.step6.medications.options.antivirals.text = Antivirals -anc_profile.step6.medications.options.antacids.text = Antacids -anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step7.hiv_counselling_toaster.text = HIV risk counseling -anc_profile.step3.title = Obstetric History -anc_profile.step5.fully_immunised_toaster.text = Woman is fully immunised against tetanus! -anc_profile.step4.pre_eclampsia_two_toaster.text = Pre-eclampsia risk counseling -anc_profile.step3.substances_used_other.v_regex.err = Please specify other specify other substances abused -anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Heavy bleeding (during or after delivery) -anc_profile.step4.health_conditions.label = Any chronic or past health conditions? -anc_profile.step4.surgeries.v_required.err = Please select at least one surgeries -anc_profile.step8.partner_hiv_status.options.dont_know.text = Don't know -anc_profile.step3.last_live_birth_preterm.v_required.err = Last live birth preterm is required -anc_profile.step4.health_conditions.options.dont_know.text = Don't know -anc_profile.step7.alcohol_substance_enquiry.label = Clinical enquiry for alcohol and other substance use done? -anc_profile.step4.health_conditions.options.autoimmune_disease.text = Autoimmune disease -anc_profile.step6.medications.options.vitamina.text = Vitamin A -anc_profile.step6.medications.options.dont_know.text = Don't know -anc_profile.step7.condom_use.options.yes.text = Yes -anc_profile.step4.health_conditions.options.cancer.text = Cancer - gynaecological -anc_profile.step7.substance_use_toaster.toaster_info_title = Alcohol / substance use counseling -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = No doses -anc_profile.step4.allergies_other.hint = Specify -anc_profile.step7.hiv_counselling_toaster.toaster_info_title = HIV risk counseling -anc_profile.step7.caffeine_intake.hint = Daily caffeine intake -anc_profile.step2.ultrasound_gest_age_wks.hint = GA from ultrasound - weeks -anc_profile.step4.allergies.options.other.text = Other (specify) -anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Pre-eclampsia risk counseling -anc_profile.step4.surgeries_other.v_required.err = Please specify the Other surgeries -anc_profile.step2.sfh_gest_age.v_required.err = Please give the GA from SFH or abdominal palpation - weeks -anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Using LMP -anc_profile.step4.allergies.options.none.text = None -anc_profile.step3.stillbirths.v_required.err = Still births is required -anc_profile.step7.tobacco_user.options.no.text = No -anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems -anc_profile.step1.marital_status.options.married.text = Married or living together -anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date -anc_profile.step7.shs_exposure.options.yes.text = Yes -anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. -anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) -anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date -anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) -anc_profile.step4.allergies.options.mebendazole.text = Mebendazole -anc_profile.step7.condom_use.label = Uses (male or female) condoms during sex? -anc_profile.step1.occupation.v_required.err = Please select at least one occupation -anc_profile.step6.medications.options.analgesic.text = Analgesic -anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits -anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age -anc_profile.step3.gravida_label.text = No. of pregnancies (including this pregnancy) -anc_profile.step8.partner_hiv_status.options.positive.text = Positive -anc_profile.step4.allergies.options.ginger.text = Ginger -anc_profile.step2.title = Current Pregnancy -anc_profile.step2.select_gest_age_edd_label.text = Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text = Under - immunized -anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclampsia -anc_profile.step5.immunised_against_flu_toaster.text = Woman is immunised against flu! -anc_profile.step1.occupation.options.informal_employment_other.text = Informal employment (other) -anc_profile.step4.allergies.options.magnesium_carbonate.text = Magnesium carbonate -anc_profile.step4.health_conditions.options.none.text = None -anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabetic -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Using ultrasound -anc_profile.step6.medications.options.asthma.text = Asthma -anc_profile.step6.medications.options.doxylamine.text = Doxylamine -anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Tobacco use -anc_profile.step7.alcohol_substance_enquiry.label_info_text = This refers to the application of a specific enquiry to assess alcohol or other substance use. -anc_profile.step3.last_live_birth_preterm.options.no.text = No -anc_profile.step3.stillbirths_label.v_required.err = Still births is required -anc_profile.step4.health_conditions.options.hypertension.text = Hypertension -anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. -anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole -anc_profile.step6.medications.options.thyroid.text = Thyroid medication -anc_profile.step1.title = Demographic Info -anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? -anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? -anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). -anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended -anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. -anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? -anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment -anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery -anc_profile.step4.health_conditions.options.cancer_other.text = Cancer - other site (specify) -anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) -anc_profile.step4.health_conditions.options.diabetes_other.text = Diabetes, other or unspecified -anc_profile.step4.health_conditions.options.diabetes_type2.text = Diabetes, pre-existing type 2 -anc_profile.step4.health_conditions_cancer_other.hint = Other cancer - specify -anc_profile.step4.health_conditions_cancer_other.v_required.err = Please specify the other type of cancer -anc_profile.step6.tt_immun_status.label_info_text = Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. -anc_profile.step6.medications.options.prep_hiv.text = Oral pre-exposure prophylaxis (PrEP) for HIV -anc_profile.step7.caffeine_intake.options.tea.text = More than 4 cups of tea -anc_profile.step7.caffeine_intake.options.soda.text = More than one can of soda or energy drink -anc_profile.step7.caffeine_intake.label_info_text = Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. +anc_profile.step1.occupation.options.other.text=Other (specify) +anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text=More than 12 bars (50 g) of chocolate +anc_profile.step2.ultrasound_done.label_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_done.options.no.text=No +anc_profile.step3.gestational_diabetes_toaster.toaster_info_text=Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy +anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step7.tobacco_user.options.recently_quit.text=Recently quit +anc_profile.step4.surgeries.options.removal_of_the_tube.text=Removal of the tube (salpingectomy) +anc_profile.step2.lmp_known.v_required.err=Lmp unknown is required +anc_profile.step3.prev_preg_comps_other.hint=Specify +anc_profile.step6.medications.options.antibiotics.text=Other antibiotics +anc_profile.step6.medications.options.aspirin.text=Aspirin +anc_profile.step8.bring_partners_toaster.toaster_info_title=Advise woman to bring partner(s) in for HIV testing. +anc_profile.step3.last_live_birth_preterm.label=Was the last live birth preterm (less than 37 weeks)? +anc_profile.step4.allergies.options.aluminium_hydroxide.text=Aluminium hydroxide +anc_profile.step7.alcohol_substance_use.options.cocaine.text=Kokain +anc_profile.step8.partner_hiv_status.label=Partner HIV status +anc_profile.step5.flu_immunisation_toaster.toaster_info_title=Flu immunisation recommended +anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step4.surgeries.options.removal_of_ovary.text=Removal of ovary (oophorectomy) +anc_profile.step1.occupation.options.formal_employment.text=Formal employment +anc_profile.step3.substances_used.options.marijuana.text=Marijuana +anc_profile.step2.lmp_known.options.no.text=No +anc_profile.step3.gestational_diabetes_toaster.text=Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step7.other_substance_use.hint=Specify +anc_profile.step3.prev_preg_comps_other.v_required.err=Please specify other past pregnancy problems +anc_profile.step3.prev_preg_comps.options.macrosomia.text=Macrosomia +anc_profile.step2.select_gest_age_edd_label.v_required.err=Select preferred gestational age +anc_profile.step1.educ_level.options.secondary.text=Secondary +anc_profile.step5.title=Immunisation Status +anc_profile.step3.gravida.v_required.err=No of pregnancies is required +anc_profile.step3.prev_preg_comps.label=Any past pregnancy problems? +anc_profile.step4.allergies.options.malaria_medication.text=Malaria medication (sulfadoxine-pyrimethamine) +anc_profile.step4.allergies.label=Any allergies? +anc_profile.step6.medications.options.folic_acid.text=Folic Acid +anc_profile.step6.medications.options.anti_convulsive.text=Anti-convulsive +anc_profile.step7.condom_counseling_toaster.text=Condom counseling +anc_profile.step3.substances_used_other.v_required.err=Please specify other substances abused +anc_profile.step6.medications_other.hint=Specify +anc_profile.step3.previous_pregnancies.v_required.err=Previous pregnancies is required +anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text=PrEP tenofovir disoproxil fumarate (TDF) +anc_profile.step3.prev_preg_comps.v_required.err=Please select at least one past pregnancy problems +anc_profile.step7.tobacco_cessation_toaster.toaster_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. +anc_profile.step3.miscarriages_abortions_label.text=No. of pregnancies lost/ended (before 22 weeks / 5 months) +anc_profile.step8.partner_hiv_status.options.negative.text=Negative +anc_profile.step7.caffeine_intake.options.none.text=None of the above +anc_profile.step4.title=Medical History +anc_profile.step4.health_conditions_other.v_required.err=Please specify the chronic or past health conditions +anc_profile.step2.ultrasound_gest_age_days.hint=GA from ultrasound - days +anc_profile.step3.substances_used.label=Specify illicit substance use +anc_profile.step7.condom_counseling_toaster.toaster_info_title=Condom counseling +anc_profile.step3.pre_eclampsia_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step4.surgeries.options.dilation_and_curettage.text=Dilation and curettage +anc_profile.step7.substance_use_toaster.text=Alcohol / substance use counseling +anc_profile.step7.other_substance_use.v_required.err=Please specify other substances abused +anc_profile.step3.c_sections.v_required.err=C-sections is required +anc_profile.step4.surgeries_other_gyn_proced.v_required.err=Please specify the other gynecological procedures +anc_profile.step3.gravida_label.v_required.err=No of pregnancies is required +anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text=Perineal tear (3rd or 4th degree) +anc_profile.step4.allergies.options.folic_acid.text=Folic acid +anc_profile.step6.medications.options.other.text=Other (specify) +anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text=Obat suntik +anc_profile.step6.medications.options.anti_malarials.text=Anti-malarials +anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text=More than 2 small cups (50 ml) of espresso +anc_profile.step2.facility_in_us_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step2.ultrasound_gest_age_days.v_required.err=Please give the GA from ultrasound - days +anc_profile.step2.ultrasound_done.options.yes.text=Yes +anc_profile.step7.tobacco_cessation_toaster.toaster_info_title=Tobacco cessation counseling +anc_profile.step1.occupation.hint=Occupation +anc_profile.step3.live_births_label.text=No. of live births (after 22 weeks) +anc_profile.step7.caffeine_intake.label=Daily caffeine intake +anc_profile.step6.medications.options.metoclopramide.text=Metoclopramide +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step4.surgeries.options.cervical_cone.text=Partial removal of the cervix (cervical cone) +anc_profile.step5.flu_immun_status.label=Flu immunisation status +anc_profile.step7.alcohol_substance_use.label=Uses alcohol and/or other substances? +anc_profile.step1.occupation_other.v_required.err=Please specify your occupation +anc_profile.step7.alcohol_substance_use.options.other.text=Other (specify) +anc_profile.step1.educ_level.options.higher.text=Higher +anc_profile.step3.substances_used.v_required.err=Please select at least one alcohol or illicit substance use +anc_profile.step6.medications.label=Current medications +anc_profile.step6.medications.options.magnesium.text=Magnesium +anc_profile.step6.medications.options.anthelmintic.text=Anthelmintic +anc_profile.step3.stillbirths_label.text=No. of stillbirths (after 22 weeks) +anc_profile.step1.educ_level.v_required.err=Please specify your education level +anc_profile.step4.health_conditions.options.hiv.text=HIV +anc_profile.step1.hiv_risk_counseling_toaster.text=HIV risk counseling +anc_profile.step7.tobacco_user.v_required.err=Please select if woman uses any tobacco products +anc_profile.step3.substances_used.options.other.text=Other (specify) +anc_profile.step6.medications.options.calcium.text=Kalsium +anc_profile.step5.flu_immunisation_toaster.toaster_info_text=Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. +anc_profile.step6.title=Medications +anc_profile.step6.medications.options.hemorrhoidal.text=Hemorrhoidal medication +anc_profile.step8.hiv_risk_counselling_toaster.text=HIV risk counseling +anc_profile.step2.sfh_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step4.surgeries.options.dont_know.text=Don't know +anc_profile.step6.medications.v_required.err=Please select at least one medication +anc_profile.step1.occupation.options.student.text=Student +anc_profile.step3.gestational_diabetes_toaster.toaster_info_title=Gestational diabetes mellitus (GDM) risk counseling +anc_profile.step3.substances_used.options.injectable_drugs.text=Injectable drugs +anc_profile.step5.flu_immun_status.options.unknown.text=Unknown +anc_profile.step7.alcohol_substance_enquiry.options.no.text=No +anc_profile.step4.surgeries.label=Any surgeries? +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully immunized +anc_profile.step6.medications.options.anti_hypertensive.text=Anti-hypertensive +anc_profile.step3.last_live_birth_preterm.options.dont_know.text=Don't know +anc_profile.step5.tt_immun_status.options.unknown.text=Unknown +anc_profile.step5.flu_immun_status.v_required.err=Please select flu immunisation status +anc_profile.step3.last_live_birth_preterm.options.yes.text=Yes +anc_profile.step2.ultrasound_toaster.text=Ultrasound recommended +anc_profile.step7.substance_use_toaster.toaster_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. +anc_profile.step1.marital_status.options.divorced.text=Divorced / separated +anc_profile.step5.tt_immun_status.options.3_doses.text=Fully immunized +anc_profile.step8.title=Partner's HIV Status +anc_profile.step4.allergies.options.iron.text=Iron +anc_profile.step6.medications.options.arvs.text=Antiretrovirals (ARVs) +anc_profile.step6.medications.options.multivitamin.text=Multivitamin +anc_profile.step7.shs_exposure.options.no.text=No +anc_profile.step1.educ_level.options.dont_know.text=Don't know +anc_profile.step7.caffeine_reduction_toaster.toaster_info_title=Caffeine reduction counseling +anc_profile.step7.caffeine_reduction_toaster.text=Caffeine reduction counseling +anc_profile.step7.second_hand_smoke_toaster.toaster_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. +anc_profile.step4.health_conditions.options.epilepsy.text=Epilepsy +anc_profile.step3.miscarriages_abortions.v_required.err=Miscarriage abortions is required +anc_profile.step4.allergies.v_required.err=Please select at least one allergy +anc_profile.step4.surgeries.options.none.text=None +anc_profile.step2.sfh_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step5.tt_immun_status.options.ttcv_not_received.text=No doses +anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text=Forceps +anc_profile.step5.flu_immunisation_toaster.text=Flu immunisation recommended +anc_profile.step3.prev_preg_comps.options.alcohol_use.text=Alcohol use +anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step3.substances_used_other.hint=Specify +anc_profile.step7.condom_use.v_required.err=Please select if you use any tobacco products +anc_profile.step6.medications.options.antitussive.text=Antitussive +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title=Pre-eclampsia risk counseling +anc_profile.step4.health_conditions.options.blood_disorder.text=Blood disorder (e.g. sickle cell anemia, thalassemia) +anc_profile.step5.tt_immun_status.label=TTCV immunisation status +anc_profile.step5.tt_immunisation_toaster.toaster_info_title=TTCV immunisation recommended +anc_profile.step7.alcohol_substance_use.options.marijuana.text=Ganja +anc_profile.step4.allergies.options.calcium.text=Kalsium +anc_profile.step2.ultrasound_gest_age_wks.v_required.err=Please give the GA from ultrasound - weeks +anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text=More than 3 cups (300 ml) of instant coffee +anc_profile.step5.tt_immun_status.v_required.err=Please select TT Immunisation status +anc_profile.step4.surgeries.options.other.text=Other surgeries (specify) +anc_profile.step3.prev_preg_comps.options.illicit_substance.text=Substance use +anc_profile.step2.lmp_known.options.yes.text=Yes +anc_profile.step2.lmp_known.label_info_title=LMP known? +anc_profile.step4.surgeries.options.other_gynecological_procedures.text=Other gynecological procedures (specify) +anc_profile.step7.caffeine_reduction_toaster.toaster_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. +anc_profile.step4.allergies.options.chamomile.text=Chamomile +anc_profile.step2.lmp_known.label=LMP known? +anc_profile.step3.live_births.v_required.err=Live births is required +anc_profile.step7.condom_use.options.no.text=No +anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text=Baby died within 24 hours of birth +anc_profile.step4.surgeries_other_gyn_proced.hint=Other gynecological procedures +anc_profile.step1.occupation_other.v_regex.err=Please specify your occupation +anc_profile.step1.marital_status.label=Marital status +anc_profile.step7.title=Woman's Behaviour +anc_profile.step4.surgeries_other.hint=Other surgeries +anc_profile.step3.substances_used.options.cocaine.text=Kokain +anc_profile.step1.educ_level.options.primary.text=Primary +anc_profile.step4.health_conditions.options.other.text=Other (specify) +anc_profile.step6.medications_other.v_required.err=Please specify the Other medications +anc_profile.step7.second_hand_smoke_toaster.text=Second-hand smoke counseling +anc_profile.step1.educ_level.options.none.text=None +anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text=Pre-eclampsia +anc_profile.step7.condom_counseling_toaster.toaster_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. +anc_profile.step4.health_conditions.v_required.err=Please select at least one chronic or past health conditions +anc_profile.step7.alcohol_substance_use.options.none.text=Tidak ada +anc_profile.step7.tobacco_user.options.yes.text=Yes +anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text=More than 2 cups of coffee (brewed, filtered, instant or espresso) +anc_profile.step2.ultrasound_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). +anc_profile.step3.prev_preg_comps.options.other.text=Other (specify) +anc_profile.step2.facility_in_us_toaster.toaster_info_title=Refer for ultrasound in facility with U/S equipment +anc_profile.step6.medications.options.none.text=None +anc_profile.step2.ultrasound_done.label=Ultrasound done? +anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. +anc_profile.step6.medications.options.iron.text=Iron +anc_profile.step2.sfh_gest_age.hint=GA from SFH or palpation - weeks +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step4.health_conditions.options.kidney_disease.text=Kidney disease +anc_profile.step7.tobacco_cessation_toaster.text=Tobacco cessation counseling +anc_profile.step4.health_conditions.options.diabetes.text=Diabetes, pre-existing type 1 +anc_profile.step1.occupation_other.hint=Specify +anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation +anc_profile.step8.bring_partners_toaster.text=Advise woman to bring partner(s) in for HIV testing. +anc_profile.step1.marital_status.v_required.err=Please specify your marital status +anc_profile.step8.partner_hiv_status.v_required.err=Please select one +anc_profile.step7.alcohol_substance_use.v_required.err=Please specify if woman uses alcohol/abuses substances +anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits +anc_profile.step3.prev_preg_comps.options.none.text=None +anc_profile.step4.allergies.options.dont_know.text=Don't know +anc_profile.step3.pre_eclampsia_toaster.text=Pre-eclampsia risk counseling +anc_profile.step4.allergies.hint=Any allergies? +anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text=Gestational Diabetes +anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err=Please select the unknown HIV Date +anc_profile.step2.facility_in_us_toaster.text=Refer for ultrasound in facility with U/S equipment +anc_profile.step4.surgeries.hint=Any surgeries? +anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text=Removal of ovarian cysts +anc_profile.step4.health_conditions.hint=Any chronic or past health conditions? +anc_profile.step7.tobacco_user.label=Uses tobacco products? +anc_profile.step1.occupation.label=Occupation +anc_profile.step7.alcohol_substance_enquiry.v_required.err=Please select if you use any tobacco products +anc_profile.step3.prev_preg_comps.options.dont_know.text=Don't know +anc_profile.step6.medications.options.hematinic.text=Hematinic +anc_profile.step3.c_sections_label.text=No. of C-sections +anc_profile.step3.prev_preg_comps.options.convulsions.text=Convulsions +anc_profile.step7.alcohol_substance_use.options.alcohol.text=Alkohol +anc_profile.step7.caffeine_intake.v_required.err=Daily caffeine intake is required +anc_profile.step4.allergies.options.albendazole.text=Dawa Albendazol Bahasa +anc_profile.step5.tt_immunisation_toaster.text=TTCV immunisation recommended +anc_profile.step1.educ_level.label=Highest level of school +anc_profile.step7.second_hand_smoke_toaster.toaster_info_title=Second-hand smoke counseling +anc_profile.step7.alcohol_substance_enquiry.options.yes.text=Ya +anc_profile.step4.allergies.options.penicillin.text=Penicillin +anc_profile.step1.occupation.options.unemployed.text=Unemployed +anc_profile.step2.ultrasound_done.v_required.err=Ultrasound done is required +anc_profile.step1.marital_status.options.single.text=Never married and never lived together (single) +anc_profile.step1.marital_status.options.widowed.text=Widowed +anc_profile.step7.shs_exposure.label=Anyone in the household smokes tobacco products? +anc_profile.step4.health_conditions_other.hint=Other health condition - specify +anc_profile.step6.medications.options.antivirals.text=Antivirals +anc_profile.step6.medications.options.antacids.text=Antacids +anc_profile.step2.ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text=Using LMP +anc_profile.step7.hiv_counselling_toaster.text=HIV risk counseling +anc_profile.step3.title=Obstetric History +anc_profile.step5.fully_immunised_toaster.text=Woman is fully immunised against tetanus! +anc_profile.step4.pre_eclampsia_two_toaster.text=Pre-eclampsia risk counseling +anc_profile.step3.substances_used_other.v_regex.err=Please specify other specify other substances abused +anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text=Heavy bleeding (during or after delivery) +anc_profile.step4.health_conditions.label=Any chronic or past health conditions? +anc_profile.step4.surgeries.v_required.err=Please select at least one surgeries +anc_profile.step8.partner_hiv_status.options.dont_know.text=Don't know +anc_profile.step3.last_live_birth_preterm.v_required.err=Last live birth preterm is required +anc_profile.step4.health_conditions.options.dont_know.text=Don't know +anc_profile.step7.alcohol_substance_enquiry.label=Clinical enquiry for alcohol and other substance use done? +anc_profile.step4.health_conditions.options.autoimmune_disease.text=Autoimmune disease +anc_profile.step6.medications.options.vitamina.text=Vitamin A +anc_profile.step6.medications.options.dont_know.text=Don't know +anc_profile.step7.condom_use.options.yes.text=Yes +anc_profile.step4.health_conditions.options.cancer.text=Cancer - gynaecological +anc_profile.step7.substance_use_toaster.toaster_info_title=Alcohol / substance use counseling +anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text=No doses +anc_profile.step4.allergies_other.hint=Specify +anc_profile.step7.hiv_counselling_toaster.toaster_info_title=HIV risk counseling +anc_profile.step7.caffeine_intake.hint=Daily caffeine intake +anc_profile.step2.ultrasound_gest_age_wks.hint=GA from ultrasound - weeks +anc_profile.step4.allergies.options.other.text=Other (specify) +anc_profile.step3.pre_eclampsia_toaster.toaster_info_title=Pre-eclampsia risk counseling +anc_profile.step4.surgeries_other.v_required.err=Please specify the Other surgeries +anc_profile.step2.sfh_gest_age.v_required.err=Please give the GA from SFH or abdominal palpation - weeks +anc_profile.step2.lmp_gest_age_selection.options.lmp.text=Using LMP +anc_profile.step4.allergies.options.none.text=None +anc_profile.step3.stillbirths.v_required.err=Still births is required +anc_profile.step7.tobacco_user.options.no.text=No +anc_profile.step3.prev_preg_comps_other.v_regex.err=Please specify other past pregnancy problems +anc_profile.step1.marital_status.options.married.text=Married or living together +anc_profile.step4.hiv_diagnosis_date.v_required.err=Please enter the HIV diagnosis date +anc_profile.step7.shs_exposure.options.yes.text=Yes +anc_profile.step8.bring_partners_toaster.toaster_info_text=Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. +anc_profile.step4.surgeries.options.removal_of_fibroid.text=Removal of fibroids (myomectomy) +anc_profile.step4.hiv_diagnosis_date.hint=HIV diagnosis date +anc_profile.step7.shs_exposure.v_required.err=Please select if you use any tobacco products +anc_profile.step1.occupation.options.informal_employment_sex_worker.text=Employment that puts woman at increased risk for HIV (e.g. sex worker) +anc_profile.step4.allergies.options.mebendazole.text=Mebendazole +anc_profile.step7.condom_use.label=Uses (male or female) condoms during sex? +anc_profile.step1.occupation.v_required.err=Please select at least one occupation +anc_profile.step6.medications.options.analgesic.text=Analgesic +anc_profile.step7.hiv_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits +anc_profile.step2.lmp_gest_age_selection.v_required.err=Please select preferred gestational age +anc_profile.step3.gravida_label.text=No. of pregnancies (including this pregnancy) +anc_profile.step8.partner_hiv_status.options.positive.text=Positive +anc_profile.step4.allergies.options.ginger.text=Ginger +anc_profile.step2.title=Current Pregnancy +anc_profile.step2.select_gest_age_edd_label.text=Select preferred gestational age +anc_profile.step5.tt_immun_status.options.1-4_doses.text=Under - immunized +anc_profile.step3.prev_preg_comps.options.eclampsia.text=Eclampsia +anc_profile.step5.immunised_against_flu_toaster.text=Woman is immunised against flu! +anc_profile.step1.occupation.options.informal_employment_other.text=Informal employment (other) +anc_profile.step4.allergies.options.magnesium_carbonate.text=Magnesium carbonate +anc_profile.step4.health_conditions.options.none.text=None +anc_profile.step6.medications.options.anti_diabetic.text=Anti-diabetic +anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound +anc_profile.step6.medications.options.asthma.text=Asthma +anc_profile.step6.medications.options.doxylamine.text=Doxylamine +anc_profile.step3.prev_preg_comps.options.tobacco_use.text=Tobacco use +anc_profile.step7.alcohol_substance_enquiry.label_info_text=This refers to the application of a specific enquiry to assess alcohol or other substance use. +anc_profile.step3.last_live_birth_preterm.options.no.text=No +anc_profile.step3.stillbirths_label.v_required.err=Still births is required +anc_profile.step4.health_conditions.options.hypertension.text=Hypertension +anc_profile.step5.tt_immunisation_toaster.toaster_info_text=TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. +anc_profile.step6.medications.options.cotrimoxazole.text=Cotrimoxazole +anc_profile.step6.medications.options.thyroid.text=Thyroid medication +anc_profile.step1.title=Demographic Info +anc_profile.step2.ultrasound_done.label_info_title=Ultrasound done? +anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text=HIV diagnosis date unknown? +anc_profile.step2.lmp_known.label_info_text=LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). +anc_profile.step2.ultrasound_toaster.toaster_info_title=Ultrasound recommended +anc_profile.step1.headss_toaster.text=Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. +anc_profile.step1.headss_toaster.toaster_info_text=Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? +anc_profile.step1.headss_toaster.toaster_info_title=Conduct HEADSS assessment +anc_profile.step3.prev_preg_comps.options.vacuum.text=Vacuum delivery +anc_profile.step4.health_conditions.options.cancer_other.text=Cancer - other site (specify) +anc_profile.step4.health_conditions.options.gest_diabetes.text=Diabetes arising in pregnancy (gestational diabetes) +anc_profile.step4.health_conditions.options.diabetes_other.text=Diabetes, other or unspecified +anc_profile.step4.health_conditions.options.diabetes_type2.text=Diabetes, pre-existing type 2 +anc_profile.step4.health_conditions_cancer_other.hint=Other cancer - specify +anc_profile.step4.health_conditions_cancer_other.v_required.err=Please specify the other type of cancer +anc_profile.step6.tt_immun_status.label_info_text=Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. +anc_profile.step6.medications.options.prep_hiv.text=Oral pre-exposure prophylaxis (PrEP) for HIV +anc_profile.step7.caffeine_intake.options.tea.text=More than 4 cups of tea +anc_profile.step7.caffeine_intake.options.soda.text=More than one can of soda or energy drink +anc_profile.step7.caffeine_intake.label_info_text=Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. From ef679d75e0fd1548b2b539a98dd9e8ea1121dfc4 Mon Sep 17 00:00:00 2001 From: vend Date: Fri, 18 Feb 2022 17:20:14 +0500 Subject: [PATCH 161/302] data inconsistency issue resolved issue# 729 --- .../anc/library/interactor/ContactInteractor.java | 7 ++++++- .../library/repository/ContactTasksRepository.java | 14 ++++++++++++++ .../sync/BaseAncClientProcessorForJava.java | 2 +- reference-app/build.gradle | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java index 1b3ef1e75..a7da72695 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/ContactInteractor.java @@ -19,6 +19,7 @@ import org.smartregister.anc.library.model.PartialContacts; import org.smartregister.anc.library.model.PreviousContact; import org.smartregister.anc.library.model.Task; +import org.smartregister.anc.library.repository.ContactTasksRepository; import org.smartregister.anc.library.repository.PartialContactRepository; import org.smartregister.anc.library.repository.PreviousContactRepository; import org.smartregister.anc.library.rule.ContactRule; @@ -37,6 +38,8 @@ import timber.log.Timber; +import static org.smartregister.anc.library.util.ConstantsUtils.CONTACT_DATE; + /** * Created by keyman 30/07/2018. */ @@ -177,7 +180,7 @@ private void addAttentionFlags(String baseEntityId, Map details, private void addTheContactDate(String baseEntityId, Map details) { PreviousContact previousContact = preLoadPreviousContact(baseEntityId, details); - previousContact.setKey(ConstantsUtils.CONTACT_DATE); + previousContact.setKey(CONTACT_DATE); previousContact.setValue(Utils.getDBDateToday()); AncLibrary.getInstance().getPreviousContactRepository().savePreviousContact(previousContact); } @@ -235,6 +238,8 @@ private String getCurrentContactState(String baseEntityId) throws JSONException stateObject = new JSONObject(); for (PreviousContact previousContact : previousContactList) { + if(previousContact.getKey().equals(CONTACT_DATE) && stateObject.has(CONTACT_DATE)) + continue; stateObject.put(previousContact.getKey(), previousContact.getValue()); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/ContactTasksRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/ContactTasksRepository.java index 95129f23e..bd5bcb8f1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/ContactTasksRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/ContactTasksRepository.java @@ -63,6 +63,13 @@ public static void createTable(SQLiteDatabase database) { database.execSQL(INDEX_BASE_ENTITY_ID); database.execSQL(INDEX_KEY); } + public void deleteAllTasks(String baseEntityID) + { + if(baseEntityID != null) { + String deleteQuery = BASE_ENTITY_ID + " = ? "; + getWritableDatabase().delete(TABLE_NAME, deleteQuery, new String[]{baseEntityID}); + } + } /** * Inserts or updates the tasks into the contact_tasks table. Returns a boolean which is used to refresh the tasks view on the profile pages @@ -79,6 +86,13 @@ public boolean saveOrUpdateTasks(Task task) { getWritableDatabase().update(TABLE_NAME, createValuesFor(task), sqlQuery, new String[]{String.valueOf(task.getId())}); return true; } else { + Cursor cursor = getReadableDatabase().rawQuery("SELECT * FROM "+TABLE_NAME+" where key = ? AND base_entity_id = ?",new String[]{task.getKey(),task.getBaseEntityId()}); + if(cursor != null && cursor.getCount()>0) + { + String updateLatestQuery = KEY + " = ? AND " + BASE_ENTITY_ID + " = ? "; + getWritableDatabase().delete(TABLE_NAME, updateLatestQuery,new String[]{task.getKey(),task.getBaseEntityId()}); + } + getWritableDatabase().insert(TABLE_NAME, null, createValuesFor(task)); return false; } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index 899105c22..e77e2ad32 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -141,7 +141,7 @@ private void processContactTasks(Event event) { String openTasks = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.OPEN_TEST_TASKS); if (StringUtils.isNotBlank(openTasks)) { JSONArray openTasksArray = new JSONArray(openTasks); - + getContactTasksRepository().deleteAllTasks(event.getBaseEntityId()); for (int i = 0; i < openTasksArray.length(); i++) { JSONObject tasks = new JSONObject(openTasksArray.getString(i)); String key = tasks.optString(JsonFormConstants.KEY); diff --git a/reference-app/build.gradle b/reference-app/build.gradle index e8f34196f..96353df19 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 11 +ext.versionPatch = 12 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From c571bc8d4684145aca6684d6ac1b67cc40ff4b1c Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 9 Mar 2022 09:18:40 +0300 Subject: [PATCH 162/302] Null Safety of method returnTranslatedStringJoinedValue --- .../src/main/java/org/smartregister/anc/library/util/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 099a48c7e..e683a407b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -881,7 +881,7 @@ public static String returnTranslatedStringJoinedValue(String value) { translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; return translated_text; } - if (value.contains(",") && value.contains(".") && value.contains(JsonFormConstants.TEXT)) { + if (StringUtils.isNotBlank(value) && value.contains(",") && value.contains(".") && value.contains(JsonFormConstants.TEXT)) { List attentionFlagValueArray = Arrays.asList(value.trim().split(",")); List translatedList = new ArrayList<>(); for (int i = 0; i < attentionFlagValueArray.size(); i++) { From b127e5fd4b115fc301aea74e2eb39348f52e9f2e Mon Sep 17 00:00:00 2001 From: vend Date: Tue, 15 Mar 2022 13:37:10 +0500 Subject: [PATCH 163/302] merged translations along with the fixes #776 #791 and # 729 --- .../activity/ContactJsonFormActivity.java | 16 +++++----------- .../repository/PreviousContactRepository.java | 4 ++-- .../smartregister/anc/library/util/Utils.java | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java index 9e7dfeccc..b0ffb3634 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/ContactJsonFormActivity.java @@ -13,7 +13,6 @@ import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.domain.Form; import com.vijay.jsonwizard.fragments.JsonWizardFormFragment; -import com.vijay.jsonwizard.utils.NativeFormLangUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -26,10 +25,9 @@ import org.smartregister.anc.library.helper.AncRulesEngineFactory; import org.smartregister.anc.library.util.ANCFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.Utils; -import java.util.Arrays; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import timber.log.Timber; @@ -69,16 +67,12 @@ public void init(String json) { }.getType()); if (globalValues.containsKey(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE) && StringUtils.isNotBlank(globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE))) { String danger_signs_value = globalValues.get(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE); - if (danger_signs_value.contains(",") && danger_signs_value.contains(".")) { - List list = Arrays.asList(danger_signs_value.split(",")), finalList = new LinkedList<>(); - for (int i = 0; i < list.size(); i++) { - String text = list.get(i).trim(); - String translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - finalList.add(translated_text); - } - globalValues.put(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE, finalList.size() > 1 ? String.join(",", finalList) : finalList.size() == 1 ? finalList.get(0) : ""); + if (danger_signs_value.contains(",") ||( danger_signs_value.contains(".") && danger_signs_value.contains(JsonFormConstants.TEXT) )) { + String danger_signs_translated_text = Utils.returnTranslatedStringJoinedValue(danger_signs_value); + globalValues.put(ConstantsUtils.DANGER_SIGNS + ConstantsUtils.SuffixUtils.VALUE, danger_signs_translated_text); } } + } else { globalValues = new HashMap<>(); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 1907dbfdf..cc0541718 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -259,7 +259,7 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { */ private Cursor getAllTests(String baseEntityId, SQLiteDatabase database) { String selection = ""; - String orderBy = ID + " DESC"; + String orderBy = "MAX( "+ID +") DESC"; String[] selectionArgs = null; if (StringUtils.isNotBlank(baseEntityId)) { @@ -330,7 +330,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool selectionArgs = new String[]{baseEntityId, getContactNo(contactNo, checkNegative)}; } - mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, null, null, orderBy, null); + mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, KEY, null, orderBy, null); if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index edec440fc..2723e54ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -928,9 +928,9 @@ public static boolean checkJsonArrayString(String input) { * @return */ @SuppressLint({"NewApi"}) - public static String returnTranslatedStringJoinedValue(String value, String key) { + public static String returnTranslatedStringJoinedValue(String value) { try { - if (value.startsWith("[")) { + if (StringUtils.isNotBlank(value) && value.charAt(0) == '[') { if (Utils.checkJsonArrayString(value)) { JSONArray jsonArray = new JSONArray(value); List translatedList = new ArrayList<>(); @@ -941,19 +941,19 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.size() == 1 ? translatedList.get(0) : ""; } else { - return value; + return value.substring(1, value.length() - 1); } } - if (value.startsWith("{")) { + if (StringUtils.isNotBlank(value) && value.charAt(0) == '{') { JSONObject attentionFlagObject = new JSONObject(value); String translated_text, text; text = attentionFlagObject.optString(JsonFormConstants.TEXT).trim(); translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; return translated_text; } - if (key.endsWith(ConstantsUtils.KeyUtils.VALUE) && value.contains(",") && value.contains(JsonFormConstants.TEXT)) { + if (StringUtils.isNotBlank(value) && value.contains(",") && value.contains(".") && value.contains(JsonFormConstants.TEXT)) { List attentionFlagValueArray = Arrays.asList(value.trim().split(",")); List translatedList = new ArrayList<>(); for (int i = 0; i < attentionFlagValueArray.size(); i++) { @@ -961,16 +961,17 @@ public static String returnTranslatedStringJoinedValue(String value, String key) translatedText = StringUtils.isNotBlank(textToTranslate) ? NativeFormLangUtils.translateDatabaseString(textToTranslate, AncLibrary.getInstance().getApplicationContext()) : ""; translatedList.add(translatedText); } - return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.get(0); + return translatedList.size() > 1 ? String.join(",", translatedList) : translatedList.size() == 1 ? translatedList.get(0) : ""; + } + if (StringUtils.isNotBlank(value) && value.contains(".") && !value.contains(",") && value.charAt(0) != '[' && !value.contains("{") && value.contains(JsonFormConstants.TEXT)) { + return NativeFormLangUtils.translateDatabaseString(value.trim(), AncLibrary.getInstance().getApplicationContext()); } return value; - } catch (Exception e) { e.printStackTrace(); Timber.e("Failed to translate String %s", e.toString()); return ""; } - } @Nullable From c60b51341c9f36dcefc82896298a918eafeb43c2 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 15 Mar 2022 12:03:46 +0300 Subject: [PATCH 164/302] Version 15 --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 3a41bc3c4..fdbb8827c 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 14 +ext.versionPatch = 15 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 06dbd893c62225dba389676105cc67de3210b99d Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 15 Mar 2022 15:35:32 +0300 Subject: [PATCH 165/302] Preview URL update --- reference-app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index fdbb8827c..a22438b91 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -143,7 +143,7 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', 'https://who-anc.preview.smartregister.org/opensrp/' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' @@ -159,10 +159,10 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', 'https://who-anc.preview.smartregister.org/opensrp/' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '3' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" From 7190e2c9755c9449877ab583a004ac3ccae9bbf7 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 31 Mar 2022 13:32:17 +0500 Subject: [PATCH 166/302] updated client native form --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 4ac80a96c..e2ef27b51 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -156,7 +156,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.16-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-alpha-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index a22438b91..ee6cc7a82 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -229,7 +229,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.16-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:2.1.16-alpha-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 70bb18d561d0954130b0d45d773d28202f22c626 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 31 Mar 2022 15:40:05 +0500 Subject: [PATCH 167/302] updated the main contact activity for the optibp widget --- .../anc/library/activity/MainContactActivity.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index e7298ea2c..46cf22923 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -9,6 +9,7 @@ import com.google.gson.reflect.TypeToken; import com.vijay.jsonwizard.constants.JsonFormConstants; import com.vijay.jsonwizard.rules.RuleConstant; +import com.vijay.jsonwizard.utils.FormUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; @@ -16,6 +17,7 @@ import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; +import org.smartregister.anc.library.constants.ANCJsonFormConstants; import org.smartregister.anc.library.contract.ContactContract; import org.smartregister.anc.library.domain.Contact; import org.smartregister.anc.library.model.PartialContact; @@ -55,6 +57,7 @@ public class MainContactActivity extends BaseContactActivity implements ContactC private List globalValueFields = new ArrayList<>(); private List editableFields = new ArrayList<>(); private String baseEntityId; + private String womanOpenSRPId; private String womanAge = ""; private final List invisibleRequiredFields = new ArrayList<>(); private final String[] contactForms = new String[]{ConstantsUtils.JsonFormUtils.ANC_QUICK_CHECK, ConstantsUtils.JsonFormUtils.ANC_PROFILE, @@ -72,6 +75,7 @@ protected void onResume() { (Map) getIntent().getSerializableExtra(ConstantsUtils.IntentKeyUtils.CLIENT_MAP); if (womanDetails != null && womanDetails.size() > 0) { womanAge = String.valueOf(Utils.getAgeFromDate(womanDetails.get(DBConstantsUtils.KeyUtils.DOB))); + womanOpenSRPId = womanDetails.get(DBConstantsUtils.KeyUtils.ANC_ID); } if (!presenter.baseEntityIdExists()) { presenter.setBaseEntityId(baseEntityId); @@ -657,6 +661,16 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } } } + + if (fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) + || fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND)) { + if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { + fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); + } + JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId); + fieldObject.put(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA, optiBPData); + } + } private void getValueMap(JSONObject object) throws JSONException { From ea53f67a6be46b17040c2c4a77525be2b6aebeb2 Mon Sep 17 00:00:00 2001 From: vend Date: Mon, 25 Apr 2022 18:35:35 +0500 Subject: [PATCH 168/302] upgraded version to 16 --- reference-app/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8fe9a2f70..ad147f619 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 14 +ext.versionPatch = 16 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion @@ -143,10 +143,10 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '3' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" @@ -159,10 +159,10 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' buildConfigField "int", "DATABASE_VERSION", '3' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" From bb29050e2d747333fd4b57a4a824ff9bdf081fb2 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Mon, 25 Jul 2022 19:53:28 +0300 Subject: [PATCH 169/302] saving new calibration data --- build.gradle | 4 ++-- opensrp-anc/build.gradle | 2 +- .../main/assets/json.form/anc_physical_exam.json | 8 ++++++++ .../library/activity/MainContactActivity.java | 16 +++++++++++----- .../library/fragment/HomeRegisterFragment.java | 4 ++-- .../repository/PreviousContactRepository.java | 6 ++++-- reference-app/build.gradle | 10 +++++----- reference-app/src/main/AndroidManifest.xml | 6 ++++-- .../anc/application/AncApplication.java | 9 +++------ 9 files changed, 40 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index fc108e35d..d07c826c5 100644 --- a/build.gradle +++ b/build.gradle @@ -78,8 +78,8 @@ subprojects { ext.androidToolsBuildGradle = '30.0.3' ext.androidBuildToolsVersion = '30.0.3' ext.androidMinSdkVersion = 18 - ext.androidCompileSdkVersion = 30 - ext.androidTargetSdkVersion = 30 + ext.androidCompileSdkVersion = 31 + ext.androidTargetSdkVersion = 31 ext.androidAnnotationsVersion = '3.0.1' ext.androidAnnotationsAPIVersion = '3.0.1' ext.jacocoVersion = "0.7.9" diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 8d381ce8d..a0bbfac8f 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -178,7 +178,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.16-PREVIEW-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.0.1-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 0e5c8e5bf..27b878dba 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -756,6 +756,14 @@ } } }, + { + "key": "optibp_client_calibration_data", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "hidden", + "value": "" + }, { "key": "toaster7", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 46cf22923..9c5230c45 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -626,7 +626,6 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj if (fieldObject.has(JsonFormConstants.OPTIONS_FIELD_NAME)) { boolean addDefaults = true; - for (int m = 0; m < fieldObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME).length(); m++) { String optionValue; if (fieldObject.getJSONArray(JsonFormConstants.OPTIONS_FIELD_NAME).getJSONObject(m) @@ -661,14 +660,20 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } } } - if (fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) || fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND)) { - if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { - fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); + if (fieldObject.has(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA)) { + fieldObject.remove(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA); } JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId); - fieldObject.put(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA, optiBPData); + fieldObject.put(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA, optiBPData); + } + if (fieldObject.optString(JsonFormConstants.KEY).equals(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_CALIBRATION_DATA)) { + //Function to read saved optibp calibration data + String previousContactBpValue = getMapValue(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_CALIBRATION_DATA); + if (StringUtils.isNotBlank(previousContactBpValue)) { + fieldObject.put(JsonFormConstants.VALUE, previousContactBpValue); + } } } @@ -810,6 +815,7 @@ protected void onPause() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK && data != null) { formInvalidFields = data.getStringExtra("formInvalidFields"); } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java index 3e0e56ce6..b0b81717e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/HomeRegisterFragment.java @@ -155,7 +155,7 @@ protected void onViewClicked(View view) { if (view.getTag() != null && view.getTag(R.id.VIEW_ID) == CLICK_VIEW_NORMAL) { Utils.navigateToProfile(getActivity(), (HashMap) pc.getColumnmaps()); } else if (view.getTag() != null && view.getTag(R.id.VIEW_ID) == CLICK_VIEW_ALERT_STATUS) { - if (Integer.valueOf(view.getTag(R.id.GESTATION_AGE).toString()) >= ConstantsUtils.DELIVERY_DATE_WEEKS) { + if (Integer.parseInt(view.getTag(R.id.GESTATION_AGE).toString()) >= ConstantsUtils.DELIVERY_DATE_WEEKS) { baseHomeRegisterActivity.showRecordBirthPopUp((CommonPersonObjectClient) view.getTag()); } else { String baseEntityId = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, false); @@ -180,7 +180,7 @@ public void onSyncInProgress(FetchStatus fetchStatus) { @Override public void showNotFoundPopup(String whoAncId) { NoMatchDialogFragment - .launchDialog((BaseRegisterActivity) Objects.requireNonNull(getActivity()), SecuredNativeSmartRegisterFragment.DIALOG_TAG, whoAncId); + .launchDialog((BaseRegisterActivity) requireActivity(), SecuredNativeSmartRegisterFragment.DIALOG_TAG, whoAncId); } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 908f8743f..6ddb8f4af 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -1,5 +1,6 @@ package org.smartregister.anc.library.repository; +import android.annotation.SuppressLint; import android.content.ContentValues; import android.text.TextUtils; import android.util.Log; @@ -225,7 +226,7 @@ public Facts getPreviousContactTestsFacts(String baseEntityId) { if (mCursor != null) { while (mCursor.moveToNext()) { String jsonValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - if (StringUtils.isNotBlank(jsonValue) && jsonValue.trim().charAt(0) == '{') { + if (StringUtils.isNotBlank(jsonValue) && jsonValue.trim().startsWith("{")) { JSONObject valueObject = new JSONObject(jsonValue); String text, translated_text; text = valueObject.optString(JsonFormConstants.TEXT).trim(); @@ -334,7 +335,7 @@ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, bool if (mCursor != null && mCursor.getCount() > 0) { while (mCursor.moveToNext()) { String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { + if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().startsWith("{")) { JSONObject previousContactObject = new JSONObject(previousContactValue); if (previousContactObject.has(JsonFormConstants.KEY) && previousContactObject.has(JsonFormConstants.TEXT)) { String translated_text, text; @@ -423,4 +424,5 @@ public Facts getImmediatePreviousSchedule(String baseEntityId, String contactNo) return schedule; } + } \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index ad147f619..c2eff87ca 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -143,10 +143,10 @@ android { minifyEnabled false zipAlignEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' buildConfigField "int", "DATABASE_VERSION", '3' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" @@ -159,10 +159,10 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://who-anc.preview.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' - buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1' + buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' buildConfigField "int", "DATABASE_VERSION", '3' buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" @@ -230,7 +230,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.16-PREVIEW-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.0.1-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/src/main/AndroidManifest.xml b/reference-app/src/main/AndroidManifest.xml index 31b7b544b..ebc452146 100644 --- a/reference-app/src/main/AndroidManifest.xml +++ b/reference-app/src/main/AndroidManifest.xml @@ -17,19 +17,21 @@ + android:windowSoftInputMode="stateAlwaysHidden|adjustResize" + android:exported="true"> diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 4baa59df9..1ba3f1f05 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -1,5 +1,8 @@ package org.smartregister.anc.application; +import static org.smartregister.util.Log.logError; +import static org.smartregister.util.Log.logInfo; + import android.content.Intent; import android.util.Log; @@ -32,14 +35,9 @@ import org.smartregister.view.activity.DrishtiApplication; import org.smartregister.view.receiver.TimeChangedBroadcastReceiver; -import java.io.FileNotFoundException; - import io.fabric.sdk.android.Fabric; import timber.log.Timber; -import static org.smartregister.util.Log.logError; -import static org.smartregister.util.Log.logInfo; - /** * Created by ndegwamartin on 21/06/2018. */ @@ -49,7 +47,6 @@ public class AncApplication extends DrishtiApplication implements TimeChangedBro @Override public void onCreate() { super.onCreate(); - mInstance = this; context = Context.getInstance(); context.updateApplicationContext(getApplicationContext()); From 8a0834de9d5d71f21d93d392e938fe8590c57c13 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Wed, 27 Jul 2022 21:41:53 +0300 Subject: [PATCH 170/302] previousContactBPValue querying --- .../main/assets/json.form/anc_physical_exam.json | 14 ++++---------- .../anc/library/activity/MainContactActivity.java | 12 +++--------- .../org/smartregister/anc/library/util/Utils.java | 2 +- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 27b878dba..20860a2b0 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -742,7 +742,8 @@ "read_only": false, "optibp_data": { "clientId": "", - "clientOpenSRPId": "" + "clientOpenSRPId": "", + "calibration": [] }, "fields_to_use_value": [ "bp_systolic", @@ -756,14 +757,6 @@ } } }, - { - "key": "optibp_client_calibration_data", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "type": "hidden", - "value": "" - }, { "key": "toaster7", "openmrs_entity_parent": "", @@ -908,7 +901,8 @@ "read_only": false, "optibp_data": { "clientId": "", - "clientOpenSRPId": "" + "clientOpenSRPId": "", + "calibration": "" }, "fields_to_use_value": [ "bp_systolic_repeat", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 9c5230c45..001e4a66f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -665,17 +665,11 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj if (fieldObject.has(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA)) { fieldObject.remove(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA); } - JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId); + String optibpButtonKey = fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) ? ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON : ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND; + String previousContactBpValue = getMapValue(optibpButtonKey) == null ? "" : getMapValue(optibpButtonKey); + JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId, previousContactBpValue); fieldObject.put(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA, optiBPData); } - if (fieldObject.optString(JsonFormConstants.KEY).equals(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_CALIBRATION_DATA)) { - //Function to read saved optibp calibration data - String previousContactBpValue = getMapValue(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_CALIBRATION_DATA); - if (StringUtils.isNotBlank(previousContactBpValue)) { - fieldObject.put(JsonFormConstants.VALUE, previousContactBpValue); - } - } - } private void getValueMap(JSONObject object) throws JSONException { diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index a11c119f0..187cec0d6 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -917,8 +917,8 @@ public static boolean checkJsonArrayString(String input) { return jsonArray.optJSONObject(0) != null || jsonArray.optJSONObject(0).length() > 0; } return false; - } catch (Exception e) { + Timber.e(e); return false; } From 8f21958e76460bd2d36536aa495e87849486aa3f Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Sun, 7 Aug 2022 14:50:30 +0300 Subject: [PATCH 171/302] QA release --- .../src/main/assets/json.form/anc_physical_exam.json | 2 +- .../anc/library/activity/MainContactActivity.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json index 20860a2b0..9f2c03597 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json +++ b/opensrp-anc/src/main/assets/json.form/anc_physical_exam.json @@ -743,7 +743,7 @@ "optibp_data": { "clientId": "", "clientOpenSRPId": "", - "calibration": [] + "calibration": "" }, "fields_to_use_value": [ "bp_systolic", diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java index 001e4a66f..a07d466d4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/MainContactActivity.java @@ -662,13 +662,13 @@ private void updateDefaultValues(JSONArray stepArray, int i, JSONObject fieldObj } if (fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) || fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND)) { - if (fieldObject.has(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA)) { - fieldObject.remove(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA); + if (fieldObject.has(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA)) { + fieldObject.remove(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA); } String optibpButtonKey = fieldObject.getString(JsonFormConstants.KEY).equals(ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON) ? ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON : ANCJsonFormConstants.KeyConstants.OPTIBP_BUTTON_SECOND; String previousContactBpValue = getMapValue(optibpButtonKey) == null ? "" : getMapValue(optibpButtonKey); JSONObject optiBPData = FormUtils.createOptiBPDataObject(baseEntityId, womanOpenSRPId, previousContactBpValue); - fieldObject.put(JsonFormConstants.OPTIBPCONSTANTS.OPTIBP_KEY_DATA, optiBPData); + fieldObject.put(JsonFormConstants.OptibpConstants.OPTIBP_KEY_DATA, optiBPData); } } From b482e05015f13c3237dbc83c326a8c9c585a087e Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Tue, 16 Aug 2022 15:13:36 +0300 Subject: [PATCH 172/302] amending exceptions --- .../org/smartregister/anc/library/task/AttentionFlagsTask.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java index 5486819f7..93143b23f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/AttentionFlagsTask.java @@ -65,7 +65,7 @@ protected Void doInBackground(Void... voids) { } } } catch (Exception e) { - Timber.e(e, " --> "); + Timber.e(e); } return null; From f4faf71937071c5a1945a917af50e0c035a38a00 Mon Sep 17 00:00:00 2001 From: vend Date: Tue, 20 Sep 2022 16:20:08 +0500 Subject: [PATCH 173/302] added fix in issue #883 radio button not working --- build.gradle | 4 +- opensrp-anc/build.gradle | 2 +- .../interactor/CharacteristicsInteractor.java | 4 +- .../smartregister/anc/library/util/Utils.java | 17 + .../src/main/res/values-pt_BR/strings.xml | 420 ------------------ reference-app/build.gradle | 4 +- 6 files changed, 25 insertions(+), 426 deletions(-) delete mode 100644 opensrp-anc/src/main/res/values-pt_BR/strings.xml diff --git a/build.gradle b/build.gradle index 131b8aa22..6b075da4c 100644 --- a/build.gradle +++ b/build.gradle @@ -78,8 +78,8 @@ subprojects { ext.androidToolsBuildGradle = '30.0.3' ext.androidBuildToolsVersion = '30.0.3' ext.androidMinSdkVersion = 18 - ext.androidCompileSdkVersion = 30 - ext.androidTargetSdkVersion = 30 + ext.androidCompileSdkVersion = 31 + ext.androidTargetSdkVersion = 31 ext.androidAnnotationsVersion = '3.0.1' ext.androidAnnotationsAPIVersion = '3.0.1' ext.jacocoVersion = "0.7.9" diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 3ad80dac7..1e028aa97 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -178,7 +178,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:2.1.17-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.1.1-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/CharacteristicsInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/CharacteristicsInteractor.java index 9ceef705e..c8c1ab5fb 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/CharacteristicsInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/CharacteristicsInteractor.java @@ -52,8 +52,10 @@ public void saveSiteCharacteristics(Map siteCharacteristicsSetti if (localSettings != null) { for (int i = 0; i < localSettings.length(); i++) { JSONObject localSetting = localSettings.getJSONObject(i); + String valueObject = siteCharacteristicsSettingsMap.get(localSetting.getString(ConstantsUtils.KeyUtils.KEY)); + valueObject = org.smartregister.anc.library.util.Utils.extractValuefromJSONObject(valueObject); localSetting.put(ConstantsUtils.KeyUtils.VALUE, - "1".equals(siteCharacteristicsSettingsMap.get(localSetting.getString(ConstantsUtils.KeyUtils.KEY)))); + "1".equals(valueObject)); } } diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 8fa17a64f..5ba153c27 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -1165,4 +1165,21 @@ public static String getLocationLocalizedName(Location location, JsonFormActivit } return locationName; } + + public static String extractValuefromJSONObject(String jsonString) + { + if(jsonString.startsWith("{") && jsonString.endsWith("}")) { + try { + + JSONObject valueObject = new JSONObject(jsonString); + return valueObject.getString(ConstantsUtils.KeyUtils.VALUE); + } + catch (JSONException e) + { + Timber.e(e); + return ""; + } + } + return jsonString; + } } \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-pt_BR/strings.xml b/opensrp-anc/src/main/res/values-pt_BR/strings.xml deleted file mode 100644 index 3a9d794bd..000000000 --- a/opensrp-anc/src/main/res/values-pt_BR/strings.xml +++ /dev/null @@ -1,420 +0,0 @@ - - - Sair - Idioma - - - WHO ANC - Salvando... - Removendo... - Por favor, espere - Escanear QR Code - Selecionar idioma - N° Registro não identificado. Clique em sincronizar para receber mais opções e se o erro persistir, contacte o administrador do sistema. - Ordem Alfabética (Nome) - Nome - Cancelar - Dose (D) - N° Registro - Localização: %1$s - Dose %1$s realizada%2$s - - - Favor, checar credenciais - Seu usuário não tem permissão para acessar esse dispositivo - Login falhou. Tente novamente mais tarde - Sem acesso a internet. Por favor, certifique-se sobre a conexão. - Login - Mostrar senha - Completo - Atualizando... - REMOVER DOS REGISTROS - / - clientes - eventos - Sincronizar - Rodada de sincronização concluída… - A hora do dispositivo mudou. Por favor faça login novamente. - A hora do dispositivo mudou. Por favor faça login novamente. - - - Sincronização falhou. Checar conexão de sua internet - Sincronizando... - Sincronização falhou - Tente novamente - Sincronização completa - Sincronizar%1$s - (último%1$s) - Sincronização manual acionada… - - - Nome do usuário - Senha (opcional) - Entrar ou Registrar-se - Entrar - Esse nome de usuário é inválido - Essa senha é muito curta - Essa senha está incorreta - Esse campo é obrigatório - Informações do registro - - - N° Registro no OpenSRP - WHO ANC - Um erro ocorreu ao iniciar o formulário - Procurar por usuário ou N° Registro - Filtro - LIMPAR FILTROS - Aplicar - Pronto - Há tarefas devidas - Gestação de risco - Sífilis na gestação - HIV na gestação - Hipertensão - Atualizado (Recentes primeiro) - IG (mais avançados primeiros) - IG (mais jovem primeiro) - N° Registro - Primeiro nome (A - Z) - Primeiro nome (Z - A) - Último nome (A - Z) - Último nome (Z - A) - Localização não selecionada - - - Busca Avançada - Dentro ou fora do meu centro de saúde - (requer conexão com a internet) - Apenas minha unidade de saúde - Primeiro nome - Último nome - N° Registro PN - N° Registro PN - DPP - Data Provável do Parto - DN - Data de nascimento - Número do celular - Número de telefone - Nome de um contato alternativo - Nome de um contato alternativo - Busca - Resultados da busca - Buscando... - Por favor, aguarde - %1$s combinações - - - Clientes do PN - Recursos de aconselhamento - Características da unidade - Resumo do contato - Sincronizar dados - Fechar caixa de navegação - Caixa de navegação aberta - Cuidado Pré-natal \n Módulo - N° Registro: %1$s - Idade: %1$s - IG: %1$d semanas - \u2022 - - VISÃO GERAL - CONTATOS - TAREFAS - - Novo registro salvo ! - Informação de registro atualizada ! - - Ligar - Inicie contato - Registro de fechamento do pré-natal - Copiar para área de transferência - Nenhuma mulher correspondente encontrada neste dispositivo. - Vá para a busca avançada - Cancele - AMARELO - VERMELHO - Registre o nascimento - Botão do QR Code - Filtro - %1$d clientes - cliente %1$d - Registrar - Biblioteca - Eu - clientes - 0 Clientes (Ordenado: atualizado) - - Razão para ter procurado o servico? * - - Primeiro contato - Visita agendada - Queixa específica - - Queixa(s) específica(s) * - - Corrimento vaginal anormal - Coloração da pele alterada - Alterações na pressão arterial - Constipação - Contrações - Tosse - Depressivo / ansioso - Tontura - Violência doméstica - Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) - Febre - Dor em todo abdomen - Sintomas de gripe - Perda de líquido - Cefaléia - Azia - Cãimbras nas pernas - Dor nas pernas - Vermelhidão nas pernas - Dor pélvica e lombar - Náusea / vômitos / diarreia - Sem movimentação fetal - Edema - Outro sangramento - Outra dor - Outros sintomas psicológicos - Outra alteração cutânea - Outros tipos de violência - Dor à micção (disúria) - Prurido - Movimento fetal reduzido ou discreto - Respiração encurtada - Cansaço - Trauma - Sangramento vaginal - Alteração visual - Outro - - Sinais de alerta* - - Nenhum - Sangramento vaginal - Cianose central - Convulsionando - Febre - Cefaléia e alteração visual - Parto iminente - Trabalho de parto - Parece muito doente - Vômitos intensos - Dor intensa - Dor abdominal intensa - Inconsciente - - Especifique - - Prossiguir para o contato normal - Referir e fechar o contato - - Selecione um motivo para vir à unidade de saúde - Selecione pelo menos uma queixa específica - Selecione Nenhum ou pelo menos um sinal de alerta - Selecione pelo menos um sinal de alerta diferente de Nenhum - incapaz de salvar o evento de verificação rápida - - Descoloração azulada ao redor das mucosas da boca, lábios e língua - - Algum tratamento realizado\nantes do encaminhamento? - Bom-vindo!\n\nPara iniciar, selecione as características da sua unidade. - Sim - Não - CONTATO 22/05/2018 - Espaço reservado para Biblioteca - Espaço reservado para minha página - Características da População - continue - CONTINUE PARA SUA LISTA DE CLIENTES - Suas características locais para %1$s estão todas configuradas. - As características da unidade são compartilhadas por todos os usuários do OpenSRP desta unidade. Você pode atualizar as características da unidade a qualquer momento. - Retornar às características da unidade - editar - - - Checagem rápida - Perfil - Sintomas e Seguimento - Exame Físico - Testes - Recomendação e Tratamento - Tarefas do Contato - - Finalizar - %1$d campos necessários - - Ver História PN - - Sair do contato com\n%1$s - Sair do contato? - Salvar Alterações\nContinuar continuar esse contato em\noutro momento - Salvar alterações - Ignorar alterações - Feche sem salvar\nPerca as atualizações feitas\nneste contato - - Localização: - Seta à direita - Ãcone da seção - Configurações - App versão: %1$s (construída em %2$s) - - Dados sincronizados: %1$s às %2$s - QR Code - Unidade do cliente - - Datas dos próximos contatos - IR PARA O PERFIL DA CLIENTE - ENVIAR RESUMO À CLIENTE - Carregando configurações da cliente… - Você deve permitir que o app WHO ANC gerencie ligações telefônicas para habilitar a chamada… - Quaisquer alterações que você fizer serão perdidas - Nome da mulher - INÃCIO\CONTATO%1$s\n%2$s - INICIAR · CONTATO %1$s · %2$s - CONTATO %1$s\n EM ANDAMENTO - CONTATO %1$s\n EM ANDAMENTO - PARTO\nESPERADO PARA - IG: %1$d semanas\nDPP: %2$s (%3$s atrás)\n\n%4$s deve comparecer imediatamente para o parto. - Contato %1$d - Contato %1$d gravado - exibição do ícone mais informações - exibição do ícone status - Salvar - Desfazer - SALVAR + ENCERRAR - RAZÃO DA VISITA - CONTATO %1$d\n REALIZADO HOJE - CONTATO %1$d · FEITO HOJE - Continuar Contato %1$d - Nome do usuário - Senha - Finalizando contato %1$d - Resumindo o contato %1$d - CONTATO %1$d\n VENCIDO \n %2$s - CONTATO %1$d\n VENCIDO \n %2$s - ÚLTIMO CONTATO - FIGURAS CHAVE - TESTE RECENTE: %1$s - CONTATOS PRÉVIOS - Todos os resultados de exames - %1$s Semanas · Contato %2$s - Contato %1$s - Desfazer o resultado %1$s ? - Um contato negativo significa que a paciente foi encaminhada, então seu agendamento não muda e permanece o mesmo de antes - Contatos Prévios - Todos os resultados de exames - Data Provável do Parto - %1$s semanas - %1$sw ausente - Todos os resultados - Testes não disponíveis - Encaminhamento ao Hospital - Nenhum agendamento dos contatos gerado ainda - Encaminhamento ao hospital registrado - Voltar - Imagem do botão Tab - Toque no botão abaixo para comeãr/completar um contato - Nenhum dado de saúde registrado - Testes - Imagem Ir para - Anexe arquivo - Plano de Parto e Emergência - Atividade Física - Nutrição Balanceada - - Fonte: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - • - - Desenvolva um plano de parto e emergência - Parto na unidade de saúde - Explique porque é recomendado parto no hospital - Qualquer complicação pode se desenvolver durante o parto - elas não são sempre previsíveis. - Um hospital tem equipe, equipamentos, suprimentos e drogas disponíveis para prover o melhor cuidado necessário, e um sistema de referência. - Se infectada pelo HIV ela necessitará de tratamento ARV apropriado para ela mesma e seu filho durante o nascimento. - Complicações são mais frequentes em mulheres infectadas pelo HIV e seus recém-nascidos. Mulheres infectadas pelo HIV devem parir em uma unidade de saúde. - Aconselhe como preparar - Revisar os acertos para o parto: - Como ela vai chegar lá? Ela terá que pagar o transporte? - Quanto custará parir na unidade de saúde? Como ela pagará? - Ela pode começar a economizar logo? - Quem estará com ela para dar suporte durante o trabalho de parto e nascimento? - Quem ajudará a olhar sua casa e as outras crianças enquanto ela estiver fora? - Aconselhar quando ir - Se a mulher mora perto da unidade de saúde, ela deveria ir aos primeiros sinais de trabalho de parto. - Se morar longe da unidade de saúde, ela deveria ir 2-3 semanas antes da data provável e permanecer ou na casa de repouso da maternidade ou com membros da família ou amigos perto da unidade. - Aconselhe a solicitar ajuda da comunidade, se necessário. - Aconselhar sobre o que levar - Caderneta da Gestante - Roupas limpas para lavar, secar e agasalhar o bebê. - Roupas limpas adicionais para usar como forros sanitários após o parto. - Roupas para a mãe e o bebê. - Comida e água para a mulher e a pessoa a dar suporte. - Parto domiciliar com um profissional capacitado - Rever o seguinte com ela: - Quem será seu acompanhante durante o trabalho de parto e parto? - Quem estará junto por pelo menos 24 horas após o parto? - Quem ajudará a olhar sua casa e as outras crianças? - Aconselhe a chamar a parteira aos primeiros sinais de trabalho de parto. - Aconselhar para ter sua Caderneta da Gestante disponível. - Aconselhe a solicitar ajuda da comunidade, se necessário. - Informe sobre os suprimentos necessários para um parto domiciliar - Roupas limpas de diferentes tamanhos: para a cama, para enxugar e embrulhar o bebê, para limpar os olhos do bebê, para a parteira lavar e secar suas mãos, para uso como forros sanitários. - Cobertores. - Baldes de água limpa e alguma forma de esquentar essa água. - Sabão. - Tigelas: 2 para se lavar e 1 para a placenta - Plástico para acondicionar a placenta. - AVISO: a OMS não é responsável pelo conteúdo destes materiais adicionais. - Atividade física é qualquer movimento corporal produzido pelos músculos esqueléticos que gasta energia. Isso inclui esportes, exercícios e outras atividades como brincar, caminhar, trabalhos caseiros, jardinagem e dançar. Qualquer atividade, seja ela para trabalhar, caminhar ou pedalar para ir e vir dos lugares, ou como parte de lazer, tem um benefício à saúde. - Pessoas que são fisicamente ativas: - Melhora sua capacidade muscular e cardio respiratória - melhora sua saúde óssea e funcional; - tem taxas mais baixas de doenças coronarianas, hipertensão arterial, derrame, diabetes, câncer (incluindo câncer de cólon e de mama) e depressão; - tem um risco mais baixo de queda e de fraturas da bacia ou vertebral; e - têm maior probabilidade de manter seu peso. - O exercício pode ser qualquer atividade que exija esforço físico, realizado para manter ou melhorar a saúde ou o condicionamento físico, e estes podem ser prescritos / não supervisionados (por exemplo, 30 minutos de caminhada diária), supervisionados (por exemplo, uma aula semanal de exercícios em grupo supervisionada) ou ambos. A atividade física também é fundamental para o equilíbrio energético e o controle de peso. - Um estilo de vida saudável inclui atividade física aeróbica e exercícios de condicionamento de força, com o objetivo de manter um bom nível de condicionamento durante a gravidez, sem tentar atingir o nível máximo de condicionamento físico ou treinar para competições atléticas. As mulheres devem escolher atividades com risco mínimo de perda de equilíbrio e trauma fetal. Gestantes, puérperas e pessoas com eventos cardíacos podem precisar tomar precauções extras e procurar orientação médica antes de se esforçar para atingir os níveis recomendados de atividade física. - Para mais informações acesse: - https://apps.who.int/iris/bitstream/handle/10665/44399/9789241599979_eng.pdf?sequence=1 - https://extranet.who.int/rhl/pt-br/node/151040 - FONTE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - Manter uma boa nutrição e uma dieta saudável durante a gravidez é fundamental para a saúde da mãe e do feto. Ao fornecer educação e aconselhamento nutricional para melhorar o estado nutricional das mulheres durante a gravidez, concentre-se principalmente em: - promover uma dieta saudável, aumentando a diversidade e a quantidade de alimentos consumidos - promover ganho de peso adequado através da ingestão suficiente e equilibrada de proteínas e energia - promover o uso consistente e contínuo de suplementos de micronutrientes, suplementos alimentares ou alimentos fortificados - Adaptações locais e culturais podem ser necessárias para atender às necessidades individuais e garantir o cumprimento das recomendações. - Para adultos, uma dieta saudável contem: - Frutas, vegetais, legumes (por exemplo, lentilhas, feijões), nozes e grãos integrais (por exemplo, milho não processado, milho, aveia, trigo, arroz integral). - Pelo menos 400 g (5 porções) de frutas e legumes por dia. Batatas, batatas doces, mandioca e outras raízes não são classificadas como frutas ou vegetais. - Menos de 10% da ingestão total de energia proveniente de açúcares livres, equivalente a 50 g (ou cerca de 12 colheres de chá) para uma pessoa com peso corporal saudável, consumindo aproximadamente 2000 calorias por dia, mas, idealmente, menos de 5% da ingestão total de energia para benefícios adicionais para a saúde. A maioria dos açúcares livres é adicionada a alimentos ou bebidas pelo fabricante, cozinheiro ou consumidor, e também pode ser encontrada em açúcares naturalmente presentes no mel, xaropes, sucos de frutas e concentrados de suco de frutas. - Menos de 30% da ingestão total de energia proveniente de gorduras. As gorduras insaturadas (por exemplo, encontradas em peixes, abacate, nozes, girassol, canola e azeite) são preferíveis às gorduras saturadas (por exemplo, encontradas em carne gordurosa, manteiga, óleo de palma e coco, creme, queijo, ghee e banha). As gorduras trans industriais (encontradas em alimentos processados, fast food, lanches, frituras, pizza congelada, tortas, biscoitos, margarinas e barrinhas) não fazem parte de uma dieta saudável. - Menos de 5 g de sal (equivalente a aproximadamente 1 colher de chá) por dia e use sal iodado. - http://www.who.int/en/news-room/fact-sheets/detail/healthy-diet - https://mediumredpotion.wordpress.com/2011/12/14/that-old-healthy-food-pyramid/ - Fonte - Exemplos de fontes de proteína: - Adicione à lista e modifique para os padrões locais sempre que possível. - http://www.bendifulblog.com/your-guide-to-protein-what-you-should-know/ - https://co.pinterest.com/pin/208291551498329651/ - Exemplos de fontes de cálcio: - Exemplos de fontes de energia: - Adicione à lista e modifique para os padrões locais sempre que possível. - - Exemplos de fontes de ferro: - https://www.wholesomebabyfoodguide.com/iron-and-iron-rich-baby-foods-what-iron-rich-foods-can-baby-eat/ - https://bit.ly/2RUH0VU - https://i.pinimg.com/originals/21/f2/e3/21f2e3fc203e6b475616e971f3c874f3.jpg - Exemplos de fontes de Vitamina A: - https://www.myfooddata.com/articles/food-sources-of-vitamin-A.php - https://www.medindia.net/patients/lifestyleandwellness/vitamin-a-rich-foods.htm - Exemplos de fontes de Vitamina C: - https://www.myfooddata.com/articles/vitamin-c-foods.php#printable - Consumo de cafeína - A dose diária máxima de ingestão de cafeína para uma mulher grávida é de 300 mg, equivalente a: - ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf - \ No newline at end of file diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8ea21d039..c1fca162f 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 14 +ext.versionPatch = 15 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion @@ -230,7 +230,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:2.1.17-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.1.1-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From 11a1e4423dab10722af32df59829701968fe0067 Mon Sep 17 00:00:00 2001 From: vend Date: Tue, 20 Sep 2022 17:15:23 +0500 Subject: [PATCH 174/302] added null check in extractValuefromJsonObject --- .../src/main/java/org/smartregister/anc/library/util/Utils.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java index 45e8f7b07..2ce79aaab 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/Utils.java @@ -1166,6 +1166,8 @@ public static String getLocationLocalizedName(Location location, JsonFormActivit public static String extractValuefromJSONObject(String jsonString) { + if(jsonString == null) + return ""; if(jsonString.startsWith("{") && jsonString.endsWith("}")) { try { From 4bf6be7b4841e1a003f4cbed4176436c45c34186 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 22 Sep 2022 13:49:12 +0500 Subject: [PATCH 175/302] added native form published version 3.1.0-PREVIEW-SNAPSHOT --- opensrp-anc/build.gradle | 2 +- reference-app/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/build.gradle b/opensrp-anc/build.gradle index 07a620129..1cd98fc67 100644 --- a/opensrp-anc/build.gradle +++ b/opensrp-anc/build.gradle @@ -178,7 +178,7 @@ tasks.withType(Test) { dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' - implementation('org.smartregister:opensrp-client-native-form:3.1.1-PREVIEW-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.1.0-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' diff --git a/reference-app/build.gradle b/reference-app/build.gradle index c1fca162f..746b12383 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -230,7 +230,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' def powerMockVersion = '2.0.7' implementation project(":opensrp-anc") - implementation('org.smartregister:opensrp-client-native-form:3.1.1-PREVIEW-SNAPSHOT@aar') { + implementation('org.smartregister:opensrp-client-native-form:3.1.0-PREVIEW-SNAPSHOT@aar') { transitive = true exclude group: 'com.android.support', module: 'recyclerview-v7' exclude group: 'com.android.support', module: 'appcompat-v7' From f7027adb80350cfeb7a3a266a99d0c63f8a97193 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 22 Sep 2022 18:31:13 +0500 Subject: [PATCH 176/302] ignore annotation removed --- .../org/smartregister/anc/library/model/LoginModelTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java index 326dda2f4..d937e046d 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java @@ -35,13 +35,12 @@ public void setUp() { // It was transferred from the app module to the lib module // The fix might to add an actual OpenSRP application but again UserService testing should be in the // opensrp-client-core library which provides this data - @Ignore + @Test public void testIsUserLoggedOutShouldReturnTrue() { Assert.assertTrue(model.isUserLoggedOut()); } - @Ignore @Test public void testGetOpenSRPContextShouldReturnValidValue() { Assert.assertNotNull(model.getOpenSRPContext()); From e32c33604d1c7d7934f80292ba7e5dc067e1b928 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 22 Sep 2022 18:39:26 +0500 Subject: [PATCH 177/302] changed runnable to anonymous class --- .../anc/library/interactor/AdvancedSearchInteractor.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java index da8298ff2..5200feaa2 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/AdvancedSearchInteractor.java @@ -33,12 +33,10 @@ public AdvancedSearchInteractor() { @Override public void search(final Map editMap, final AdvancedSearchContract.InteractorCallBack callBack, final String ancId) { - Runnable runnable = () -> { + appExecutors.networkIO().execute(() -> { final Response response = globalSearch(editMap); appExecutors.mainThread().execute(() -> callBack.onResultsFound(response, ancId)); - }; - - appExecutors.networkIO().execute(runnable); + }); } private Response globalSearch(Map map) { From b3ae32e8aa08f28c5b71ffb32ad710b0ecf64d18 Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 23 Sep 2022 18:13:07 +0300 Subject: [PATCH 178/302] Build gradle change --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index c2eff87ca..fac3378d4 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -25,7 +25,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 16 +ext.versionPatch = 14 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 29a606dc95c7aaaa923b7642f833a9feb80522df Mon Sep 17 00:00:00 2001 From: SebaMutuku <36365043+SebaMutuku@users.noreply.github.com> Date: Fri, 23 Sep 2022 18:23:28 +0300 Subject: [PATCH 179/302] Codacy --- .../anc/library/repository/PreviousContactRepository.java | 1 - 1 file changed, 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 6ddb8f4af..ae549b528 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -1,6 +1,5 @@ package org.smartregister.anc.library.repository; -import android.annotation.SuppressLint; import android.content.ContentValues; import android.text.TextUtils; import android.util.Log; From 1dfe9514ef7625036c4c8bde3afd745124a8b4c5 Mon Sep 17 00:00:00 2001 From: vend Date: Thu, 27 Oct 2022 13:45:06 +0500 Subject: [PATCH 180/302] fixed the failing tests --- .../anc/library/helper/AncRulesEngineFactoryTest.java | 9 ++++----- .../anc/library/interactor/ContactInteractorTest.java | 4 +--- .../smartregister/anc/library/model/LoginModelTest.java | 2 ++ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/AncRulesEngineFactoryTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/AncRulesEngineFactoryTest.java index 15d2a38f2..58e3ff22c 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/AncRulesEngineFactoryTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/helper/AncRulesEngineFactoryTest.java @@ -32,6 +32,8 @@ public class AncRulesEngineFactoryTest extends BaseUnitTest { @Before public void setUp() { try { + globalValues.put("pallor", "yes"); + globalValues.put("select-rule", "step2_accordion_hiv"); MockitoAnnotations.initMocks(this); ancRulesEngineFactory = new AncRulesEngineFactory(RuntimeEnvironment.application, globalValues, new JSONObject(DUMMY_JSON_OBJECT)); } catch (JSONException exception) { @@ -53,13 +55,10 @@ public void testBeforeEvaluateWithEmptyRuleAndFacts() { @Test public void testInitializeFacts() { - globalValues.put("pallor", "yes"); - globalValues.put("select-rule", "step2_accordion_hiv"); - Whitebox.setInternalState(ancRulesEngineFactory, "globalValues", globalValues); Whitebox.setInternalState(ancRulesEngineFactory, "selectedRuleName", "Test"); Facts facts = ancRulesEngineFactory.initializeFacts(new Facts()); - Assert.assertEquals(5, facts.asMap().size()); + Assert.assertEquals(3, facts.asMap().size()); Assert.assertTrue(facts.asMap().containsKey("global_pallor")); Assert.assertEquals("yes", facts.asMap().get("global_pallor")); } -} +} \ No newline at end of file diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java index 1933a1947..76a9648dc 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/interactor/ContactInteractorTest.java @@ -241,9 +241,7 @@ public void getCurrentContactStateTest() { String value = "{\"value\":\"first_contact\",\"text\":\"First contact\"}"; String contactNo = "1"; PreviousContact previousContact = new PreviousContact(baseEntityId, key, value, contactNo); - Mockito.doNothing().when(ancLibrary).getPreviousContactRepository().getPreviousContact(previousContact); -// getCurrentContactState.setAccessible(true); -// getCurrentContactState.invoke(interactor, null); + Mockito.when(ancLibrary.getPreviousContactRepository()).thenReturn(previousContactRepository); } diff --git a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java index d937e046d..e20e9f84a 100644 --- a/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java +++ b/opensrp-anc/src/test/java/org/smartregister/anc/library/model/LoginModelTest.java @@ -36,6 +36,8 @@ public void setUp() { // The fix might to add an actual OpenSRP application but again UserService testing should be in the // opensrp-client-core library which provides this data + //This test is already covered in Login Interactor + @Ignore @Test public void testIsUserLoggedOutShouldReturnTrue() { Assert.assertTrue(model.isUserLoggedOut()); From f3bb72a720e2df570e133fa7fbaa4032e38021d4 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 00:45:54 +0700 Subject: [PATCH 181/302] Remove unused languages --- .../anc/library/fragment/MeFragment.java | 6 +- .../src/main/res/values-fr/strings.xml | 314 ------------- .../src/main/res/values-id/strings.xml | 313 ------------- .../src/main/res/values-in-rID/strings.xml | 3 + .../src/main/res/values-pt-rBR/strings.xml | 420 ------------------ 5 files changed, 6 insertions(+), 1050 deletions(-) delete mode 100644 opensrp-anc/src/main/res/values-fr/strings.xml delete mode 100644 opensrp-anc/src/main/res/values-id/strings.xml create mode 100644 opensrp-anc/src/main/res/values-in-rID/strings.xml delete mode 100644 opensrp-anc/src/main/res/values-pt-rBR/strings.xml diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index 0b6e603cb..e5084878b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -173,9 +173,9 @@ private String getFullLanguage(Locale locale) { private void addLanguages() { locales.put(getString(R.string.english_language), Locale.ENGLISH); - locales.put(getString(R.string.french_language), Locale.FRENCH); - locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); - locales.put(getString(R.string.bahasa_indonesia_language), new Locale("ind")); + // locales.put(getString(R.string.french_language), Locale.FRENCH); + // locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); + locales.put(getString(R.string.bahasa_indonesia_language), new Locale("in")); } } \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-fr/strings.xml b/opensrp-anc/src/main/res/values-fr/strings.xml deleted file mode 100644 index 4be12ec4c..000000000 --- a/opensrp-anc/src/main/res/values-fr/strings.xml +++ /dev/null @@ -1,314 +0,0 @@ - - Aucun identifiant unique trouvé. Cliquez sur le bouton de synchronisation pour obtenir plus et si cette erreur persiste, contactez l\'administrateur système. - Alphabétique (Nom) - Nom et Prénom - Annuler - DOSE (D) - Localisation \'%1$s\' - Dose \'%1$s\' reçu \'%2$s\' - - - Vérifier les informations d\'identification - Votre groupe d\'utilisateurs n\'est pas autorisé à accéder à cet appareil - échec de la connexion. Essayer plus tard - Pas de connexion Internet. Verifier la connectivité des données - Se connecter - Montrer le mot de passe - Terminé - Mise a jour en cours ... - Supprimer du Registre - / - événements - Synchro - Synchronisation est terminé… - Le fuseau horaire de l\'appareil a changé. Veuillez vous reconnecter. - L\'Heure de l\'appareil a changé. Veuillez vous reconnecter. - - - La synchronisation a échoué. Vérifiez votre connection internet. - Synchro en cours .... - Synchro échoué - Réessayez - Synchronisation terminée - Synchro\'1%1$s\' - (dernière\'1%1$s\') - Sync manuelle déclenchée… - - - Nom d\'utilisateur - Mot de passe (optionnel) - Se connecter Ou s\'inscrire - Se connecter - Ce nom d\'utilisateur est invalide - Ce mot de passe est trop court - Ce mot de passe est incorrect - Ce champ est requis - Informations d\'inscription - - - Identifiant OpenSRP - CPN OMS - Une erreur s\'est produite lors du démarrage du formulaire - Filtrer - Appliquer - TERMINÉ - A des tâches dues - Grossesse a risque - Grossesse avec Syphilis  - Grossesse avec VIH - Hypertendue - Mis à jour (plus récent en premier) - Age Grossess (plus vieux en premier) - Age de Grossesse (plus jeune en premier) - Identifiant - Prénom (A à Z) - Prénom (A à Z) - Nom (A à Z) - Nom (A à Z) - Aucun lieu sélectionné - - - Recherche Avancée - À l\'extérieur et à l\'intérieur de mon établissement de santé - (nécessite une connexion Internet) - Mon établissement de santé seulement - Prénom - Nom - Identifiant CPN - Identifiant CPN - DPA - Date présumée d\'accouchement - Dob - Date de Naissance - numéro de téléphone portable - Numéro de téléphone - Nom d\'une autre person contact - Nom d\'une autre person contact - Résultats de la recherche - Recherche en cours… - Veuillez attendre - \'1%1$s\' correspond - - - Ressources de conseil - Caractéristiques du site - Résumé du contact - Synchronisation de Données - Fermer le tiroir de navigation - Ouvrir le tiroir de navigation - Module \n de soins prénatals - Identifiant: %1$s - Nouvel enregistrement sauvegardé ! - Informations d\'enregistrement mises à jour ! - - Appeler - Fermer l\'enregistrement CPN - Copier dans le presse-papier - Aucune femme correspondante trouvée sur cet appareil. - Aller à la recherche avancée - Annuler - JAUNE - ROUGE - Enregistrer la naissance - Le bouton scanner de code QR - Filtrer - Client \'1%1$d\' - Enregistrer - Bibliothèque - Moi - 0 clients (Trier: mis à jour) - - Raison de venir au centre de santé? - Plainte spécifique - - Plainte spécifique(s) - - Pertes vaginales anormales - Couleur de peau altérée - Changements de la pression artérielle - Constipation - Contractions - La toux - Dépressif / anxieux - Vertiges - Violence domestique - Douleur pelvienne extrême - ne peut pas marcher (dysfonctionnement de la symphyse pubienne) - Fièvre - Douleur abdominale complète - Symptômes de la grippe - Perte de liquide - Mal de tête - Brûlures d\'estomac - Crampes dans les jambes - Douleur aux jambes - Rougeur des jambes - Douleurs lombaires et pelviennes - Nausée / vomissements / diarrhée - Aucun mouvement fÅ“tal - Å’dème - Autre saignement - Autre douleur - Autres symptômes psychologiques - Autre trouble de la peau - Autres types de violence - Douleur pendant la miction (dysurie) - Prurit - Mouvement foetal réduit - Essoufflement - Fatigue - Traumatisme - Saignements vaginaux - Troubles visuelle - Autres - - Signes de danger - - Aucun - Saignements vaginaux - Cyanose centrale - Convulsion - Fièvre - Maux de tête et troubles visuels - Accouchement imminente - En Travail - Semble très malade - Vomissements sévères - Douleur sévère - Douleur abdominale sévère - Inconsciente - - Spécifier - - Veuillez sélectionner la raison de l\'arrivee au centre de santé - Veuillez sélectionner au moins une plainte spécifique - Veuillez sélectionner Aucun ou au moins un signe de danger - Au moins un signe de danger autre que Aucun - Impossible d\'enregistrer l\'événement de vérification rapide - - Décoloration bleuâtre autour des muqueuses dans la bouche, les lèvres et la langue - - Un traitement donné \n avant la référence? - Bienvenue!\n\n Pour commencer, veuillez définir les caractéristiques de votre site. - Oui - Non - Emplacement Bibliothèque - Emplacement My Page - Caractéristiques de la population - continue - CONTINUEZ À VOTRE LISTE DE CLIENTS - Les caractéristiques de votre site pour \'1%1$s\' sont toutes définies. - Les caractéristiques du site sont partagées par tous les utilisateurs OpenSRP du site. Vous pouvez mettre à jour les caractéristiques du site à tout moment. - Retour aux caractéristiques du site - éditer - - - Vérification rapide - Profile - Symptômes et suivi - Examen physique - Les examens - Counselling et traitement - - Finaliser - \'%1$d\'Champs obligatoires - - Voir l\'historique des CPN - Enregistrer les modifications\nContinuer avec ce contact \na ultérieurement - enregistrer les modifications - Ignorer les modifications - Fermez sans enregistrer\nPerdez les mises à jour que vous avez effectuées dans ce contact\n. - - Localisation: - Flèche droite - Icône de section - Paramètres - Version de l\'application: %1$s(construite le%2$s) - - Données synchronisées:%1$sà%2$s - Code QR - Formation sanitaire du Client: - - Dates des prochaines contact: - ALLEZ AU PROFIL CLIENT - ENVOYER LE RÉSUMÉ AU CLIENT - Chargement des paramètres du client… - Vous devez autoriser l\'application CPN de l\'OMS à gérer les appels téléphoniques pour activer les appels… - Toutes les modifications faite seront perdues - Nom de femme - Accouchement\nDue - Age Grossess: %1$dsemaines\nDPA: %2$s(depuis%3$s)\n\n%4$s devrait arriver immédiatement pour l\'Accouchement. - l\'affichage de l\'icône plus d\'infos - l\'affichage de l\'icône Statut - Enregistrer - annuler - VALIDE + TERMINE - RAISON DE LA VISITE - Continuer le contact %1$d - Nom d\'utilisateur - Mot de passe - Finalisation du Contact %1$d - Resume du Contact %1$d - DERNIER CONTACT - Chiffres Clés - EXAMENS RÉCENT:%1$s - Tous les résultats des EXAMENS - Annuler le résultat de %1$s? - Un contact négatif signifie que la patiente a été référée pour que son calendrier de visite ne change pas et reste le même qu\'avant - Tous les résultats des EXAMENS - Date présumée d\'accouchement - %1$s semaines - Dans %1$s semaines - Tous les résultats des EXAMENS - Aucun examens disponible - Référence de l\'hôpital - Aucun calendrier de contact généré pour le moment - - Deconnecté - Langue - - - CPN OMS - Enregistrement en cour... - Supression en cours - Veuillez attendre - Scanner Code QR - Choisir la langue - ID - clients - Rechercher nom or ID - Annuler Filtres - Rechercher - - Clients CPN - Âge: %1$s - ÂG: %1$d semaines - APERÇU - CONTACTS - TÂCHES - - Commencer Contact - %1$d clients - Clients - Premier contact - Contact prévu - Passer au contact normal - Référer et fermer le contact - - CONTACT 22/05/2018 - Quitter le contact avec\n %1$s - Quitter le contact? - COMMENCEZ\nCONTACT %1$s\n%2$s - COMMENCEZ · CONTACT %1$s · %2$s - CONTACT %1$s\n EN COURS - CONTACT %1$s · EN COURS - Contact %1$d - Contact %1$da été enregistré - CONTACT %1$d\n FAIT AUJOURD\'HUI - CONTACT %1$d · FAIT AUJOURD\'HUI - CONTACT %1$d\n DÛ\n %2$s - CONTACT %1$d · DÛ · %2$s - CONTACTS PRÉCÉDENTS - %1$s Semaines · Contact %2$s - Contact %1$s - Contacts Précédents - \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-id/strings.xml b/opensrp-anc/src/main/res/values-id/strings.xml deleted file mode 100644 index 95386b362..000000000 --- a/opensrp-anc/src/main/res/values-id/strings.xml +++ /dev/null @@ -1,313 +0,0 @@ - - - Keluar - Bahasa - - - WHO ANC - Menyimpan - Menghapus - Silakan tunggu - Pindai kode QR - Pilih Bahasa - Tidak ada id unik yang ditemukan. Klik pada tombol sinkronisasi untuk mendapatkan lebih banyak dan jika kesalahan ini berlanjut hubungi admin sistem. - Abjad (Nama) - Nama - Batalkan - Dosis (D) - ID - Lokasi: %1$s - Dosis %1$s yang diberikan %2$s - - - Silakan periksa surat pengenal - Grup pengguna anda tidak diizinkan untuk mengakses perangkat ini - Gagal masuk. Coba lagi nanti - Tidak ada koneksi internet. Harap pastikan konektivitas data - Masuk - Tampilkan kata sandi - Selesai - Memperbarui - Hapus dari register - / - Klien - Peristiwa - Sinkronisasi - Semua sinkronisasi selesai - Zona waktu perangkat berubah. Silakan masuk lagi. - Waktu perangkat berubah. Silakan masuk lagi. - - - Sinkronisasi gagal. Periksa koneksi internet Anda. - Menyinkronkan... - Sinkronisasi gagal - Coba lagi - Sinkronisasi selesai - Sinkronisasi %1$s - (terakhir %1$s) - Sinkronisasi manual dipicu - - - Nama pengguna - Kata sandi (pilihan) - Masuk atau daftar - Masuk - Nama pengguna ini tidak valid - Kata sandi ini terlalu pendek - Kata sandi ini salah - Bagian ini diperlukan - Info pendaftaran - - - ID OpenSRP - WHO ANC - Terjadi kesalahan saat memulai formulir - Cari nama atau ID - Filter - Hapus filter - Menerapkan - Selesai - Memiliki batas waktu tugas - Kehamilan berisiko - Kehamilan dengan sifilis - Kehamilan dengan HIV - Hipertensi - Diperbarui (baru pertama kali) - GA (dimulai dari yang paling tua) - GA (dimulai dari yang paling muda) - ID - Nama depan (A hingga Z) - Nama depan (Z hingga A) - Nama belakang (A hingga Z) - Nama belakang (Z hingga A) - Tidak ada lokasi yang dipilih - - - Pencarian Lanjutan - Di luar dan di dalam fasilitas kesehatan saya - (membutuhkan koneksi internet) - Fasilitas kesehatan saya saja - Nama depan - Nama belakang - ID ANC - ID ANC - Hari pertama haid terakhir - Tanggal pengiriman yang diharapkan - Tanggal lahir - Tanggal lahir - Nomor handphone - Nomor telepon - Nama kontak alternatif - Nama kontak alternatif - Pencarian - Hasil pencarian - Sedang mencari - Silakan tunggu - %1$s cocok - - - klien ANC - Sumber daya konseling - Karakteristik tempat - Ringkasan kontak - Sinkronkan data - Tutup panel menu - Buka panel menu - Modul perawatan antenatal - ID: %1$s - Usia: %1$s - Usia kehamilan: %1$dbulan - \u2022 - - Tinjauan - Kontak - Tugas - - Registrasi baru disimpan - Info pendaftaran diperbarui - - Panggilan - Mulai kontak - Tutup catatan ANC - Menyalin ke clipboard - Tidak ditemukan wanita yang cocok di perangkat ini - Pergi ke pencarian lebih lanjut - Batalkan - Kuning - Merah - Catatan kelahiran - Tombol kode QR scanner - Filter - %1$d klien - %1$d klien - Register - Penyimpanan - Saya - Klien - 0 Klien (Sortir: diperbarui) - - Alasan datang ke fasilitas? - - Pertemuan pertama - Jadwal pertemuan - Keluhan spesifik - - Keluhan spesifik * - - Keputihan yang tidak normal - Warna kulit berubah - Perubahan tekanan darah - Sembelit - Kontraksi - Batuk - Depresi / gelisah - Pusing - Kekerasan dalam rumah tangga - Nyeri panggul parah - tidak bisa berjalan (disfungsi simfisis pubis) - Demam - Nyeri perut - Gejala flu - Kekurangan cairan - Sakit kepala - Mulas - Kaki kram - Nyeri kaki - Kaki kemerahan - Nyeri punggung dan panggul bawah - Mual/muntah/diare - Tidak ada gerakan janin - Bengkak - Perdarahan lainnya - Nyeri lainnya - Gejala psikologis lainnya - Gangguan kulit lainnya - Jenis kekerasan lainnya - Nyeri saat buang air kecil (disuria) - Gatal - Gerakan janin berkurang - Sesak nafas - Kelelahan - Trauma - Perdarahan pervaginam - Gangguan penglihatan - Lainnya - - Tanda bahaya * - - Tidak ada - Perdarahan melalui vagina - Sianosis sentral - Kejang - Demam - Sakit kepala dan gangguan penglihatan - Akan segera melahirkan - Tanda-tanda persalinan - Terlihat sangat sakit - Mual muntah - Nyeri - Nyeri perut - Tidak sadarkan diri - - Sebutkan - - Lanjutkan ke kunjungan normal - Rujuk dan tutup kontak - - Silakan pilih alasan datang ke fasilititas - Silakan pilih setidaknya satu keluhan spesifik - Silakan pilih tidak ada atau setidaknya satu tanda bahaya - Silakan setidaknya satu tanda bahaya selain tidak ada - Tidak dapat menyimpan kegiatan pemeriksaan cepat - - Warna kebiruan di sekitar selaput lendir di mulut, bibir dan lidah - - Adakah penanganan yang diberikan sebelum dirujuk? - Selamat datang! Untuk memulai, silakan atur karakteristik wilayah Anda. - Ya - Tidak - Kontak - Tempat penyimpanan - Tempat penyimpanan saya - Karakteristik populasi - Lanjut - LANJUTKAN KE DAFTAR KLIEN ANDA - Karakter wilayah anda untuk %1$s sudah siap - Karakteristik wilayah dibagi oleh semua pengguna OpenSRP di fasilitas. Anda dapat memperbarui karakteristik wilayah kapan saja. - Kembali ke karakteristik wilayah - sunting - - - Pemeriksaan cepat - Profil - Gejala dan Tindak lanjut - Pemeriksaan fisik - Tes - Konseling dan Pengobatan - - Selesai - %1$d bidang yang wajib diisi - - Lihat sejarah ANC - - Keluar dari kontak dengan %1$s - Keluar dari kontak? - Simpan perubahan dan lanjutkan dengan kontak ini di lain waktu - Simpan perubahan - Abaikan perubahan - Tutup tanpa menyimpan \ nKehilangan pembaruan yang Anda buat dalam \ nkontak ini - - Lokasi: - Panah kanan - Ikon Bagian - Pengaturan - Versi aplikasi: %1$s (dibuat pada %2$s) - - Data disinkronkan: %1$s pada %2$s - Kode QR - Fasilitas klien - - Tanggal pertemuan yang akan datang: - PERGI KE PROFIL KLIEN - KIRIM RINGKASAN KE KLIEN - Memuat pengaturan klien - Anda harus mengizinkan aplikasi WHO ANC untuk mengelola panggilan telepon untuk mengaktifkan panggilan - Setiap perubahan yang Anda lakukan akan hilang - Nama Wanita - Kontak %1$s \n %2$s - Waktu persalinan - Usia kehamilan: %1$d Minggu / Hari Taksiran Persalinan: %2$s (%3$s lalu) %4$s harus segera datang untuk persalinan - Kontak %1$d - Kontak %1$d dicatat - tampilan ikon info lebih lanjut - tampilan ikon status - Catatan - Batalkan - Simpan + Selesai - Alasan berkunjung - Kunjungan %1$d dilakukan hari ini - Kunjungan %1$d dilakukan hari ini - Lanjutkan Pertemuan %1$d - Nama pengguna - Kata sandi - Menyelesaikan kontak%1$d - Meringkas kontak%1$d - Kontak%1$d; batas waktu %2$s - Kontak terakhir - Angka utama - Tes terbaru: %1$s - Kontak sebelumnya - Semua Hasil Tes - %1$sMinggu · Contact %2$s - Kontak %1$s - Batalkan %1$s hasilnya ? - Kontak negatif berarti bahwa pasien dirujuk sehingga jadwal kontaknya tidak berubah dan tetap sama seperti sebelumnya - Kontak sebelumnya - Semua Hasil Tes - Hari taksiran persalinan - %1$s minggu - %1$s jauh - Semua hasil - Tidak ada tes yang tersedia - Rumah Sakit Rujukan - Belum ada jadwal kontak yang dihasilkan - \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml new file mode 100644 index 000000000..55344e519 --- /dev/null +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-pt-rBR/strings.xml b/opensrp-anc/src/main/res/values-pt-rBR/strings.xml deleted file mode 100644 index 56fecd5b4..000000000 --- a/opensrp-anc/src/main/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,420 +0,0 @@ - - - Sair - Idioma - - - WHO ANC - Salvando... - Removendo... - Por favor, espere - Escanear QR Code - Selecionar idioma - N° Registro não identificado. Clique em sincronizar para receber mais opções e se o erro persistir, contacte o administrador do sistema. - Ordem Alfabética (Nome) - Nome - Cancelar - Dose (D) - N° Registro - Localização: %1$s - Dose %1$s realizada%2$s - - - Favor, checar credenciais - Seu usuário não tem permissão para acessar esse dispositivo - Login falhou. Tente novamente mais tarde - Sem acesso a internet. Por favor, certifique-se sobre a conexão. - Login - Mostrar senha - Completo - Atualizando... - REMOVER DOS REGISTROS - / - clientes - eventos - Sincronizar - Rodada de sincronização concluída… - A hora do dispositivo mudou. Por favor faça login novamente. - A hora do dispositivo mudou. Por favor faça login novamente. - - - Sincronização falhou. Checar conexão de sua internet - Sincronizando... - Sincronização falhou - Tente novamente - Sincronização completa - Sincronizar%1$s - (último%1$s) - Sincronização manual acionada… - - - Nome do usuário - Senha (opcional) - Entrar ou Registrar-se - Entrar - Esse nome de usuário é inválido - Essa senha é muito curta - Essa senha está incorreta - Esse campo é obrigatório - Informações do registro - - - N° Registro no OpenSRP - WHO ANC - Um erro ocorreu ao iniciar o formulário - Procurar por usuário ou N° Registro - Filtro - LIMPAR FILTROS - Aplicar - Pronto - Há tarefas devidas - Gestação de risco - Sífilis na gestação - HIV na gestação - Hipertensão - Atualizado (Recentes primeiro) - IG (mais avançados primeiros) - IG (mais jovem primeiro) - N° Registro - Primeiro nome (A - Z) - Primeiro nome (Z - A) - Último nome (A - Z) - Último nome (Z - A) - Localização não selecionada - - - Busca Avançada - Dentro ou fora do meu centro de saúde - (requer conexão com a internet) - Apenas minha unidade de saúde - Primeiro nome - Último nome - N° Registro PN - N° Registro PN - DPP - Data Provável do Parto - DN - Data de nascimento - Número do celular - Número de telefone - Nome de um contato alternativo - Nome de um contato alternativo - Busca - Resultados da busca - Buscando... - Por favor, aguarde - %1$s combinações - - - Clientes do PN - Recursos de aconselhamento - Características da unidade - Resumo do contato - Sincronizar dados - Fechar caixa de navegação - Caixa de navegação aberta - Cuidado Pré-natal \n Módulo - N° Registro: %1$s - Idade: %1$s - IG: %1$d semanas - \u2022 - - VISÃO GERAL - CONTATOS - TAREFAS - - Novo registro salvo ! - Informação de registro atualizada ! - - Ligar - Inicie contato - Registro de fechamento do pré-natal - Copiar para área de transferência - Nenhuma mulher correspondente encontrada neste dispositivo. - Vá para a busca avançada - Cancele - AMARELO - VERMELHO - Registre o nascimento - Botão do QR Code - Filtro - %1$d clientes - cliente %1$d - Registrar - Biblioteca - Eu - clientes - 0 Clientes (Ordenado: atualizado) - - Razão para ter procurado o servico? * - - Primeiro contato - Visita agendada - Queixa específica - - Queixa(s) específica(s) * - - Corrimento vaginal anormal - Coloração da pele alterada - Alterações na pressão arterial - Constipação - Contrações - Tosse - Depressivo / ansioso - Tontura - Violência doméstica - Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) - Febre - Dor em todo abdomen - Sintomas de gripe - Perda de líquido - Cefaléia - Azia - Cãimbras nas pernas - Dor nas pernas - Vermelhidão nas pernas - Dor pélvica e lombar - Náusea / vômitos / diarreia - Sem movimentação fetal - Edema - Outro sangramento - Outra dor - Outros sintomas psicológicos - Outra alteração cutânea - Outros tipos de violência - Dor à micção (disúria) - Prurido - Movimento fetal reduzido ou discreto - Respiração encurtada - Cansaço - Trauma - Sangramento vaginal - Alteração visual - Outro - - Sinais de alerta* - - Nenhum - Sangramento vaginal - Cianose central - Convulsionando - Febre - Cefaléia e alteração visual - Parto iminente - Trabalho de parto - Parece muito doente - Vômitos intensos - Dor intensa - Dor abdominal intensa - Inconsciente - - Especifique - - Prossiguir para o contato normal - Referir e fechar o contato - - Selecione um motivo para vir à unidade de saúde - Selecione pelo menos uma queixa específica - Selecione Nenhum ou pelo menos um sinal de alerta - Selecione pelo menos um sinal de alerta diferente de Nenhum - incapaz de salvar o evento de verificação rápida - - Descoloração azulada ao redor das mucosas da boca, lábios e língua - - Algum tratamento realizado\nantes do encaminhamento? - Bom-vindo!\n\nPara iniciar, selecione as características da sua unidade. - Sim - Não - CONTATO 22/05/2018 - Espaço reservado para Biblioteca - Espaço reservado para minha página - Características da População - continue - CONTINUE PARA SUA LISTA DE CLIENTES - Suas características locais para %1$s estão todas configuradas. - As características da unidade são compartilhadas por todos os usuários do OpenSRP desta unidade. Você pode atualizar as características da unidade a qualquer momento. - Retornar às características da unidade - editar - - - Checagem rápida - Perfil - Sintomas e Seguimento - Exame Físico - Testes - Recomendação e Tratamento - Tarefas do Contato - - Finalizar - %1$d campos necessários - - Ver História PN - - Sair do contato com\n%1$s - Sair do contato? - Salvar Alterações\nContinuar continuar esse contato em\noutro momento - Salvar alterações - Ignorar alterações - Feche sem salvar\nPerca as atualizações feitas\nneste contato - - Localização: - Seta à direita - Ãcone da seção - Configurações - App versão: %1$s (construída em %2$s) - - Dados sincronizados: %1$s às %2$s - QR Code - Unidade do cliente - - Datas dos próximos contatos - IR PARA O PERFIL DA CLIENTE - ENVIAR RESUMO À CLIENTE - Carregando configurações da cliente… - Você deve permitir que o app WHO ANC gerencie ligações telefônicas para habilitar a chamada… - Quaisquer alterações que você fizer serão perdidas - Nome da mulher - INÃCIO\CONTATO%1$s\n%2$s - INICIAR · CONTATO %1$s · %2$s - CONTATO %1$s\n EM ANDAMENTO - CONTATO %1$s\n EM ANDAMENTO - PARTO\nESPERADO PARA - IG: %1$d semanas\nDPP: %2$s (%3$s atrás)\n\n%4$s deve comparecer imediatamente para o parto. - Contato %1$d - Contato %1$d gravado - exibição do ícone mais informações - exibição do ícone status - Salvar - Desfazer - SALVAR + ENCERRAR - RAZÃO DA VISITA - CONTATO %1$d\n REALIZADO HOJE - CONTATO %1$d · FEITO HOJE - Continuar Contato %1$d - Nome do usuário - Senha - Finalizando contato %1$d - Resumindo o contato %1$d - CONTATO %1$d\n VENCIDO \n %2$s - CONTATO %1$d\n VENCIDO \n %2$s - ÚLTIMO CONTATO - FIGURAS CHAVE - TESTE RECENTE: %1$s - CONTATOS PRÉVIOS - Todos os resultados de exames - %1$s Semanas · Contato %2$s - Contato %1$s - Desfazer o resultado %1$s ? - Um contato negativo significa que a paciente foi encaminhada, então seu agendamento não muda e permanece o mesmo de antes - Contatos Prévios - Todos os resultados de exames - Data Provável do Parto - %1$s semanas - %1$sw ausente - Todos os resultados - Testes não disponíveis - Encaminhamento ao Hospital - Nenhum agendamento dos contatos gerado ainda - Encaminhamento ao hospital registrado - Voltar - Imagem do botão Tab - Toque no botão abaixo para comeãr/completar um contato - Nenhum dado de saúde registrado - Testes - Imagem Ir para - Anexe arquivo - Plano de Parto e Emergência - Atividade Física - Nutrição Balanceada - - Fonte: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - • - - Desenvolva um plano de parto e emergência - Parto na unidade de saúde - Explique porque é recomendado parto no hospital - Qualquer complicação pode se desenvolver durante o parto - elas não são sempre previsíveis. - Um hospital tem equipe, equipamentos, suprimentos e drogas disponíveis para prover o melhor cuidado necessário, e um sistema de referência. - Se infectada pelo HIV ela necessitará de tratamento ARV apropriado para ela mesma e seu filho durante o nascimento. - Complicações são mais frequentes em mulheres infectadas pelo HIV e seus recém-nascidos. Mulheres infectadas pelo HIV devem parir em uma unidade de saúde. - Aconselhe como preparar - Revisar os acertos para o parto: - Como ela vai chegar lá? Ela terá que pagar o transporte? - Quanto custará parir na unidade de saúde? Como ela pagará? - Ela pode começar a economizar logo? - Quem estará com ela para dar suporte durante o trabalho de parto e nascimento? - Quem ajudará a olhar sua casa e as outras crianças enquanto ela estiver fora? - Aconselhar quando ir - Se a mulher mora perto da unidade de saúde, ela deveria ir aos primeiros sinais de trabalho de parto. - Se morar longe da unidade de saúde, ela deveria ir 2-3 semanas antes da data provável e permanecer ou na casa de repouso da maternidade ou com membros da família ou amigos perto da unidade. - Aconselhe a solicitar ajuda da comunidade, se necessário. - Aconselhar sobre o que levar - Caderneta da Gestante - Roupas limpas para lavar, secar e agasalhar o bebê. - Roupas limpas adicionais para usar como forros sanitários após o parto. - Roupas para a mãe e o bebê. - Comida e água para a mulher e a pessoa a dar suporte. - Parto domiciliar com um profissional capacitado - Rever o seguinte com ela: - Quem será seu acompanhante durante o trabalho de parto e parto? - Quem estará junto por pelo menos 24 horas após o parto? - Quem ajudará a olhar sua casa e as outras crianças? - Aconselhe a chamar a parteira aos primeiros sinais de trabalho de parto. - Aconselhar para ter sua Caderneta da Gestante disponível. - Aconselhe a solicitar ajuda da comunidade, se necessário. - Informe sobre os suprimentos necessários para um parto domiciliar - Roupas limpas de diferentes tamanhos: para a cama, para enxugar e embrulhar o bebê, para limpar os olhos do bebê, para a parteira lavar e secar suas mãos, para uso como forros sanitários. - Cobertores. - Baldes de água limpa e alguma forma de esquentar essa água. - Sabão. - Tigelas: 2 para se lavar e 1 para a placenta - Plástico para acondicionar a placenta. - AVISO: a OMS não é responsável pelo conteúdo destes materiais adicionais. - Atividade física é qualquer movimento corporal produzido pelos músculos esqueléticos que gasta energia. Isso inclui esportes, exercícios e outras atividades como brincar, caminhar, trabalhos caseiros, jardinagem e dançar. Qualquer atividade, seja ela para trabalhar, caminhar ou pedalar para ir e vir dos lugares, ou como parte de lazer, tem um benefício à saúde. - Pessoas que são fisicamente ativas: - Melhora sua capacidade muscular e cardio respiratória - melhora sua saúde óssea e funcional; - tem taxas mais baixas de doenças coronarianas, hipertensão arterial, derrame, diabetes, câncer (incluindo câncer de cólon e de mama) e depressão; - tem um risco mais baixo de queda e de fraturas da bacia ou vertebral; e - têm maior probabilidade de manter seu peso. - O exercício pode ser qualquer atividade que exija esforço físico, realizado para manter ou melhorar a saúde ou o condicionamento físico, e estes podem ser prescritos / não supervisionados (por exemplo, 30 minutos de caminhada diária), supervisionados (por exemplo, uma aula semanal de exercícios em grupo supervisionada) ou ambos. A atividade física também é fundamental para o equilíbrio energético e o controle de peso. - Um estilo de vida saudável inclui atividade física aeróbica e exercícios de condicionamento de força, com o objetivo de manter um bom nível de condicionamento durante a gravidez, sem tentar atingir o nível máximo de condicionamento físico ou treinar para competições atléticas. As mulheres devem escolher atividades com risco mínimo de perda de equilíbrio e trauma fetal. Gestantes, puérperas e pessoas com eventos cardíacos podem precisar tomar precauções extras e procurar orientação médica antes de se esforçar para atingir os níveis recomendados de atividade física. - Para mais informações acesse: - https://apps.who.int/iris/bitstream/handle/10665/44399/9789241599979_eng.pdf?sequence=1 - https://extranet.who.int/rhl/pt-br/node/151040 - FONTE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - Manter uma boa nutrição e uma dieta saudável durante a gravidez é fundamental para a saúde da mãe e do feto. Ao fornecer educação e aconselhamento nutricional para melhorar o estado nutricional das mulheres durante a gravidez, concentre-se principalmente em: - promover uma dieta saudável, aumentando a diversidade e a quantidade de alimentos consumidos - promover ganho de peso adequado através da ingestão suficiente e equilibrada de proteínas e energia - promover o uso consistente e contínuo de suplementos de micronutrientes, suplementos alimentares ou alimentos fortificados - Adaptações locais e culturais podem ser necessárias para atender às necessidades individuais e garantir o cumprimento das recomendações. - Para adultos, uma dieta saudável contem: - Frutas, vegetais, legumes (por exemplo, lentilhas, feijões), nozes e grãos integrais (por exemplo, milho não processado, milho, aveia, trigo, arroz integral). - Pelo menos 400 g (5 porções) de frutas e legumes por dia. Batatas, batatas doces, mandioca e outras raízes não são classificadas como frutas ou vegetais. - Menos de 10% da ingestão total de energia proveniente de açúcares livres, equivalente a 50 g (ou cerca de 12 colheres de chá) para uma pessoa com peso corporal saudável, consumindo aproximadamente 2000 calorias por dia, mas, idealmente, menos de 5% da ingestão total de energia para benefícios adicionais para a saúde. A maioria dos açúcares livres é adicionada a alimentos ou bebidas pelo fabricante, cozinheiro ou consumidor, e também pode ser encontrada em açúcares naturalmente presentes no mel, xaropes, sucos de frutas e concentrados de suco de frutas. - Menos de 30% da ingestão total de energia proveniente de gorduras. As gorduras insaturadas (por exemplo, encontradas em peixes, abacate, nozes, girassol, canola e azeite) são preferíveis às gorduras saturadas (por exemplo, encontradas em carne gordurosa, manteiga, óleo de palma e coco, creme, queijo, ghee e banha). As gorduras trans industriais (encontradas em alimentos processados, fast food, lanches, frituras, pizza congelada, tortas, biscoitos, margarinas e barrinhas) não fazem parte de uma dieta saudável. - Menos de 5 g de sal (equivalente a aproximadamente 1 colher de chá) por dia e use sal iodado. - http://www.who.int/en/news-room/fact-sheets/detail/healthy-diet - https://mediumredpotion.wordpress.com/2011/12/14/that-old-healthy-food-pyramid/ - Fonte - Exemplos de fontes de proteína: - Adicione à lista e modifique para os padrões locais sempre que possível. - http://www.bendifulblog.com/your-guide-to-protein-what-you-should-know/ - https://co.pinterest.com/pin/208291551498329651/ - Exemplos de fontes de cálcio: - Exemplos de fontes de energia: - Adicione à lista e modifique para os padrões locais sempre que possível. - - Exemplos de fontes de ferro: - https://www.wholesomebabyfoodguide.com/iron-and-iron-rich-baby-foods-what-iron-rich-foods-can-baby-eat/ - https://bit.ly/2RUH0VU - https://i.pinimg.com/originals/21/f2/e3/21f2e3fc203e6b475616e971f3c874f3.jpg - Exemplos de fontes de Vitamina A: - https://www.myfooddata.com/articles/food-sources-of-vitamin-A.php - https://www.medindia.net/patients/lifestyleandwellness/vitamin-a-rich-foods.htm - Exemplos de fontes de Vitamina C: - https://www.myfooddata.com/articles/vitamin-c-foods.php#printable - Consumo de cafeína - A dose diária máxima de ingestão de cafeína para uma mulher grávida é de 300 mg, equivalente a: - ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf - \ No newline at end of file From c1cd863c5dbdd2fb9fd45c07214eeffca52a2430 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 00:47:21 +0700 Subject: [PATCH 182/302] Restructure & translate strings to Bahasa Indonesia --- .../src/main/res/values-in-rID/strings.xml | 608 ++++++++- opensrp-anc/src/main/res/values/strings.xml | 1149 ++++++++++------- 2 files changed, 1312 insertions(+), 445 deletions(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index 55344e519..625a6d80f 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -1,3 +1,607 @@ - - + + + + + + + + + + + BUNDA + Versi Aplikasi: %1$s (dibuat %2$s) + This is an outdated app. Please update to the latest version to continue. + Status reset aplikasi + Menghapus data aplikasi... + + + + + + Ya + Tidak + Oke + Lanjut >> + << Kembali + Halaman {0} dari {1} + Refresh + Kembali + + + + + + Login + Logout + Login + Harap Tunggu + Login Gagal + Periksa username dan password. + Yakin ingin kembali? Data yang sudah dimasukkan akan terhapus. + Konfirmasi Tutup Form + Konfirmasi Logout + Yakin ingin logout? Data lokal pada perangkat ini akan terhapus. + Username + Password (opsional) + Login atau Daftar + Login + Username tidak valid + Password terlalu pendek + Password salah + Tampilkan Password + Terjadi error saat login terhadap server. Silakan coba lagi. + Silakan konfigurasi OpenSRP Base URL terlebih dahulu. + Logout + Grup pengguna Anda tidak diizinkan untuk mengakses perangkat ini. + Tidak ada koneksi internet. Harap pastikan konektivitas data berjalan. + Login gagal. Coba lagi lain kali. + Silakan periksa kredensial. + Akun Nonaktif + Akun Anda dinonaktifkan. Silakan kontak admin. + Anda punya penugasan baru. Silakan login kembali. + Akses lokasi Anda telah dibatalkan. + Sesi berakhir. Silakan login kembali. + Enkripsi database berubah. Silakan login kembali. + Akun Anda telah dihapus. Silakan hubungi admin. + Tidak ada klien autentikasi yang tersedia pada URL. + + + + + + Ibu + Pencarian + Daftar + Pustaka + Saya + + + + + + clients + events + + + + + + Harap Tunggu + Membatalkan... + Menghentikan layanan... + Mengecek data... + Harap masukkan URL yang valid. + Apakah Anda mau menghapus data untuk login dengan akun berbeda? + Anda mencoba login dengan akun berbeda. Upload dan pembersihan data akun %s di tim %s diperlukan. Lanjutkan? + URL tidak boleh kosong + + + + + + Field ini harus diisi + Pembaruan Form + Terdapat pembaruan konten pada form ini + (Form Korup) + Pilih form untuk rollback + Form ini tidak bisa dipilih karena korup. + Form berhasil dipiih. Silakan buka kembali form ini. + Upload gambar ke server OpenSRP + + + + + + Info Pendaftaran + Filter + Hanya jatuh tempo + Cari Nama atau ID + 0 Ibu (Urutan: terkini) + Tidak ada data + %1$d Ibu + %1$d Ibu + + + Panah Kanan + Pengaturan + + + + + + Foto diambil + + + + + + Placeholder Pustaka + + + + + + Layanan Lokasi + Ikon Bagian + Lokasi: + "Bahasa diubah ke " + Mohon restart aplikasi. + Sedang memproses transfer data. + Jangan edit data ibu atau kunjungan sampai proses selesai. + Rekaman akan diproses hingga 10 menit sebelum rekaman Anda diperbarui. Jangan mengubah data sampai proses selesai. + Tipe data %s tidak tersedia pada pengirim. + Memproses catatan saat menggunakan peer to peer untuk berbagi file + + + + + + Scan QR Code + Akses ke kamera diperlukan untuk deteksi. + Aplikasi ini tidak dapat dijalankan karena tidak memiliki izin untuk mengakses kamera. Aplikasi sekarang akan ditutup. + Ketergantungan detektor wajah tidak dapat diunduh karena penyimpanan perangkat tinggal sedikit. + Contoh Barcode Reader + Klik "Baca Barcode" untuk membaca barcode. + Baca Barcode + Auto Focus + Gunakan Flash + Barcode berhasil dibaca + Tidak ada barcode yang dibaca + Gagal membaca barcode: %1$s + Anda harus mengizinkan aplikasi menggunakan kamera untuk memindai QR Code… + + + + + + Memuat pengaturan ibu… + Form tidak tersinkronisasi + Sinkronisasi gagal. Periksa koneksi internet Anda. + Sinkronisasi... + Sinkronisasi gagal + Sinkronisasi selesai + Sinkronisasi manual dimulai… + Sinkronisasi Data: %1$s at %2$s + Sinkronisasi Gagal. Silakan periksa konfigurasi URL. + Sinkronisasi Gagal. Tidak dapat terhubung ke server. + Unduh Database + Lihat Status Sinkronisasi + Mengekspor Database... + Database berhasil diunduh + Kunjungan tersinkronisasi: + Kunjungan tidak tersinkronisasi: + Ibu tersinkronisasi: + Ibu tidak tersinkronisasi: + Kunjungan tervalidasi: + Ibu tidak tervalidasi: + Tugas kunjungan tidak terproses: + Form Lainnya + Akses ke penyimpanan internal perangkat diperlukan untuk mengunduh database. + Proses unggahan sinkronisasi %d%% + + + + + + %1$dd + %1$dm + %1$dj + %1$dh + %1$dmg + %1$dmg %2$dh + %1$dbln + %1$dbln %2$dmg + %1$dthn + %1$dthn %2$dbln + + + + + + Proses replikasi gagal + Mengelola autentikasi dan otorisasi pengguna + + + + + + action_me + / + + + + + + + + + + + + BUNDA + Versi Form: v%1$s + + + + + + Username + Password + + + + + + Logout + Bahasa + Scan QR code + Tuntaskan + Hapus dari Daftar + Batalkan + Terapkan + Selesai + Batalkan + Salin ke clipboard + Pergi ke Pencarian Lanjutan + Pergi ke Profil Ibu + Kirim ringkasan ke ibu + Kembali + Pergi ke gambar + Sisipkan berkas + Lanjutkan + Sunting + + + + + + Ya + Tidak + Selamat datang! Untuk memulai, harap tetapkan karakteristik tempat Anda. + Karakteristik Populasi + Lanjutkan ke Daftar Ibu + Karakteristik tempat untuk %1$s sudah siap. + Karakteristik tempat dibagikan oleh semua pengguna OpenSRP di fasilitas tersebut. Anda dapat memperbarui karakteristik tempat kapan saja. + Kembali ke Karakteristik Lokasi + + + + + + ID: %1$s + Usia: %1$s + UK: %1$d weeks + \u2022 + + + + + + Pemeriksaan Cepat + Profil + Gejala dan Tindak Lanjut + Pemeriksaan Fisik + Tes + Konseling dan Tindakan + Tugas Kunjungan + Finalisasi + %1$d harus diisi + Keluar Kunjungan dengan %1$s + Keluar dari Kunjungan? + Simpan kunjungan dan lanjutkan lain kali + Simpan Perubahan + Batalkan Perubahan + Keluar tanpa menyimpan perubahan + Tanggal kunjungan berikutnya: + Tes USG + Tes Golongan Darah + Tes Hepatitis B + HTes Hepatitis C + Tes Sifilis + Tes Urin + Tes Hemoglobin Darah + Tes HIV + Pemindaian TB + Tes HIV Pasangan + Tes Glukosa Darah + Tes Lainnya + Data Ringkasan Kunjungan - %1$s \n %2$s + \"PDF tersimpan di \" + RingkasanKunjungan.pdf + + + + + + Menyimpan... + Menghapus... + Tidak ada id unik yang ditemukan. Klik tombol sinkronisasi untuk mendapatkan lebih banyak dan jika kesalahan ini berlanjut, hubungi admin sistem. + Zona waktu perangkat berubah. Silakan login lagi. + Waktu perangkat telah berubah. Silakan login lagi. + Memperbarui... + Tidak ditemukan ibu yang cocok di perangkat ini. + + + + + + Terjadi kesalahan saat memulai form + Tentukan + + + + + + Alasan berkunjung? * + Kunjungan Pertama + Kunjungan Terjadwal + Keluhan Khusus + Keluhan Khusus* + Keputihan yang tidak normal + Warna kulit yang berubah + Perubahan tekanan darah + Sembelit + Kontraksi + Batuk + Depresi / cemas + Pusing + KDRT + Nyeri panggul ekstrem - tidak bisa berjalan (disfungsi simfisis pubis) + Demam + Sakit perut menyeluruh + Gejala flu + Kehilangan cairan + Sakit kepala + Maag + Keram kaki + Nyeri di kaki + Kemerahan di kaki + Nyeri punggung bawah dan panggul + Mual/muntah/diare + Tidak ada gerakan janin + Busung + Pendarahan lainnya + Nyeri lainnya + Gejala psikologis lainnya + Kelainan kulit lainnya + Jenis kekerasan lainnya + Nyeri saat buang air kecil (disuria) + Pruritus + Gerakan janin berkurang atau buruk + Sesak napas + Kelelahan + Trauma + Pendarahan vagina + Gangguan penglihatan + Lainnya + Tanda bahaya * + Tidak ada + Pendarahan melalui vagina + Sianosis sentral + Kejang + Demam + Headache and visual disturbance + Kelahiran segera + Melahirkan + Terlihat sangat sakit + Muntah parah + Nyeri parah + Sakit perut yang parah + Tidak sadar + Lanjutkan ke kunjungan normal + Rujuk dan akhiri kunjungan + Silakan pilih alasan untuk datang ke fasilitas + Harap pilih setidaknya satu keluhan + Silakan pilih Tidak Ada atau setidaknya satu tanda bahaya + Harap setidaknya satu tanda bahaya selain Tidak Ada + Tidak dapat menyimpan pemeriksaan cepat + Perubahan warna kebiruan di sekitar selaput lendir di mulut, bibir dan lidah + Apakah tindakan yang diberikan sebelum rujukan? + + + + + + Kunjungan 22/05/2018 + Cari nama atau ID + Hapus Filter + Memiliki tugas jatuh tempo + Kehamilan berisiko + Kehamilan sifilis + Kehamilan HIV + Hipertensi + Catat Kelahiran + + + + + + Pencarian Lanjutan + Di luar dan di dalam fasilitas kesehatan saya + (membutuhkan koneksi internet) + Fasilitas kesehatan saya saja + Nama Depan + Nama Belakang + ID ANC + ID ANC + HPL + Hari Perkiraan Lahir + TL + Tanggal Lahir + Nomor Telepon Seluler + Nomor Telepon + Nama Kontak Alternatif + Nama Kontak Alternatif + Cari + Hasil Pencarian + Mencari… + Harap tunggu + %1$s cocok + QR Code + Fasilitas Ibu + + + + + + Pendaftaran baru disimpan ! + Informasi registrasi diperbarui ! + + + + + + Telepon + Mulai Kunjungan + Ikhtisar + Kunjungan + Tugas + Tutup Catatan ANC + Aplikasi BUNDA harus diizinkan untuk melakukan panggilan telepon… + Setiap perubahan akan hilang + Nama Ibu + Mulai\nKunjungan %1$s\n%2$s + Mulai Kunjungan %1$s - %2$s + Kunjungan %1$s\n dalam Proses + Kunjungan %1$s · dalam Proses + Jatuh Tempo\nMelahirkan + UK: %1$d minggu\nHPL: %2$s (%3$s lalu)\n\n%4$s harus segera melahirkan. + Kunjungan %1$d + Kunjungan %1$d terekam + tampilan ikon info lebih lanjut + tampilan ikon status + Rekam + Undo + Simpan + Selesaikan + Alasan Berkunjung + Kunjungan %1$d\n dilakukan hari ini + Kunjungan %1$d · dilakukan hari ini + Lanjutkan Kunjungan %1$d + Finalisasi kunjungan %1$d + Menyimpulkan kunjungan %1$d + Kunjungan %1$d\n Jatuh Tempo \n %2$s + Kunjungan %1$d · Jatuh Tempo · %2$s + Kunjungan Terakhir + Gambaran Penting + Kunjungan Terkini: %1$s + Kunjungan Sebelumnya + Semua Hasil Tes + %1$s Minggu · Kunjungan %2$s + Kunjungan %1$s + Batalkan hasil %1$s? + Kunjungan negatif berarti pasien dirujuk sehingga jadwal kunjungan tidak berubah dan tetap sama seperti sebelumnya + Kunjungan Sebelumnya + Semua Hasil Tes + Hari Perkiraan Lahir + %1$s minggu + %1$s minggu lagi + Semua Hasil + Tidak ada tes tersedia + Rujukan Rumah Sakit + Belum ada jadwal kunjungan yang dibuat + Rujukan Rumah Sakit direkam + Gambar tombol tab + Tekan tombol berikut untuk mulai/lanjutkan kunjungan + Tidak ada data kesehatan terekam + Tes + Lihat histori ANC + + + + + + Placeholder Halaman Saya + %1s + Pilih Bahasa + Pilih Bahasa + English + French + Portuguese (Brazil) + Bahasa Indonesia + Sinkronisasi antarperangkat + + + + + + Sinkronisasi + Sinkronisasi selesai… + Ulangi + Sinkronisasi%1$s + (terakhir %1$s) + Sinkronisasi data + + + + + + Abjad (Nama) + Nama + DOSIS (D) + ID + Lokasi: %1$s + Dosis %1$s diberikan %2$s + OpenSRP ID + WHO ANC + Tombal QR Code Scanner + Filter + Daftar + Pustaka + Terbaru + UK (Lanjut ke Awal) + UK (Awal ke Lanjut) + ID + Nama Depan (A ke Z) + Nama Depan (Z ke A) + Nama Belakang (A ke Z) + Nama Belakang (Z ke A) + Tidak ada lokasi yang dipilih + Ibu + Sumberdaya Konseling + Karakteristik Tempat + Ringkasan Kunjungan + Tutup navigasi + Buka navigasi + + + + + + Kuning + Merah + + + + + + + + + + + OpenSRP Base URL + Alamat URL dari server OpenSRP + Masukkan URL dari server OpenSRP + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index a9b91b0cb..8f0107ca4 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -1,446 +1,709 @@ - - Logout - Language - - - WHO ANC - Saving… - Removing… - Please wait - Scan QR code - Select Language - No unique ids found. Click on the sync button to get more and if this error persists contact the system admin. - Alphabetical (Name) - Name - Cancel - DOSE (D) - ID - Location: %1$s - Dose %1$s given %2$s - - - Please check the credentials - Your user group is not allowed to access this device - login failed. Try later - No internet connection. Please ensure data connectivity - Log In - Show password - Complete - Updating… - REMOVE FROM REGISTER - / - clients - events - Sync - Sync round complete… - "The device's timezone changed. Please login again." - "The device's time has changed. Please login again." - - - Sync failed. Check your internet connection. - Syncing... - Sync failed - Retry - Sync complete - Sync%1$s - (last %1$s) - Manual Sync triggered… - - - Username - Password (optional) - Sign in or register - Sign in - This username is invalid - This password is too short - This password is incorrect - This field is required - Registration info - - - OpenSRP ID - WHO ANC - An error occurred when starting the form - Search name or ID - Filter - CLEAR FILTERS - APPLY - DONE - Has tasks due - Risky pregnancy - Syphilis pregnancy - HIV pregnancy - Hypertensive - Updated (recent first) - GA (older first) - GA (younger first) - ID - First name (A to Z) - First name (Z to A) - Last name (A to Z) - Last name (Z to A) - No location selected - - - Advanced Search - Outside and inside my health facility - (requires internet connection) - My health facility only - First name - Last name - ANC ID - ANC ID - Edd - Expected date of delivery - Dob - Date of birth - Mobile phone number - Phone number - Alternate contact name - Alternate contact name - Search - Search Results - Searching… - Please wait - %1$s matches - - - ANC clients - Counseling resources - Site characteristics - Contact Summary - Sync data - Close navigation drawer - Open navigation drawer - Antenatal Care \n Module - ID: %1$s - Age: %1$s - GA: %1$d weeks - \u2022 - - OVERVIEW - CONTACTS - TASKS - - New registration saved ! - Registration info updated ! - - Call - Start Contact - Close ANC Record - Copy to clipboard - No matching woman found on this device. - Go to advanced search - Cancel - YELLOW - RED - Record birth - The QR Code Scanner button - Filter - %1$d clients - %1$d client - Register - Library - Me - Clients - 0 Clients (Sort: updated) - - Reason for coming to facility? * - - First contact - Scheduled contact - Specific complaint - - Specific complaint(s) * - - Abnormal vaginal discharge - Altered skin colour - Changes in blood pressure - Constipation - Contractions - Cough - Depressive / anxious - Dizziness - Domestic violence - Extreme pelvic pain - can\'t walk (symphysis pubis dysfunction) - Fever - Full abdominal pain - Flu symptoms - Fluid loss - Headache - Heartburn - Leg cramps - Leg pain - Leg redness - Low back and pelvic pain - Nausea / vomiting / diarrhea - No fetal movement - Oedema - Other bleeding - Other pain - Other psychological symptoms - Other skin disorder - Other types of violence - Pain during urination (dysuria) - Pruritus - Reduced or poor fetal movement - Shortness of breath - Tiredness - Trauma - Vaginal bleeding - Visual disturbance - Other - - Danger signs * - - None - Bleeding vaginally - Central cyanosis - Convulsing - Fever - Headache and visual disturbance - Imminent delivery - Labour - Looks very ill - Severe vomiting - Severe pain - Severe abdominal pain - Unconscious - - Specify - - Proceed to normal contact - Refer and close contact - - Please select a reason for coming to facility - Please select at least one specific complaint - Please select None or at least one danger sign - Please at least one danger sign other than None - Unable to save quick check event - - Bluish discolouration around the mucous membranes in the mouth, lips and tongue - - Any treatment given\nbefore referral? - Welcome!\n\nTo get started, please set your site characteristics. - Yes - No - CONTACT 22/05/2018 - Library Placeholder - Me Page Placeholder - Population characteristics - continue - CONTINUE TO YOUR CLIENT LIST - Your site characteristics for %1$s are all set. - Site characteristics are shared by all OpenSRP users at the facility. You can update site characteristics at any time. - Go back to site characteristics - edit - - - Quick Check - Profile - Symptoms and Follow-up - Physical Exam - Tests - Counselling and Treatment - Contact Tasks - - Finalize - %1$d required fields - - View Anc History - - Exit Contact with\n%1$s - Exit contact? - Save Changes\nContinue with this contact at\na later time - Save changes - Ignore changes - Close without saving\nLose updates you\'ve made in\nthis contact - - Location: - Right Arrow - Section Icon - Settings - App version: %1$s (built on %2$s) - Form Release version: v%1$s - - Data synced: %1$s at %2$s - QR Code - Client\'s facility - - Upcoming contact dates: - GO TO CLIENT PROFILE - SEND SUMMARY TO CLIENT - Loading client settings… - You need to allow the WHO ANC app to manage phone calls to enable calling… - Any changes you make will be lost - Woman Name - START\nCONTACT %1$s\n%2$s - START · CONTACT %1$s · %2$s - CONTACT %1$s\n IN PROGRESS - CONTACT %1$s · IN PROGRESS - DUE\nDELIVERY - GA: %1$d weeks\nEDD: %2$s (%3$s ago)\n\n%4$s should come in immediately for delivery. - Contact %1$d - Contact %1$d recorded - the more info icon display - the status icon display - Record - Undo - SAVE + FINISH - REASON FOR VISIT - CONTACT %1$d\n DONE TODAY - CONTACT %1$d · DONE TODAY - Continue Contact %1$d - Username - Password - Finalizing Contact %1$d - Summarizing Contact %1$d - CONTACT %1$d\n DUE \n %2$s - CONTACT %1$d · DUE · %2$s - LAST CONTACT - KEY FIGURES - RECENT TEST: %1$s - PREVIOUS CONTACTS - All Tests Results - %1$s Weeks · Contact %2$s - Contact %1$s - Undo the %1$s result? - A negative contact means that the patient was referred so her contact schedule does not change and remains the same as before - Previous Contacts - All Test Results - Expected Date of Delivery - %1$s weeks - %1$sw away - All results - No Tests Available - Hospital referral - No contact schedule generated yet - Hospital referral recorded - Back - Tab button image - Tap the button below to start/complete a contact - No health data recorded - Tests - Go to image - Attach file - Birth and Emergency plan - Physical Activity - Balanced Nutrition - - SOURCE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - • - - Develop a birth and emergency plan - Facility delivery - Explain why birth in a facility is recommended - Any complication can develop during delivery - they are not always predictable. - A facility has staff, equipment, supplies and drugs available to provide best care if needed, and a referral system. - If HIV-infected she will need appropriate ARV treatment for herself and her baby during childbirth. - Complications are more common in HIV-infected women and their newborns. HIV-infected women should deliver in a facility. - Advise how to prepare - Review the arrangements for delivery: - How will she get there? Will she have to pay for transport? - How much will it cost to deliver at the facility? How will she pay? - Can she start saving straight away? - Who will go with her for support during labour and delivery? - Who will help while she is away to care for her home and other children? - Advise when to go - If the woman lives near the facility, she should go at the first signs of labour. - If living far from the facility, she should go 2-3 weeks before baby due date and stay either at the maternity waiting home or with family or friends near the facility. - Advise to ask for help from the community, if needed. - Advise what to bring - Home-based maternal record. - Clean cloths for washing, drying and wrapping the baby. - Additional clean cloths to use as sanitary pads after birth. - Clothes for mother and baby. - Food and water for woman and support person. - Home delivery with a skilled attendant - Review the following with her: - Who will be the companion during labour and delivery? - Who will be close by for at least 24 hours after delivery? - Who will help to care for her home and other children? - Advise to call the skilled attendant at the first signs of labour. - Advise to have her home-based maternal record ready. - Advise asking for help from the community, if needed. - Explain supplies needed for home delivery - Clean cloths of different sizes: for the bed, for drying and wrapping the baby, for cleaning the baby’s eyes, for the birth attendant to wash and dry her hands, for use as sanitary pads. - Blankets. - Buckets of clean water and some way to heat this water. - Soap. - Bowls: 2 for washing and 1 for the placenta. - Plastic for wrapping the placenta. - DISCLAIMER: WHO is not responsible for the content of these additional materials. - Physical activity is any bodily movement produced by the skeletal muscles that uses energy. This includes sports, exercise, and other activities such as playing, walking, household chores, gardening, and dancing. Any activity, be it for work, to walk or cycle to and from places, or as part of leisure time, has a health benefit. - People who are physically active: - improve their muscular and cardio-respiratory fitness; - improve their bone and functional health; - have lower rates of coronary heart disease, high blood pressure, stroke, diabetes, cancer (including colon and breast cancer), and depression; - have a lower risk of falling and of hip or vertebral fractures; and - are more likely to maintain their weight. - Exercise can be any activity requiring physical effort, carried out to sustain or improve health or fitness, and these can be either prescribed/unsupervised (e.g. 30 minutes of daily walking), supervised (e.g. a weekly supervised group exercise class) or both. Physical activity is also fundamental to energy balance and weight control. - A healthy lifestyle includes aerobic physical activity and strength-conditioning exercise aimed at maintaining a good level of fitness throughout pregnancy, without trying to reach peak fitness level or train for athletic competition. Women should choose activities with minimal risk of loss of balance and fetal trauma. Pregnant, postpartum women and persons with cardiac events may need to take extra precautions and seek medical advice before striving to achieve the recommended levels of physical activity. - For more information please access: - https://apps.who.int/iris/bitstream/handle/10665/44399/9789241599979_eng.pdf?sequence=1 - https://extranet.who.int/rhl/pt-br/node/151040 - SOURCE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. - Maintaining good nutrition and a healthy diet during pregnancy is critical for the health of the mother and unborn child. When providing nutrition education and counselling to improve the nutritional status of women during pregnancy, please focus primarily on: - promoting a healthy diet by increasing the diversity and amount of foods consumed - promoting adequate weight gain through sufficient and balanced protein and energy intake - promoting consistent and continued use of micronutrient supplements, food supplements or fortified foods - Local as well as cultural adaptations may be necessary to meet individual needs and ensure compliance with the recommendations. - For adults a healthy diet contains: - Fruits, vegetables, legumes (e.g. lentils, beans), nuts and whole grains (e.g. unprocessed maize, millet, oats, wheat, brown rice). - At least 400 g (5 portions) of fruits and vegetables a day. Potatoes, sweet potatoes, cassava and other starchy roots are not classified as fruits or vegetables. - Less than 10% of total energy intake from free sugars which is equivalent to 50 g (or around 12 level teaspoons) for a person of healthy body weight consuming approximately 2000 calories per day, but ideally less than 5% of total energy intake for additional health benefits. Most free sugars are added to foods or drinks by the manufacturer, cook or consumer, and can also be found in sugars naturally present in honey, syrups, fruit juices and fruit juice concentrates. - Less than 30% of total energy intake from fats. Unsaturated fats (e.g. found in fish, avocado, nuts, sunflower, canola and olive oils) are preferable to saturated fats (e.g. found in fatty meat, butter, palm and coconut oil, cream, cheese, ghee and lard). Industrial trans fats (found in processed food, fast food, snack food, fried food, frozen pizza, pies, cookies, margarines and spreads) are not part of a healthy diet. - Less than 5 g of salt (equivalent to approximately 1 teaspoon) per day and use iodized salt. - http://www.who.int/en/news-room/fact-sheets/detail/healthy-diet - https://mediumredpotion.wordpress.com/2011/12/14/that-old-healthy-food-pyramid/ - Source - Example sources of protein: - Please add to list and modify to local standards where possible. - http://www.bendifulblog.com/your-guide-to-protein-what-you-should-know/ - https://co.pinterest.com/pin/208291551498329651/ - Example sources of calcium: - Example sources of energy: - Please add to list and modify to local standards where possible. - - Example sources of iron: - https://www.wholesomebabyfoodguide.com/iron-and-iron-rich-baby-foods-what-iron-rich-foods-can-baby-eat/ - https://bit.ly/2RUH0VU - https://i.pinimg.com/originals/21/f2/e3/21f2e3fc203e6b475616e971f3c874f3.jpg - Example sources of Vitamin A: - https://www.myfooddata.com/articles/food-sources-of-vitamin-A.php - https://www.medindia.net/patients/lifestyleandwellness/vitamin-a-rich-foods.htm - Example sources of Vitamin C: - https://www.myfooddata.com/articles/vitamin-c-foods.php#printable - Caffeine intake - The maximum daily dose of caffeine intake for a pregnant woman is 300mg, is equivalent to: - ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf - Current language: %1s - - Choose language - English - French - Portuguese (Brazil) - Bahasa (Indonesia) - - Ultrasound test - Blood Type test - Hepatitis B test - Hepatitis C test - Syphilis test - Urine test - Blood Haemoglobin test - HIV test - TB Screening - Partner HIV test - Blood Glucose test - Other test - Contact Summary Data - %1$s \n %2$s - \"Pdf saved successfully to location \" - contactSummaryData.pdf - Device-to-device sync + + + + + + + + + + WHO ANC + App Version: %1$s (built on %2$s) + This is an outdated app. Please update to the latest version to continue. + App Reset Status + Clearing application data... + + + + + + Yes + No + OK + Next >> + << Previous + Page {0} of {1} + Refresh + Return + + + + + + Log In + Logout + Logging in… + Please Wait + Log In Failed + Please Check The Credentials + Are you sure you want to go back? All the data you have entered in this form will be cleared. + Confirm Form Close + Confirm Logout + Are you sure you want to log out? All the data will be cleared. + Username + Password (optional) + Sign in or register + Sign in + This username is invalid + This password is too short + This password is incorrect + Show Password + Error occurred during Login in with server. Please try again. + OpenSRP Base URL is missing. Please add it in Setting and try again + Logout + Your user group is not allowed to access this device. + No internet connection. Please ensure data connectivity. + Login Failed. Please try later. + Please check the credentials. + Account Disabled + You have been logged off as your account has been disabled. Please contact your administrator. + You have been logged off as your account has new assignments. Log in again so that new assignments take effect + You have been logged off as access to your default location has been revoked + Your session has expired. Please log in again. + You have been logged off as your application database encryption version has changed. Please login in again to complete the upgrade. + You have been logged off as your account has been removed from the accounts manager. + No auth client available for the URL + + + + + + Clients + Search + Register + Library + Me + + + + + + clients + events + + + + + + Please Wait + Cancelling... + Stopping services... + Performing data checks... + Please enter a valid url. + Do you want to clear data to login with a different team/location + You are trying to login with a user in a different team/location. Upload of pending data and clearing of data for user %s in Team %s is required. Do you want to continue? + The URL cannot be empty + + + + + + This field is required + Form Update + This form has content updates + (Current Corrupted Form) + Select a rollback form + You cannot select this form because it\'s corrupted! + Form has been successfully selected! Reopen this form for the changes to take effect + Uploads images to the OpenSRP server + + + + + + Registration info + Filter + Due only + Find name or ID + 0 Clients (Sort: updated) + No Record + %1$d Clients + %1$d Client + + + Right Arrow + Settings + + + + + + Photo Captured + + + + + + Library Placeholder + + + + + + Service Location + Section Icon + Location: + Language preference set to + Please restart the application. + Currently processing transferred records. + Do not edit client records until complete. + Records will be processed for up to 10 minutes before your records will be updated. Do not edit medical records until the process is complete. + The data type %s provided does not exist in the sender. + Processes the records when using peer to peer for file sharing + + + + + + Scan QR Code + Access to the camera is needed for detection. + This application cannot run because it does not have permission to access the camera. The application will now exit. + Face detector dependencies cannot be downloaded due to low device storage + Barcode Reader Sample + Click "Read Barcode" to read a barcode + Read Barcode + Auto Focus + Use Flash + Barcode read successfully + No barcode captured + "Error reading barcode: %1$s" + You need to allow the app to use the camera to scan QR codes… + + + + + + Loading client settings… + Forms Unsynced + Sync failed. Check your internet connection. + Syncing... + Sync Failed + Sync Complete + Manual Sync Triggered… + Data synced: %1$s at %2$s + Sync Failed. Please check the URL configuration. + Sync Failed. Could not connect to the server. + Download Database + Show Sync Stats + Exporting Database… + Database download successful + Synced events: + Unsynced events: + Synced clients: + Unsynced clients: + Validated events: + Validated clients: + Task unprocessed events: + Other Forms + Write access to the device internal storage is required for database download. + Sync upload progress %d%% + + + + + + %1$ds + %1$dm + %1$dh + %1$dd + %1$dw + %1$dw %2$dd + %1$dm + %1$dm %2$dw + %1$dy + %1$dy %2$dm + + + + + + Replication error occurred + Manages user authentication and authorization + + + + + + action_me + / + + + + + + + + + + + + Antenatal Care Module + Form Release version: v%1$s + + + + + + Username + Password + + + + + + Logout + Language + Scan QR code + Complete + Remove from Register + Cancel + Apply + Done + Cancel + Copy to clipboard + Go to Advanced Search + Go to Client Profile + Send Summary to Client + Back + Go to image + Attach file + continue + edit + + + + + + Yes + No + Welcome! To get started, please set your site characteristics. + Population characteristics + CONTINUE TO YOUR CLIENT LIST + Your site characteristics for %1$s are all set. + Site characteristics are shared by all OpenSRP users at the facility. You can update site characteristics at any time. + Go back to site characteristics + + + + + + ID: %1$s + Age: %1$s + GA: %1$d weeks + \u2022 + + + + + + Quick Check + Profile + Symptoms and Follow-up + Physical Exam + Tests + Counselling and Treatment + Contact Tasks + Finalize + %1$d required fields + Exit Contact with\n%1$s + Exit contact? + Save Changes Continue with this contact at a later time + Save changes + Ignore changes + Close without saving Lose updates you\'ve made in this contact + Upcoming contact dates: + Ultrasound test + Blood Type test + Hepatitis B test + Hepatitis C test + Syphilis test + Urine test + Blood Haemoglobin test + HIV test + TB Screening + Partner HIV test + Blood Glucose test + Other test + Contact Summary Data - %1$s \n %2$s + \"PDF saved on location \" + contactSummaryData.pdf + Device-to-device sync + + + + + + Saving... + Removing... + No unique ids found. Click on the sync button to get more and if this error persists contact the system admin. + "The device's timezone changed. Please login again." + "The device's time has changed. Please login again." + Updating... + No matching woman found on this device. + + + + + + An error occurred when starting the form + Specify + + + + + + Reason for coming to facility? * + First contact + Scheduled contact + Specific complaint + Specific complaint(s) * + Abnormal vaginal discharge + Altered skin colour + Changes in blood pressure + Constipation + Contractions + Cough + Depressive / anxious + Dizziness + Domestic violence + Extreme pelvic pain - can\'t walk (symphysis pubis dysfunction) + Fever + Full abdominal pain + Flu symptoms + Fluid loss + Headache + Heartburn + Leg cramps + Leg pain + Leg redness + Low back and pelvic pain + Nausea / vomiting / diarrhea + No fetal movement + Oedema + Other bleeding + Other pain + Other psychological symptoms + Other skin disorder + Other types of violence + Pain during urination (dysuria) + Pruritus + Reduced or poor fetal movement + Shortness of breath + Tiredness + Trauma + Vaginal bleeding + Visual disturbance + Other + Danger signs * + None + Bleeding vaginally + Central cyanosis + Convulsing + Fever + Headache and visual disturbance + Imminent delivery + Labour + Looks very ill + Severe vomiting + Severe pain + Severe abdominal pain + Unconscious + Proceed to normal contact + Refer and close contact + Please select a reason for coming to facility + Please select at least one specific complaint + Please select None or at least one danger sign + Please at least one danger sign other than None + Unable to save quick check event + Bluish discolouration around the mucous membranes in the mouth, lips and tongue + Any treatment given before referral? + + + + + + CONTACT 22/05/2018 + Search by Name or ID + Clear Filters + Has tasks due + Risky pregnancy + Syphilis pregnancy + HIV pregnancy + Hypertensive + Record birth + + + + + + Advanced Search + Outside and inside my health facility + (requires internet connection) + My health facility only + First name + Last name + ANC ID + ANC ID + Edd + Expected date of delivery + Dob + Date of birth + Mobile phone number + Phone number + Alternate contact name + Alternate contact name + Search + Search Results + Searching… + Please wait + %1$s matches + QR Code + Client\'s facility + + + + + + New registration saved ! + Registration info updated ! + + + + + + Call + Start Contact + OVERVIEW + CONTACTS + TASKS + Close ANC Record + You need to allow the WHO ANC app to manage phone calls to enable calling… + Any changes you make will be lost + Woman Name + START\nCONTACT %1$s\n%2$s + START · CONTACT %1$s · %2$s + CONTACT %1$s\n IN PROGRESS + CONTACT %1$s · IN PROGRESS + DUE\nDELIVERY + GA: %1$d weeks\nEDD: %2$s (%3$s ago)\n\n%4$s should come in immediately for delivery. + Contact %1$d + Contact %1$d recorded + the more info icon display + the status icon display + Record + Undo + SAVE + FINISH + REASON FOR VISIT + CONTACT %1$d\n DONE TODAY + CONTACT %1$d · DONE TODAY + Continue Contact %1$d + Finalizing Contact %1$d + Summarizing Contact %1$d + CONTACT %1$d\n DUE \n %2$s + CONTACT %1$d · DUE · %2$s + LAST CONTACT + KEY FIGURES + RECENT TEST: %1$s + PREVIOUS CONTACTS + All Tests Results + %1$s Weeks · Contact %2$s + Contact %1$s + Undo the %1$s result? + A negative contact means that the patient was referred so her contact schedule does not change and remains the same as before + Previous Contacts + All Test Results + Expected Date of Delivery + %1$s weeks + %1$sw away + All results + No Tests Available + Hospital referral + No contact schedule generated yet + Hospital referral recorded + Tab button image + Tap the button below to start/complete a contact + No health data recorded + Tests + View Anc History + + + + + + Me Page Placeholder + Current language: %1s + Select Language + Current language: %1s + English + French + Portuguese (Brazil) + Bahasa (Indonesia) + + + + + + Sync + Sync round complete… + Retry + Sync%1$s + (last %1$s) + Sync data + + + + + + Alphabetical (Name) + Name + DOSE (D) + ID + Location: %1$s + Dose %1$s given %2$s + OpenSRP ID + WHO ANC + The QR Code Scanner button + Filter + Register + Library + Updated (recent first) + GA (older first) + GA (younger first) + ID + First name (A to Z) + First name (Z to A) + Last name (A to Z) + Last name (Z to A) + No location selected + ANC clients + Counseling resources + Site characteristics + Contact Summary + Close navigation drawer + Open navigation drawer + + + + + + YELLOW + RED + + + + + + + + + + + OpenSRP Base URL + Defines the base server URL that handles requests + Enter Base Server URL + + + + + + + + + + + Birth and Emergency plan + Physical Activity + Balanced Nutrition + SOURCE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. + • + Birth and Emergency + Develop a birth and emergency plan + Facility delivery + Explain why birth in a facility is recommended + Any complication can develop during delivery - they are not always predictable. + A facility has staff, equipment, supplies and drugs available to provide best care if needed, and a referral system. + If HIV-infected she will need appropriate ARV treatment for herself and her baby during childbirth. + Complications are more common in HIV-infected women and their newborns. HIV-infected women should deliver in a facility. + Advise how to prepare + Review the arrangements for delivery: + How will she get there? Will she have to pay for transport? + How much will it cost to deliver at the facility? How will she pay? + Can she start saving straight away? + Who will go with her for support during labour and delivery? + Who will help while she is away to care for her home and other children? + Advise when to go + If the woman lives near the facility, she should go at the first signs of labour. + If living far from the facility, she should go 2-3 weeks before baby due date and stay either at the maternity waiting home or with family or friends near the facility. + Advise to ask for help from the community, if needed. + Advise what to bring + Home-based maternal record. + Clean cloths for washing, drying and wrapping the baby. + Additional clean cloths to use as sanitary pads after birth. + Clothes for mother and baby. + Food and water for woman and support person. + Home delivery with a skilled attendant + Review the following with her: + Who will be the companion during labour and delivery? + Who will be close by for at least 24 hours after delivery? + Who will help to care for her home and other children? + Advise to call the skilled attendant at the first signs of labour. + Advise to have her home-based maternal record ready. + Advise asking for help from the community, if needed. + Explain supplies needed for home delivery + Clean cloths of different sizes: for the bed, for drying and wrapping the baby, for cleaning the baby’s eyes, for the birth attendant to wash and dry her hands, for use as sanitary pads. + Blankets. + Buckets of clean water and some way to heat this water. + Soap. + Bowls: 2 for washing and 1 for the placenta. + Plastic for wrapping the placenta. + DISCLAIMER: WHO is not responsible for the content of these additional materials. + Physical activity is any bodily movement produced by the skeletal muscles that uses energy. This includes sports, exercise, and other activities such as playing, walking, household chores, gardening, and dancing. Any activity, be it for work, to walk or cycle to and from places, or as part of leisure time, has a health benefit. + People who are physically active: + improve their muscular and cardio-respiratory fitness; + improve their bone and functional health; + have lower rates of coronary heart disease, high blood pressure, stroke, diabetes, cancer (including colon and breast cancer), and depression; + have a lower risk of falling and of hip or vertebral fractures; and + are more likely to maintain their weight. + Exercise can be any activity requiring physical effort, carried out to sustain or improve health or fitness, and these can be either prescribed/unsupervised (e.g. 30 minutes of daily walking), supervised (e.g. a weekly supervised group exercise class) or both. Physical activity is also fundamental to energy balance and weight control. + A healthy lifestyle includes aerobic physical activity and strength-conditioning exercise aimed at maintaining a good level of fitness throughout pregnancy, without trying to reach peak fitness level or train for athletic competition. Women should choose activities with minimal risk of loss of balance and fetal trauma. Pregnant, postpartum women and persons with cardiac events may need to take extra precautions and seek medical advice before striving to achieve the recommended levels of physical activity. + For more information please access: + https://apps.who.int/iris/bitstream/handle/10665/44399/9789241599979_eng.pdf?sequence=1 + https://extranet.who.int/rhl/pt-br/node/151040 + SOURCE: World Health Organization. Integrated Management of Pregnancy and Childbirth – Pregnancy, Childbirth, Postpartum and Newborn Care: A guide for essential practice. 2015. Geneva. + Maintaining good nutrition and a healthy diet during pregnancy is critical for the health of the mother and unborn child. When providing nutrition education and counselling to improve the nutritional status of women during pregnancy, please focus primarily on: + promoting a healthy diet by increasing the diversity and amount of foods consumed + promoting adequate weight gain through sufficient and balanced protein and energy intake + promoting consistent and continued use of micronutrient supplements, food supplements or fortified foods + Local as well as cultural adaptations may be necessary to meet individual needs and ensure compliance with the recommendations. + For adults a healthy diet contains: + Fruits, vegetables, legumes (e.g. lentils, beans), nuts and whole grains (e.g. unprocessed maize, millet, oats, wheat, brown rice). + At least 400 g (5 portions) of fruits and vegetables a day. Potatoes, sweet potatoes, cassava and other starchy roots are not classified as fruits or vegetables. + Less than 10% of total energy intake from free sugars which is equivalent to 50 g (or around 12 level teaspoons) for a person of healthy body weight consuming approximately 2000 calories per day, but ideally less than 5% of total energy intake for additional health benefits. Most free sugars are added to foods or drinks by the manufacturer, cook or consumer, and can also be found in sugars naturally present in honey, syrups, fruit juices and fruit juice concentrates. + Less than 30% of total energy intake from fats. Unsaturated fats (e.g. found in fish, avocado, nuts, sunflower, canola and olive oils) are preferable to saturated fats (e.g. found in fatty meat, butter, palm and coconut oil, cream, cheese, ghee and lard). Industrial trans fats (found in processed food, fast food, snack food, fried food, frozen pizza, pies, cookies, margarines and spreads) are not part of a healthy diet. + Less than 5 g of salt (equivalent to approximately 1 teaspoon) per day and use iodized salt. + http://www.who.int/en/news-room/fact-sheets/detail/healthy-diet + https://mediumredpotion.wordpress.com/2011/12/14/that-old-healthy-food-pyramid/ + Source + Example sources of protein: + Please add to list and modify to local standards where possible. + http://www.bendifulblog.com/your-guide-to-protein-what-you-should-know/ + https://co.pinterest.com/pin/208291551498329651/ + Example sources of calcium: + Example sources of energy: + Please add to list and modify to local standards where possible. + + Example sources of iron: + https://www.wholesomebabyfoodguide.com/iron-and-iron-rich-baby-foods-what-iron-rich-foods-can-baby-eat/ + https://bit.ly/2RUH0VU + https://i.pinimg.com/originals/21/f2/e3/21f2e3fc203e6b475616e971f3c874f3.jpg + Example sources of Vitamin A: + https://www.myfooddata.com/articles/food-sources-of-vitamin-A.php + https://www.medindia.net/patients/lifestyleandwellness/vitamin-a-rich-foods.htm + Example sources of Vitamin C: + https://www.myfooddata.com/articles/vitamin-c-foods.php#printable + Caffeine intake + The maximum daily dose of caffeine intake for a pregnant woman is 300mg, is equivalent to: + ftp://ftp.caism.unicamp.br/pub/astec/CARTILHA_DE_EXERCISIO_FISICO_NA_GRAVIDEZ_Publico.pdf \ No newline at end of file From 3a63d995acb3637672c45470b9737bd5f60cc8c5 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 00:48:05 +0700 Subject: [PATCH 183/302] Set default language to Bahasa Indonesia --- .../org/smartregister/anc/application/AncApplication.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 85dd5281c..48ccbfb40 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -113,6 +113,9 @@ public void onCreate() { //init Job Manager JobManager.create(this).addJobCreator(new AncJobCreator()); + // Set default language + setDefaultLanguage(); + //Only integrate Flurry Analytics for production. Remove negation to test in debug if (!BuildConfig.DEBUG) { new FlurryAgent.Builder() @@ -130,7 +133,7 @@ public void onCreate() { private void setDefaultLanguage() { try { - Utils.saveLanguage("en"); + Utils.saveLanguage("in"); } catch (Exception e) { Timber.e(e, " --> saveLanguage"); } From 94886a3c48cb54c64f71f1f59abd6225e2c902b6 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 00:49:09 +0700 Subject: [PATCH 184/302] Update app preference to use values in strings.xml --- opensrp-anc/src/main/res/xml/preferences.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opensrp-anc/src/main/res/xml/preferences.xml b/opensrp-anc/src/main/res/xml/preferences.xml index 877ea0874..4719a9425 100644 --- a/opensrp-anc/src/main/res/xml/preferences.xml +++ b/opensrp-anc/src/main/res/xml/preferences.xml @@ -3,11 +3,11 @@ + android:summary="@string/app_settings_baseurl_summary" + android:title="@string/app_settings_baseurl_title" /> \ No newline at end of file From c94bc76b75bd45516e31ec831fb7572e9fef27d5 Mon Sep 17 00:00:00 2001 From: Aria Dhanang <57926750+ariadng@users.noreply.github.com> Date: Sun, 27 Nov 2022 01:04:03 +0700 Subject: [PATCH 185/302] Set opensrp_url to Indonesian development server --- reference-app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 1165dd516..fd98fb76e 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -139,7 +139,7 @@ android { zipAlignEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://ancs.dev.sid-indonesia.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -155,7 +155,7 @@ android { } debug { - resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + resValue "string", 'opensrp_url', '"https://ancs.dev.sid-indonesia.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -361,4 +361,4 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'crea jarJar { // Dependencies and related JarJar rules remove = ['fhir-model-4.8.3.jar': 'com.ibm.fhir.model.visitor.CopyingVisitor*'] -} \ No newline at end of file +} From 2e374d395e4e9dcff5803f11ad40f7e043ee7ed8 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 01:26:09 +0700 Subject: [PATCH 186/302] Change the app name to 'Bunda' --- opensrp-anc/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 8f0107ca4..71baa3a89 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ - WHO ANC + Bunda App Version: %1$s (built on %2$s) This is an outdated app. Please update to the latest version to continue. App Reset Status From 830ea2f4537b66f4a577c318e5003527048bf28b Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 02:34:47 +0700 Subject: [PATCH 187/302] Add Context param to defaultRegisterConfiguration --- .../anc/library/contract/RegisterFragmentContract.java | 4 +++- .../anc/library/model/RegisterFragmentModel.java | 5 +++-- .../anc/library/presenter/RegisterFragmentPresenter.java | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterFragmentContract.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterFragmentContract.java index 964aebc57..40f76c00b 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterFragmentContract.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/RegisterFragmentContract.java @@ -1,5 +1,7 @@ package org.smartregister.anc.library.contract; +import android.content.Context; + import org.json.JSONArray; import org.smartregister.anc.library.cursor.AdvancedMatrixCursor; import org.smartregister.configurableviews.model.Field; @@ -32,7 +34,7 @@ interface Presenter extends BaseRegisterFragmentContract.Presenter { interface Model { - RegisterConfiguration defaultRegisterConfiguration(); + RegisterConfiguration defaultRegisterConfiguration(Context context); ViewConfiguration getViewConfiguration(String viewConfigurationIdentifier); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java index 8153c1a8b..792e61590 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/RegisterFragmentModel.java @@ -2,6 +2,7 @@ import static org.smartregister.anc.library.util.ConstantsUtils.GLOBAL_IDENTIFIER; +import android.content.Context; import android.util.Log; import org.apache.commons.lang3.StringUtils; @@ -38,8 +39,8 @@ public class RegisterFragmentModel implements RegisterFragmentContract.Model { @Override - public RegisterConfiguration defaultRegisterConfiguration() { - return ConfigHelperUtils.defaultRegisterConfiguration(AncLibrary.getInstance().getApplicationContext()); + public RegisterConfiguration defaultRegisterConfiguration(Context context) { + return ConfigHelperUtils.defaultRegisterConfiguration(context); } @Override diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenter.java index c5891ed42..38ba778d1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterFragmentPresenter.java @@ -1,5 +1,7 @@ package org.smartregister.anc.library.presenter; +import android.util.Log; + import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; import org.smartregister.anc.library.AncLibrary; @@ -35,8 +37,7 @@ public RegisterFragmentPresenter(RegisterFragmentContract.View view, String view this.viewReference = new WeakReference<>(view); this.model = new RegisterFragmentModel(); this.viewConfigurationIdentifier = viewConfigurationIdentifier; - this.config = model.defaultRegisterConfiguration(); - + this.config = model.defaultRegisterConfiguration(view.getContext()); this.interactor = new AdvancedSearchInteractor(); } From b93d3735f7384a6cc110433434f4b6fc1c453577 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 02:35:24 +0700 Subject: [PATCH 188/302] Set minimum SDK version to 24 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 76d59302b..9ab3da11e 100644 --- a/build.gradle +++ b/build.gradle @@ -77,7 +77,7 @@ subprojects { ext.androidToolsBuildGradle = '30.0.3' ext.androidBuildToolsVersion = '30.0.3' - ext.androidMinSdkVersion = 21 + ext.androidMinSdkVersion = 24 ext.androidCompileSdkVersion = 31 ext.androidTargetSdkVersion = 31 ext.androidAnnotationsVersion = '3.0.1' From 14127166ed6af5c69321bf2028e2b78d7b783453 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 02:35:59 +0700 Subject: [PATCH 189/302] Add resConfig parameter --- reference-app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index fd98fb76e..8f732a3ae 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -68,6 +68,7 @@ android { targetSdkVersion androidTargetSdkVersion versionCode generateVersionCode() versionName generateVersionName() + resConfigs "in-rID", "en" buildConfigField "long", "MAX_SERVER_TIME_DIFFERENCE", "1800000l" buildConfigField "boolean", "TIME_CHECK", "false" buildConfigField "String", "SYNC_TYPE", '"teamId"' From 5af1a83867647c0b36904f28f4d5afc9ec549efa Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 03:05:48 +0700 Subject: [PATCH 190/302] Add Context param to createSearchString --- .../contract/AdvancedSearchContract.java | 4 ++-- .../library/model/AdvancedSearchModel.java | 20 +++++++++++-------- .../presenter/AdvancedSearchPresenter.java | 5 ++++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/AdvancedSearchContract.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/AdvancedSearchContract.java index d14908d29..8c4aedc16 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/AdvancedSearchContract.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/contract/AdvancedSearchContract.java @@ -1,5 +1,6 @@ package org.smartregister.anc.library.contract; +import android.content.Context; import android.database.Cursor; import org.smartregister.domain.Response; @@ -28,8 +29,7 @@ interface Model extends RegisterFragmentContract.Model { Map createEditMap(String firstName, String lastName, String ancId, String edd, String dob, String phoneNumber, String alternateContact, boolean isLocal); - String createSearchString(String firstName, String lastName, String ancId, String edd, String dob, - String phoneNumber, String alternateContact); + String createSearchString(Context context, String firstName, String lastName, String ancId, String edd, String dob, String phoneNumber, String alternateContact); String getMainConditionString(Map editMap); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/AdvancedSearchModel.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/AdvancedSearchModel.java index a4576b208..c18c9bc9e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/model/AdvancedSearchModel.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/model/AdvancedSearchModel.java @@ -1,6 +1,9 @@ package org.smartregister.anc.library.model; +import android.content.Context; + import org.apache.commons.lang3.StringUtils; +import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.AdvancedSearchContract; import org.smartregister.anc.library.util.DBConstantsUtils; @@ -58,30 +61,31 @@ private void addMapValuesCheckingLocals(String field, boolean isLocal, Map viewReference; private AdvancedSearchContract.Model model; + private Context context; public AdvancedSearchPresenter(AdvancedSearchContract.View view, String viewConfigurationIdentifier) { super(view, viewConfigurationIdentifier); this.viewReference = new WeakReference<>(view); model = new AdvancedSearchModel(); interactor = new AdvancedSearchInteractor(); + context = view.getContext(); } public void search(String firstName, String lastName, String ancId, String edd, String dob, String phoneNumber, String alternateContact, boolean isLocal) { String searchCriteria = - model.createSearchString(firstName, lastName, ancId, edd, dob, phoneNumber, alternateContact); + model.createSearchString(this.context, firstName, lastName, ancId, edd, dob, phoneNumber, alternateContact); if (StringUtils.isBlank(searchCriteria)) { return; } From 379b5048b2766c142d4e695b65f7bab13b4138b2 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 03:06:40 +0700 Subject: [PATCH 191/302] Change "dob" and "mobile_phone_number" strings --- opensrp-anc/src/main/res/values-in-rID/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index 625a6d80f..abe4b61b5 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -446,9 +446,9 @@ ID ANC HPL Hari Perkiraan Lahir - TL + Tgl. Lahir Tanggal Lahir - Nomor Telepon Seluler + Nomor Ponsel Nomor Telepon Nama Kontak Alternatif Nama Kontak Alternatif From e1687badda2773f4db724342e1200b165bc03b76 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 03:19:04 +0700 Subject: [PATCH 192/302] Update "age_text" and "ga_text" strings --- opensrp-anc/src/main/res/values-in-rID/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index abe4b61b5..a97b86c47 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -290,7 +290,7 @@ ID: %1$s Usia: %1$s - UK: %1$d weeks + UK: %1$d Minggu \u2022 From 945d2f6d12559575dd205d63d3cf19037aa831b4 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 03:42:49 +0700 Subject: [PATCH 193/302] Add "attention_flags_title" string --- opensrp-anc/src/main/res/values-in-rID/strings.xml | 6 ++++++ opensrp-anc/src/main/res/values/strings.xml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index a97b86c47..e07c7c871 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -604,4 +604,10 @@ Masukkan URL dari server OpenSRP + + + + Tanda Bahaya + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 8f0107ca4..0fdabcfdc 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -604,6 +604,12 @@ Enter Base Server URL + + + + Attention Flags + + From 903e74d77f0182bfa940b2f4b84950d1921a5c2e Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 05:26:19 +0700 Subject: [PATCH 194/302] Remove unsused form translation languages --- .../abdominal_exam_sub_form_pt.properties | 8 - .../main/resources/anc_close_fr.properties | 73 -- .../main/resources/anc_close_pt.properties | 73 -- .../anc_counselling_treatment_pt.properties | 650 ------------------ .../resources/anc_physical_exam_pt.properties | 169 ----- .../main/resources/anc_profile_ind.properties | 317 --------- .../main/resources/anc_profile_pt.properties | 317 --------- .../resources/anc_quick_check_fr.properties | 65 -- .../resources/anc_quick_check_pt.properties | 65 -- .../main/resources/anc_register_fr.properties | 31 - .../main/resources/anc_register_pt.properties | 31 - .../anc_site_characteristics_pt.properties | 19 - .../anc_symptoms_follow_up_pt.properties | 188 ----- .../src/main/resources/anc_test_fr.properties | 57 -- .../src/main/resources/anc_test_pt.properties | 57 -- .../breast_exam_sub_form_pt.properties | 10 - .../cardiac_exam_sub_form_pt.properties | 11 - .../cervical_exam_sub_form_pt.properties | 2 - .../fetal_heartbeat_sub_form_pt.properties | 2 - .../oedema_present_sub_form_pt.properties | 5 - .../pelvic_exam_sub_form_pt.properties | 17 - .../respiratory_exam_sub_form_pt.properties | 10 - .../test_covid_sub_form_fr.properties | 0 .../test_covid_sub_form_ind.properties | 0 .../test_covid_sub_form_pt.properties | 0 ...tests_blood_glucose_sub_form_pt.properties | 30 - 26 files changed, 2207 deletions(-) delete mode 100644 opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_close_fr.properties delete mode 100644 opensrp-anc/src/main/resources/anc_close_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_physical_exam_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_profile_ind.properties delete mode 100644 opensrp-anc/src/main/resources/anc_profile_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_quick_check_fr.properties delete mode 100644 opensrp-anc/src/main/resources/anc_quick_check_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_register_fr.properties delete mode 100644 opensrp-anc/src/main/resources/anc_register_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties delete mode 100644 opensrp-anc/src/main/resources/anc_test_fr.properties delete mode 100644 opensrp-anc/src/main/resources/anc_test_pt.properties delete mode 100644 opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/test_covid_sub_form_fr.properties delete mode 100644 opensrp-anc/src/main/resources/test_covid_sub_form_ind.properties delete mode 100644 opensrp-anc/src/main/resources/test_covid_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties deleted file mode 100644 index 56b54244b..000000000 --- a/opensrp-anc/src/main/resources/abdominal_exam_sub_form_pt.properties +++ /dev/null @@ -1,8 +0,0 @@ -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.painful_decompression.text = Descompressão dolorosa -abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.hint = Especifique -abdominal_exam_sub_form.step1.abdominal_exam_abnormal_other.v_regex.err = Digite um valor válido -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.other.text = Outro (especifique) -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.deep_palpation_pain.text = Dor à palpação profunda -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.superficial_palpation_pain.text = Dor à palpação superficial -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.options.mass_tumour.text = Massa/tumoração -abdominal_exam_sub_form.step1.abdominal_exam_abnormal.label = Exame abdominal: anormal diff --git a/opensrp-anc/src/main/resources/anc_close_fr.properties b/opensrp-anc/src/main/resources/anc_close_fr.properties deleted file mode 100644 index 9bb40be18..000000000 --- a/opensrp-anc/src/main/resources/anc_close_fr.properties +++ /dev/null @@ -1,73 +0,0 @@ -anc_close.step1.miscarriage_abortion_ga.v_numeric.err = Doit être un nombre -anc_close.step1.ppfp_method.hint = Méthode de planification familiale post-partum? -anc_close.step1.delivery_complications.options.Cord_prolapse.text = Prolapsus du cordon -anc_close.step1.anc_close_reason.v_required.err = Please select one option -anc_close.step1.delivery_mode.options.normal.text = Normale -anc_close.step1.death_cause.options.pre_eclampsia.text = Pre-eclampsia -anc_close.step1.delivery_mode.hint = Mode d'accouchement -anc_close.step1.death_cause.v_required.err = Please enter the date of death -anc_close.step1.death_date.duration.label = Yrs -anc_close.step1.death_cause.options.normal.text = Unknown -anc_close.step1.death_cause.options.abortion_related_complications.text = Abortion-related complications -anc_close.step1.death_cause.options.placental_abruption.text = Placental abruption -anc_close.step1.birthweight.v_numeric.err = Please enter a valid weight between 1 and 10 -anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text = Antepartum haemorrhage -anc_close.step1.delivery_complications.options.Abnormal_presentation.text = Abnormal presentation -anc_close.step1.miscarriage_abortion_date.v_required.err = Please enter the date of miscarriage/abortion -anc_close.step1.death_cause.options.antepartum_haemorrhage.text = Antepartum haemorrhage -anc_close.step1.delivery_mode.options.c_section.text = Césarienne -anc_close.step1.anc_close_reason.options.other.text = Autre -anc_close.step1.miscarriage_abortion_date.hint = Date of miscarriage/abortion -anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Postpartum haemorrhage -anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Perdu au suivi -anc_close.step1.ppfp_method.options.condom.text = Condom -anc_close.step1.ppfp_method.options.ocp.text = OCP -anc_close.step1.death_cause.options.eclampsia.text = Eclampsia -anc_close.step1.anc_close_reason.options.abortion.text = Avortement -anc_close.step1.ppfp_method.options.normal.text = None -anc_close.step1.delivery_complications.hint = Any delivery complications? -anc_close.step1.anc_close_reason.options.moved_away.text = Déménagé -anc_close.step1.ppfp_method.options.male_sterilization.text = Male sterilization -anc_close.step1.delivery_place.options.home.text = À la maison -anc_close.step1.delivery_date.hint = Date d'accouchement -anc_close.step1.delivery_place.options.other.text = Autre -anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Exclusive breastfeeding -anc_close.step1.anc_close_reason.hint = Raison -anc_close.step1.delivery_place.options.health_facility.text = Centre de santé -anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Forceps ou sous vide -anc_close.step1.death_cause.options.infection.text = Infection -anc_close.step1.delivery_complications.options.Other.text = Autre -anc_close.step1.birthweight.hint = Birth weight (kg) -anc_close.step1.title = Close ANC Record -anc_close.step1.death_date.hint = Date of death -anc_close.step1.anc_close_reason.options.wrong_entry.text = Mauvaise saisie -anc_close.step1.death_cause.options.other.text = Autre -anc_close.step1.delivery_complications.options.None.text = None -anc_close.step1.exclusive_bf.options.no.text = No -anc_close.step1.delivery_complications.options.Obstructed_labour.text = Obstructed labour -anc_close.step1.ppfp_method.options.female_sterilization.text = Female sterilization -anc_close.step1.death_cause.hint = Cause of death? -anc_close.step1.exclusive_bf.hint = Exclusively breastfeeding? -anc_close.step1.anc_close_reason.options.stillbirth.text = Mortinaissance -anc_close.step1.delivery_complications.label = Any delivery complications? -anc_close.step1.death_date.v_required.err = Please enter the date of death -anc_close.step1.anc_close_reason.options.false_pregnancy.text = Fausse grossesse -anc_close.step1.delivery_date.v_required.err = Please enter the date of delivery -anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Postpartum haemorrhage -anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pre-eclampsia -anc_close.step1.delivery_place.v_required.err = Place of delivery is required -anc_close.step1.delivery_complications.options.Eclampsia.text = Eclampsia -anc_close.step1.ppfp_method.options.iud.text = IUD -anc_close.step1.anc_close_reason.options.woman_died.text = La femme est morte -anc_close.step1.delivery_place.hint = Lieu d'accouchement -anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta praevia -anc_close.step1.anc_close_reason.options.live_birth.text = Naissance vivante -anc_close.step1.anc_close_reason.options.miscarriage.text = Fausse couche -anc_close.step1.delivery_complications.options.Placental_abruption.text = Placental abruption -anc_close.step1.ppfp_method.options.other.text = Autre -anc_close.step1.preterm.v_numeric.err = Number must be a number -anc_close.step1.birthweight.v_required.err = Please enter the child's weight at birth -anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Perineal tear (2nd, 3rd or 4th degree) -anc_close.step1.death_cause.options.obstructed_labour.text = Obstructed labour -anc_close.step1.ppfp_method.options.abstinence.text = Abstinence -anc_close.step1.exclusive_bf.options.yes.text = Yes diff --git a/opensrp-anc/src/main/resources/anc_close_pt.properties b/opensrp-anc/src/main/resources/anc_close_pt.properties deleted file mode 100644 index 258e40a93..000000000 --- a/opensrp-anc/src/main/resources/anc_close_pt.properties +++ /dev/null @@ -1,73 +0,0 @@ -anc_close.step1.miscarriage_abortion_ga.v_numeric.err = O valor deve ser um número -anc_close.step1.ppfp_method.hint = Método de planejamento familiar pós-parto? -anc_close.step1.delivery_complications.options.Cord_prolapse.text = Prolapso de cordão -anc_close.step1.anc_close_reason.v_required.err = Selecionar uma opção -anc_close.step1.delivery_mode.options.normal.text = Normal -anc_close.step1.death_cause.options.pre_eclampsia.text = Pré-eclâmpsia -anc_close.step1.delivery_mode.hint = Tipo de parto -anc_close.step1.death_cause.v_required.err = Digite a data do óbito -anc_close.step1.death_date.duration.label = Anos -anc_close.step1.death_cause.options.normal.text = Desconhecido -anc_close.step1.death_cause.options.abortion_related_complications.text = Complicações relacionadas ao aborto -anc_close.step1.death_cause.options.placental_abruption.text = Descolamento Prematuro de Placenta -anc_close.step1.birthweight.v_numeric.err = Digite um peso válido entre 1 e 10 -anc_close.step1.delivery_complications.options.Antepartum_haemorrhage.text = Hemorragia anteparto -anc_close.step1.delivery_complications.options.Abnormal_presentation.text = Apresentação anômala -anc_close.step1.miscarriage_abortion_date.v_required.err = Digite a data do aborto -anc_close.step1.death_cause.options.antepartum_haemorrhage.text = Hemorragia anteparto -anc_close.step1.delivery_mode.options.c_section.text = Cesárea -anc_close.step1.anc_close_reason.options.other.text = Outro -anc_close.step1.miscarriage_abortion_date.hint = Data do aborto -anc_close.step1.death_cause.options.postpartum_haemorrhage.text = Hemorragia pós parto -anc_close.step1.anc_close_reason.options.lost_to_follow_up.text = Perda de seguimento -anc_close.step1.ppfp_method.options.condom.text = Preservativo -anc_close.step1.ppfp_method.options.ocp.text = Pílula Anticoncepcional Oral  -anc_close.step1.death_cause.options.eclampsia.text = Eclâmpsia -anc_close.step1.anc_close_reason.options.abortion.text = Aborto -anc_close.step1.ppfp_method.options.normal.text = Nenhum -anc_close.step1.delivery_complications.hint = Alguma complicação do parto? -anc_close.step1.anc_close_reason.options.moved_away.text = Mudou-se -anc_close.step1.ppfp_method.options.male_sterilization.text = Esterilização masculina / vasectomia -anc_close.step1.delivery_place.options.home.text = Em casa -anc_close.step1.delivery_date.hint = Data do parto -anc_close.step1.delivery_place.options.other.text = Outro -anc_close.step1.ppfp_method.options.forceps_or_vacuum.text = Amamentação exclusiva -anc_close.step1.anc_close_reason.hint = Motivo? -anc_close.step1.delivery_place.options.health_facility.text = Unidade de saúde -anc_close.step1.delivery_mode.options.forceps_or_vacuum.text = Fórcipe ou vácuo extração -anc_close.step1.death_cause.options.infection.text = Infecção -anc_close.step1.delivery_complications.options.Other.text = Outro -anc_close.step1.birthweight.hint = Peso ao nascimento (Kg) -anc_close.step1.title = Registro de fechamento do pré-natal -anc_close.step1.death_date.hint = Data do óbito -anc_close.step1.anc_close_reason.options.wrong_entry.text = Erro de digitação -anc_close.step1.death_cause.options.other.text = Outro -anc_close.step1.delivery_complications.options.None.text = Nenhum -anc_close.step1.exclusive_bf.options.no.text = Não -anc_close.step1.delivery_complications.options.Obstructed_labour.text = Trabalho de parto obstruído -anc_close.step1.ppfp_method.options.female_sterilization.text = Esterilização feminina / laqueadura -anc_close.step1.death_cause.hint = Causa do óbito? -anc_close.step1.exclusive_bf.hint = Amamentação exclusiva? -anc_close.step1.anc_close_reason.options.stillbirth.text = Natimorto -anc_close.step1.delivery_complications.label = Alguma complicação do parto? -anc_close.step1.death_date.v_required.err = Digite a data do óbito -anc_close.step1.anc_close_reason.options.false_pregnancy.text = Falsa gestação -anc_close.step1.delivery_date.v_required.err = Digite a data do parto -anc_close.step1.delivery_complications.options.Postpartum_haemorrhage.text = Hemorragia pós parto -anc_close.step1.delivery_complications.options.Pre_eclampsia.text = Pré-eclâmpsia -anc_close.step1.delivery_place.v_required.err = Local do parto é necessário -anc_close.step1.delivery_complications.options.Eclampsia.text = Eclâmpsia -anc_close.step1.ppfp_method.options.iud.text = DIU -anc_close.step1.anc_close_reason.options.woman_died.text = A mulher morreu -anc_close.step1.delivery_place.hint = Local do parto? -anc_close.step1.delivery_complications.options.Placenta_praevia.text = Placenta prévia -anc_close.step1.anc_close_reason.options.live_birth.text = Nascido vivo -anc_close.step1.anc_close_reason.options.miscarriage.text = Aborto -anc_close.step1.delivery_complications.options.Placental_abruption.text = Descolamento Prematuro de Placenta -anc_close.step1.ppfp_method.options.other.text = Outro -anc_close.step1.preterm.v_numeric.err = O valor deve ser um número -anc_close.step1.birthweight.v_required.err = Digite o peso da criança ao nascimento -anc_close.step1.delivery_complications.options.Perineal_tear_2nd_3rd_or_4th_degree.text = Laceração perineal (2o., 3o. ou 4o. grau) -anc_close.step1.death_cause.options.obstructed_labour.text = Trabalho de parto obstruído -anc_close.step1.ppfp_method.options.abstinence.text = Abstinência -anc_close.step1.exclusive_bf.options.yes.text = Sim diff --git a/opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties b/opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties deleted file mode 100644 index 75f20a42e..000000000 --- a/opensrp-anc/src/main/resources/anc_counselling_treatment_pt.properties +++ /dev/null @@ -1,650 +0,0 @@ -anc_counselling_treatment.step9.ifa_weekly.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.leg_cramp_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step4.eat_exercise_counsel.options.done.text = Feito -anc_counselling_treatment.step2.shs_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step9.ifa_low_prev_notdone.label = Motivo -anc_counselling_treatment.step3.heartburn_counsel_notdone.hint = Motivo -anc_counselling_treatment.step7.gbs_agent_counsel.label_info_title = Aconselhamento sobre antibiótico intra parto para prevenir infecção neonatal precoce pelo Estreptococos do Grupo B (GBS) -anc_counselling_treatment.step11.tt3_date.label_info_title = Dose de Anti-Tetânica #3 -anc_counselling_treatment.step8.ipv_enquiry_results.options.other.text = Outro -anc_counselling_treatment.step10.iptp_sp1.options.not_done.text = Não realizado -anc_counselling_treatment.step11.tt3_date_done.v_required.err = Data da Anti-Tetânica #3 é necessária -anc_counselling_treatment.step9.ifa_high_prev_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.ifa_anaemia_notdone.hint = Motivo -anc_counselling_treatment.step3.heartburn_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step6.pe_risk_aspirin_notdone_other.hint = Especifique -anc_counselling_treatment.step11.hepb2_date.options.not_done.text = Não realizado -anc_counselling_treatment.step9.calcium.text = 0 -anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_title = Não forneça quimioprofilaxia para malária, pois a mulher está tomando Cotrimoxazol. -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.text = Diagnóstico de pré eclâmpsia grave -anc_counselling_treatment.step11.tt1_date.label = Dose de Anti-Tetânica #1 -anc_counselling_treatment.step6.hiv_risk_counsel.options.done.text = Feito -anc_counselling_treatment.step3.heartburn_counsel.label = Mudanças de dieta e hábitos de vida para prevenção e controle de azia -anc_counselling_treatment.step9.ifa_high_prev.options.done.text = Feito -anc_counselling_treatment.step6.gdm_risk_counsel.label = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) -anc_counselling_treatment.step7.breastfeed_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step2.shs_counsel.label_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. -anc_counselling_treatment.step2.caffeine_counsel.options.done.text = Feito -anc_counselling_treatment.step2.condom_counsel.label = Aconselhar uso de preservativo -anc_counselling_treatment.step5.hepb_positive_counsel.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Solicitar exame confirmatório NAT (Amplificação ácido nucleico)\n\n- Encaminhar para referência -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.label = Motivo -anc_counselling_treatment.step3.nausea_counsel.label = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica -anc_counselling_treatment.step10.deworm_notdone_other.hint = Especifique -anc_counselling_treatment.step8.ipv_enquiry_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step10.malaria_counsel_notdone_other.hint = Especifique -anc_counselling_treatment.step2.caffeine_counsel_notdone.hint = Motivo -anc_counselling_treatment.step2.tobacco_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.malaria_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step5.hepc_positive_counsel.label = Aconselhamento sobre Hepatite C positivo -anc_counselling_treatment.step1.danger_signs_toaster.toaster_info_text = Procedimento:\n- manejo de acordo com o protocolo local para avaliação rápida e manejo\n- referir urgentemente ao hospital -anc_counselling_treatment.step5.hypertension_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.nausea_counsel_notdone.label = Motivo -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.label = Motivo -anc_counselling_treatment.step9.ifa_high_prev.options.not_done.text = Não realizado -anc_counselling_treatment.step9.calcium_supp_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.tt_dose_notdone.options.allergies.text = Alergias -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.tt_dose_notdone.options.woman_is_ill.text = A mulher está doente -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step1.abn_cardiac_exam_toaster.toaster_info_text = Procedimento:\n- Referir urgentemente ao hospital -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step5.asb_positive_counsel_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_text = Procedimento:\n- Se sífilis primária ou secundária, favor dar uma dose única de penicilina benzatina 2.400.00 UI.\n- Se sífilis tardia ou desconhecida, favor dar uma dose de penicilina benzatina 2.400.000 UI por semana em 3 semanas consecutivas\n- Aconselhar sobre o tratamento do seu parceiro\n- Aconselhar e recomendar testagem para HIV\n- Reforçar o uso de preservativos\n- Proceder a testes adicionais com um teste RPR -anc_counselling_treatment.step10.deworm_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step7.delivery_place.options.facility_elective.text = Hospital (cesárea eletiva) -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.done.text = Feito -anc_counselling_treatment.step7.breastfeed_counsel.options.done.text = Feito -anc_counselling_treatment.step4.increase_energy_counsel_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step4.balanced_energy_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_title = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.no_stock.text = Não disponível -anc_counselling_treatment.step2.condom_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step6.gdm_risk_counsel.label_info_title = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) -anc_counselling_treatment.step10.deworm.options.done.text = Feito -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.label = Motivo -anc_counselling_treatment.step7.danger_signs_counsel.label_info_title = Aconselhamento sobre a busca de cuidado quando sinais de perigo -anc_counselling_treatment.step6.hiv_prep_notdone.options.woman_refused.text = A mulher não aceitou -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_text = Risco de VIP (violência intra parceiros) inclui qualquer um dos seguintes:\n- Ferimento traumático, particularmente se repetido e com uma explicação vaga ou improvável;\n- Um marido ou parceiro intruso durante as consultas;\n- Múltiplas gestações não desejadas e/ou terminadas;\n- Demora na busca de cuidado pré-natal;\n- Resultados adversos do nascimento\n- DSTs repetidas;\n- Sintomas gênito-urinários repetidos ou inexplicados;\n- Sintomas de depressão e ansiedade;\n- Uso de álcool ou outras substâncias; ou\n- Auto-flagelo ou ideação suicida. -anc_counselling_treatment.step2.condom_counsel.label_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.label = Motivo -anc_counselling_treatment.step3.constipation_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.family_planning_counsel.options.done.text = Feito -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_title = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito -anc_counselling_treatment.step2.caffeine_counsel.label_info_title = Aconselhar sobre redução do consumo de cafeína -anc_counselling_treatment.step11.hepb2_date.v_required.err = #2 dose Hep B é necessária -anc_counselling_treatment.step11.tt3_date.label_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano.\nVacina com toxoide tetânico não recebida ou desconhecida\n-Esquema de 3 doses\n- 2 doses, 1 mês de intervalo\n- Segunda dose pelo menos 2 semanas antes do parto\n- Terceira dose 5 meses após a segunda dose -anc_counselling_treatment.step11.flu_date.options.not_done.text = Não realizado -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.label = Motivo -anc_counselling_treatment.step3.back_pelvic_pain_counsel.label_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. -anc_counselling_treatment.step10.iptp_sp3.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 3 -anc_counselling_treatment.step3.back_pelvic_pain_toaster.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica -anc_counselling_treatment.step6.prep_toaster.toaster_info_title = Recomenda-se teste de HIV no parceiro -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.diabetes_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step7.anc_contact_counsel.label = Orientação sobre rotina de consultas de PN -anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. -anc_counselling_treatment.step9.ifa_weekly_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.alcohol_substance_counsel.options.done.text = Feito -anc_counselling_treatment.step5.asb_positive_counsel.label_info_title = Esquema de sete dias de antibiótico para bacteriúria assintomática (BA) -anc_counselling_treatment.step11.hepb1_date.v_required.err = 1 dose da vacina contra Hepatite B é necessária -anc_counselling_treatment.step7.emergency_hosp_counsel.options.done.text = Feito -anc_counselling_treatment.step10.iptp_sp1.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 1 -anc_counselling_treatment.step2.condom_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step5.ifa_anaemia.label_info_title = Prescrever dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para anemia -anc_counselling_treatment.step10.iptp_sp3.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step1.referred_hosp.options.no.text = Não -anc_counselling_treatment.step1.title = Encaminhada à referência -anc_counselling_treatment.step5.high_prev_allergy_toaster.text = Allergies : {allergies_values} -anc_counselling_treatment.step5.high_prev_allergy_toaster.toaster_info_text = Erythromycin 500 mg orally four times daily for 14 days\nor\nAzithromycin 2 g once orally.\nRemarks: Although erythromycin and azithromycin treat the pregnant women, they do not cross the placental barrier completely and as a result the fetus is not treated. It is therefore necessary to treat the newborn infant soon after delivery. -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step4.body_mass_toaster.text = Ãndice de massa corporal (IMC) = {bmi}\n\nA mulher está {weight_cat}. O ganho de peso durante a gestaçao deve ser de {exp_weight_gain} kg. -anc_counselling_treatment.step5.hypertension_counsel.label = Aconselhamento sobre hipertensão -anc_counselling_treatment.step10.deworm_notdone.hint = Motivo -anc_counselling_treatment.step1.referred_hosp.label = Encaminhada à referência? -anc_counselling_treatment.step2.tobacco_counsel_notdone.hint = Motivo -anc_counselling_treatment.step5.diabetes_counsel.label_info_title = Aconselhamento sobre diabetes -anc_counselling_treatment.step7.family_planning_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label = Aconselhamento sobre sífilis e testes adicionais -anc_counselling_treatment.step4.eat_exercise_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step11.tt_dose_notdone.options.woman_refused.text = Paciente recusou -anc_counselling_treatment.step2.tobacco_counsel.label_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito -anc_counselling_treatment.step5.hiv_positive_counsel.label_info_title = Aconselhamento sobre HIV positivo -anc_counselling_treatment.step1.fever_toaster.toaster_info_text = Procedimento:\n\n- Pegar um acesso endovenoso\n\n- Administrar fluídos lentamente\n\n- Encaminhar urgentemente à referência! -anc_counselling_treatment.step7.family_planning_type.options.vaginal_ring.text = Anel vaginal -anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_title = Aconselhar sobre procura imediata ao hospital se sinais de alerta -anc_counselling_treatment.step1.referred_hosp_notdone.options.not_necessary.text = Não necessário -anc_counselling_treatment.step2.caffeine_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step5.hepc_positive_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.hepc_positive_counsel.options.done.text = Feito -anc_counselling_treatment.step11.flu_dose_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.text = Freqüência cardíaca fetal anormal: {fetal_heart_rate_repeat}bpm -anc_counselling_treatment.step11.tt1_date.label_info_text = Recomenda-se vacinação com toxoide tetânico para todas as gestantes que não estejam completamente imunizadas contra o TT para prevenir mortalidade neonatal pelo tétano\n\n1-4 doses da vacina com toxoide tetânico no passado.\n\n- Esquema de 1 dose: a mulher deve receber uma dose da vacina TT durante cada gestação subsequente até um total de 5 doses (cinco doses protegem durante os anos reprodutivos)\n\nVacina TT não recebida ou desconhecido\n\n- Esquema de 3 doses\n\n- 2 doses, intervalo de 1 mês\n\n- Segunda dose pelo menos 2 semanas antes do parto\n\n- Terceira dose 5 meses depois da segunda dose -anc_counselling_treatment.step11.hepb3_date.label = Vacina contra Hep B dose #3 -anc_counselling_treatment.step2.tobacco_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.hepb_negative_note.options.done.text = Feito -anc_counselling_treatment.step9.calcium_supp.label_info_text = Recomendação:\n\n- Dividir a dose total em três doses, preferentemente tomadas na hora da refeição\n\n- Ferro e cálcio devem preferentemente ser administradas com um intervalo de várias horas do que concomitantemente\n\n[arquivo das fontes de cálcio] -anc_counselling_treatment.step9.ifa_high_prev_notdone.hint = Motivo -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.label = Motivo -anc_counselling_treatment.step3.nausea_counsel.options.done.text = Feito -anc_counselling_treatment.step5.hepc_positive_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step7.family_planning_type.options.injectable.text = Injetável -anc_counselling_treatment.step9.ifa_high_prev.label = Prescrever dose diária de 60 mg de ferro e 0,4 mg de ácido fólico para a prevenção de anemia -anc_counselling_treatment.step11.tt2_date.label_info_title = Dose #2 do TT -anc_counselling_treatment.step8.ipv_enquiry.options.done.text = Feito -anc_counselling_treatment.step10.malaria_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step9.ifa_weekly_notdone.hint = Motivo -anc_counselling_treatment.step11.tt1_date.v_required.err = Dose #1 do TT é necessária -anc_counselling_treatment.step11.hepb1_date.label = Dose #1 da vacina contra Hep B -anc_counselling_treatment.step11.tt2_date.options.not_done.text = Não realizado -anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.text = Pulso anormal: {pulse_rate_repeat}bpm -anc_counselling_treatment.step7.delivery_place.options.facility.text = Unidade de saúde -anc_counselling_treatment.step10.iptp_sp1.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. -anc_counselling_treatment.step3.leg_cramp_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.deworm_notdone.label = Motivo -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step5.ifa_anaemia.label_info_text = Se uma mulher for diagnosticada com anemia durante a gestação, seu aporte de ferro elementar diário deve ser aumentado para 120 mg até sua concentração de hemoglobina (Hb) subir ao normal (Hb 110 g/L ou maior). Então ela pode voltar à dose diária de ferro antenatal padrão para prevenir a recorrência da anemia.\n\nO equivalente a 120 mg de fero elementar é igual a 600 mg de sulfato ferroso hepta hidratado, 360 mg de fumarato ferroso, ou 1000 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] -anc_counselling_treatment.step7.emergency_hosp_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step9.ifa_low_prev_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step3.leg_cramp_counsel.label_info_title = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas -anc_counselling_treatment.step4.eat_exercise_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.hepb1_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step11.hepb_dose_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step10.malaria_counsel.options.done.text = Feito -anc_counselling_treatment.step3.constipation_counsel_notdone.hint = Motivo -anc_counselling_treatment.step3.constipation_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.tt2_date.v_required.err = Dose #2do TT é necessária -anc_counselling_treatment.step11.hepb_dose_notdone.options.vaccine_available.text = Vacina não disponível -anc_counselling_treatment.step7.rh_negative_counsel.options.done.text = Feito -anc_counselling_treatment.step11.flu_dose_notdone.options.woman_is_ill.text = A mulher está doente -anc_counselling_treatment.step9.ifa_low_prev.label = Prescrever dose diária de 30 a 60 mg de ferro e 0,4 mg de ácido fólico para a prevenção de anemia -anc_counselling_treatment.step1.abn_breast_exam_toaster.text = Exame das mamas anormal: {breast_exam_abnormal} -anc_counselling_treatment.step7.gbs_agent_counsel.label_info_text = Gestante com colonização por Estreptococo do Grupo B deve receber antibiótico intraparto para prevenção de infecção neonatal precoce por EGB. -anc_counselling_treatment.step10.iptp_sp_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label = Aconselhamento sobre sífilis e tratamento -anc_counselling_treatment.step10.iptp_sp_notdone.hint = Motivo -anc_counselling_treatment.step9.ifa_low_prev.label_info_title = Prescrever dose diária de 30 a 60 mg de ferro e 0,4 mg de ácido fólico -anc_counselling_treatment.step5.ifa_anaemia_notdone_other.hint = Especificar -anc_counselling_treatment.step4.eat_exercise_counsel.label_info_title = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa -anc_counselling_treatment.step9.ifa_high_prev_notdone.label = Motivo -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.text = Diagnóstico de pré eclâmpsia -anc_counselling_treatment.step5.syphilis_low_prev_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.tb_positive_counseling.label_info_text = Tratar de acordo com protocolo local e/ou encaminhar à referência para tratamento -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_text = Procedimento:\n\n- Administrar sulfato de magnésio\n\n- Administrar anti-hipertensivo\n\n- Rever plano de parto\n\n- Encaminhar urgentemente ao hospital -anc_counselling_treatment.step7.gbs_agent_counsel.options.done.text = Feito -anc_counselling_treatment.step2.shs_counsel_notdone.label = Motivo -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step6.hiv_risk_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step7.rh_negative_counsel.label_info_title = Aconselhamento sobre Fator Rh negativo -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.label = Motivo -anc_counselling_treatment.step11.hepb3_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step5.ifa_anaemia.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.emergency_hosp_counsel.label_info_text = Sinais de grave perigo incluem:\n\n- Sangramento vaginal\n\n- Convulsões\n\n- Cefaleias intensas com borramento de visão\n\n- Febre e fraqueza que não permite levantar da cama\n\n- Dor abdominal intensa\n\n- Respiração rápida ou difícil -anc_counselling_treatment.step7.anc_contact_counsel.label_info_title = Orientação sobre rotina de consultas de PN -anc_counselling_treatment.step2.caffeine_counsel.label_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. -anc_counselling_treatment.step1.abn_feat_heart_rate_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar ao hospital -anc_counselling_treatment.step1.referred_hosp_notdone_other.hint = Especificar -anc_counselling_treatment.step6.pe_risk_aspirin.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step11.hepb_negative_note.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Aconselhar novo teste e imunização se risco persiste ou exposição desconhecida -anc_counselling_treatment.step5.ifa_anaemia_notdone.label = Motivo -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step9.vita_supp.options.done.text = Feito -anc_counselling_treatment.step3.heartburn_counsel.label_info_title = Aconselhamento sobre mudanças de dieta e hábitos de vida para prevenção e controle de azia -anc_counselling_treatment.step5.hiv_positive_counsel.label = Aconselhamento sobre HIV positivo -anc_counselling_treatment.step7.family_planning_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step1.low_oximetry_toaster.text = Baixa oximetria: {oximetry}% -anc_counselling_treatment.step3.varicose_oedema_counsel.label_info_title = Aconselhamento sobre opções não farmacológicas para varizes e edema -anc_counselling_treatment.step3.leg_cramp_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step5.hepb_positive_counsel.label = Aconselhamento sobre Hepatite B positivo -anc_counselling_treatment.step9.ifa_weekly_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step10.malaria_counsel.label_info_title = Aconselhamento sobre prevenção da malária -anc_counselling_treatment.step7.family_planning_type.options.none.text = Nenhum -anc_counselling_treatment.step3.leg_cramp_counsel.options.done.text = Feito -anc_counselling_treatment.step9.ifa_weekly.label_info_title = Mude a prescrição para dose diária de 120 mg de ferro e 2,8 mg de ácido fólico -anc_counselling_treatment.step7.rh_negative_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step1.abn_pelvic_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para investigação adicional -anc_counselling_treatment.step9.vita_supp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step10.malaria_counsel.label_info_text = Dormir sob um mosquiteiro com inseticida e a importância de buscar cuidado e tratamento tão logo ela tenha quaisquer sintomas. -anc_counselling_treatment.step6.hiv_prep_notdone.label = Motivo -anc_counselling_treatment.step2.caffeine_counsel.label = Aconselhar sobre redução do consumo de cafeína -anc_counselling_treatment.step4.increase_energy_counsel.label_info_text = Aumentar o consumo diário de calorias e proteina para reduzir o risco de recém-nascidos de baixo peso.\n\n[Folder de Fontes de Energia e Proteína] -anc_counselling_treatment.step4.increase_energy_counsel_notdone.label = Motivo -anc_counselling_treatment.step4.increase_energy_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.done.text = Feito -anc_counselling_treatment.step11.tt1_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step11.hepb_dose_notdone_other.hint = Especificar -anc_counselling_treatment.step1.resp_distress_toaster.text = Dificuldade respiratória: {respiratory_exam_abnormal} -anc_counselling_treatment.step12.prep_toaster.text = Suplementos dietéticos NÃO recomendados:\n\n- Suplementos com alta proteína\n\n- Suplemento de Zinco\n\n- Suplemento de múltiplos micronutrientes\n\n- Suplemento de vitamina B6\n\n- Suplemento de vitamina C e E\n\n- Suplemento de vitamina D -anc_counselling_treatment.step1.referred_hosp_notdone.v_required.err = Razão para encaminhamento para hospital não foi preenchido -anc_counselling_treatment.step1.referred_hosp_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step8.ipv_enquiry_results.label = Resultados do inquérito sobre VIP -anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step5.asb_positive_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step5.tb_positive_counseling.options.done.text = Feito -anc_counselling_treatment.step4.increase_energy_counsel.label = Aconselhamento sobre aumento do consumo diário de calorias e proteínas -anc_counselling_treatment.step5.hepc_positive_counsel.label_info_title = Aconselhamento sobre Hepatite C positivo -anc_counselling_treatment.step11.tt1_date_done.v_required.err = É necessária data para dose #1 do Toxoide Tetânico -anc_counselling_treatment.step9.vita_supp_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step1.abn_cardiac_exam_toaster.text = Exame cardíaco anormal: {cardiac_exam_abnormal} -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.label = Motivo -anc_counselling_treatment.step5.diabetes_counsel.label_info_text = Reafirme intervenção dietética e encaminhamento para serviço de referência.\n\n[Folder Nutricional e Exercícios] -anc_counselling_treatment.step3.varicose_oedema_counsel.options.done.text = Feito -anc_counselling_treatment.step5.hiv_positive_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step9.calcium_supp.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.condom_counsel_notdone.hint = Motivo -anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step8.ipv_enquiry.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step6.gdm_risk_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_title = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação -anc_counselling_treatment.step9.calcium_supp.label_info_title = Prescrever suplementação diária de cálcio (1.5-2.0 g the cálcio elementar oral) -anc_counselling_treatment.step7.danger_signs_counsel.options.done.text = Feito -anc_counselling_treatment.step8.ipv_refer_toaster.toaster_info_title = Se a mulher apresentar risco de Violência de Parceiro Ãntimo (VPI), encaminhar para avaliação. -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.label = Motivo -anc_counselling_treatment.step3.nausea_counsel.label_info_title = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito -anc_counselling_treatment.step11.flu_date.label_info_title = Dose da vacina da gripe -anc_counselling_treatment.step11.woman_immunised_toaster.text = A mulher está completamente imunizada contra o tétano! -anc_counselling_treatment.step5.tb_positive_counseling.options.not_done.text = Não realizado -anc_counselling_treatment.step2.tobacco_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.hepb_dose_notdone.v_required.err = Razão para Vacina Hep B não realizada é obrigatório -anc_counselling_treatment.step3.constipation_not_relieved_counsel.label_info_text = Podem ser usados farelo de trigo ou outros suplementos com fibras para aliviar a constipação, se as modificações dietéticas não forem suficientes, e se estiverem disponíveis e forem apropriados. -anc_counselling_treatment.step2.alcohol_substance_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step10.malaria_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.hepb3_date_done.v_required.err = É necessária a data para a dose #3 da Hep B -anc_counselling_treatment.step6.hiv_prep_notdone.options.no_drugs.text = Indisponível -anc_counselling_treatment.step2.condom_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step9.calcium_supp.options.done.text = Feito -anc_counselling_treatment.step9.vita_supp.options.not_done.text = Não realizado -anc_counselling_treatment.step1.abn_abdominal_exam_toaster.text = Exame abdominal anormal: {abdominal_exam_abnormal} -anc_counselling_treatment.step5.tb_positive_counseling.label_info_title = Aconselhamento sobre rastreamento positivo para TB -anc_counselling_treatment.step1.severe_pre_eclampsia_dialog_toaster.toaster_info_title = Diagnóstico de pré eclâmpsia grave -anc_counselling_treatment.step7.encourage_facility_toaster.text = Encorajar o parto em uma unidade de saúde! -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label_info_text = Os tratamentos farmacológicos para náusea e vômitos como a doxilamina e metoclopramida deveriam ficar reservadas para as gestantes com sintomas persistentes que não são aliviados por opções não-farmacológicas, sob supervisão médica. -anc_counselling_treatment.step1.fever_toaster.text = Febre: {body_temp_repeat}ºC -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step8.ipv_refer_toaster.text = Se a mulher apresentar risco de Violência de Parceiro Ãntimo (VPI), encaminhar para avaliação. -anc_counselling_treatment.step11.flu_dose_notdone.options.vaccine_available.text = Vacina não disponível -anc_counselling_treatment.step9.vita_supp_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step4.eat_exercise_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step3.heartburn_counsel.label_info_text = Recomenda-se aconselhar sobre dieta e hábitos de vida para prevenir e aliviar a azia durante a gestação. Pode-se oferecer preparações antiácidas às mulheres com sintomas mais importantes que não melhoram com a modificação dos hábitos. -anc_counselling_treatment.step4.increase_energy_counsel.v_required.err = Por favor, seleciona uma opção -anc_counselling_treatment.step6.prep_toaster.toaster_info_text = Encoraje a mulher a descobrir o status de seu(s) parceiro(s) trazendo-o(s) na próxima visita para fazer o teste. -anc_counselling_treatment.step11.tt3_date.label = Dose #3 do TT -anc_counselling_treatment.step6.gdm_risk_counsel.options.done.text = Feito -anc_counselling_treatment.step5.syphilis_high_prev_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step10.iptp_sp_toaster.toaster_info_text = Mulheres que estão recebendo co-trimoxazol NÃO DEVEM receber concomitantemente sulfadoxina-pirimetamina como tratamento preventivo intermitente para malária. Isso pode potencializar efeitos colaterais, especialmente os hematológicos como anemia. -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step3.nausea_not_relieved_counsel.label = Aconselhamento sobre tratamentos farmacológicos para náusea e vômito -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.no_stock.text = Sem estoque -anc_counselling_treatment.step9.ifa_low_prev_notdone.hint = Motivo -anc_counselling_treatment.step5.asb_positive_counsel.options.done.text = Feito -anc_counselling_treatment.step8.ipv_enquiry_results.options.no_action.text = Nenhuma ação necessária -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.options.done.text = Feito -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar ao hospital\n\n- Rever plano de parto -anc_counselling_treatment.step9.ifa_low_prev.options.not_done.text = Não realizado -anc_counselling_treatment.step3.heartburn_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step4.balanced_energy_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.tt_dose_notdone_other.hint = Especificar -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.hepb2_date.label = Dose #2 da Hep B -anc_counselling_treatment.step5.diabetes_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step9.calcium_supp.label = Prescrever suplementação diária de cálcio (1.5-2.0 g de cálcio elementar oral) -anc_counselling_treatment.step5.asb_positive_counsel.label = Esquema de sete dias de antibiótico para bacteriúria assintomática (BA) -anc_counselling_treatment.step11.flu_dose_notdone.options.woman_refused.text = Paciente recusou -anc_counselling_treatment.step10.iptp_sp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_refused.text = Paciente recusou -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_text = Procedimento:\n\n- Se sífilis primária ou secundária, por favor, realizar dose única de 2.400.000 IU de penicilina benzatina \n\n- Se sífilis tardia ou de estágio desconhecido, por favor, realizar 3 doses semanais consecutivas de 2.400.000 IU de penicilina benzatina\n\n- Recomendar tratamento do parceiro\n\n- Encorajar realização de aconselhamento e teste de HIV\n\n- Reforçar uso de preservativos -anc_counselling_treatment.step8.ipv_enquiry_results.options.referred.text = Encaminhada -anc_counselling_treatment.step3.constipation_counsel.label = Aconselhamento sobre modificações da dieta para aliviar a constipação -anc_counselling_treatment.step10.iptp_sp2.label_info_title = Sulfadoxina-pirimetamina (IPTp-SP) dose 2 -anc_counselling_treatment.step5.hepb_positive_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.condom_counsel.options.done.text = Feito -anc_counselling_treatment.step10.malaria_counsel_notdone.label = Motivo -anc_counselling_treatment.step11.flu_dose_notdone.options.allergies.text = Alergias -anc_counselling_treatment.step11.hepb2_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step3.heartburn_counsel.options.done.text = Feito -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas -anc_counselling_treatment.step9.ifa_high_prev.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step9.calcium_supp_notdone_other.hint = Especificar -anc_counselling_treatment.step9.ifa_weekly_notdone_other.hint = Especificar -anc_counselling_treatment.step3.constipation_not_relieved_counsel.options.done.text = Feito -anc_counselling_treatment.step6.hiv_prep.label = Aconselhamento sobre Profilaxia Pré-Exposição na prevenção do HIV -anc_counselling_treatment.step7.emergency_hosp_counsel.label = Aconselhar sobre procura imediata do hospital se sinais de alerta -anc_counselling_treatment.step7.anc_contact_counsel.label_info_text = Recomenda-se que a mulher veja um profissional de saúde 8 vezes durante a gestação (isso pode ser modificado se a mulher tem alguma complicação). Esta agenda mostra quando a mulher deve vir para que tenha acesso a todos os cuidados e informações importantes. -anc_counselling_treatment.step5.title = Diagnósticos -anc_counselling_treatment.step9.calcium_supp_notdone.hint = Motivo -anc_counselling_treatment.step11.flu_dose_notdone_other.hint = Especificar -anc_counselling_treatment.step7.gbs_agent_counsel.label = Aconselhamento sobre antibiótico intra parto para prevenir infecção neonatal precoce pelo Estreptococos do Grupo B (GBS) -anc_counselling_treatment.step8.ipv_enquiry.label = Inquérito clínico para violência de parceiro íntimo (VPI) -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.hint = Motivo -anc_counselling_treatment.step1.low_oximetry_toaster.toaster_info_text = Procedimento:\n\n- Fornecer oxigênio\n\n- Encaminhar urgentemente ao hospital! -anc_counselling_treatment.step11.tt3_date.v_required.err = Dose #3 do TT é necessária -anc_counselling_treatment.step4.balanced_energy_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step7.family_planning_type.options.sterilization.text = Esterilização (parceiro) -anc_counselling_treatment.step11.hepb2_date_done.hint = Foi fornecida a data para a dose #2 da Hep B -anc_counselling_treatment.step10.iptp_sp3.options.not_done.text = Não realizado -anc_counselling_treatment.step3.heartburn_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.hepb2_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step9.vita_supp_notdone_other.hint = Especificar -anc_counselling_treatment.step10.deworm.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.diabetes_counsel.label = Aconselhamento sobre diabetes -anc_counselling_treatment.step9.calcium_supp.options.not_done.text = Não realizado -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.label = Prescreva 75 mg de aspirina diária até o parto (começando às 12 semanas de gestação) e certifique-se de que ela continua tomando seu suplemento diário de cálcio de 1.5 a 2 g até o parto pelo risco de pré-eclâmpsia -anc_counselling_treatment.step1.abn_breast_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para investigação adicional -anc_counselling_treatment.step5.hypertension_counsel.options.done.text = Feito -anc_counselling_treatment.step9.calcium_supp_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.shs_counsel.label_info_title = Aconselhamento sobre fumo passivo -anc_counselling_treatment.step11.tt_dose_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step9.vita_supp.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.breastfeed_counsel.label_info_text = Para possibilitar que as mães estabeleçam e mantenham o aleitamento exclusivo por 6 meses, a OMS e UNICEF recomendam:\n\n- Início do aleitamento dentro da primeira hora de vida\n\n- Aleitamento exclusivo - quando a criança recebe apenas leite materno sem qualquer comida ou bebida adicional, nem mesmo água\n\n- Aleitamento à livre demanda - que é tão frequente quanto a criança desejar, dia e noite\n\n- Sem uso de mamadeiras, bicos ou chupetas -anc_counselling_treatment.step2.caffeine_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.family_planning_type.options.iud.text = DIU -anc_counselling_treatment.step9.ifa_weekly.options.not_done.text = Não realizado -anc_counselling_treatment.step2.shs_counsel.label = Aconselhamento sobre fumo passivo -anc_counselling_treatment.step10.iptp_sp3.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 3 -anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.done.text = Feito -anc_counselling_treatment.step10.iptp_sp2.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. -anc_counselling_treatment.step7.birth_prep_counsel.label_info_text = Isso inclui:\n\n- Profissional treinado para atender o parto\n\n- Acompanhante durante trabalho de parto e parto\n\n- Identificação da unidade mais perto para o parto e no caso de complicações\n\n- Fundos para quaisquer gastos relacionados ao parto e em caso de complicações\n\n- Suprimentos e materiais necessários para levar à unidade de saúde\n\n- Suporte para o cuidado com a casa e as outras crianças enquanto ela estiver fora\n\n- Transporte para uma unidade para o parto ou no caso de complicações\n\n- Identificação de doadores de sangue compatíveis em caso de complicações -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone_other.hint = Especificar -anc_counselling_treatment.step11.hepb3_date_done.hint = Foi fornecida a data para a dose #3 da Hep B -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step5.asb_positive_counsel_notdone.label = Motivo -anc_counselling_treatment.step2.shs_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.hepb_negative_note.label_info_title = Aconselhamento sobre Hep B negativa e vacinação -anc_counselling_treatment.step3.varicose_vein_toaster.text = Investigar quaisquer possíveis complicações, incluindo trombose, relacionadas a veias varicosas e edema -anc_counselling_treatment.step7.birth_prep_counsel.label = Aconselhamento sobre o preparo para o parto e prontidão para complicações -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_title = Batimento cardíaco fetal não foi observado -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.hint = Motivo -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.flu_date.v_required.err = Dose da vacina da gripe é necessária -anc_counselling_treatment.step2.caffeine_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone.hint = Motivo -anc_counselling_treatment.step1.abn_pelvic_exam_toaster.text = Exame pélvico anormal: {pelvic_exam_abnormal} -anc_counselling_treatment.step9.ifa_low_prev_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.heartburn_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.birth_prep_counsel.label_info_title = Aconselhamento sobre o preparo para o parto e prontidão para complicações -anc_counselling_treatment.step7.anc_contact_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step6.hiv_prep_notdone.options.refered_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step8.ipv_enquiry_notdone.hint = Motivo -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step2.shs_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step3.constipation_counsel.options.done.text = Feito -anc_counselling_treatment.step5.syphilis_high_prev_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step6.hiv_prep_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.hepb3_date.options.not_done.text = Não realizado -anc_counselling_treatment.step9.ifa_weekly.label = Mude a prescrição para dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para a prevenção de anemia -anc_counselling_treatment.step2.alcohol_substance_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.tt3_date_done.hint = Foi fornecida a data para a dose #3 do TT -anc_counselling_treatment.step3.nausea_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step5.hiv_positive_counsel.label_info_text = Recomendação:\n\n- Encaminhar para serviço especializado para HIV\n\n- Orientações sobre infecções oportunistas e necessidade de busca por ajuda médica\n\n- Realize rastreamento sistemático para TB ativa -anc_counselling_treatment.step11.flu_date.label_info_text = Mulheres grávidas devem ser vacinadas com a vacina trivalente inativada da influenza em qualquer estágio da gestação. -anc_counselling_treatment.step11.woman_immunised_flu_toaster.text = A mulher está imunizada contra a gripe! -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.text = Batimento cardíaco fetal não foi observado -anc_counselling_treatment.step11.flu_dose_notdone.v_required.err = Informar motivo de não realização da vacina da Gripe -anc_counselling_treatment.step10.deworm_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step1.pre_eclampsia_dialog_toaster.toaster_info_title = Diagnóstico de pré eclâmpsia -anc_counselling_treatment.step5.tb_positive_counseling.label = Aconselhamento sobre rastreamento positivo para TB -anc_counselling_treatment.step10.deworm_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.tt2_date.label = Dose #2 do TT -anc_counselling_treatment.step9.calcium_supp_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step7.birth_prep_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.hepb_negative_note.label = Aconselhamento sobre Hep B negativa e vacinação -anc_counselling_treatment.step7.family_planning_type.options.implant.text = Implante -anc_counselling_treatment.step6.hiv_risk_counsel.label_info_title = Aconselhamento sobre risco do HIV -anc_counselling_treatment.step2.shs_counsel.options.done.text = Feito -anc_counselling_treatment.step6.hiv_prep.options.not_done.text = Não realizado -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_text = Pode-se oferecer preparações antiácidas para as mulheres com sintomas importantes que não são aliviados pela modificação de hábitos. Preparações com carbonato de magnésio e hidróxido de alumínio provavelmente não causam prejuízos nas doses recomendadas. -anc_counselling_treatment.step9.ifa_weekly_notdone.label = Motivo -anc_counselling_treatment.step11.tt1_date.options.not_done.text = Não realizado -anc_counselling_treatment.step4.balanced_energy_counsel_notdone.label = Motivo -anc_counselling_treatment.step3.varicose_oedema_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step9.vita_supp.label_info_text = Dê uma dose de até 10.000 UI de vitamina A por dia, ou uma dose semanal de até 25.000 UI.\n\nUma dose única de suplemento de vitamina A maior que 25.000 UI não se recomenda pela incerteza da segurança. Mais ainda, uma dose única de suplemento de vitamina A maior que 25.000 UI pode ser teratogênica se consumida entre os dias 15 e 60 desde a concepção.\n\n[Folder de fontes de Vitamina A] -anc_counselling_treatment.step7.danger_signs_counsel.label_info_text = Sinais de perigo incluem:\n\n- Cefaleia\n\n- Ausência de movimento fetal\n\n- Contrações\n\n- Corrimento vaginal anormal\n\n- Febre\n\n- Dor abdominal\n\n- Sente-se doente\n\n- Dedos, face ou pernas inchados -anc_counselling_treatment.step10.iptp_sp_toaster.text = Não forneça quimioprofilaxia para malária, pois a mulher está tomando Cotrimoxazol. -anc_counselling_treatment.step5.hypertension_counsel.label_info_text = Recomendação:\n\n- Orientar repouso e redução da carga de trabalho - Avisar sobre sinais de alerta\n\n- Reavaliar no próximo contato ou em 1 semana se gravidez acima de 8 meses\n\n- Se persistência da hipertensão após 1 semana ou no próximo contato, encaminhar à referência ou discutir com o médico, se possível -anc_counselling_treatment.step1.referred_hosp_notdone.label = Motivo -anc_counselling_treatment.step3.back_pelvic_pain_counsel.options.done.text = Feito -anc_counselling_treatment.step2.condom_counsel_notdone.label = Motivo -anc_counselling_treatment.step6.pe_risk_aspirin_calcium.options.not_done.text = Não realizado -anc_counselling_treatment.step3.leg_cramp_counsel.label = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_text = Se as câimbras nas pernas não são aliviadas com medidas não farmacológicas, prescreva 300-360 mg de magnésio por dia dividido em duas ou três doses; e cálcio 1 g duas vezes por dia por duas semanas. -anc_counselling_treatment.step9.ifa_high_prev.label_info_text = Devido à alta prevalência de anemia na população, uma dose diária de 60 mg de ferro elementar é preferível a uma dose mais baixa. Também se recomenda uma dose diária de 400 mcg (0.4 mg) de ácido fólico.\n\nO equivalente de 60 mg de ferro elementar é 300 mg de sulfato ferroso hepta hidratado, 180 mg de fumarato ferroso ou 500 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step9.ifa_weekly.options.done.text = Feito -anc_counselling_treatment.step11.flu_date.label = Dose da gripe -anc_counselling_treatment.step11.hepb2_date_done.v_required.err = É necessária a data para a dose #2 da Hep B -anc_counselling_treatment.step9.vita_supp.label = Prescreva uma dose diária de até 10.000 UI de vitamina A ou uma dose semanal de até 25.000 UI -anc_counselling_treatment.step11.hepb1_date_done.hint = Foi fornecida a data para a dose #1 da Hep B -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.hint = Motivo -anc_counselling_treatment.step6.hiv_prep.label_info_text = Profilaxia pré-exposição (PPE) oral contendo fumarato disoproxil tenofovir (TDF) deve ser oferecida como uma opção adicional de prevenção para gestantes com um risco substancial de infecção pelo HIV, como parte de uma abordagem de prevenção combinada\n\n{Quadro de oferta de PPE] -anc_counselling_treatment.step10.deworm.label_info_text = Em áreas com uma prevalência de infecção por quaisquer helmintos transmitidos pelo solo de 20% ou mais OU uma prevalência de anemia na população de 40% ou mais, recomenda-se tratamento anti-helmíntico preventivo para as gestantes depois do primeiro trimestre como parte dos programas de redução de infecção por vermes. -anc_counselling_treatment.step11.tt2_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step11.tt3_date.options.not_done.text = Não realizado -anc_counselling_treatment.step11.woman_immunised_hep_b_toaster.text = A mulher está completamente imunizada contra a Hep B! -anc_counselling_treatment.step8.ipv_enquiry_results.options.treated.text = Tratada -anc_counselling_treatment.step8.ipv_enquiry_notdone.label = Motivo -anc_counselling_treatment.step6.hiv_prep.options.done.text = Feito -anc_counselling_treatment.step11.hepb_negative_note.options.not_done.text = Não realizado -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.hint = Motivo -anc_counselling_treatment.step3.heartburn_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step11.tt3_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step3.leg_cramp_counsel.label_info_text = Pode-se usar terapias não farmacológicas, incluindo alongamento muscular, relaxamento, calor local, dorsoflexão do pé e massagem para o alívio de câimbras nas pernas durante a gestação. -anc_counselling_treatment.step3.constipation_counsel.label_info_text = Modificações dietéticas para aliviar a constipação incluem a promoção de consumo adequado de água e fibras (encontradas em vegetais, frutas secas, frutas e grãos integrais). -anc_counselling_treatment.step2.caffeine_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step6.gdm_risk_counsel.label_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez -anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital para investigação adicional e cuidados! -anc_counselling_treatment.step1.referred_hosp.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step1.severe_hypertension_toaster.text = Hipertensão grave: {bp_systolic_repeat}/{bp_diastolic_repeat} mmHg -anc_counselling_treatment.step4.average_weight_toaster.text = Realizado Aconselhamento sobre dieta saudável e manter-se fisicamente ativo -anc_counselling_treatment.step8.ipv_enquiry.options.not_done.text = Não realizado -anc_counselling_treatment.step7.family_planning_type.options.oral_contraceptive.text = Anticoncepcional oral -anc_counselling_treatment.step7.family_planning_type.options.tubal_ligation.text = Ligadura de trompas -anc_counselling_treatment.step11.tt_dose_notdone.label = Motivo -anc_counselling_treatment.step11.hepb1_date.options.not_done.text = Não realizado -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.allergy.text = Alergia -anc_counselling_treatment.step5.hepb_positive_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.iptp_sp_notdone.label = Motivo -anc_counselling_treatment.step8.ipv_enquiry_results.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.delivery_place.options.home.text = Em casa -anc_counselling_treatment.step2.caffeine_counsel_notdone.label = Motivo -anc_counselling_treatment.step4.eat_exercise_counsel.label = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa -anc_counselling_treatment.step10.iptp_sp3.options.done.text = Feito -anc_counselling_treatment.step1.resp_distress_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital! -anc_counselling_treatment.step9.vita_supp_notdone.label = Motivo -anc_counselling_treatment.step5.asb_positive_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.iptp_sp3.label_info_text = Recomenda-se o tratamento preventivo intermitente da malária na gestação com sulfadoxina-pirimetamina (IPTp-SP) em áreas de malária endêmica. As doses devem ser dadas com um intervalo de pelo menos um mês, começando no 2o. trimestre, com o objetivo de assegurar que pelo menos três doses sejam recebidas. -anc_counselling_treatment.step11.hepb1_date_done.v_required.err = É necessária a data para a dose #1 da Hep B -anc_counselling_treatment.step11.flu_date_done.hint = Foi fornecida a data para a dose da Gripe -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step5.hepb_positive_counsel.options.done.text = Feito -anc_counselling_treatment.step9.ifa_low_prev.options.done.text = Feito -anc_counselling_treatment.step1.severe_hypertension_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar urgentemente ao hospital para investigação adicional e cuidados! -anc_counselling_treatment.step7.breastfeed_counsel.label_info_title = Aconselhamento sobre amamentação -anc_counselling_treatment.step2.shs_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step5.syphilis_low_prev_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step2.shs_counsel_notdone.hint = Motivo -anc_counselling_treatment.step8.title = Violência de Parceiro Ãntimo (VPI) -anc_counselling_treatment.step10.iptp_sp1.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step2.shs_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.varicose_oedema_counsel.label = Aconselhamento sobre opções não farmacológicas para varizes e edema -anc_counselling_treatment.step7.delivery_place.options.other.text = Outro -anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step9.ifa_high_prev.label_info_title = Prescrever dose diária de 60 mg de ferro e 0,4 mg de ácido fólico -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.side_effects.text = Efeitos colaterais -anc_counselling_treatment.step7.danger_signs_counsel.label = Aconselhamento sobre a busca de cuidado para sinais de perigo -anc_counselling_treatment.step4.increase_energy_counsel.label_info_title = Aconselhamento sobre aumento do consumo diário de calorias e proteínas -anc_counselling_treatment.step10.iptp_sp1.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 1 -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step6.pe_risk_aspirin_notdone.options.side_effects.text = Efeitos colaterais -anc_counselling_treatment.step7.family_planning_type.label = Método de Planejamento Familiar aceito -anc_counselling_treatment.step2.alcohol_substance_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step11.tt3_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step9.ifa_low_prev_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step6.pe_risk_aspirin.label = Prescreva 75 mg de aspirina diária até o parto (começando às 12 semanas de gestação) pelo risco de pré-eclâmpsia -anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_title = Aconselhamento sobre o uso de álcool/substâncias -anc_counselling_treatment.step3.constipation_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.malaria_counsel.label = Aconselhamento sobre prevenção da malária -anc_counselling_treatment.step3.nausea_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step10.deworm.options.not_done.text = Não realizado -anc_counselling_treatment.step10.iptp_sp2.options.not_done.text = Não realizado -anc_counselling_treatment.step11.title = Imunizações -anc_counselling_treatment.step8.ipv_enquiry_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step2.tobacco_counsel_notdone.label = Motivo -anc_counselling_treatment.step7.breastfeed_counsel.label = Aconselhamento sobre amamentação -anc_counselling_treatment.step10.iptp_sp_notdone.options.expired.text = Fora da validade -anc_counselling_treatment.step5.asb_positive_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step1.abn_abdominal_exam_toaster.toaster_info_text = Procedimento:\n\n- Encaminhar para avaliação adicional -anc_counselling_treatment.step3.nausea_counsel.label_info_text = Recomenda-se o uso de gengibre, camomila, vitamina B6 e/ou acupuntura para o alívio da náusea no início da gestação, com base na preferências da mulher e opções disponíveis. As mulheres devem ser informadas que os sintomas de náusea e vômitos normalmente melhoram na segunda metade da gestação. -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.options.done.text = Feito -anc_counselling_treatment.step2.condom_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step7.birth_prep_counsel.options.done.text = Feito -anc_counselling_treatment.step2.tobacco_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step4.increase_energy_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step10.iptp_sp2.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step7.rh_negative_counsel.label = Aconselhamento sobre Fator Rh negativo -anc_counselling_treatment.step5.syphilis_high_prev_counsel.label_info_title = Aconselhamento sobre sífilis e testes adicionais -anc_counselling_treatment.step5.asb_positive_counsel_notdone.options.stock_out.text = Sem estoque -anc_counselling_treatment.step7.danger_signs_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step4.balanced_energy_counsel.label_info_text = Recomenda-se suplementação dietética equilibrada em energia e proteína para mulheres grávidas, a fim de reduzir o risco de natimortos e recém-nascidos pequenos para a idade gestacional. -anc_counselling_treatment.step5.ifa_anaemia.label = Prescrever dose diária de 120 mg de ferro e 2,8 mg de ácido fólico para anemia -anc_counselling_treatment.step7.rh_negative_counsel.label_info_text = Aconselhamento:\n\n- Mulher está sob risco de aloimunização Rh se pai do bebê for Rh positivo ou Rh desconhecido.\n\n- Realizar investigação sobre aloimunização e necessidade de encaminhamento.\n\n- Se Rh negativo e não sensibilizada, a mulher deve receber imunoglobulina Anti-D no pós-parto imediato se o bebê for Rh positivo. -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.allergy.text = Alergia -anc_counselling_treatment.step11.tt_dose_notdone.options.vaccine_available.text = Vacina não disponível -anc_counselling_treatment.step10.iptp_sp2.options.done.text = Feito -anc_counselling_treatment.step11.flu_dose_notdone.label = Motivo -anc_counselling_treatment.step6.hiv_risk_counsel.label_info_text = Orientar sobre as opções de prevenção do HIV: \n\n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n\n- Promoção do uso do preservativo\n\n- Aconselhamento de redução de risco\n\n- PPE com ênfase na aderência\n\n- Enfatizar importância do seguimento nas consultas de pré-natal -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step2.title = Aconselhamento sobre comportamento -anc_counselling_treatment.step3.nausea_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step11.tt2_date_done.v_required.err = É necessária data para dose #2 do Toxoide Tetânico -anc_counselling_treatment.step2.tobacco_counsel.label = Aconselhamento sobre parar de fumar. -anc_counselling_treatment.step9.ifa_high_prev_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step9.ifa_high_prev_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step9.ifa_low_prev.label_info_text = Recomenda-se uma suplementação com dose diária de 30 a 60 mg de ferro elementar e 400 mcg (0.4 mg) de ácido fólico para prevenir a anemia materna, sepse puerperal, baixo peso ao nascimento e parto prematuro.\n\nO equivalente de 60 mg de ferro elementar é 300 mg de sulfato ferroso hepta hidratado, 180 mg de fumarato ferroso ou 500 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] -anc_counselling_treatment.step6.hiv_risk_counsel.label = Aconselhamento sobre risco do HIV -anc_counselling_treatment.step11.hepb3_date.v_required.err = Dose #3 do Hep B é necessária -anc_counselling_treatment.step3.varicose_oedema_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step2.condom_counsel.label_info_title = Aconselhar uso de preservativo -anc_counselling_treatment.step5.hiv_positive_counsel.options.done.text = Feito -anc_counselling_treatment.step10.deworm.label = Prescreva dose única de albendazol 400 mg ou mebendazol 500 mg -anc_counselling_treatment.step1.no_fetal_heartbeat_toaster.toaster_info_text = Procedimento:\n\n- Informar à mulher que não foi possível identificar os batimentos cardíacos fetais e que será necessário encaminhá-la à referência para avaliação adicional.\n\n- Encaminhar ao hospital. -anc_counselling_treatment.step9.vita_supp.label_info_title = Prescreva uma dose diária de até 10.000 UI de vitamina A ou uma dose semanal de até 25.000 UI -anc_counselling_treatment.step3.varicose_oedema_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step9.ifa_low_prev.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step11.hepb_dose_notdone.options.allergies.text = Alergias -anc_counselling_treatment.step11.flu_date.options.done_today.text = Realizado hoje -anc_counselling_treatment.step11.tt1_date_done.hint = Foi fornecida a data para a dose #1 do TT -anc_counselling_treatment.step3.title = Aconselhamento sobre sintomas fisiológicos -anc_counselling_treatment.step5.hypertension_counsel.label_info_title = Aconselhamento sobre hipertensão -anc_counselling_treatment.step5.hepc_positive_counsel.label_info_text = Aconselhamento:\n\n- Prover aconselhamento pós-teste\n\n- Solicitar exame confirmatório NAT (Amplificação ácido nucleico)\n\n- Encaminhar para referência -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step9.title = Suplementação nutricional -anc_counselling_treatment.step2.alcohol_substance_counsel.label = Aconselhamento sobre o uso de álcool/substâncias -anc_counselling_treatment.step7.birth_plan_toaster.text = A mulher deve planejar o parto em uma unidade de saúde pelos fatores de risco -anc_counselling_treatment.step10.malaria_counsel_notdone.hint = Motivo -anc_counselling_treatment.step7.anc_contact_counsel.options.done.text = Feito -anc_counselling_treatment.step9.ifa_high_prev_notdone_other.hint = Especificar -anc_counselling_treatment.step3.nausea_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step3.constipation_counsel_notdone.label = Motivo -anc_counselling_treatment.step2.caffeine_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step6.hiv_prep_notdone.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step11.tt1_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step1.fever_toaster.toaster_info_title = Febre: {body_temp_repeat}ºC -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label_info_title = Aconselhar o uso de preparações antiácidas para aliviar a azia -anc_counselling_treatment.step11.hepb_dose_notdone.label = Motivo -anc_counselling_treatment.step5.ifa_anaemia_notdone.options.side_effects.text = Efeitos colaterais impedem a mulher de tomá-lo -anc_counselling_treatment.step3.back_pelvic_pain_counsel_notdone.hint = Motivo -anc_counselling_treatment.step3.back_pelvic_pain_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.heartburn_not_relieved_counsel.label = Aconselhar o uso de preparações antiácidas para aliviar a azia -anc_counselling_treatment.step4.title = Aconselhamento sobre dieta -anc_counselling_treatment.step10.iptp_sp_notdone.options.stock_out.text = Sem estoque -anc_counselling_treatment.step11.hepb_dose_notdone.options.woman_is_ill.text = A mulher está doente -anc_counselling_treatment.step4.eat_exercise_counsel_notdone.hint = Motivo -anc_counselling_treatment.step2.tobacco_counsel.v_required.err = Favor selecionar uma opção -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.label = Motivo -anc_counselling_treatment.step9.calcium_supp_notdone.label = Motivo -anc_counselling_treatment.step11.tt2_date.label_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano.\n\nVacina com toxoide tetânico não recebida ou desconhecida\n- Esquema de 3 doses\n\n- 2 doses, 1 mês de intervalo\n\n- Segunda dose pelo menos 2 semanas antes do parto\n\n- Terceira dose 5 meses após a segunda dose -anc_counselling_treatment.step12.title = Não recomendado -anc_counselling_treatment.step4.balanced_energy_counsel.options.done.text = Feito -anc_counselling_treatment.step5.ifa_anaemia.options.not_done.text = Não realizado -anc_counselling_treatment.step3.nausea_not_relieved_counsel_notdone.hint = Motivo -anc_counselling_treatment.step5.hepb_positive_counsel.label_info_title = Aconselhamento sobre Hepatite B positivo -anc_counselling_treatment.step5.hiv_positive_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step11.tt_dose_notdone.v_required.err = Razão para Anti-tetânica não realizada é obrigatório -anc_counselling_treatment.step4.increase_energy_counsel.options.done.text = Feito -anc_counselling_treatment.step7.title = Aconselhamento -anc_counselling_treatment.step11.hepb3_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step4.eat_exercise_counsel.label_info_text = Recomenda-se que a gestante tenha alimentação saudável e mantenha-se fisicamente ativa para que permaneça saudável e para prevenir o ganho de peso excessivo durante a gestação.\n\n[Folder Nutrição e Exercício] -anc_counselling_treatment.step6.pe_risk_aspirin.options.not_done.text = Não realizado -anc_counselling_treatment.step5.hypertension_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step9.ifa_weekly.label_info_text = Se o ferro não for aceitável todo dia por seus efeitos colaterais, dê então uma suplementação intermitente de ferro e ácido fólico (120 mg de ferro elementar e 2.8 mg de ácido fólico uma vez por semana) \n\nO equivalente de 120 mg de ferro elementar é 600 mg de sulfato ferroso hepta hidratado, 360 mg de fumarato ferroso ou 1000 mg de gluconato ferroso.\n\n[Folder de fontes de ferro] -anc_counselling_treatment.step2.tobacco_counsel.options.done.text = Feito -anc_counselling_treatment.step6.pe_risk_aspirin.options.done.text = Feito -anc_counselling_treatment.step10.iptp_sp1.options.done.text = Feito -anc_counselling_treatment.step1.hypertension_pre_eclampsia_toaster.text = Hipertensão e sintomas de pré eclampsia grave: {symp_sev_preeclampsia} -anc_counselling_treatment.step9.ifa_weekly_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step6.hiv_prep_notdone_other.hint = Especificar -anc_counselling_treatment.step5.ifa_anaemia.options.done.text = Feito -anc_counselling_treatment.step10.iptp_sp2.label = Sulfadoxina-pirimetamina (IPTp-SP) dose 2 -anc_counselling_treatment.step5.asb_positive_counsel.label_info_text = Setes dias de antibiótico é recomendado para todas mulheres com bacteriúria assintomática para prevenir bacteriúria persistente, parto prematuro ou baixo peso. -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel_notdone.hint = Motivo -anc_counselling_treatment.step1.referred_hosp_notdone.options.woman_refused.text = Paciente recusou -anc_counselling_treatment.step9.vita_supp_notdone.hint = Motivo -anc_counselling_treatment.step6.title = Riscos -anc_counselling_treatment.step6.hiv_prep.label_info_title = Aconselhamento sobre Profilaxia Pré-Exposição na prevenção do HIV -anc_counselling_treatment.step11.hepb1_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step5.diabetes_counsel.options.done.text = Feito -anc_counselling_treatment.step3.heartburn_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step3.heartburn_counsel_notdone.label = Motivo -anc_counselling_treatment.step9.ifa_low_prev_notdone_other.hint = Especificar -anc_counselling_treatment.step3.constipation_counsel.label_info_title = Aconselhamento sobre modificações da dieta para aliviar a constipação -anc_counselling_treatment.step1.danger_signs_toaster.text = Sinal(is) de alerta: {danger_signs} -anc_counselling_treatment.step6.prep_toaster.text = Recomenda-se teste de HIV no parceiro -anc_counselling_treatment.step1.referred_hosp_notdone.hint = Motivo -anc_counselling_treatment.step4.increase_energy_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step11.tt2_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step3.nausea_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step7.gbs_agent_counsel.options.not_done.text = Não realizado -anc_counselling_treatment.step7.birth_plan_toaster.toaster_info_text = Fatores de risco que requerem parto hospitalar:\n- Idade 17 ou menos\n- Primigesta\n- Paridade 6 ou mais\n- Cesariana prévia\n- História de complicações na gestação: hemorragia, parto com fórcipe ou vacuo extrator, convulsões, laceração de 3° ou 4° grau\n- Sangramento vaginal\n- Gestação múltipla\n- Apresentação fetal anômala\n- HIV+\n- Deseja DIU ou laqueadura durante ou pós-parto -anc_counselling_treatment.step3.constipation_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step10.title = Profilaxia de Malária e parasitose intestinal -anc_counselling_treatment.step3.nausea_counsel_notdone.hint = Motivo -anc_counselling_treatment.step11.flu_date.options.done_earlier.text = Realizado anteriormente -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.hint = Motivo -anc_counselling_treatment.step3.constipation_counsel_notdone_other.hint = Especificar -anc_counselling_treatment.step10.iptp_sp_notdone_other.hint = Especificar -anc_counselling_treatment.step4.balanced_energy_counsel.label_info_title = Aconselhamento sobre suplementação dietética balanceada em energia e proteína -anc_counselling_treatment.step3.leg_cramp_counsel_notdone.options.referred_instead.text = A paciente foi encaminhada/referida -anc_counselling_treatment.step4.balanced_energy_counsel.label = Aconselhamento sobre suplementação dietética balanceada em energia e proteína -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step12.prep_toaster.toaster_info_text = Vitamina B6: evidência moderado grau de certeza mostra que a vitamina B6 (piridoxina) provavelmente fornece algum alívio para náusea durante a gravidez.\n\nVitamina C: A vitamina C é importante para melhorar a biodisponibilidade do ferro oral. Evidências de baixo grau de certeza sobre a vitamina C sozinha sugerem que ela pode prevenir a ruptura pré-parto das membranas (PROM). No entanto, é relativamente fácil consumir quantidades suficientes de vitamina C de fontes alimentares.\n\n[Vitamin C folder]\n\nVitamina D: mulheres grávidas devem ser avisadas de que a luz solar é a fonte mais importante de vitamina D. Para mulheres grávidas com deficiência documentada de vitamina D, suplementos de vitamina D podem ser administrados com a ingestão atual recomendada de nutrientes (RNI) de 200 UI (5 μg) por dia. -anc_counselling_treatment.step1.referred_hosp.options.yes.text = Sim -anc_counselling_treatment.step5.syphilis_low_prev_counsel.label_info_title = Aconselhamento sobre sífilis e tratamento -anc_counselling_treatment.step4.increase_energy_counsel_notdone.hint = Motivo -anc_counselling_treatment.step7.delivery_place.label = Local de parto planejado -anc_counselling_treatment.step3.leg_cramp_not_relieved_counsel.label_info_title = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas -anc_counselling_treatment.step3.nausea_not_relieved_counsel.options.done.text = Feito -anc_counselling_treatment.step2.alcohol_substance_counsel.label_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. -anc_counselling_treatment.step3.constipation_not_relieved_counsel_notdone.label = Motivo -anc_counselling_treatment.step1.abnormal_pulse_rate_toaster.toaster_info_text = Procedimento:\n\n- Checar se há febre, sinais de infecção, problemas respiratórios e arritmia\n\n- Encaminhar para avaliação adicional -anc_counselling_treatment.step7.family_planning_counsel.label = Aconselhamento de planejamento familiar pós parto -anc_counselling_treatment.step2.tobacco_counsel.label_info_title = Aconselhamento sobre parar de fumar. -anc_counselling_treatment.step6.pe_risk_aspirin_calcium_notdone.options.other.text = Outro (especifique) -anc_counselling_treatment.step8.ipv_enquiry_notdone_other.hint = Especificar -anc_counselling_treatment.step11.tt2_date_done.hint = Foi fornecida a data para a dose #2 do TT diff --git a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties b/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties deleted file mode 100644 index a03940dfc..000000000 --- a/opensrp-anc/src/main/resources/anc_physical_exam_pt.properties +++ /dev/null @@ -1,169 +0,0 @@ -anc_physical_exam.step3.respiratory_exam.label = Exame respiratório -anc_physical_exam.step3.body_temp_repeat.v_required.err = Digite a segunda medida de temperatura -anc_physical_exam.step3.cardiac_exam.options.1.text = Não realizado -anc_physical_exam.step3.cervical_exam.label = Exame do colo do útero realizado? -anc_physical_exam.step4.toaster29.text = Frrequência cardíaca fetal anormal. Encaminhe ao hospital -anc_physical_exam.step1.height_label.text = Altura (cm) -anc_physical_exam.step3.pelvic_exam.options.2.text = Normal -anc_physical_exam.step3.oedema_severity.v_required.err = Digite o resultado da fita urinária -anc_physical_exam.step1.toaster6.toaster_info_text = Recomenda-se suplementação dietética equilibrada em energia e proteína para mulheres grávidas, a fim de reduzir o risco de natimortos e recém-nascidos pequenos para a idade gestacional. -anc_physical_exam.step3.pelvic_exam.options.1.text = Não realizado -anc_physical_exam.step1.pregest_weight_label.v_required.err = Digite o peso pré-gestacional -anc_physical_exam.step3.cardiac_exam.options.2.text = Normal -anc_physical_exam.step3.pulse_rate_label.text = Pulso (bpm) -anc_physical_exam.step4.fetal_presentation.label = Apresentação fetal -anc_physical_exam.step3.toaster25.text = Exame pélvico anormal. Considere avaliação em local de maior complexidade, tratamento sindrômico específico ou encaminhamento. -anc_physical_exam.step2.toaster11.toaster_info_text = A Mulher tem hipertensão. Se ela apresentar um sintoma de pré-eclâmpsia grave, encaminhe urgentemente o hospital para investigação e tratamento. -anc_physical_exam.step3.pallor.options.yes.text = Sim -anc_physical_exam.step2.urine_protein.options.plus_four.text = ++++ -anc_physical_exam.step3.cardiac_exam.label = Exame cardiológico -anc_physical_exam.step2.bp_systolic_repeat.v_required.err = Nova pressão sistólica é necessária -anc_physical_exam.step4.fetal_heart_rate_repeat_label.text = Segunda frequência cardíaca fetal (bpm) -anc_physical_exam.step3.toaster24.text = Exame abdominal anormal. Considere avaliação em local de maior complexidade ou encaminhamento. -anc_physical_exam.step3.body_temp_repeat.v_numeric.err = -anc_physical_exam.step1.height.v_required.err = Digite a altura -anc_physical_exam.step3.toaster21.toaster_info_text = Procedimento:\n- Forneça oxigênio\n- Encaminhar urgentemente para o hospital! -anc_physical_exam.step3.body_temp.v_required.err = Digite a temperatura corporal -anc_physical_exam.step3.pelvic_exam.options.3.text = Anormal -anc_physical_exam.step4.fetal_presentation.options.transverse.text = Transverso -anc_physical_exam.step2.bp_diastolic.v_required.err = Pressão diastólica é necessária -anc_physical_exam.step2.toaster13.toaster_info_text = A mulher tem pré-eclâmpsia grave - PAS de 160 mmHg ou mais e/ou PAD de 110 mmHg ou mais e proteinúria 3+ OU a mulher tem PAS de 140 mmHg ou mais e/ou PAD de 90 mmHg ou mais e proteinúria 2+ com pelo menos um sintoma de pré-eclâmpsia grave.\n\nProcedimento:\n- Dar sulfato de magnésio\n- Dar anti-hipertensivos apropriados\n- Revisar o plano de parto\n- Transferir para o hospital com urgência! -anc_physical_exam.step3.breast_exam.options.1.text = Não realizado -anc_physical_exam.step4.toaster27.text = Frrequência cardíaca fetal não observada. Encaminhe ao hospital -anc_physical_exam.step1.toaster1.text = Ãndice de massa corporal (IMC) = {bmi}\n\nA mulher está {weight_cat}. O ganho de peso durante a gestaçao deve ser de {exp_weight_gain} kg. -anc_physical_exam.step3.body_temp_repeat_label.text = Segunda temperatura (ºC) -anc_physical_exam.step2.urine_protein.options.plus_one.text = + -anc_physical_exam.step4.sfh.v_required.err = Digite a altura uterina -anc_physical_exam.step2.toaster9.toaster_info_text = A mulher tem hipertensão - PAS de 140 mmHg ou maior e/ou PAD de 90 mmHg ou maior e sem proteinúria.\n\nAconselhamento:\n- Aconselhar a redução de trabalho e repouso\n- Orientar sobre os sinais de perigo\n- Reavaliar no próximo contato ou em 1 semana se no oitavo mês de gestação\n- Se a hipertensão persiste após 1 semana ou no próximo contato, encaminhar para o hospital ou discutir os caso com o médico, se disponível. -anc_physical_exam.step2.symp_sev_preeclampsia.options.visual_disturbance.text = Visão embaçada -anc_physical_exam.step2.symp_sev_preeclampsia.options.vomiting.text = Vômito -anc_physical_exam.step1.toaster4.toaster_info_text = Recomenda-se que a gestante tenha alimentação saudável e mantenha-se fisicamente ativa para que permaneça saudável e para prevenir o ganho de peso excessivo durante a gestação. -anc_physical_exam.step3.respiratory_exam.options.2.text = Normal -anc_physical_exam.step3.breast_exam.options.3.text = Anormal -anc_physical_exam.step2.cant_record_bp_reason.v_required.err = É necessário informar a razão pela qual a PAS e PAD não podem ser medidas. -anc_physical_exam.step3.abdominal_exam.options.2.text = Normal -anc_physical_exam.step4.no_of_fetuses_label.text = Número de fetos -anc_physical_exam.step1.pregest_weight.v_numeric.err = -anc_physical_exam.step2.cant_record_bp.options.cant_record_bp.text = Impossibilidade de registrar a PA -anc_physical_exam.step2.bp_diastolic_repeat.v_required.err = É necessário informar a segunda medida da PA diastólica -anc_physical_exam.step2.cant_record_bp_reason.options.other.text = Outro -anc_physical_exam.step4.no_of_fetuses_unknown.options.no_of_fetuses_unknown.text = Número de fetos desconhecido -anc_physical_exam.step3.oedema_severity.options.plus_three.text = +++ -anc_physical_exam.step4.fetal_heartbeat.label = Batimento cardíaco fetal presente? -anc_physical_exam.step1.toaster2.text = Ganho de peso médio por semana desde o último contato: {weight_gain} kg\n\nGanho de peso total na gestação até agora; {tot_weight_gain} kg -anc_physical_exam.step2.toaster7.text = Medir a PA novamente após 10-15 minutos de repouso. -anc_physical_exam.step3.cervical_exam.options.1.text = Feito -anc_physical_exam.step4.fetal_heart_rate_repeat.v_required.err = Registre os batimentos cardíacos fetais do segundo feto -anc_physical_exam.step3.toaster22.text = Exame cardíaco anormal. Encaminhar urgentemente ao hospital -anc_physical_exam.step2.bp_systolic_repeat.v_numeric.err = -anc_physical_exam.step3.pulse_rate_repeat_label.text = Segunda frequência cardíaca (bpm) -anc_physical_exam.step3.toaster18.toaster_info_text = Procedimento:\n\n- Checar se há febre, sinais de infecção, problemas respiratórios e arritmia\n\n- Encaminhar para avaliação adicional -anc_physical_exam.step3.oedema.options.yes.text = Sim -anc_physical_exam.step1.title = Altura e Peso -anc_physical_exam.step2.urine_protein.options.plus_two.text = ++ -anc_physical_exam.step4.fetal_heartbeat.options.yes.text = Sim -anc_physical_exam.step4.toaster30.text = Aconselhamento sobre risco de pré-eclâmpsia -anc_physical_exam.step3.pelvic_exam.label = Exame pélvico (visual) -anc_physical_exam.step4.fetal_presentation.options.other.text = Outro -anc_physical_exam.step2.symp_sev_preeclampsia.options.none.text = Nenhum -anc_physical_exam.step1.toaster6.toaster_info_title = Aconselhamento sobre suplementação dietética balanceada em energia e proteína -anc_physical_exam.step2.symp_sev_preeclampsia.options.epigastric_pain.text = Dor epigástrica -anc_physical_exam.step4.sfh_label.text = Altura uterina (AU) em centímetros (cm) -anc_physical_exam.step1.toaster5.toaster_info_title = Aconselhamento sobre aumento do consumo diário de calorias e proteínas -anc_physical_exam.step2.toaster10.toaster_info_text = A mulher tem hipertensão grave. Se PAS for 160 mmHg ou maior e/ou a PAD for 110 mmHg ou maior, então referir com urgência para o hospital para investigação adicional e conduta. -anc_physical_exam.step2.toaster10.text = Hipertensão grave! Referir com urgência ao hospital -anc_physical_exam.step1.toaster4.toaster_info_title = Folder sobre orientação nutricional e exercícios -anc_physical_exam.step3.pallor.options.no.text = Não -anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_unavailable.text = Manguito para PA (esfigmomanômetro) não disponível -anc_physical_exam.step4.fetal_heart_rate_label.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes -anc_physical_exam.step3.toaster18.text = Frequência cardíaca anormal. Encaminhe para investigação adicional. -anc_physical_exam.step3.toaster15.text = Temperatura de 38ºC ou maior. Meça a temperatura novamente. -anc_physical_exam.step4.fetal_heartbeat.options.no.text = Não -anc_physical_exam.step4.fetal_presentation.options.unknown.text = Desconhecido -anc_physical_exam.step4.fetal_heartbeat.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes -anc_physical_exam.step1.current_weight.v_required.err = Digite o peso atual -anc_physical_exam.step2.bp_systolic_label.text = Pressão arterial sistólica (PAS) (mmHg) -anc_physical_exam.step2.bp_diastolic_repeat.v_numeric.err = -anc_physical_exam.step2.cant_record_bp_reason.options.bp_cuff_broken.text = Manguito para PA (esfigmomanômetro) está quebrado -anc_physical_exam.step3.abdominal_exam.label = Exame abdominal -anc_physical_exam.step4.fetal_presentation.v_required.err = É necessário informar a apresentação fetal -anc_physical_exam.step2.bp_systolic_repeat_label.text = PAS após 10-15 minutos de repouso. -anc_physical_exam.step3.oedema.label = Edema presente? -anc_physical_exam.step3.toaster20.text = A mulher tem dificuldade respiratória. Referir com urgência ao hospital. -anc_physical_exam.step2.toaster9.text = Diagnóstico de hipertensão! Faça aconselhamento. -anc_physical_exam.step3.oedema_severity.options.plus_four.text = ++++ -anc_physical_exam.step3.toaster17.text = Frequência cardíaca anormal. Medir novamente após 10 minutos de repouso. -anc_physical_exam.step1.toaster5.text = Aconselhamento sobre aumento do consumo diário de calorias e proteínas -anc_physical_exam.step2.bp_systolic.v_numeric.err = -anc_physical_exam.step2.urine_protein.options.none.text = Nenhum -anc_physical_exam.step2.cant_record_bp_reason.label = Motivo -anc_physical_exam.step2.toaster13.text = Diagnóstico de pré-eclâmpsia grave! Faça o tratamento de urgência e refira ao hospital -anc_physical_exam.step3.pallor.label = Palidez presente? -anc_physical_exam.step4.fetal_movement.v_required.err = Esse campo é obrigatório -anc_physical_exam.step4.title = Avaliação fetal -anc_physical_exam.step4.fetal_movement.label = Sente movimento fetal? -anc_physical_exam.step2.toaster8.text = Faça teste urinário de fita para proteína -anc_physical_exam.step4.fetal_heart_rate.v_required.err = Especifique se os batimentos cardíacos fetais estão presentes -anc_physical_exam.step1.toaster6.text = Aconselhamento sobre suplementação dietética balanceada em energia e proteína -anc_physical_exam.step2.toaster14.toaster_info_title = Diagnóstico de pré-eclâmpsia! Referir ao hospital e revisar o plano de parto. -anc_physical_exam.step3.pulse_rate_repeat.v_numeric.err = -anc_physical_exam.step2.symp_sev_preeclampsia.label = Algum sintoma de pré-eclâmpsia grave? -anc_physical_exam.step3.toaster16.text = A mulher tem febre. Faça o tratamento e refira com urgência ao hospital. -anc_physical_exam.step3.toaster21.text = A mulher tem uma oximetria baixa. Referir com urgência ao hospital. -anc_physical_exam.step1.pregest_weight.v_required.err = É necessário o peso pré-gestacional. -anc_physical_exam.step2.urine_protein.options.plus_three.text = +++ -anc_physical_exam.step3.respiratory_exam.options.3.text = Anormal -anc_physical_exam.step3.oedema_severity.options.plus_two.text = ++ -anc_physical_exam.step1.pregest_weight_label.text = Peso pré-gestacional (kg) -anc_physical_exam.step3.breast_exam.label = Exame das mamas -anc_physical_exam.step3.toaster19.text = Diagnóstico de anemia! Recomenda-se o teste de hemoglobina (Hb) -anc_physical_exam.step2.symp_sev_preeclampsia.options.dizziness.text = Tontura -anc_physical_exam.step1.current_weight_label.text = Peso atual (Kg) -anc_physical_exam.step4.fetal_presentation.options.cephalic.text = Cefálico -anc_physical_exam.step3.body_temp_label.text = Temperatura (ºC) -anc_physical_exam.step3.abdominal_exam.options.1.text = Não realizado -anc_physical_exam.step2.bp_diastolic_repeat_label.text = PAD após 10-15 minutos de repouso. -anc_physical_exam.step3.oedema_severity.label = Intensidade do edema -anc_physical_exam.step1.toaster4.text = Aconselhamento sobre dieta saudável e manter-se fisicamente ativa -anc_physical_exam.step4.fetal_presentation.options.pelvic.text = Pélvico -anc_physical_exam.step3.toaster16.toaster_info_text = Procedimento:\n\n- Pegar um acesso endovenoso\n\n- Administrar fluídos lentamente\n\n- Encaminhar urgentemente à referência! -anc_physical_exam.step2.toaster11.text = Sintoma(s) de ´pré-eclâmpsia grave! Referir com urgência ao hospital -anc_physical_exam.step2.toaster14.text = Diagnóstico de pré-eclâmpsia! Referir ao hospital e revisar o plano de parto. -anc_physical_exam.step2.symp_sev_preeclampsia.v_required.err = Especificar quaisquer outros sintomas ou selecione nenhum -anc_physical_exam.step3.body_temp.v_numeric.err = -anc_physical_exam.step1.pregest_weight_unknown.options.pregest_weight_unknown.text = Peso pré-gestacional desconhecido -anc_physical_exam.step2.title = Pressão arterial -anc_physical_exam.step2.urine_protein.v_required.err = Digite o resultado da fita urinária -anc_physical_exam.step4.toaster30.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. -anc_physical_exam.step2.toaster14.toaster_info_text = A mulher tem pré-eclâmpsia - PAS de 140 mmHg ou mais e/ou PAD de 90 mmHg ou mais e proteinúria 2+ e sem sintomas de pré-eclâmpsia grave.\n\nProcedimento:\n- Encaminhar ao hospital\n- Revisar o plano de parto -anc_physical_exam.step3.cervical_exam.options.2.text = Não realizado -anc_physical_exam.step1.height.v_numeric.err = -anc_physical_exam.step3.oximetry_label.text = Oximetria (%) -anc_physical_exam.step2.bp_diastolic_label.text = Pressão arterial diastólica (PAD) (mmHg) -anc_physical_exam.step2.urine_protein.label = Resultado de fita urinária - proteína -anc_physical_exam.step3.respiratory_exam.options.1.text = Não realizado -anc_physical_exam.step4.fetal_heart_rate_label.text = Batimento cardíaco fetal (BCF) -anc_physical_exam.step1.toaster5.toaster_info_text = Aumente o consumo diário de calorias e proteínas para reduzir o risco de recém-nascido de baixo peso. -anc_physical_exam.step4.fetal_movement.options.no.text = Não -anc_physical_exam.step3.abdominal_exam.options.3.text = Anormal -anc_physical_exam.step1.toaster3.text = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) -anc_physical_exam.step2.symp_sev_preeclampsia.options.severe_headache.text = Cefaléia grave -anc_physical_exam.step3.oedema_severity.options.plus_one.text = + -anc_physical_exam.step4.toaster28.text = Batimentos cardíacos fetais fora da variação normal (110-160). Favor manter a mulher deitada sobre seu lado esquerdo por 15 minutos e verifique novamente. -anc_physical_exam.step3.pulse_rate.v_numeric.err = -anc_physical_exam.step3.pulse_rate.v_required.err = Digite a frequência cardíaca -anc_physical_exam.step2.bp_diastolic.v_numeric.err = -anc_physical_exam.step1.current_weight.v_numeric.err = -anc_physical_exam.step3.title = Exame materno -anc_physical_exam.step3.toaster19.toaster_info_text = Anemia - nível de Hb menor que 11 no primeiro ou terceiro trimestre ou menor que 10,5 no segundo trimestre.\n\nOU\n\nSem registro de resultado de teste de Hb, mas a mulher tem palidez. -anc_physical_exam.step4.fetal_movement.options.yes.text = Sim -anc_physical_exam.step1.toaster3.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez -anc_physical_exam.step4.fetal_presentation.label_info_text = Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. -anc_physical_exam.step3.pulse_rate_repeat.v_required.err = Digite a frequência cardíaca repetida -anc_physical_exam.step3.cardiac_exam.options.3.text = Anormal -anc_physical_exam.step3.toaster23.text = Exame de mamas anormal. Encaminhe para investigação adicional. -anc_physical_exam.step3.toaster26.text = Colo está dilatado mais que 2 cm. Checar outros sinais e sintomas de trabalho de parto (se IG for 37 semanas ou mais) ou trabalho de parto prematuro e outras complicações relacionadas (se IG for menor que 37 semanas). -anc_physical_exam.step3.breast_exam.options.2.text = Normal -anc_physical_exam.step2.bp_systolic.v_required.err = Pressão diastólica é necessária -anc_physical_exam.step3.oedema.options.no.text = Não -anc_physical_exam.step4.toaster27.toaster_info_text = Procedimento:\n- Informar à mulher que não foi possível identificar os batimentos cardíacos fetais e que será necessário encaminhá-la à referência para avaliar se há algum problema.\n- Encaminhar ao hospital. diff --git a/opensrp-anc/src/main/resources/anc_profile_ind.properties b/opensrp-anc/src/main/resources/anc_profile_ind.properties deleted file mode 100644 index 23730d062..000000000 --- a/opensrp-anc/src/main/resources/anc_profile_ind.properties +++ /dev/null @@ -1,317 +0,0 @@ -anc_profile.step1.occupation.options.other.text=Other (specify) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text=More than 12 bars (50 g) of chocolate -anc_profile.step2.ultrasound_done.label_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_done.options.no.text=No -anc_profile.step3.gestational_diabetes_toaster.toaster_info_text=Please provide appropriate counseling for GDM risk mitigation, including: \n- Reasserting dietary interventions \n- Reasserting physical activity during pregnancy -anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age -anc_profile.step7.tobacco_user.options.recently_quit.text=Recently quit -anc_profile.step4.surgeries.options.removal_of_the_tube.text=Removal of the tube (salpingectomy) -anc_profile.step2.lmp_known.v_required.err=Lmp unknown is required -anc_profile.step3.prev_preg_comps_other.hint=Specify -anc_profile.step6.medications.options.antibiotics.text=Other antibiotics -anc_profile.step6.medications.options.aspirin.text=Aspirin -anc_profile.step8.bring_partners_toaster.toaster_info_title=Advise woman to bring partner(s) in for HIV testing. -anc_profile.step3.last_live_birth_preterm.label=Was the last live birth preterm (less than 37 weeks)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text=Aluminium hydroxide -anc_profile.step7.alcohol_substance_use.options.cocaine.text=Kokain -anc_profile.step8.partner_hiv_status.label=Partner HIV status -anc_profile.step5.flu_immunisation_toaster.toaster_info_title=Flu immunisation recommended -anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age -anc_profile.step4.surgeries.options.removal_of_ovary.text=Removal of ovary (oophorectomy) -anc_profile.step1.occupation.options.formal_employment.text=Formal employment -anc_profile.step3.substances_used.options.marijuana.text=Marijuana -anc_profile.step2.lmp_known.options.no.text=No -anc_profile.step3.gestational_diabetes_toaster.text=Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step7.other_substance_use.hint=Specify -anc_profile.step3.prev_preg_comps_other.v_required.err=Please specify other past pregnancy problems -anc_profile.step3.prev_preg_comps.options.macrosomia.text=Macrosomia -anc_profile.step2.select_gest_age_edd_label.v_required.err=Select preferred gestational age -anc_profile.step1.educ_level.options.secondary.text=Secondary -anc_profile.step5.title=Immunisation Status -anc_profile.step3.gravida.v_required.err=No of pregnancies is required -anc_profile.step3.prev_preg_comps.label=Any past pregnancy problems? -anc_profile.step4.allergies.options.malaria_medication.text=Malaria medication (sulfadoxine-pyrimethamine) -anc_profile.step4.allergies.label=Any allergies? -anc_profile.step6.medications.options.folic_acid.text=Folic Acid -anc_profile.step6.medications.options.anti_convulsive.text=Anti-convulsive -anc_profile.step7.condom_counseling_toaster.text=Condom counseling -anc_profile.step3.substances_used_other.v_required.err=Please specify other substances abused -anc_profile.step6.medications_other.hint=Specify -anc_profile.step3.previous_pregnancies.v_required.err=Previous pregnancies is required -anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text=PrEP tenofovir disoproxil fumarate (TDF) -anc_profile.step3.prev_preg_comps.v_required.err=Please select at least one past pregnancy problems -anc_profile.step7.tobacco_cessation_toaster.toaster_info_text=Healthcare providers should routinely offer advice and psycho-social interventions for tobacco cessation to all pregnant women who are either current tobacco users or recent tobacco quitters. -anc_profile.step3.miscarriages_abortions_label.text=No. of pregnancies lost/ended (before 22 weeks / 5 months) -anc_profile.step8.partner_hiv_status.options.negative.text=Negative -anc_profile.step7.caffeine_intake.options.none.text=None of the above -anc_profile.step4.title=Medical History -anc_profile.step4.health_conditions_other.v_required.err=Please specify the chronic or past health conditions -anc_profile.step2.ultrasound_gest_age_days.hint=GA from ultrasound - days -anc_profile.step3.substances_used.label=Specify illicit substance use -anc_profile.step7.condom_counseling_toaster.toaster_info_title=Condom counseling -anc_profile.step3.pre_eclampsia_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step4.surgeries.options.dilation_and_curettage.text=Dilation and curettage -anc_profile.step7.substance_use_toaster.text=Alcohol / substance use counseling -anc_profile.step7.other_substance_use.v_required.err=Please specify other substances abused -anc_profile.step3.c_sections.v_required.err=C-sections is required -anc_profile.step4.surgeries_other_gyn_proced.v_required.err=Please specify the other gynecological procedures -anc_profile.step3.gravida_label.v_required.err=No of pregnancies is required -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text=Perineal tear (3rd or 4th degree) -anc_profile.step4.allergies.options.folic_acid.text=Folic acid -anc_profile.step6.medications.options.other.text=Other (specify) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text=Obat suntik -anc_profile.step6.medications.options.anti_malarials.text=Anti-malarials -anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text=More than 2 small cups (50 ml) of espresso -anc_profile.step2.facility_in_us_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step2.ultrasound_gest_age_days.v_required.err=Please give the GA from ultrasound - days -anc_profile.step2.ultrasound_done.options.yes.text=Yes -anc_profile.step7.tobacco_cessation_toaster.toaster_info_title=Tobacco cessation counseling -anc_profile.step1.occupation.hint=Occupation -anc_profile.step3.live_births_label.text=No. of live births (after 22 weeks) -anc_profile.step7.caffeine_intake.label=Daily caffeine intake -anc_profile.step6.medications.options.metoclopramide.text=Metoclopramide -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title=HIV risk counseling -anc_profile.step4.surgeries.options.cervical_cone.text=Partial removal of the cervix (cervical cone) -anc_profile.step5.flu_immun_status.label=Flu immunisation status -anc_profile.step7.alcohol_substance_use.label=Uses alcohol and/or other substances? -anc_profile.step1.occupation_other.v_required.err=Please specify your occupation -anc_profile.step7.alcohol_substance_use.options.other.text=Other (specify) -anc_profile.step1.educ_level.options.higher.text=Higher -anc_profile.step3.substances_used.v_required.err=Please select at least one alcohol or illicit substance use -anc_profile.step6.medications.label=Current medications -anc_profile.step6.medications.options.magnesium.text=Magnesium -anc_profile.step6.medications.options.anthelmintic.text=Anthelmintic -anc_profile.step3.stillbirths_label.text=No. of stillbirths (after 22 weeks) -anc_profile.step1.educ_level.v_required.err=Please specify your education level -anc_profile.step4.health_conditions.options.hiv.text=HIV -anc_profile.step1.hiv_risk_counseling_toaster.text=HIV risk counseling -anc_profile.step7.tobacco_user.v_required.err=Please select if woman uses any tobacco products -anc_profile.step3.substances_used.options.other.text=Other (specify) -anc_profile.step6.medications.options.calcium.text=Kalsium -anc_profile.step5.flu_immunisation_toaster.toaster_info_text=Pregnant women should be vaccinated with trivalent inactivated influenza vaccine at any stage of pregnancy. -anc_profile.step6.title=Medications -anc_profile.step6.medications.options.hemorrhoidal.text=Hemorrhoidal medication -anc_profile.step8.hiv_risk_counselling_toaster.text=HIV risk counseling -anc_profile.step2.sfh_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step4.surgeries.options.dont_know.text=Don't know -anc_profile.step6.medications.v_required.err=Please select at least one medication -anc_profile.step1.occupation.options.student.text=Student -anc_profile.step3.gestational_diabetes_toaster.toaster_info_title=Gestational diabetes mellitus (GDM) risk counseling -anc_profile.step3.substances_used.options.injectable_drugs.text=Injectable drugs -anc_profile.step5.flu_immun_status.options.unknown.text=Unknown -anc_profile.step7.alcohol_substance_enquiry.options.no.text=No -anc_profile.step4.surgeries.label=Any surgeries? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text=Fully immunized -anc_profile.step6.medications.options.anti_hypertensive.text=Anti-hypertensive -anc_profile.step3.last_live_birth_preterm.options.dont_know.text=Don't know -anc_profile.step5.tt_immun_status.options.unknown.text=Unknown -anc_profile.step5.flu_immun_status.v_required.err=Please select flu immunisation status -anc_profile.step3.last_live_birth_preterm.options.yes.text=Yes -anc_profile.step2.ultrasound_toaster.text=Ultrasound recommended -anc_profile.step7.substance_use_toaster.toaster_info_text=Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_profile.step1.marital_status.options.divorced.text=Divorced / separated -anc_profile.step5.tt_immun_status.options.3_doses.text=Fully immunized -anc_profile.step8.title=Partner's HIV Status -anc_profile.step4.allergies.options.iron.text=Iron -anc_profile.step6.medications.options.arvs.text=Antiretrovirals (ARVs) -anc_profile.step6.medications.options.multivitamin.text=Multivitamin -anc_profile.step7.shs_exposure.options.no.text=No -anc_profile.step1.educ_level.options.dont_know.text=Don't know -anc_profile.step7.caffeine_reduction_toaster.toaster_info_title=Caffeine reduction counseling -anc_profile.step7.caffeine_reduction_toaster.text=Caffeine reduction counseling -anc_profile.step7.second_hand_smoke_toaster.toaster_info_text=Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. -anc_profile.step4.health_conditions.options.epilepsy.text=Epilepsy -anc_profile.step3.miscarriages_abortions.v_required.err=Miscarriage abortions is required -anc_profile.step4.allergies.v_required.err=Please select at least one allergy -anc_profile.step4.surgeries.options.none.text=None -anc_profile.step2.sfh_gest_age_selection.v_required.err=Please select preferred gestational age -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text=No doses -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text=Forceps -anc_profile.step5.flu_immunisation_toaster.text=Flu immunisation recommended -anc_profile.step3.prev_preg_comps.options.alcohol_use.text=Alcohol use -anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound -anc_profile.step3.substances_used_other.hint=Specify -anc_profile.step7.condom_use.v_required.err=Please select if you use any tobacco products -anc_profile.step6.medications.options.antitussive.text=Antitussive -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title=Pre-eclampsia risk counseling -anc_profile.step4.health_conditions.options.blood_disorder.text=Blood disorder (e.g. sickle cell anemia, thalassemia) -anc_profile.step5.tt_immun_status.label=TTCV immunisation status -anc_profile.step5.tt_immunisation_toaster.toaster_info_title=TTCV immunisation recommended -anc_profile.step7.alcohol_substance_use.options.marijuana.text=Ganja -anc_profile.step4.allergies.options.calcium.text=Kalsium -anc_profile.step2.ultrasound_gest_age_wks.v_required.err=Please give the GA from ultrasound - weeks -anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text=More than 3 cups (300 ml) of instant coffee -anc_profile.step5.tt_immun_status.v_required.err=Please select TT Immunisation status -anc_profile.step4.surgeries.options.other.text=Other surgeries (specify) -anc_profile.step3.prev_preg_comps.options.illicit_substance.text=Substance use -anc_profile.step2.lmp_known.options.yes.text=Yes -anc_profile.step2.lmp_known.label_info_title=LMP known? -anc_profile.step4.surgeries.options.other_gynecological_procedures.text=Other gynecological procedures (specify) -anc_profile.step7.caffeine_reduction_toaster.toaster_info_text=Lowering daily caffeine intake during pregnancy is recommended to reduce the risk of pregnancy loss and low-birth-weight neonates.\n\nThis includes any product, beverage or food containing caffeine (e.g. brewed coffee, tea, cola-type soft drinks, caffeinated energy drinks, chocolate, caffeine tablets). Caffeine-containing teas (black tea and green tea) and soft drinks (colas and iced tea) usually contain less than 50 mg per 250 ml serving. -anc_profile.step4.allergies.options.chamomile.text=Chamomile -anc_profile.step2.lmp_known.label=LMP known? -anc_profile.step3.live_births.v_required.err=Live births is required -anc_profile.step7.condom_use.options.no.text=No -anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text=Baby died within 24 hours of birth -anc_profile.step4.surgeries_other_gyn_proced.hint=Other gynecological procedures -anc_profile.step1.occupation_other.v_regex.err=Please specify your occupation -anc_profile.step1.marital_status.label=Marital status -anc_profile.step7.title=Woman's Behaviour -anc_profile.step4.surgeries_other.hint=Other surgeries -anc_profile.step3.substances_used.options.cocaine.text=Kokain -anc_profile.step1.educ_level.options.primary.text=Primary -anc_profile.step4.health_conditions.options.other.text=Other (specify) -anc_profile.step6.medications_other.v_required.err=Please specify the Other medications -anc_profile.step7.second_hand_smoke_toaster.text=Second-hand smoke counseling -anc_profile.step1.educ_level.options.none.text=None -anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text=Pre-eclampsia -anc_profile.step7.condom_counseling_toaster.toaster_info_text=Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. -anc_profile.step4.health_conditions.v_required.err=Please select at least one chronic or past health conditions -anc_profile.step7.alcohol_substance_use.options.none.text=Tidak ada -anc_profile.step7.tobacco_user.options.yes.text=Yes -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text=More than 2 cups of coffee (brewed, filtered, instant or espresso) -anc_profile.step2.ultrasound_toaster.toaster_info_text=An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_profile.step3.prev_preg_comps.options.other.text=Other (specify) -anc_profile.step2.facility_in_us_toaster.toaster_info_title=Refer for ultrasound in facility with U/S equipment -anc_profile.step6.medications.options.none.text=None -anc_profile.step2.ultrasound_done.label=Ultrasound done? -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text=The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. -anc_profile.step6.medications.options.iron.text=Iron -anc_profile.step2.sfh_gest_age.hint=GA from SFH or palpation - weeks -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title=HIV risk counseling -anc_profile.step4.health_conditions.options.kidney_disease.text=Kidney disease -anc_profile.step7.tobacco_cessation_toaster.text=Tobacco cessation counseling -anc_profile.step4.health_conditions.options.diabetes.text=Diabetes, pre-existing type 1 -anc_profile.step1.occupation_other.hint=Specify -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text=Using SFH or abdominal palpation -anc_profile.step8.bring_partners_toaster.text=Advise woman to bring partner(s) in for HIV testing. -anc_profile.step1.marital_status.v_required.err=Please specify your marital status -anc_profile.step8.partner_hiv_status.v_required.err=Please select one -anc_profile.step7.alcohol_substance_use.v_required.err=Please specify if woman uses alcohol/abuses substances -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits -anc_profile.step3.prev_preg_comps.options.none.text=None -anc_profile.step4.allergies.options.dont_know.text=Don't know -anc_profile.step3.pre_eclampsia_toaster.text=Pre-eclampsia risk counseling -anc_profile.step4.allergies.hint=Any allergies? -anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text=Gestational Diabetes -anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err=Please select the unknown HIV Date -anc_profile.step2.facility_in_us_toaster.text=Refer for ultrasound in facility with U/S equipment -anc_profile.step4.surgeries.hint=Any surgeries? -anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text=Removal of ovarian cysts -anc_profile.step4.health_conditions.hint=Any chronic or past health conditions? -anc_profile.step7.tobacco_user.label=Uses tobacco products? -anc_profile.step1.occupation.label=Occupation -anc_profile.step7.alcohol_substance_enquiry.v_required.err=Please select if you use any tobacco products -anc_profile.step3.prev_preg_comps.options.dont_know.text=Don't know -anc_profile.step6.medications.options.hematinic.text=Hematinic -anc_profile.step3.c_sections_label.text=No. of C-sections -anc_profile.step3.prev_preg_comps.options.convulsions.text=Convulsions -anc_profile.step7.alcohol_substance_use.options.alcohol.text=Alkohol -anc_profile.step7.caffeine_intake.v_required.err=Daily caffeine intake is required -anc_profile.step4.allergies.options.albendazole.text=Dawa Albendazol Bahasa -anc_profile.step5.tt_immunisation_toaster.text=TTCV immunisation recommended -anc_profile.step1.educ_level.label=Highest level of school -anc_profile.step7.second_hand_smoke_toaster.toaster_info_title=Second-hand smoke counseling -anc_profile.step7.alcohol_substance_enquiry.options.yes.text=Ya -anc_profile.step4.allergies.options.penicillin.text=Penicillin -anc_profile.step1.occupation.options.unemployed.text=Unemployed -anc_profile.step2.ultrasound_done.v_required.err=Ultrasound done is required -anc_profile.step1.marital_status.options.single.text=Never married and never lived together (single) -anc_profile.step1.marital_status.options.widowed.text=Widowed -anc_profile.step7.shs_exposure.label=Anyone in the household smokes tobacco products? -anc_profile.step4.health_conditions_other.hint=Other health condition - specify -anc_profile.step6.medications.options.antivirals.text=Antivirals -anc_profile.step6.medications.options.antacids.text=Antacids -anc_profile.step2.ultrasound_gest_age_selection.v_required.err=Please select preferred gestational age -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text=Using LMP -anc_profile.step7.hiv_counselling_toaster.text=HIV risk counseling -anc_profile.step3.title=Obstetric History -anc_profile.step5.fully_immunised_toaster.text=Woman is fully immunised against tetanus! -anc_profile.step4.pre_eclampsia_two_toaster.text=Pre-eclampsia risk counseling -anc_profile.step3.substances_used_other.v_regex.err=Please specify other specify other substances abused -anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text=Heavy bleeding (during or after delivery) -anc_profile.step4.health_conditions.label=Any chronic or past health conditions? -anc_profile.step4.surgeries.v_required.err=Please select at least one surgeries -anc_profile.step8.partner_hiv_status.options.dont_know.text=Don't know -anc_profile.step3.last_live_birth_preterm.v_required.err=Last live birth preterm is required -anc_profile.step4.health_conditions.options.dont_know.text=Don't know -anc_profile.step7.alcohol_substance_enquiry.label=Clinical enquiry for alcohol and other substance use done? -anc_profile.step4.health_conditions.options.autoimmune_disease.text=Autoimmune disease -anc_profile.step6.medications.options.vitamina.text=Vitamin A -anc_profile.step6.medications.options.dont_know.text=Don't know -anc_profile.step7.condom_use.options.yes.text=Yes -anc_profile.step4.health_conditions.options.cancer.text=Cancer - gynaecological -anc_profile.step7.substance_use_toaster.toaster_info_title=Alcohol / substance use counseling -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text=No doses -anc_profile.step4.allergies_other.hint=Specify -anc_profile.step7.hiv_counselling_toaster.toaster_info_title=HIV risk counseling -anc_profile.step7.caffeine_intake.hint=Daily caffeine intake -anc_profile.step2.ultrasound_gest_age_wks.hint=GA from ultrasound - weeks -anc_profile.step4.allergies.options.other.text=Other (specify) -anc_profile.step3.pre_eclampsia_toaster.toaster_info_title=Pre-eclampsia risk counseling -anc_profile.step4.surgeries_other.v_required.err=Please specify the Other surgeries -anc_profile.step2.sfh_gest_age.v_required.err=Please give the GA from SFH or abdominal palpation - weeks -anc_profile.step2.lmp_gest_age_selection.options.lmp.text=Using LMP -anc_profile.step4.allergies.options.none.text=None -anc_profile.step3.stillbirths.v_required.err=Still births is required -anc_profile.step7.tobacco_user.options.no.text=No -anc_profile.step3.prev_preg_comps_other.v_regex.err=Please specify other past pregnancy problems -anc_profile.step1.marital_status.options.married.text=Married or living together -anc_profile.step4.hiv_diagnosis_date.v_required.err=Please enter the HIV diagnosis date -anc_profile.step7.shs_exposure.options.yes.text=Yes -anc_profile.step8.bring_partners_toaster.toaster_info_text=Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. -anc_profile.step4.surgeries.options.removal_of_fibroid.text=Removal of fibroids (myomectomy) -anc_profile.step4.hiv_diagnosis_date.hint=HIV diagnosis date -anc_profile.step7.shs_exposure.v_required.err=Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text=Employment that puts woman at increased risk for HIV (e.g. sex worker) -anc_profile.step4.allergies.options.mebendazole.text=Mebendazole -anc_profile.step7.condom_use.label=Uses (male or female) condoms during sex? -anc_profile.step1.occupation.v_required.err=Please select at least one occupation -anc_profile.step6.medications.options.analgesic.text=Analgesic -anc_profile.step7.hiv_counselling_toaster.toaster_info_text=Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits -anc_profile.step2.lmp_gest_age_selection.v_required.err=Please select preferred gestational age -anc_profile.step3.gravida_label.text=No. of pregnancies (including this pregnancy) -anc_profile.step8.partner_hiv_status.options.positive.text=Positive -anc_profile.step4.allergies.options.ginger.text=Ginger -anc_profile.step2.title=Current Pregnancy -anc_profile.step2.select_gest_age_edd_label.text=Select preferred gestational age -anc_profile.step5.tt_immun_status.options.1-4_doses.text=Under - immunized -anc_profile.step3.prev_preg_comps.options.eclampsia.text=Eclampsia -anc_profile.step5.immunised_against_flu_toaster.text=Woman is immunised against flu! -anc_profile.step1.occupation.options.informal_employment_other.text=Informal employment (other) -anc_profile.step4.allergies.options.magnesium_carbonate.text=Magnesium carbonate -anc_profile.step4.health_conditions.options.none.text=None -anc_profile.step6.medications.options.anti_diabetic.text=Anti-diabetic -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text=Using ultrasound -anc_profile.step6.medications.options.asthma.text=Asthma -anc_profile.step6.medications.options.doxylamine.text=Doxylamine -anc_profile.step3.prev_preg_comps.options.tobacco_use.text=Tobacco use -anc_profile.step7.alcohol_substance_enquiry.label_info_text=This refers to the application of a specific enquiry to assess alcohol or other substance use. -anc_profile.step3.last_live_birth_preterm.options.no.text=No -anc_profile.step3.stillbirths_label.v_required.err=Still births is required -anc_profile.step4.health_conditions.options.hypertension.text=Hypertension -anc_profile.step5.tt_immunisation_toaster.toaster_info_text=TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. -anc_profile.step6.medications.options.cotrimoxazole.text=Cotrimoxazole -anc_profile.step6.medications.options.thyroid.text=Thyroid medication -anc_profile.step1.title=Demographic Info -anc_profile.step2.ultrasound_done.label_info_title=Ultrasound done? -anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text=HIV diagnosis date unknown? -anc_profile.step2.lmp_known.label_info_text=LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). -anc_profile.step2.ultrasound_toaster.toaster_info_title=Ultrasound recommended -anc_profile.step1.headss_toaster.text=Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. -anc_profile.step1.headss_toaster.toaster_info_text=Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? -anc_profile.step1.headss_toaster.toaster_info_title=Conduct HEADSS assessment -anc_profile.step3.prev_preg_comps.options.vacuum.text=Vacuum delivery -anc_profile.step4.health_conditions.options.cancer_other.text=Cancer - other site (specify) -anc_profile.step4.health_conditions.options.gest_diabetes.text=Diabetes arising in pregnancy (gestational diabetes) -anc_profile.step4.health_conditions.options.diabetes_other.text=Diabetes, other or unspecified -anc_profile.step4.health_conditions.options.diabetes_type2.text=Diabetes, pre-existing type 2 -anc_profile.step4.health_conditions_cancer_other.hint=Other cancer - specify -anc_profile.step4.health_conditions_cancer_other.v_required.err=Please specify the other type of cancer -anc_profile.step6.tt_immun_status.label_info_text=Fully immunized - Pregnant woman is fully protected against tetanus (i.e. she has received 6 TTCV doses in childhood/adolescence, or 5 doses if first vaccinated after 1 year of age/during adolescence/adulthood, including during previous pregnancies), and no further vaccination is needed.\n\nUnder-immunized - If the pregnant woman has received 1-4 doses of TTCV in the past, administer one dose of TTCV before delivery.\n\nNo doses - TTCV has never been provided: no dose, or zero doses. The pregnant woman should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response.\n\nUnknown - The pregnant woman does not know whether or not they have received any doses of TTCV. She should receive at least 2 TTCV doses as early as possible, with an interval of 4 weeks between the doses. Administer the 2nd dose at least 2 weeks before birth to allow for adequate immune response. -anc_profile.step6.medications.options.prep_hiv.text=Oral pre-exposure prophylaxis (PrEP) for HIV -anc_profile.step7.caffeine_intake.options.tea.text=More than 4 cups of tea -anc_profile.step7.caffeine_intake.options.soda.text=More than one can of soda or energy drink -anc_profile.step7.caffeine_intake.label_info_text=Pregnant women should not consume more than 300 mg of caffeine per day. Each of the following represents 300 mg of caffeine.\n\n- More than 2 cups of coffee (brewed, filtered, instant or espresso)\n- More than 4 cups of tea\n- More than 12 bars (50 g) of chocolate\n- More than one can of soda or energy drink\n\nPlease indicate if the woman consumes more than these amounts per day. diff --git a/opensrp-anc/src/main/resources/anc_profile_pt.properties b/opensrp-anc/src/main/resources/anc_profile_pt.properties deleted file mode 100644 index e12909cbe..000000000 --- a/opensrp-anc/src/main/resources/anc_profile_pt.properties +++ /dev/null @@ -1,317 +0,0 @@ -anc_profile.step1.occupation.options.other.text = Outro (especifique) -anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = Mais que 48 pedaços (quadradinhos) de chocolate -anc_profile.step2.ultrasound_done.label_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) -anc_profile.step2.ultrasound_done.options.no.text = Não -anc_profile.step3.gestational_diabetes_toaster.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez -anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step7.tobacco_user.options.recently_quit.text = Deixou recentemente -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_title = Recomenda-se teste para Hep B -anc_profile.step4.surgeries.options.removal_of_the_tube.text = Remoção da trompa (salpingectomia) -anc_profile.step2.lmp_known.v_required.err = Informar se DUM desconhecida -anc_profile.step3.prev_preg_comps_other.hint = Especifique -anc_profile.step6.medications.options.antibiotics.text = Outros antibióticos -anc_profile.step6.medications.options.aspirin.text = Aspirina -anc_profile.step8.bring_partners_toaster.toaster_info_title = Aconselhe a mulher a trazer o parceiro(s) para teste de HIV. -anc_profile.step3.last_live_birth_preterm.label = O último nascido vivo era pré-termo (menor que 37 semanas)? -anc_profile.step4.allergies.options.aluminium_hydroxide.text = Hidróxido de alumínio -anc_profile.step2.sfh_gest_age_selection.label = -anc_profile.step7.alcohol_substance_use.options.cocaine.text = Cocaína/crack -anc_profile.step5.hepb_immun_status.v_required.err = Favor selecionar o estado de imunização para Hep B -anc_profile.step8.partner_hiv_status.label = Estado de HIV do parceiro -anc_profile.step5.flu_immunisation_toaster.toaster_info_title = Recomenda-se imunização contra gripe -anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step4.surgeries.options.removal_of_ovary.text = Remoção do ovário (ooforectomia) -anc_profile.step1.occupation.options.formal_employment.text = Emprego formal -anc_profile.step3.substances_used.options.marijuana.text = Maconha -anc_profile.step2.lmp_gest_age_selection.label = -anc_profile.step2.lmp_known.options.no.text = Não -anc_profile.step3.gestational_diabetes_toaster.text = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) -anc_profile.step7.other_substance_use.hint = Especifique -anc_profile.step3.prev_preg_comps_other.v_required.err = Especifique outros problemas em gestações anteriores -anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrossomia -anc_profile.step2.select_gest_age_edd_label.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step1.educ_level.options.secondary.text = Secundária -anc_profile.step5.title = Estado de imunização -anc_profile.step3.gravida.v_required.err = É necessário número de gestações -anc_profile.step3.prev_preg_comps.label = Quaisquer problemas em gestações anteriores? -anc_profile.step4.allergies.options.malaria_medication.text = Medicação para malária (sulfadoxina-pirimetamina) -anc_profile.step4.allergies.label = Quaisquer alergias? -anc_profile.step6.medications.options.folic_acid.text = Ãcido fólico -anc_profile.step6.medications.options.anti_convulsive.text = Anticonvulsivante -anc_profile.step2.ultrasound_gest_age_selection.label = -anc_profile.step7.condom_counseling_toaster.text = Aconselhar uso de preservativo -anc_profile.step3.substances_used_other.v_required.err = Especifique outras drogas usadas -anc_profile.step6.medications_other.hint = Especifique -anc_profile.step3.previous_pregnancies.v_required.err = É necessário incluir gestações anteriores -anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text = PrEP com fumarato disoproxil tenofovir (TDF) -anc_profile.step3.prev_preg_comps.v_required.err = Selecione pelo menos um problema em gestações anteriores -anc_profile.step7.tobacco_cessation_toaster.toaster_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito -anc_profile.step3.miscarriages_abortions_label.text = Número de gestações perdidas/terminadas (antes de 22 semanas / 5 meses) -anc_profile.step8.partner_hiv_status.options.negative.text = Negativo -anc_profile.step7.caffeine_intake.options.none.text = Nenhum dos acima -anc_profile.step4.title = História médica -anc_profile.step4.health_conditions_other.v_required.err = Especifique condições de saúde crônicas ou passadas -anc_profile.step2.ultrasound_gest_age_days.hint = IG pelo ultrassom - dias -anc_profile.step3.substances_used.label = Especifique o uso de substâncias ilícitas -anc_profile.step7.condom_counseling_toaster.toaster_info_title = Aconselhar uso de preservativo -anc_profile.step3.pre_eclampsia_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor realizar aconselhamento apropriado. -anc_profile.step4.surgeries.options.dilation_and_curettage.text = Dilatação e curetagem -anc_profile.step7.substance_use_toaster.text = Aconselhamento sobre o uso de álcool/substâncias -anc_profile.step7.other_substance_use.v_required.err = Especifique outras drogas usadas -anc_profile.step3.c_sections.v_required.err = É necessário fazer uma cesárea -anc_profile.step4.surgeries_other_gyn_proced.v_required.err = Especifique outros procedimentos ginecológicos -anc_profile.step3.gravida_label.v_required.err = É necessário número de gestações -anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text = Rotura de 3o. ou 4o. grau -anc_profile.step4.allergies.options.folic_acid.text = Ãcido fólico -anc_profile.step6.medications.options.other.text = Outro (especifique) -anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text = Drogas injetáveis -anc_profile.step6.medications.options.anti_malarials.text = Antimaláricos -anc_profile.step7.caffeine_intake.options.more_than_2_small_cups_50_ml_of_espresso.text = Mais que 2 xícaras pequenas (50 ml) de expresso -anc_profile.step2.facility_in_us_toaster.toaster_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) -anc_profile.step2.ultrasound_gest_age_days.v_required.err = Dê a IG pelo ultrassom - dias -anc_profile.step2.ultrasound_done.options.yes.text = Sim -anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Aconselhamento sobre parar de fumar. -anc_profile.step1.occupation.hint = Trabalho -anc_profile.step3.live_births_label.text = Número de nascidos vivos (depois de 22 semanas) -anc_profile.step7.caffeine_intake.label = Aporte diário de cafeina -anc_profile.step6.medications.options.metoclopramide.text = Metoclopramida -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV -anc_profile.step4.surgeries.options.cervical_cone.text = Remoção parcial do colo (cone cervical) -anc_profile.step5.flu_immun_status.label = Estado de imunização pela gripe -anc_profile.step2.sfh_ultrasound_gest_age_selection.label = -anc_profile.step7.alcohol_substance_use.label = Uso de álcool e/ou outras substâncias? -anc_profile.step1.occupation_other.v_required.err = Especifique seu trabalho -anc_profile.step7.alcohol_substance_use.options.other.text = Outro (especifique) -anc_profile.step1.educ_level.options.higher.text = Mais alto -anc_profile.step3.substances_used.v_required.err = Selecione pelo menos um uso de álcool ou substância ilícita -anc_profile.step6.medications.label = Medicações em uso -anc_profile.step6.medications.options.magnesium.text = Magnésio -anc_profile.step6.medications.options.anthelmintic.text = Antihelmíntico -anc_profile.step3.stillbirths_label.text = Número de natimortos (depois de 22 semanas) -anc_profile.step1.educ_level.v_required.err = Especifique seu grau de estudo -anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step5.hepb_immun_status.options.3_doses.text = 3 doses -anc_profile.step1.hiv_risk_counseling_toaster.text = Aconselhamento sobre risco do HIV -anc_profile.step7.tobacco_user.v_required.err = Especifique se a mulher usa algum produto de tabaco -anc_profile.step3.substances_used.options.other.text = Outro (especifique) -anc_profile.step6.medications.options.calcium.text = Cálcio -anc_profile.step5.flu_immunisation_toaster.toaster_info_text = As gestantes devem ser vacinadas com a vacina trivalente inativada para Gripe em qualquer momento da gestação. -anc_profile.step6.title = Medicações -anc_profile.step6.medications.options.hemorrhoidal.text = Medicação antihemorroidal -anc_profile.step8.hiv_risk_counselling_toaster.text = Aconselhamento sobre risco do HIV -anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Medir AU ou fazer palpação abdominal -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PrEP com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal -anc_profile.step4.surgeries.options.dont_know.text = Não sabe -anc_profile.step6.medications.v_required.err = Selecione pelo menos uma medicação -anc_profile.step1.occupation.options.student.text = Estudante -anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Aconselhamento sobre risco de diabetes mellitus gestacional (DMG) -anc_profile.step3.substances_used.options.injectable_drugs.text = Drogas injetáveis -anc_profile.step5.flu_immun_status.options.unknown.text = Desconhecido -anc_profile.step7.alcohol_substance_enquiry.options.no.text = Não -anc_profile.step4.surgeries.label = Quaisquer cirurgias? -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text = Dose sazonal da vacina da gripe dada -anc_profile.step6.medications.options.anti_hypertensive.text = Anti-hipertensivo -anc_profile.step3.last_live_birth_preterm.options.dont_know.text = Não sabe -anc_profile.step5.tt_immun_status.options.unknown.text = Desconhecido -anc_profile.step5.flu_immun_status.v_required.err = Favor selecionar o estado de imunização para Hep B -anc_profile.step3.last_live_birth_preterm.options.yes.text = Sim -anc_profile.step2.ultrasound_toaster.text = Recomenda-se exame de ultrassom -anc_profile.step7.substance_use_toaster.toaster_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. -anc_profile.step1.marital_status.options.divorced.text = Divorciada / separada -anc_profile.step5.tt_immun_status.options.3_doses.text = 3 doses de TTCV nos últimos 5 anos -anc_profile.step8.title = Estado de HIV do parceiro -anc_profile.step4.allergies.options.iron.text = Ferro -anc_profile.step6.medications.options.arvs.text = Antiretrovirais (ARV) -anc_profile.step6.medications.options.multivitamin.text = Multivitamínico -anc_profile.step7.shs_exposure.options.no.text = Não -anc_profile.step1.educ_level.options.dont_know.text = Não sabe -anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Aconselhar sobre redução do consumo de cafeína -anc_profile.step7.caffeine_reduction_toaster.text = Aconselhar sobre redução do consumo de cafeína -anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. -anc_profile.step4.health_conditions.options.epilepsy.text = Epilepsia -anc_profile.step3.miscarriages_abortions.v_required.err = É necessário o número de abortos espontâneos -anc_profile.step4.allergies.v_required.err = Selecione pelo menos uma alergia -anc_profile.step4.surgeries.options.none.text = Nenhum -anc_profile.step2.sfh_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom -anc_profile.step5.tt_immun_status.options.ttcv_not_received.text = TTCV não foi feita -anc_profile.step5.hepb_immun_status.options.unknown.text = Desconhecido -anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text = Parto por fórcipe ou vácuo extração -anc_profile.step5.flu_immunisation_toaster.text = Recomenda-se imunização contra gripe -anc_profile.step5.hepb_immun_status.options.not_received.text = Não realizado -anc_profile.step3.prev_preg_comps.options.alcohol_use.text = Uso de álcool -anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom -anc_profile.step3.substances_used_other.hint = Especifique -anc_profile.step7.condom_use.v_required.err = Especifique se você usa algum produto de tabaco -anc_profile.step6.medications.options.antitussive.text = Antitussígeno -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia -anc_profile.step4.health_conditions.options.blood_disorder.text = Problema sanguíneo (ex: anemia falciforme, talassemia) -anc_profile.step5.tt_immun_status.label = Estado de imunização com TT -anc_profile.step5.tt_immunisation_toaster.toaster_info_title = Recomenda-se imunização com TT -anc_profile.step7.alcohol_substance_use.options.marijuana.text = Maconha -anc_profile.step4.allergies.options.calcium.text = Cálcio -anc_profile.step2.ultrasound_gest_age_wks.v_required.err = Dê a IG pelo ultrassom - semanas -anc_profile.step7.caffeine_intake.options.more_than_3_cups_300ml_of_instant_coffee.text = Mais que 3 xícaras (300 ml) de café instantâneo -anc_profile.step5.tt_immun_status.v_required.err = Favor selecionar o estado de imunização por TT -anc_profile.step4.surgeries.options.other.text = Outras cirurgias (especifique) -anc_profile.step3.prev_preg_comps.options.illicit_substance.text = Uso de substâncias -anc_profile.step2.lmp_known.options.yes.text = Sim -anc_profile.step2.lmp_known.label_info_title = A DUM é conhecida? -anc_profile.step4.surgeries.options.other_gynecological_procedures.text = Outros procedimentos ginecológicos (especifique) -anc_profile.step7.caffeine_reduction_toaster.toaster_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. -anc_profile.step4.allergies.options.chamomile.text = Camomila -anc_profile.step2.lmp_known.label = A DUM é conhecida? -anc_profile.step3.live_births.v_required.err = É necessário o número de nascidos vivos -anc_profile.step7.condom_use.options.no.text = Não -anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = O bebê morreu em até 24 horas depois do parto -anc_profile.step4.surgeries_other_gyn_proced.hint = Outros procedimentos ginecológicos -anc_profile.step1.occupation_other.v_regex.err = Especifique seu trabalho -anc_profile.step1.marital_status.label = Estado marital -anc_profile.step7.title = Comportamento da mulher -anc_profile.step4.surgeries_other.hint = Outras cirurgias -anc_profile.step3.substances_used.options.cocaine.text = Cocaína/crack -anc_profile.step1.educ_level.options.primary.text = Primário -anc_profile.step4.health_conditions.options.other.text = Outro (especifique) -anc_profile.step6.medications_other.v_required.err = Especifique outros medicamentos -anc_profile.step7.second_hand_smoke_toaster.text = Aconselhamento sobre fumo passivo -anc_profile.step1.educ_level.options.none.text = Nenhum -anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pré-eclâmpsia -anc_profile.step5.hep_b_testing_recommended_toaster.toaster_info_text = Recomenda-se testar para Hep B as mulheres de risco que ainda não foram completamente imunizadas contra a Hep B. -anc_profile.step7.condom_counseling_toaster.toaster_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. -anc_profile.step4.health_conditions.v_required.err = Selecione pelo menos uma condição crônica ou prévia -anc_profile.step7.alcohol_substance_use.options.none.text = Nenhum -anc_profile.step7.tobacco_user.options.yes.text = Sim -anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text = Mais que 2 xícaras (200 ml) de café coado ou preparado comercialmente -anc_profile.step2.ultrasound_toaster.toaster_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) -anc_profile.step3.prev_preg_comps.options.other.text = Outro (especifique) -anc_profile.step2.facility_in_us_toaster.toaster_info_title = Encaminhar para fazer ultrassom em uma unidade de saúde com equipamento de US. -anc_profile.step6.medications.options.none.text = Nenhum -anc_profile.step2.ultrasound_done.label = O exame de ultrassom foi feito? -anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. -anc_profile.step6.medications.options.iron.text = Ferro -anc_profile.step2.sfh_gest_age.hint = IG obtida com AU ou palpação - semanas -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV -anc_profile.step4.health_conditions.options.kidney_disease.text = Doença renal -anc_profile.step7.tobacco_cessation_toaster.text = Aconselhamento sobre parar de fumar. -anc_profile.step4.health_conditions.options.diabetes.text = Diabetes -anc_profile.step1.occupation_other.hint = Especifique -anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Medir AU ou fazer palpação abdominal -anc_profile.step8.bring_partners_toaster.text = Aconselhe a mulher a trazer o parceiro(s) para teste de HIV. -anc_profile.step1.marital_status.v_required.err = Especifique seu estado marital -anc_profile.step8.partner_hiv_status.v_required.err = Selecionar uma opção -anc_profile.step7.alcohol_substance_use.v_required.err = Especifique se a mulher usa álcool ou outras substâncias -anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PPE com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal -anc_profile.step3.prev_preg_comps.options.none.text = Nenhum -anc_profile.step4.allergies.options.dont_know.text = Não sabe -anc_profile.step3.pre_eclampsia_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia -anc_profile.step4.allergies.hint = Quaisquer alergias? -anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text = Diabetes Gestacional -anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err = Selecione data do HIV desconhecida -anc_profile.step2.facility_in_us_toaster.text = Encaminhar para fazer ultrassom em uma unidade de saúde com equipamento de US. -anc_profile.step4.surgeries.hint = Quaisquer cirurgias? -anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Remoção de cistos do ovário -anc_profile.step4.health_conditions.hint = Alguma condição de saúde crônica ou passada? -anc_profile.step7.tobacco_user.label = Usa algum produto com tabaco? -anc_profile.step1.occupation.label = Trabalho -anc_profile.step7.alcohol_substance_enquiry.v_required.err = Especifique se você usa algum produto de tabaco -anc_profile.step3.prev_preg_comps.options.dont_know.text = Não sabe -anc_profile.step6.medications.options.hematinic.text = Hemático -anc_profile.step3.c_sections_label.text = Número de cesáreas -anc_profile.step3.prev_preg_comps.options.convulsions.text = Convulsões -anc_profile.step5.hepb_immun_status.options.incomplete.text = Incompleto -anc_profile.step7.alcohol_substance_use.options.alcohol.text = Ãlcool -anc_profile.step7.caffeine_intake.v_required.err = É necessário o aporte diário de cafeina -anc_profile.step4.allergies.options.albendazole.text = Albendazol -anc_profile.step5.tt_immunisation_toaster.text = Recomenda-se imunização com TT -anc_profile.step1.educ_level.label = Maior grau de escolaridade -anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Aconselhamento sobre fumo passivo -anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Sim -anc_profile.step4.allergies.options.penicillin.text = Penicilina -anc_profile.step1.occupation.options.unemployed.text = Desempregada -anc_profile.step2.ultrasound_done.v_required.err = É necessário o exame de ultrassom feito -anc_profile.step1.marital_status.options.single.text = Nunca foi casada e nunca morou junto (solteira) -anc_profile.step5.hepb_immun_status.label = Estado de imunização para Hep B -anc_profile.step1.marital_status.options.widowed.text = Viúva -anc_profile.step7.shs_exposure.label = Alguém na casa fuma algum produto de tabaco? -anc_profile.step4.health_conditions_other.hint = Especifique -anc_profile.step6.medications.options.antivirals.text = Antivirais -anc_profile.step6.medications.options.antacids.text = Antiácidos -anc_profile.step2.ultrasound_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text = Usando a DUM -anc_profile.step7.hiv_counselling_toaster.text = Aconselhamento sobre risco do HIV -anc_profile.step3.title = História obstétrica -anc_profile.step5.fully_immunised_toaster.text = A mulher está completamente imunizada contra o tétano! -anc_profile.step4.pre_eclampsia_two_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia -anc_profile.step3.substances_used_other.v_regex.err = Especifique outras drogas usadas -anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text = Sangramento intenso (durante ou após o parto) -anc_profile.step4.health_conditions.label = Alguma condição de saúde crônica ou prévia? -anc_profile.step4.surgeries.v_required.err = Selecione pelo menos uma cirurgia -anc_profile.step8.partner_hiv_status.options.dont_know.text = Não sabe -anc_profile.step3.last_live_birth_preterm.v_required.err = É necessário o último nascido vivo pré-termo -anc_profile.step4.health_conditions.options.dont_know.text = Não sabe -anc_profile.step7.alcohol_substance_enquiry.label = Foi feito um inquérito clínico sobre uso de álcool e/ou outras substâncias? -anc_profile.step4.health_conditions.options.autoimmune_disease.text = Doença autoimune -anc_profile.step6.medications.options.vitamina.text = Vitamina A -anc_profile.step6.medications.options.dont_know.text = Não sabe -anc_profile.step7.condom_use.options.yes.text = Sim -anc_profile.step4.health_conditions.options.cancer.text = Câncer -anc_profile.step7.substance_use_toaster.toaster_info_title = Aconselhamento sobre o uso de álcool/substâncias -anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text = Faltou dose sazonal da vacina da gripe -anc_profile.step4.allergies_other.hint = Especifique -anc_profile.step7.hiv_counselling_toaster.toaster_info_title = Aconselhamento sobre risco do HIV -anc_profile.step7.caffeine_intake.hint = Consumo diário de cafeina -anc_profile.step2.ultrasound_gest_age_wks.hint = IG pelo ultrassom - semanas -anc_profile.step4.allergies.options.other.text = Outro (especifique) -anc_profile.step3.pre_eclampsia_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia -anc_profile.step4.surgeries_other.v_required.err = Especifique outras cirurgias -anc_profile.step2.sfh_gest_age.v_required.err = Dê a IG obtida com AU ou palpação abdominal - semanas -anc_profile.step2.lmp_gest_age_selection.options.lmp.text = Usando a DUM -anc_profile.step4.allergies.options.none.text = Nenhum -anc_profile.step3.stillbirths.v_required.err = É necessário o número de nascidos mortos -anc_profile.step7.tobacco_user.options.no.text = Não -anc_profile.step3.prev_preg_comps_other.v_regex.err = Especifique outros problemas em gestações anteriores -anc_profile.step1.marital_status.options.married.text = Casada ou morando junto -anc_profile.step4.hiv_diagnosis_date.v_required.err = Digite a data do diagnóstico do HIV -anc_profile.step7.shs_exposure.options.yes.text = Sim -anc_profile.step5.hep_b_testing_recommended_toaster.text = Recomenda-se teste para Hep B -anc_profile.step8.bring_partners_toaster.toaster_info_text = Encoraje a mulher a descobrir o status de seu(s) parceiro(s) trazendo-o(s) na próxima visita para fazer o teste. -anc_profile.step4.surgeries.options.removal_of_fibroid.text = Remoção de fibroides (miomectomia) -anc_profile.step4.hiv_diagnosis_date.hint = Data do diagnóstico do HIV -anc_profile.step7.shs_exposure.v_required.err = Selecione se você usa algum produto de tabaco -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Emprego informal (trabalhadora do sexo) -anc_profile.step4.allergies.options.mebendazole.text = Mebendazol -anc_profile.step7.condom_use.label = Usa preservativo durante o sexo? -anc_profile.step1.occupation.v_required.err = Selecione pelo menos um trabalho -anc_profile.step6.medications.options.analgesic.text = Analgésico -anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PPE com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal -anc_profile.step5.fully_hep_b_immunised_toaster.text = A mulher está completamente imunizada contra a Hep B! -anc_profile.step2.lmp_gest_age_selection.v_required.err = Favor selecionar idade gestacional preferida -anc_profile.step3.gravida_label.text = Número de gestações (incluindo a atual) -anc_profile.step8.partner_hiv_status.options.positive.text = Positivo -anc_profile.step4.allergies.options.ginger.text = Gengibre -anc_profile.step2.title = Gestação atual -anc_profile.step2.select_gest_age_edd_label.text = Favor selecionar idade gestacional preferida -anc_profile.step5.tt_immun_status.options.1-4_doses.text = 1-4 doses de TTCV no passado -anc_profile.step3.prev_preg_comps.options.eclampsia.text = Eclâmpsia -anc_profile.step5.immunised_against_flu_toaster.text = A mulher está imunizada contra a gripe! -anc_profile.step1.occupation.options.informal_employment_other.text = Emprego informal (outro) -anc_profile.step4.allergies.options.magnesium_carbonate.text = Carbonato de Magnésio -anc_profile.step4.health_conditions.options.none.text = Nenhum -anc_profile.step6.medications.options.anti_diabetic.text = Anti-diabéticos -anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text = Usando o exame de ultrassom -anc_profile.step6.medications.options.asthma.text = Asma -anc_profile.step6.medications.options.doxylamine.text = Doxilamina -anc_profile.step3.prev_preg_comps.options.tobacco_use.text = Fumo -anc_profile.step7.alcohol_substance_enquiry.label_info_text = Isso refere-se à aplicação de um inquérito específico para avaliar o uso de álcool ou outras substâncias. -anc_profile.step3.last_live_birth_preterm.options.no.text = Não -anc_profile.step3.stillbirths_label.v_required.err = É necessário o número de nascidos mortos -anc_profile.step4.health_conditions.options.hypertension.text = Hipertensão -anc_profile.step5.tt_immunisation_toaster.toaster_info_text = Vacinação com toxoide tetânico é recomendada para todas as gestantes que não foram completamente imunizadas contra o tétano para prevenir mortalidade neonatal pelo tétano. -anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazol -anc_profile.step6.medications.options.thyroid.text = Medicação tireoidiana -anc_profile.step1.title = Informações demográficas -anc_profile.step2.lmp_ultrasound_gest_age_selection.label = -anc_profile.step2.ultrasound_done.label_info_title = O exame de ultrassom foi feito? -anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = Data do diagnóstico do HIV desconhecida? -anc_profile.step2.lmp_known.label_info_text = DUM = primeiro dia da Data da Última Menstruação. Se a data exata não é conhecida, mas sim o período do mês, use o dia 5 para o início do mês, dia 15 para o meio e dia 25 para o final do mês. Se completamente desconhecido, selecione "Não" e calcule a IG pelo ultrassom (ou pela AU ou palpação abdominal como um último recurso) -anc_profile.step2.ultrasound_toaster.toaster_info_title = Recomenda-se exame de ultrassom diff --git a/opensrp-anc/src/main/resources/anc_quick_check_fr.properties b/opensrp-anc/src/main/resources/anc_quick_check_fr.properties deleted file mode 100644 index ab36321b7..000000000 --- a/opensrp-anc/src/main/resources/anc_quick_check_fr.properties +++ /dev/null @@ -1,65 +0,0 @@ -anc_quick_check.step1.specific_complaint.options.dizziness.text = Vertiges -anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Violence domestique -anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Autres saignements -anc_quick_check.step1.specific_complaint.options.depression.text = Dépression -anc_quick_check.step1.specific_complaint.options.heartburn.text = Brûlures d'estomac -anc_quick_check.step1.specific_complaint.options.other_specify.text = Autre (spécifier) -anc_quick_check.step1.specific_complaint.options.oedema.text = Å’dème -anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions -anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Crampes dans les jambes -anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Autres symptômes psychologiques -anc_quick_check.step1.specific_complaint.options.fever.text = Fièvre -anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Contact prévu -anc_quick_check.step1.danger_signs.options.severe_headache.text = Mal de tête sévère -anc_quick_check.step1.danger_signs.options.danger_fever.text = Fièvre -anc_quick_check.step1.danger_signs.options.looks_very_ill.text = A l'air très malade -anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Perturbation visuelle -anc_quick_check.step1.specific_complaint.options.leg_redness.text = Rougeur des jambes -anc_quick_check.step1.specific_complaint_other.hint = Spécifier -anc_quick_check.step1.specific_complaint.options.tiredness.text = Fatigue -anc_quick_check.step1.danger_signs.options.severe_pain.text = Douleur sévère -anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation -anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Cyanose centrale -anc_quick_check.step1.specific_complaint_other.v_regex.err = Veuillez saisir un contenu valide -anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Autres troubles de la peau -anc_quick_check.step1.danger_signs.options.danger_none.text = Aucun -anc_quick_check.step1.specific_complaint.label = Plainte(s) spécifiques -anc_quick_check.step1.specific_complaint.options.leg_pain.text = Douleur aux jambes -anc_quick_check.step1.title = Vérification Rapide -anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Mouvement fÅ“tal réduit ou faible -anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Saignement vaginal -anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Douleur abdominale complète -anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Écoulement vaginal anormal -anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Autres types de violence -anc_quick_check.step1.specific_complaint.options.other_pain.text = Autre douleur -anc_quick_check.step1.specific_complaint.options.anxiety.text = Anxiété -anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Douleur pelvienne extrême - ne peut pas marcher (dysfonctionnement de la symphyse pubienne) -anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Douleur pelvienne -anc_quick_check.step1.specific_complaint.options.bleeding.text = Saignement vaginal -anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Changements dans la pression artérielle -anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Essoufflement -anc_quick_check.step1.specific_complaint.v_required.err = Une plainte spécifique est requise -anc_quick_check.step1.contact_reason.v_required.err = La raison de venir à l'établissement est requise -anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Perte de liquide -anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Douleur abdominale sévère -anc_quick_check.step1.contact_reason.label = Raison de visite à centre de santé -anc_quick_check.step1.danger_signs.label = Signes de danger -anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Douleur dans le bas du dos -anc_quick_check.step1.specific_complaint.options.trauma.text = Traumatisme -anc_quick_check.step1.danger_signs.options.unconscious.text = Inconsciente -anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaunisse -anc_quick_check.step1.danger_signs.options.labour.text = Accouchement -anc_quick_check.step1.specific_complaint.options.headache.text = Mal à la tête -anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Perturbation visuelle -anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Accouchement imminente -anc_quick_check.step1.specific_complaint.options.pruritus.text = Prurit -anc_quick_check.step1.specific_complaint.options.cough.text = Toux -anc_quick_check.step1.specific_complaint.options.dysuria.text = Douleur pendant la miction (dysurie) -anc_quick_check.step1.contact_reason.options.first_contact.text = Premier contact -anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Symptômes de la grippe -anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausées / vomissements / diarrhée -anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Aucun mouvement fÅ“tal -anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsant -anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Vomissements sévères -anc_quick_check.step1.contact_reason.options.specific_complaint.text = Plainte spécifique -anc_quick_check.step1.danger_signs.v_required.err = Signes de danger sont requises diff --git a/opensrp-anc/src/main/resources/anc_quick_check_pt.properties b/opensrp-anc/src/main/resources/anc_quick_check_pt.properties deleted file mode 100644 index e341aec86..000000000 --- a/opensrp-anc/src/main/resources/anc_quick_check_pt.properties +++ /dev/null @@ -1,65 +0,0 @@ -anc_quick_check.step1.specific_complaint.options.dizziness.text = Tontura -anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Violência doméstica -anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Outro sangramento -anc_quick_check.step1.specific_complaint.options.depression.text = Depressão -anc_quick_check.step1.specific_complaint.options.heartburn.text = Azia -anc_quick_check.step1.specific_complaint.options.other_specify.text = Outro (especifique) -anc_quick_check.step1.specific_complaint.options.oedema.text = Edema -anc_quick_check.step1.specific_complaint.options.contractions.text = Contrações -anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Cãimbras nas pernas -anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Outros sintomas psicológicos -anc_quick_check.step1.specific_complaint.options.fever.text = Febre -anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Visita agendada -anc_quick_check.step1.danger_signs.options.severe_headache.text = Cefaléia grave -anc_quick_check.step1.danger_signs.options.danger_fever.text = Febre -anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Parece muito doente -anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Alteração visual -anc_quick_check.step1.specific_complaint.options.leg_redness.text = Vermelhidão nas pernas -anc_quick_check.step1.specific_complaint_other.hint = Especifique -anc_quick_check.step1.specific_complaint.options.tiredness.text = Cansaço -anc_quick_check.step1.danger_signs.options.severe_pain.text = Dor intensa -anc_quick_check.step1.specific_complaint.options.constipation.text = Constipação -anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Cianose central -anc_quick_check.step1.specific_complaint_other.v_regex.err = Por favor, digite um valor válido -anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Outra alteração cutânea -anc_quick_check.step1.danger_signs.options.danger_none.text = Nenhum -anc_quick_check.step1.specific_complaint.label = Queixa(s) específica(s) -anc_quick_check.step1.specific_complaint.options.leg_pain.text = Dor nas pernas -anc_quick_check.step1.title = Checagem rápida -anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Movimento fetal reduzido ou discreto -anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Sangramento vaginal -anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Dor em todo abdomen -anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Corrimento vaginal anormal -anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Outros tipos de violência -anc_quick_check.step1.specific_complaint.options.other_pain.text = Outra dor -anc_quick_check.step1.specific_complaint.options.anxiety.text = Ansiedade -anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) -anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Dor pélvica -anc_quick_check.step1.specific_complaint.options.bleeding.text = Sangramento vaginal -anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Alterações na pressão arterial -anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Respiração encurtada -anc_quick_check.step1.specific_complaint.v_required.err = Inclua queixa específica -anc_quick_check.step1.contact_reason.v_required.err = Informe o motivo para vir à unidade de saúde -anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Perda de líquido -anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Dor abdominal intensa -anc_quick_check.step1.contact_reason.label = Motivo para vir à unidade de saúde -anc_quick_check.step1.danger_signs.label = Sinais de perigo -anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Dor lombar -anc_quick_check.step1.specific_complaint.options.trauma.text = Trauma -anc_quick_check.step1.danger_signs.options.unconscious.text = Inconsciente -anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Icterícia -anc_quick_check.step1.danger_signs.options.labour.text = Trabalho de parto -anc_quick_check.step1.specific_complaint.options.headache.text = Cefaléia -anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Alteração visual -anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Parto iminente -anc_quick_check.step1.specific_complaint.options.pruritus.text = Prurido -anc_quick_check.step1.specific_complaint.options.cough.text = Tosse -anc_quick_check.step1.specific_complaint.options.dysuria.text = Dor à micção (disúria) -anc_quick_check.step1.contact_reason.options.first_contact.text = Primeiro contato -anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Sintomas de gripe -anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Náusea / vômitos / diarreia -anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Sem movimentação fetal -anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsionando -anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Vômitos intensos -anc_quick_check.step1.contact_reason.options.specific_complaint.text = Queixa específica -anc_quick_check.step1.danger_signs.v_required.err = Incluir sinais de perigo diff --git a/opensrp-anc/src/main/resources/anc_register_fr.properties b/opensrp-anc/src/main/resources/anc_register_fr.properties deleted file mode 100644 index bea48a088..000000000 --- a/opensrp-anc/src/main/resources/anc_register_fr.properties +++ /dev/null @@ -1,31 +0,0 @@ -anc_register.step1.dob_unknown.options.dob_unknown.text = DDN inconnue? -anc_register.step1.reminders.options.no.text = Non -anc_register.step1.reminders.label = La femme souhaite recevoir des rappels pendant la grossesse -anc_register.step1.dob_entered.v_required.err = Veuillez entrer la date de naissance -anc_register.step1.home_address.hint = Adresse du domicile -anc_register.step1.alt_name.v_regex.err = Veuillez saisir un nom VHT valide -anc_register.step1.anc_id.hint = ID CPN -anc_register.step1.alt_phone_number.v_numeric.err = Le numéro de téléphone doit être numérique -anc_register.step1.age_entered.v_numeric.err = L'âge doit être un nombre -anc_register.step1.phone_number.hint = Numéro de téléphone portable -anc_register.step1.last_name.v_required.err = Veuillez saisir le nom de famille -anc_register.step1.last_name.v_regex.err = Veuillez saisir un nom valide -anc_register.step1.first_name.v_required.err = Veuillez saisir le prénom -anc_register.step1.dob_entered.hint = Date de naissance (DDN) -anc_register.step1.age_entered.hint = Âge -anc_register.step1.reminders.label_info_text = Veut-elle recevoir des rappels de soins et des messages concernant sa santé tout au long de sa grossesse? -anc_register.step1.title = Enregistrement CPN -anc_register.step1.anc_id.v_numeric.err = Veuillez saisir un ID CPN valide -anc_register.step1.alt_name.hint = Nom de contact alternatif -anc_register.step1.home_address.v_required.err = Veuillez saisir l'adresse du domicile de la femme -anc_register.step1.first_name.hint = Prénom -anc_register.step1.alt_phone_number.hint = Numéro de téléphone de contact alternatif -anc_register.step1.reminders.v_required.err = Veuillez indiquer si la femme a accepté de recevoir des notifications de rappel -anc_register.step1.first_name.v_regex.err = Veuillez entrer un nom valide -anc_register.step1.reminders.options.yes.text = Oui -anc_register.step1.phone_number.v_numeric.err = Le numéro de téléphone doit être numérique -anc_register.step1.anc_id.v_required.err = Veuillez entrer l'ID CPN de la femme -anc_register.step1.last_name.hint = Nom -anc_register.step1.age_entered.v_required.err = Veuillez entrer l'âge de la femme -anc_register.step1.phone_number.v_required.err = Veuillez préciser le numéro de téléphone de la femme -anc_register.step1.dob_entered.duration.label = Âge diff --git a/opensrp-anc/src/main/resources/anc_register_pt.properties b/opensrp-anc/src/main/resources/anc_register_pt.properties deleted file mode 100644 index eb45e6dc4..000000000 --- a/opensrp-anc/src/main/resources/anc_register_pt.properties +++ /dev/null @@ -1,31 +0,0 @@ -anc_register.step1.dob_unknown.options.dob_unknown.text = Data de Nascimento desconhecida? -anc_register.step1.reminders.options.no.text = Não -anc_register.step1.reminders.label = A mulher quer receber lembretes ao longo da gestação -anc_register.step1.dob_entered.v_required.err = Digite a data de nascimento -anc_register.step1.home_address.hint = Endereço residencial -anc_register.step1.alt_name.v_regex.err = Favor, digite um nome válido -anc_register.step1.anc_id.hint = N° Registro PN -anc_register.step1.alt_phone_number.v_numeric.err = Número de telefone deve ser numérico -anc_register.step1.age_entered.v_numeric.err = Idade deve ser numérica -anc_register.step1.phone_number.hint = Celular deve ser numérico -anc_register.step1.last_name.v_required.err = Favor, digite o sobrenome -anc_register.step1.last_name.v_regex.err = Favor, digite um nome válido -anc_register.step1.first_name.v_required.err = Favor, digite o primeiro nome -anc_register.step1.dob_entered.hint = Data de nascimento (DN) -anc_register.step1.age_entered.hint = Idade -anc_register.step1.reminders.label_info_text = A mulher quer receber lembretes sobre seus cuidados e saúde ao longo da gestação? -anc_register.step1.title = Registro Pré-Natal -anc_register.step1.anc_id.v_numeric.err = Digite um Nº Registro Pré-Natal válido -anc_register.step1.alt_name.hint = Nome de um contato alternativo -anc_register.step1.home_address.v_required.err = Digite o endereço residencial da mulher -anc_register.step1.first_name.hint = Primeiro nome -anc_register.step1.alt_phone_number.hint = Número de celular de um contato alternativo -anc_register.step1.reminders.v_required.err = Selecione se a mulher concordou em receber lembretes e notificações -anc_register.step1.first_name.v_regex.err = Digite um nome válido -anc_register.step1.reminders.options.yes.text = Sim -anc_register.step1.phone_number.v_numeric.err = Número de telefone deve ser numérico -anc_register.step1.anc_id.v_required.err = Digite o Nº Registro Pré-Natal da mulher -anc_register.step1.last_name.hint = Sobrenome -anc_register.step1.age_entered.v_required.err = Digite a idade da mulher -anc_register.step1.phone_number.v_required.err = Especifique o número de telefone da mulher -anc_register.step1.dob_entered.duration.label = Idade diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties b/opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties deleted file mode 100644 index ee75b86ee..000000000 --- a/opensrp-anc/src/main/resources/anc_site_characteristics_pt.properties +++ /dev/null @@ -1,19 +0,0 @@ -anc_site_characteristics.step1.title = Características da unidade -anc_site_characteristics.step1.site_ultrasound.options.0.text = Não -anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Todas as seguintes estão disponíveis na sua unidade de saúde: -anc_site_characteristics.step1.site_ultrasound.label = 3. Há um aparelho de ultrasom disponível e funcionando na sua unidade e um profissional treinado para usá-lo? -anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Selecione onde o estoque foi armazenado -anc_site_characteristics.step1.site_bp_tool.options.0.text = Não -anc_site_characteristics.step1.site_ultrasound.options.1.text = Sim -anc_site_characteristics.step1.site_bp_tool.v_required.err = Selecione onde o estoque foi armazenado -anc_site_characteristics.step1.site_anc_hiv.options.1.text = Sim -anc_site_characteristics.step1.site_bp_tool.options.1.text = Sim -anc_site_characteristics.step1.site_ipv_assess.v_required.err = Selecione onde o estoque foi armazenado -anc_site_characteristics.step1.site_ipv_assess.label = a. Um protocolo ou procedimento operacional padrão para Violência Intra Parceiros (VIP)

b. Um profissional de saúde treinado sobre como perguntar sobre VIP e como fornecer uma resposta mínima ou maior

c. Um local privado

d. Uma forma de garantir confidencialidade

e. Tempo que permita uma revelação apropriada

f. Um sistema para referência no local. -anc_site_characteristics.step1.site_anc_hiv.options.0.text = Não -anc_site_characteristics.step1.site_anc_hiv.label = 2. A prevalência de HIV é consistentemente maior que 1% nas gestantes que frequentam o pré-natal na sua unidade? -anc_site_characteristics.step1.site_ipv_assess.options.0.text = Não -anc_site_characteristics.step1.site_ipv_assess.options.1.text = Sim -anc_site_characteristics.step1.site_anc_hiv.v_required.err = Selecione onde o estoque foi armazenado -anc_site_characteristics.step1.site_ultrasound.v_required.err = Selecione onde o estoque foi armazenado -anc_site_characteristics.step1.site_bp_tool.label = Sua unidade de saúde usa um aparelho automático para medida da pressão arterial (PA)? diff --git a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties b/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties deleted file mode 100644 index 02b7c2cb6..000000000 --- a/opensrp-anc/src/main/resources/anc_symptoms_follow_up_pt.properties +++ /dev/null @@ -1,188 +0,0 @@ -anc_symptoms_follow_up.step4.other_sym_lbpp.options.contractions.text = Contrações -anc_symptoms_follow_up.step4.other_symptoms_other.hint = Especifique -anc_symptoms_follow_up.step4.phys_symptoms.options.oedema.text = Edema -anc_symptoms_follow_up.step4.other_sym_vvo.v_required.err = Especificar quaisquer outros sintomas relacionados a edema de varizes venosas ou selecione nenhum -anc_symptoms_follow_up.step3.toaster12.toaster_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. -anc_symptoms_follow_up.step3.toaster9.toaster_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. -anc_symptoms_follow_up.step2.toaster0.text = Aconselhar sobre redução do consumo de cafeína -anc_symptoms_follow_up.step3.other_sym_vvo.v_required.err = Especificar quaisquer outros sintomas relacionados a edema de varizes venosas ou selecione nenhum -anc_symptoms_follow_up.step2.title = Comportamento prévio -anc_symptoms_follow_up.step4.phys_symptoms.options.low_back_pain.text = Dor lombar -anc_symptoms_follow_up.step1.medications.options.anti_convulsive.text = Anticonvulsivante -anc_symptoms_follow_up.step4.other_sym_vvo.options.none.text = Nenhum -anc_symptoms_follow_up.step4.toaster18.text = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica -anc_symptoms_follow_up.step3.other_sym_vvo.label = Quaisquer outros sintomas relacionados a varizes venosas ou edema? -anc_symptoms_follow_up.step3.toaster5.text = Aconselhamento sobre tratamentos não farmacológicos para náusea e vômito -anc_symptoms_follow_up.step3.toaster11.toaster_info_text = A mulher tem disúria. Investigar infecção do trato urinário e trate se positivo. -anc_symptoms_follow_up.step1.medications.options.antitussive.text = Antitussígeno -anc_symptoms_follow_up.step1.medications.options.dont_know.text = Não sabe -anc_symptoms_follow_up.step3.toaster8.toaster_info_text = Podem ser usados farelo de trigo ou outros suplementos com fibras para aliviar a constipação, se as modificações dietéticas não forem suficientes, e se estiverem disponíveis e forem apropriados. -anc_symptoms_follow_up.step2.toaster3.toaster_info_text = Aconselhar ao uso de preservativos para prevenir Zika, HIV e outras DSTs. Se necessário, reforce que pode continuar a ter relações sexuais durante a gestação. -anc_symptoms_follow_up.step3.other_sym_vvo.options.none.text = Nenhum -anc_symptoms_follow_up.step1.calcium_effects.options.no.text = Não -anc_symptoms_follow_up.step3.toaster13.text = Investigar quaisquer possíveis complicações, incluindo trombose, relacionadas a veias varicosas e edema -anc_symptoms_follow_up.step1.medications.options.hemorrhoidal.text = Medicação antihemorroidal -anc_symptoms_follow_up.step1.ifa_effects.options.yes.text = Sim -anc_symptoms_follow_up.step2.toaster1.text = Aconselhamento sobre parar de fumar -anc_symptoms_follow_up.step3.other_symptoms_persist.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.leg_cramps.text = Cãimbras nas pernas -anc_symptoms_follow_up.step3.other_symptoms_persist.options.headache.text = Cefaléia -anc_symptoms_follow_up.step4.toaster21.toaster_info_text = Opções não farmacológicas, como as meias compressivas, elevação dos membros e imersão em água, podem ser usadas para o manejo de varizes e edema na gestação, dependendo das preferências da mulher e opções disponíveis. -anc_symptoms_follow_up.step4.other_sym_lbpp.options.none.text = Nenhum -anc_symptoms_follow_up.step1.medications.options.anti_diabetic.text = Anti-diabéticos -anc_symptoms_follow_up.step4.toaster19.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica -anc_symptoms_follow_up.step1.medications.options.antibiotics.text = Outros antibióticos -anc_symptoms_follow_up.step4.title = Sintomas fisiológicos -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.oedema.text = Edema -anc_symptoms_follow_up.step4.other_symptoms.options.other.text = Outro (especifique) -anc_symptoms_follow_up.step2.toaster4.toaster_info_text = Os profissionais deveriam na primeira oportunidade aconselhar a gestante dependente de álcool ou drogas a interromper seu uso e oferecer, ou encaminhá-las para, serviços de desintoxicação sob supervisão médica, quando necessário e aplicável. -anc_symptoms_follow_up.step1.medications.options.calcium.text = Cálcio -anc_symptoms_follow_up.step1.medications_other.hint = Especifique -anc_symptoms_follow_up.step3.toaster7.toaster_info_text = Se as câimbras nas pernas não são aliviadas com medidas não farmacológicas, prescreva 300-360 mg de magnésio por dia dividido em duas ou três doses; e cálcio 1 g duas vezes por dia por duas semanas. -anc_symptoms_follow_up.step3.other_symptoms_persist.options.fever.text = Febre -anc_symptoms_follow_up.step2.behaviour_persist.label = Quais dos seguintes comportamentos persistem? -anc_symptoms_follow_up.step4.toaster16.text = Aconselhamento sobre tratamento não farmacológicos para aliviar cãimbras nas pernas -anc_symptoms_follow_up.step4.toaster21.text = Aconselhamento sobre opções não farmacológicas para veias varicosas e edema -anc_symptoms_follow_up.step1.penicillin_comply.options.no.text = Não -anc_symptoms_follow_up.step2.behaviour_persist.options.substance_use.text = Uso de substâncias -anc_symptoms_follow_up.step4.other_symptoms.options.fever.text = Febre -anc_symptoms_follow_up.step4.phys_symptoms.label = Algum sintoma fisiológico? -anc_symptoms_follow_up.step2.behaviour_persist.options.tobacco_user.text = Atualmente fumante ou recentemente deixou de fumar -anc_symptoms_follow_up.step4.other_symptoms_other.v_regex.err = Por favor, digite um valor válido -anc_symptoms_follow_up.step1.medications.options.iron.text = Ferro -anc_symptoms_follow_up.step1.medications.options.vitamina.text = Vitamina A -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.no_fetal_move.text = Sem movimentação fetal -anc_symptoms_follow_up.step1.ifa_comply.options.yes.text = Sim -anc_symptoms_follow_up.step4.toaster15.text = Aconselhamento sobre mudanças de dieta e hábitos de vida para prevenção e controle de azia -anc_symptoms_follow_up.step1.medications.options.cotrimoxazole.text = Cotrimoxazol -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.pelvic_pain.text = Dor pélvica -anc_symptoms_follow_up.step1.medications.options.multivitamin.text = Multivitamínico -anc_symptoms_follow_up.step2.behaviour_persist.options.caffeine_intake.text = Alto consumo de cafeína -anc_symptoms_follow_up.step2.toaster3.text = Aconselhar uso de preservativo -anc_symptoms_follow_up.step3.toaster11.text = Exame de urina é obrigatório -anc_symptoms_follow_up.step1.vita_comply.label = Ela está tomando suplementos com Vitamina A? -anc_symptoms_follow_up.step4.other_sym_lbpp.v_required.err = Favor especificar quaisquer outros sintomas relacionados a dor lombar e pélvica, ou selecione nenhum -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_pain.text = Dor nas pernas -anc_symptoms_follow_up.step1.medications.v_required.err = Especifique a medicação(ões) que a mulher ainda está tomando -anc_symptoms_follow_up.step1.medications.options.antacids.text = Antiácidos -anc_symptoms_follow_up.step1.medications.options.magnesium.text = Magnésio -anc_symptoms_follow_up.step4.phys_symptoms.options.leg_cramps.text = Cãimbras nas pernas -anc_symptoms_follow_up.step1.calcium_comply.options.yes.text = Sim -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.normal_fetal_move.text = Sem movimentação fetal -anc_symptoms_follow_up.step1.medications.options.antivirals.text = Antivirais -anc_symptoms_follow_up.step4.toaster22.text = Favor investigar quaisquer possíveis complicações, incluindo trombose, ou relacionadas a veias varicosas e edema -anc_symptoms_follow_up.step1.ifa_comply.label = Ela está tomando comprimidos de ferro e ácido fólico? -anc_symptoms_follow_up.step1.penicillin_comply.label = Ela está fazendo o tratamento com penicilina para sífilis? -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.none.text = Nenhum -anc_symptoms_follow_up.step4.phys_symptoms.options.nausea_vomiting.text = Náusea e vômitos -anc_symptoms_follow_up.step4.toaster14.toaster_info_text = Recomenda-se o uso de gengibre, camomila, vitamina B6 e/ou acupuntura para o alívio da náusea no início da gestação, com base na preferências da mulher e opções disponíveis. As mulheres devem ser informadas que os sintomas de náusea e vômitos normalmente melhoram na segunda metade da gestação. -anc_symptoms_follow_up.step3.phys_symptoms_persist.label = Quais dos seguintes sintomas fisiológicos persistem? -anc_symptoms_follow_up.step2.behaviour_persist.v_required.err = É necessário informar persistência do comportamento prévio -anc_symptoms_follow_up.step4.phys_symptoms.options.heartburn.text = Azia -anc_symptoms_follow_up.step1.medications.label = Quais medicamentos (incluindo suplementos e vitaminas) ela está tomando ainda? -anc_symptoms_follow_up.step3.other_sym_lbpp.options.none.text = Nenhum -anc_symptoms_follow_up.step3.toaster6.text = Aconselhar o uso de preparações antiácidas para aliviar a azia -anc_symptoms_follow_up.step4.phys_symptoms.options.pelvic_pain.text = Dor pélvica -anc_symptoms_follow_up.step4.mat_percept_fetal_move.label = A mulher sente o bebê mexer? -anc_symptoms_follow_up.step1.aspirin_comply.options.no.text = Não -anc_symptoms_follow_up.step2.toaster1.toaster_info_text = Os profissionais da saúde deveriam oferecer rotineiramente orientações e intervenções psico-sociais para interromper o fumo a todas as gestantes que são fumantes habituais ou que recentemente abandonaram o hábito -anc_symptoms_follow_up.step4.other_sym_vvo.label = Quaisquer outros sintomas relacionados a varizes venosas ou edema? -anc_symptoms_follow_up.step4.other_symptoms.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.heartburn.text = Azia -anc_symptoms_follow_up.step4.other_sym_lbpp.options.pelvic_pains.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) -anc_symptoms_follow_up.step3.other_symptoms_persist.options.easily_tired.text = Se cansa facilmente -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathing_difficulty.text = Dificuldade para respirar -anc_symptoms_follow_up.step1.ifa_comply.options.no.text = Não -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_discharge.text = Corrimento vaginal -anc_symptoms_follow_up.step3.other_sym_lbpp.v_required.err = Favor especificar quaisquer outros sintomas relacionados a dor lombar, ou selecione nenhum -anc_symptoms_follow_up.step1.medications.options.anti_hypertensive.text = Anti-hipertensivo -anc_symptoms_follow_up.step1.medications.options.aspirin.text = Aspirina -anc_symptoms_follow_up.step1.calcium_comply.label = Ela está tomando suplementos de cálcio? -anc_symptoms_follow_up.step4.toaster16.toaster_info_text = Pode-se usar terapias não farmacológicas, incluindo alongamento muscular, relaxamento, calor local, dorsoflexão do pé e massagem para o alívio de câimbras nas pernas durante a gestação. -anc_symptoms_follow_up.step1.medications.options.anti_malarials.text = Antimaláricos -anc_symptoms_follow_up.step3.other_sym_lbpp.options.dysuria.text = Dor à micção (disúria) -anc_symptoms_follow_up.step1.medications.options.metoclopramide.text = Metoclopramida -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.nausea_vomiting.text = Náusea e vômitos -anc_symptoms_follow_up.step3.other_symptoms_persist.options.cough.text = Tosse há mais de 3 semanas -anc_symptoms_follow_up.step4.other_symptoms.options.headache.text = Cefaléia -anc_symptoms_follow_up.step3.title = Sintomas prévios -anc_symptoms_follow_up.step4.toaster15.toaster_info_text = Recomenda-se aconselhar sobre dieta e hábitos de vida para prevenir e aliviar a azia durante a gestação. Pode-se oferecer preparações antiácidas às mulheres com sintomas mais importantes que não melhoram com a modificação dos hábitos. -anc_symptoms_follow_up.step1.medications.options.folic_acid.text = Ãcido fólico -anc_symptoms_follow_up.step3.toaster9.text = Aconselhamento sobre exercício regular, fisioterapia, cintas de suporte e acupuntura para aliviar dor lombar baixa e pélvica -anc_symptoms_follow_up.step3.toaster10.text = Favor investigar quaisquer possíveis complicações ou início de trabalho de parto relacionadas com dor lombar ou pélvica -anc_symptoms_follow_up.step3.other_symptoms_persist.options.visual_disturbance.text = Alteração visual -anc_symptoms_follow_up.step4.other_symptoms.options.none.text = Nenhum -anc_symptoms_follow_up.step4.other_symptoms.options.breathless.text = Falta de ar durante atividades rotineiras -anc_symptoms_follow_up.step3.toaster5.toaster_info_text = Os tratamentos farmacológicos para náusea e vômitos como a doxilamina e metoclopramida deveriam ficar reservadas para as gestantes com sintomas intensos que não são aliviados por opções não-farmacológicas, sob supervisão médica. -anc_symptoms_follow_up.step3.other_symptoms_persist.label = Quais dos seguintes sintomas persistem? -anc_symptoms_follow_up.step4.other_symptoms.v_required.err = Favor especificar quaisquer outros sintomas ou selecione nenhum -anc_symptoms_follow_up.step4.phys_symptoms.options.constipation.text = Constipação -anc_symptoms_follow_up.step1.ifa_effects.options.no.text = Não -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.low_back_pain.text = Dor lombar -anc_symptoms_follow_up.step4.toaster17.toaster_info_text = Modificações dietéticas para aliviar a constipação incluem a promoção de consumo adequado de água e fibras (encontradas em vegetais, frutas secas, frutas e grãos integrais). -anc_symptoms_follow_up.step1.medications.options.none.text = Nenhum -anc_symptoms_follow_up.step2.toaster4.text = Aconselhamento sobre o uso de álcool/substâncias -anc_symptoms_follow_up.step2.behaviour_persist.options.shs_exposure.text = Exposição ao fumo passivo na casa -anc_symptoms_follow_up.step4.other_sym_lbpp.options.dysuria.text = Dor à micção (disúria) -anc_symptoms_follow_up.step4.other_symptoms.options.cough.text = Tosse há mais de 3 semanas -anc_symptoms_follow_up.step1.medications.options.arvs.text = Antiretrovirais (ARV) -anc_symptoms_follow_up.step1.medications.options.hematinic.text = Hemático -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_pain.text = Dor nas pernas -anc_symptoms_follow_up.step3.toaster6.toaster_info_text = Pode-se oferecer preparações antiácidas para as mulheres com sintomas importantes que não são aliviadas pela modificação de hábitos. Preparações com carbonato de magnésio e hidróxido de alumínio provavelmente não causam prejuízos nas doses recomendadas. -anc_symptoms_follow_up.step4.mat_percept_fetal_move.options.reduced_fetal_move.text = Movimento fetal reduzido ou pobre -anc_symptoms_follow_up.step1.medications.options.analgesic.text = Analgésico -anc_symptoms_follow_up.step2.behaviour_persist.options.condom_use.text = Sexo sem uso de preservativo -anc_symptoms_follow_up.step1.title = Seguimento da medicação -anc_symptoms_follow_up.step4.mat_percept_fetal_move.v_required.err = É necessário preencher o campo sobre se a mulher sente o bebê se mexer. -anc_symptoms_follow_up.step4.phys_symptoms.options.none.text = Nenhum -anc_symptoms_follow_up.step1.medications.options.other.text = Outro (especifique) -anc_symptoms_follow_up.step1.penicillin_comply.options.yes.text = Sim -anc_symptoms_follow_up.step1.medications.options.doxylamine.text = Doxilamina -anc_symptoms_follow_up.step3.toaster7.text = Aconselhamento sobre uso de magnésio e cálcio para aliviar câimbras nas pernas -anc_symptoms_follow_up.step1.calcium_effects.label = Algum efeito colateral do suplemento de cálcio? -anc_symptoms_follow_up.step4.other_symptoms.options.visual_disturbance.text = Alteração visual -anc_symptoms_follow_up.step3.other_symptoms_persist.options.none.text = Nenhum -anc_symptoms_follow_up.step4.toaster20.toaster_info_text = A mulher tem disuria. Favor investigar infecção do trato urinário e trate se positivo. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.constipation.text = Constipação -anc_symptoms_follow_up.step1.medications.options.anthelmintic.text = Antihelmíntico -anc_symptoms_follow_up.step1.penicillin_comply.label_info_title = Tratamento de sífilis adequado -anc_symptoms_follow_up.step2.behaviour_persist.options.alcohol_use.text = Uso de álcool -anc_symptoms_follow_up.step4.other_sym_lbpp.label = Algum outro sintoma relacionado a dor lombar e pélvica? -anc_symptoms_follow_up.step2.toaster2.toaster_info_text = Fornecer às mulheres, seus parceiros e outros membros da casa orientação e informação sobre o risco de exposição passiva à fumaça de todas as formas de tabaco fumado, como também sobre as estratégias para reduzir o fumo passivo na casa. -anc_symptoms_follow_up.step4.other_symptoms.options.breathing_difficulty.text = Dificuldade para respirar -anc_symptoms_follow_up.step4.other_symptoms.label = Algum outro sintoma? -anc_symptoms_follow_up.step1.medications.options.asthma.text = Asma -anc_symptoms_follow_up.step3.other_symptoms_persist.options.vaginal_bleeding.text = Sangramento vaginal -anc_symptoms_follow_up.step4.phys_symptoms.v_required.err = Favor especificar quaisquer outros sintomas fisiológicos ou selecione nenhum -anc_symptoms_follow_up.step3.other_sym_lbpp.options.contractions.text = Contrações -anc_symptoms_follow_up.step1.vita_comply.options.no.text = Não -anc_symptoms_follow_up.step1.calcium_comply.options.no.text = Não -anc_symptoms_follow_up.step4.toaster18.toaster_info_text = Recomenda-se exercício regular durante a gestação para prevenir dor lombar e pélvica. Existem diferentes opções de tratamento que podem ser usadas, como a fisioterapia, cintas de apoio e acupuntura, dependendo das preferências da mulher e das opções disponíveis. -anc_symptoms_follow_up.step3.phys_symptoms_persist.options.varicose_veins.text = Varizes -anc_symptoms_follow_up.step4.toaster14.text = Aconselhamento sobre medidas não farmacológicas para aliviar náusea e vômito -anc_symptoms_follow_up.step1.ifa_effects.label = Algum efeito colateral do ferro e ácido fólico? -anc_symptoms_follow_up.step4.toaster17.text = Aconselhamento sobre modificações da dieta para aliviar a constipação -anc_symptoms_follow_up.step2.toaster0.toaster_info_title = Folder sobre consumo de cafeína -anc_symptoms_follow_up.step1.medications_other.v_regex.err = Por favor, digite um valor válido -anc_symptoms_follow_up.step2.toaster0.toaster_info_text = Recomenda-se diminuir o consumo diário de cafeína durante a gestação para reduzir o risco de perda gestacional e de recém nascidos de baixo peso.\n\nIsso inclui qualquer produto, bebida ou comida contendo cafeína (ex: chá, refrigerantes tipo-cola, energéticos cafeinados, chocolate, cápsulas de café). Chás contendo cafeína (chá preto e chá verde) e refrigerantes (colas e iced tea) normalmente contém menos que 50 mg por 250 mL do produto. -anc_symptoms_follow_up.step3.toaster8.text = Aconselhamento sobre farelo de trigo ou outros suplementos de fibras para aliviar a constipação -anc_symptoms_follow_up.step3.other_symptoms_persist.options.breathless.text = Falta de ar durante atividades rotineiras -anc_symptoms_follow_up.step4.toaster20.text = Exame de urina é obrigatório -anc_symptoms_follow_up.step2.behaviour_persist.options.none.text = Nenhum -anc_symptoms_follow_up.step1.calcium_effects.options.yes.text = Sim -anc_symptoms_follow_up.step1.aspirin_comply.options.yes.text = Sim -anc_symptoms_follow_up.step3.other_sym_lbpp.label = Algum outro sintoma relacionado a dor lombar e pélvica? -anc_symptoms_follow_up.step1.aspirin_comply.label = Ela está tomando comprimidos de aspirina? -anc_symptoms_follow_up.step1.medications.options.thyroid.text = Medicação tireoidiana -anc_symptoms_follow_up.step3.phys_symptoms_persist.v_required.err = É necessário informar sintomas fisiológicos prévios persistentes. -anc_symptoms_follow_up.step4.other_sym_vvo.options.leg_redness.text = Vermelhidão nas pernas -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_bleeding.text = Sangramento vaginal -anc_symptoms_follow_up.step4.other_symptoms.options.vaginal_discharge.text = Corrimento vaginal -anc_symptoms_follow_up.step1.vita_comply.options.yes.text = Sim -anc_symptoms_follow_up.step2.toaster2.text = Aconselhamento sobre fumo passivo -anc_symptoms_follow_up.step3.other_sym_vvo.options.leg_redness.text = Vermelhidão nas pernas -anc_symptoms_follow_up.step4.phys_symptoms.options.varicose_veins.text = Varizes -anc_symptoms_follow_up.step3.other_sym_lbpp.options.pelvic_pains.text = Dor pélvica extrema - não pode caminhar (disfunção da sínfise púbica) -anc_symptoms_follow_up.step1.penicillin_comply.label_info_text = Um máximo de até 3 doses semanais pode ser necessário. -anc_symptoms_follow_up.step3.toaster12.text = Aconselhamento sobre opções não farmacológicas para varizes e edema -anc_symptoms_follow_up.step4.other_symptoms.options.easily_tired.text = Se cansa facilmente diff --git a/opensrp-anc/src/main/resources/anc_test_fr.properties b/opensrp-anc/src/main/resources/anc_test_fr.properties deleted file mode 100644 index dc660ac59..000000000 --- a/opensrp-anc/src/main/resources/anc_test_fr.properties +++ /dev/null @@ -1,57 +0,0 @@ -anc_test.step1.accordion_hepatitis_b.accordion_info_title = Test d'hépatite B -anc_test.step1.accordion_urine.accordion_info_title = Urine test -anc_test.step1.accordion_hiv.accordion_info_title = Test de dépistage du VIH -anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test -anc_test.step2.accordion_hepatitis_c.accordion_info_title = Hepatitis C test -anc_test.step1.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_test.step2.accordion_hepatitis_b.accordion_info_title = Test d'hépatite B -anc_test.step2.accordion_blood_glucose.text = Blood Glucose test -anc_test.step1.accordion_blood_type.text = Test de groupe sanguin -anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Blood haemoglobin test -anc_test.step1.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. -anc_test.step2.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. -anc_test.step2.accordion_tb_screening.accordion_info_text = In settings where the tuberculosis (TB) prevalence in the general population is 100/100,000 persons or higher or in settings with sub-populations that have very poor access to health care, or if the woman is HIV positive, TB screening is recommended. -anc_test.step2.title = Other -anc_test.step2.accordion_hiv.accordion_info_title = Test de dépistage du VIH -anc_test.step2.accordion_blood_type.text = Test de groupe sanguin -anc_test.step1.accordion_hepatitis_b.accordion_info_text = Dans les contextes où la proportion de séroprévalence de l'HBsAg dans la population générale est de 2% ou plus ou dans les contextes où un programme national de dépistage systématique de l'hépatite B est en place, ou si la femme est séropositive, s'injecte des drogues ou est une travailleuse du sexe , alors le test de l'hépatite B est recommandé si la femme n'est pas complètement vaccinée contre l'hépatite B. -anc_test.step2.accordion_hepatitis_b.accordion_info_text = Dans les contextes où la proportion de séroprévalence de l'HBsAg dans la population générale est de 2% ou plus ou dans les contextes où un programme national de dépistage systématique de l'hépatite B est en place, ou si la femme est séropositive, s'injecte des drogues ou est une travailleuse du sexe , alors le test de l'hépatite B est recommandé si la femme n'est pas complètement vaccinée contre l'hépatite B. -anc_test.step2.accordion_tb_screening.text = TB Screening -anc_test.step1.accordion_hepatitis_c.accordion_info_title = Hepatitis C test -anc_test.step2.accordion_other_tests.accordion_info_text = If any other test was done that is not included here, add it here. -anc_test.step2.accordion_partner_hiv.text = Partner HIV test -anc_test.step1.accordion_syphilis.text = Syphilis test -anc_test.step1.accordion_blood_haemoglobin.text = Blood Haemoglobin test -anc_test.step2.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. -anc_test.step1.accordion_ultrasound.text = Ultrasound test -anc_test.step1.accordion_hepatitis_c.accordion_info_text = In settings where the proportion of HCV antibody seroprevalence in the general population is 2% or higher, or the woman is HIV positive, injects drugs, or is a sex worker, then a Hep C test is required. -anc_test.step1.title = Due -anc_test.step2.accordion_hepatitis_c.text = Hepatitis C test -anc_test.step2.accordion_urine.text = Urine test -anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. -anc_test.step2.accordion_ultrasound.accordion_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). -anc_test.step2.accordion_other_tests.accordion_info_title = Other test -anc_test.step2.accordion_ultrasound.text = Ultrasound test -anc_test.step2.accordion_tb_screening.accordion_info_title = TB screening -anc_test.step2.accordion_urine.accordion_info_title = Urine test -anc_test.step1.accordion_tb_screening.text = TB Screening -anc_test.step1.accordion_hepatitis_c.text = Hepatitis C test -anc_test.step1.accordion_hepatitis_b.text = Test d'hépatite B -anc_test.step2.accordion_hiv.accordion_info_text = Un test de dépistage du VIH est requis pour toutes les femmes enceintes au premier contact pendant la grossesse et à nouveau au premier contact du 3e trimestre (28 semaines), si la prévalence du VIH dans la population de femmes enceintes est de 5% ou plus. Un test n'est pas requis si la femme est déjà confirmée séropositive. -anc_test.step2.accordion_syphilis.accordion_info_title = Syphilis test -anc_test.step1.accordion_urine.text = Urine test -anc_test.step1.accordion_hiv.accordion_info_text = Un test de dépistage du VIH est requis pour toutes les femmes enceintes au premier contact pendant la grossesse et à nouveau au premier contact du 3e trimestre (28 semaines), si la prévalence du VIH dans la population de femmes enceintes est de 5% ou plus. Un test n'est pas requis si la femme est déjà confirmée séropositive. -anc_test.step1.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. -anc_test.step2.accordion_syphilis.accordion_info_text = A syphilis test is recommended for all pregnant women at the first contact and again at the first contact of 3rd trimester (28 weeks). Women who are already confirmed positive for syphilis do not need to be tested. -anc_test.step1.accordion_hiv.text = Test de dépistage du VIH -anc_test.step1.accordion_tb_screening.accordion_info_title = TB screening -anc_test.step2.accordion_hiv.text = Test de dépistage du VIH -anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = Blood haemoglobin testing is necessary for diagnosing anaemia in pregnancy. -anc_test.step2.accordion_other_tests.text = Other Tests -anc_test.step2.accordion_ultrasound.accordion_info_title = Ultrasound test -anc_test.step1.accordion_ultrasound.accordion_info_title = Ultrasound test -anc_test.step2.accordion_hepatitis_b.text = Test d'hépatite B -anc_test.step1.accordion_syphilis.accordion_info_title = Syphilis test -anc_test.step2.accordion_blood_haemoglobin.text = Blood Haemoglobin test -anc_test.step1.accordion_urine.accordion_info_text = A urine test is required at the first contact, last contact in 2nd trimester, and 2nd contact in 3rd trimester OR anytime the woman reports pain during urination (dysuria). A dipstick test is required if the woman has a repeat high BP reading (140/90 or higher). Otherwise, a urine test is optional. The urine test checks for bacterial or other infections that can lead to adverse outcomes for the neonate. The urine dipstick test can check for proteins in the urine, which can be a sign of pre-eclampsia. -anc_test.step2.accordion_syphilis.text = Syphilis test diff --git a/opensrp-anc/src/main/resources/anc_test_pt.properties b/opensrp-anc/src/main/resources/anc_test_pt.properties deleted file mode 100644 index f1ff039b1..000000000 --- a/opensrp-anc/src/main/resources/anc_test_pt.properties +++ /dev/null @@ -1,57 +0,0 @@ -anc_test.step1.accordion_hepatitis_b.accordion_info_title = Exame de Hepatite B -anc_test.step1.accordion_urine.accordion_info_title = Exame de urina -anc_test.step1.accordion_hiv.accordion_info_title = Exame de HIV -anc_test.step2.accordion_blood_haemoglobin.accordion_info_title = Teste de hemoglobina sanguínea -anc_test.step2.accordion_hepatitis_c.accordion_info_title = Exame de Hepatite C -anc_test.step1.accordion_ultrasound.accordion_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) -anc_test.step2.accordion_hepatitis_b.accordion_info_title = Exame de Hepatite B -anc_test.step2.accordion_blood_glucose.text = Exame de glicemia -anc_test.step1.accordion_blood_type.text = Tipagem sanguínea -anc_test.step1.accordion_blood_haemoglobin.accordion_info_title = Teste de hemoglobina sanguínea -anc_test.step1.accordion_tb_screening.accordion_info_text = Em locais onde a prevalência de tuberculose (TB) na população geral é de 100/100.000 pessoas ou maior ou em locais com sub-populações que tem um acesso muito pobre aos cuidados em saúde, ou se a mulher é HIV positiva, recomenda-se o rastreamento da TB. -anc_test.step2.accordion_urine.accordion_info_text = É necessário um exame de urina no primeiro contato, no último contato no 2o. trimestre, e no 2o. contato do 3o. trimestre OU a qualquer momento em que a mulher refira dor à micção (disúria). É necessário um teste de fita urinária se a mulher tem uma leitura repetida de pressão arterial elevada (140/90 ou maior). Caso contrário, o exame de urina é opcional. O exame de urina controla bactérias ou outras infecções que podem levar a efeitos adversos no recém-nascido. O teste da fita urinária pode avaliar a presença de proteínas na urina, o que pode ser um sinal de pré-eclâmpsia. -anc_test.step2.accordion_tb_screening.accordion_info_text = Em locais onde a prevalência de tuberculose (TB) na população geral é de 100/100.000 pessoas ou maior ou em locais com sub-populações que tem um acesso muito pobre aos cuidados em saúde, ou se a mulher é HIV positiva, recomenda-se o rastreamento da TB. -anc_test.step2.title = Outro -anc_test.step2.accordion_hiv.accordion_info_title = Exame de HIV -anc_test.step2.accordion_blood_type.text = Tipagem sanguínea -anc_test.step1.accordion_hepatitis_b.accordion_info_text = Em locais onde a proporção de soroprevalência de HBsAg na população geral é 2% ou maior ou em locais onde existe um programa nacional de rastreamento antenatal de rotina para Hep B, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então recomenda-se o o exame da Hep B se a mulher não for completametne vacinada contra a Hep B. -anc_test.step2.accordion_hepatitis_b.accordion_info_text = Em locais onde a proporção de soroprevalência de HBsAg na população geral é 2% ou maior ou em locais onde existe um programa nacional de rastreamento antenatal de rotina para Hep B, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então recomenda-se o o exame da Hep B se a mulher não for completametne vacinada contra a Hep B. -anc_test.step2.accordion_tb_screening.text = Rastreamento de TB -anc_test.step1.accordion_hepatitis_c.accordion_info_title = Exame de Hepatite C -anc_test.step2.accordion_other_tests.accordion_info_text = Se houver qualquer outro exame realizado que não esteja incluído aqui, digite aqui. -anc_test.step2.accordion_partner_hiv.text = Exame de HIV do parceiro -anc_test.step1.accordion_syphilis.text = Exame de Sífilis -anc_test.step1.accordion_blood_haemoglobin.text = Teste de hemoglobina sanguínea -anc_test.step2.accordion_hepatitis_c.accordion_info_text = Em locais onde a proporção de soroprevalência para o anticorpo HCV na população geral é 2% ou maior, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então é necessário um exame de Hep C. -anc_test.step1.accordion_ultrasound.text = Exame de Ultrassom -anc_test.step1.accordion_hepatitis_c.accordion_info_text = Em locais onde a proporção de soroprevalência para o anticorpo HCV na população geral é 2% ou maior, ou se a mulher é HIV positiva, usa drogas injetáveis, ou é uma profissional do sexo, então é necessário um exame de Hep C. -anc_test.step1.title = Expirado -anc_test.step2.accordion_hepatitis_c.text = Exame de Hepatite C -anc_test.step2.accordion_urine.text = Exame de urina -anc_test.step2.accordion_blood_haemoglobin.accordion_info_text = É necessário um exame de hemoglobina para o diagnóstico de anemia na gestação. -anc_test.step2.accordion_ultrasound.accordion_info_text = Um exame de ultrassom é recomendado para todas as mulheres antes de 24 semanas de gestação ou mesmo depois se considerado necessário (como para identificar o número de fetos, apresentação fetal, ou localização da placenta) -anc_test.step2.accordion_other_tests.accordion_info_title = Outro exame -anc_test.step2.accordion_ultrasound.text = Exame de Ultrassom -anc_test.step2.accordion_tb_screening.accordion_info_title = Rastreamento de TB -anc_test.step2.accordion_urine.accordion_info_title = Exame de urina -anc_test.step1.accordion_tb_screening.text = Rastreamento de TB -anc_test.step1.accordion_hepatitis_c.text = Exame de Hepatite C -anc_test.step1.accordion_hepatitis_b.text = Exame de Hepatite B -anc_test.step2.accordion_hiv.accordion_info_text = É necessário um exame de HIV para toda gestante no primeiro contato na gestação e ainda no primeiro contato do 3o. trimestre (28 semanas), se a prevalência de HIV na população de gestantes for 5% ou mais alta. Não é necessário um exame se a mulher for já confirmada como HIV+. -anc_test.step2.accordion_syphilis.accordion_info_title = Exame de Sífilis -anc_test.step1.accordion_urine.text = Exame de urina -anc_test.step1.accordion_hiv.accordion_info_text = É necessário um exame de HIV para toda gestante no primeiro contato na gestação e ainda no primeiro contato do 3o. trimestre (28 semanas), se a prevalência de HIV na população de gestantes for 5% ou mais alta. Não é necessário um exame se a mulher for já confirmada como HIV+. -anc_test.step1.accordion_syphilis.accordion_info_text = É necessário um exame de sífilis para toda gestante no primeiro contato na gestação e de novo no primeiro contato do 3o. trimestre (28 semanas). Mulheres que já foram confirmadas como positivas para sífilis não precisam ser testadas. -anc_test.step2.accordion_syphilis.accordion_info_text = É necessário um exame de sífilis para toda gestante no primeiro contato na gestação e de novo no primeiro contato do 3o. trimestre (28 semanas). Mulheres que já foram confirmadas como positivas para sífilis não precisam ser testadas. -anc_test.step1.accordion_hiv.text = Exame de HIV -anc_test.step1.accordion_tb_screening.accordion_info_title = Rastreamento de TB -anc_test.step2.accordion_hiv.text = Exame de HIV -anc_test.step1.accordion_blood_haemoglobin.accordion_info_text = É necessário um exame de hemoglobina para o diagnóstico de anemia na gestação. -anc_test.step2.accordion_other_tests.text = Outros exames -anc_test.step2.accordion_ultrasound.accordion_info_title = Exame de Ultrassom -anc_test.step1.accordion_ultrasound.accordion_info_title = Exame de Ultrassom -anc_test.step2.accordion_hepatitis_b.text = Exame de Hepatite B -anc_test.step1.accordion_syphilis.accordion_info_title = Exame de Sífilis -anc_test.step2.accordion_blood_haemoglobin.text = Teste de hemoglobina sanguínea -anc_test.step1.accordion_urine.accordion_info_text = É necessário um exame de urina no primeiro contato, no último contato no 2o. trimestre, e no 2o. contato do 3o. trimestre OU a qualquer momento em que a mulher refira dor à micção (disúria). É necessário um teste de fita urinária se a mulher tem uma leitura repetida de pressão arterial elevada (140/90 ou maior). Caso contrário, o exame de urina é opcional. O exame de urina controla infecções bacterianas ou outras que podem levar a efeitos adversos no recém-nascido. O teste da fita urinária pode avaliar a presença de proteínas na urina, o que pode ser um sinal de pré-eclâmpsia. -anc_test.step2.accordion_syphilis.text = Exame de Sífilis diff --git a/opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties deleted file mode 100644 index 179a2f225..000000000 --- a/opensrp-anc/src/main/resources/breast_exam_sub_form_pt.properties +++ /dev/null @@ -1,10 +0,0 @@ -breast_exam_sub_form.step1.breast_exam_abnormal.options.increased_temperature.text = Temperatura aumentada -breast_exam_sub_form.step1.breast_exam_abnormal_other.v_regex.err = Digite um conteúdo válido -breast_exam_sub_form.step1.breast_exam_abnormal.options.bleeding.text = Sangramento -breast_exam_sub_form.step1.breast_exam_abnormal.options.other.text = Outro (Especifique) -breast_exam_sub_form.step1.breast_exam_abnormal.label = Exame das mamas: anormal -breast_exam_sub_form.step1.breast_exam_abnormal.options.discharge.text = Descarga papilar -breast_exam_sub_form.step1.breast_exam_abnormal.options.local_pain.text = Dor local -breast_exam_sub_form.step1.breast_exam_abnormal.options.flushing.text = Rubor -breast_exam_sub_form.step1.breast_exam_abnormal_other.hint = Especifique -breast_exam_sub_form.step1.breast_exam_abnormal.options.nodule.text = Nódulo diff --git a/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties deleted file mode 100644 index 0b6b544d8..000000000 --- a/opensrp-anc/src/main/resources/cardiac_exam_sub_form_pt.properties +++ /dev/null @@ -1,11 +0,0 @@ -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cyanosis.text = Cianose -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.label = Exame cardíaco: anormal -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.other.text = Outro (Especifique) -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.cold_sweats.text = Suor frio -cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.v_regex.err = Digite um conteúdo válido -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.heart_murmur.text = Sopro cardíaco -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.tachycardia.text = Taquicardia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.weak_pulse.text = Pulso fino -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.bradycardia.text = Bradicardia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal.options.arrhythmia.text = Arritmia -cardiac_exam_sub_form.step1.cardiac_exam_abnormal_other.hint = Especifique diff --git a/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties deleted file mode 100644 index 7c6024386..000000000 --- a/opensrp-anc/src/main/resources/cervical_exam_sub_form_pt.properties +++ /dev/null @@ -1,2 +0,0 @@ -cervical_exam_sub_form.step1.dilation_cm.v_required.err = Campo de dilatação cervical é obrigatório -cervical_exam_sub_form.step1.dilation_cm_label.text = Quantos centímetros (cm) de dilatação? diff --git a/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties b/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties deleted file mode 100644 index bbf16dac0..000000000 --- a/opensrp-anc/src/main/resources/fetal_heartbeat_sub_form_pt.properties +++ /dev/null @@ -1,2 +0,0 @@ -fetal_heartbeat_sub_form.step1.fetal_heart_rate.v_required.err = Registre os batimentos cardíacos fetais -fetal_heartbeat_sub_form.step1.fetal_heart_rate_label.text = Batimento cardíaco fetal (BCF) diff --git a/opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties b/opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties deleted file mode 100644 index 7c48f9027..000000000 --- a/opensrp-anc/src/main/resources/oedema_present_sub_form_pt.properties +++ /dev/null @@ -1,5 +0,0 @@ -oedema_present_sub_form.step1.oedema_type.options.leg_swelling.text = Inchaço nas pernas -oedema_present_sub_form.step1.oedema_type.options.hands_feet_oedema.text = Edema de mãos e pés -oedema_present_sub_form.step1.oedema_type.label = Tipo do edema -oedema_present_sub_form.step1.oedema_type.options.ankle_oedema.text = Edema de tornozelo -oedema_present_sub_form.step1.oedema_type.options.lower_back_oedema.text = Edema de dorso inferior diff --git a/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties deleted file mode 100644 index 35e51af4c..000000000 --- a/opensrp-anc/src/main/resources/pelvic_exam_sub_form_pt.properties +++ /dev/null @@ -1,17 +0,0 @@ -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.mucopurulent_ervicitis.text = Cervicite mucopurulenta -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.erythematous_papules.text = Pápulas eritematosas agrupadas -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_ulcer.text = Úlcera genital -pelvic_exam_sub_form.step1.evaluate_labour_toaster.text = Avaliar se trabalho de parto. Encaminhar urgente se IG for menor que 37 semanas -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.label = Exame pélvico: anormal -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.other.text = Outro (Especifique) -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vaginal_discharge_curd_like.text = Conteúdo vaginal grumoso (coalhado) -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.vesicles.text = Vesículas -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.smelling_vaginal_discharge.text = Conteúdo vaginal com odor fétido -pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.hint = Especifique -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.femoral_lymphadenopathy.text = Linfadenopatia inguinal e femoral bilateral dolorosa -pelvic_exam_sub_form.step1.pelvic_exam_abnormal_other.v_regex.err = Digite um conteúdo válido -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.amniotic_fluid_evidence.text = Evidência de líquido amniótico -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.genital_pain.text = Dor genital -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.abnormal_vaginal_discharge.text = Corrimento vaginal anormal -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.cervical_friability.text = Colo do útero friável -pelvic_exam_sub_form.step1.pelvic_exam_abnormal.options.unilateral_lymphadenopathy.text = Linfadenopatia unilateral dolorosa diff --git a/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties b/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties deleted file mode 100644 index 39f83d11a..000000000 --- a/opensrp-anc/src/main/resources/respiratory_exam_sub_form_pt.properties +++ /dev/null @@ -1,10 +0,0 @@ -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.dyspnoea.text = Dispnéia -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.label = Exame respiratório: anormal -respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.v_regex.err = Digite um conteúdo válido -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rales.text = Estertores -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.cough.text = Tosse -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.rapid_breathing.text = Respiração acelerada -respiratory_exam_sub_form.step1.respiratory_exam_abnormal_other.hint = Especifique -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.wheezing.text = Chiado -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.slow_breathing.text = Respiração lenta -respiratory_exam_sub_form.step1.respiratory_exam_abnormal.options.other.text = Outro (Especifique) diff --git a/opensrp-anc/src/main/resources/test_covid_sub_form_fr.properties b/opensrp-anc/src/main/resources/test_covid_sub_form_fr.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/test_covid_sub_form_ind.properties b/opensrp-anc/src/main/resources/test_covid_sub_form_ind.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/test_covid_sub_form_pt.properties b/opensrp-anc/src/main/resources/test_covid_sub_form_pt.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties deleted file mode 100644 index 75590cb50..000000000 --- a/opensrp-anc/src/main/resources/tests_blood_glucose_sub_form_pt.properties +++ /dev/null @@ -1,30 +0,0 @@ -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_numeric.err = Digite um valor numérico -tests_blood_glucose_sub_form.step1.ogtt_1.v_numeric.err = Digite um valor numérico -tests_blood_glucose_sub_form.step1.random_plasma.v_required.err = Digite o resultado do exame de glicemia aleatória. -tests_blood_glucose_sub_form.step1.glucose_test_type.options.ogtt_75.text = TOTG 75g -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_text = Uma mulher tem Diabetes Mellitus (DM) na gestação se sua glicemia de jejum for igual ou maior a 126 mg/dL.\n\nOU\n\n- TOTG 75g - igual ou maior que 126 mg/dL na glicemia de jejum\n- TOTG 75g - igual ou maior que 200mg/dL na primeira hora\n- TOTG 75g - igual ou maior que 200mg/dL na segunda hora\n- Glicemia plasmática aleatória igual ou maior que 200 mg/dL -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.toaster_info_title = Diagnóstico de Diabetes Mellitus (DM) na gestação! -tests_blood_glucose_sub_form.step1.glucose_test_date.hint = Data do exame de glicemia -tests_blood_glucose_sub_form.step1.ogtt_1.hint = Resultado do TOTG 75g - 1h (mg/dL) -tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.text = Recomenda-se intervenção dietética e encaminhamento para serviço de referência. -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.text = Diagnóstico de Diabetes Mellitus Gestacional (DMG)! -tests_blood_glucose_sub_form.step1.glucose_test_type.label = Tipo de exame de glicemia -tests_blood_glucose_sub_form.step1.ogtt_2.hint = Resultado do TOTG 75g - 2hrs (mg/dL) -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.v_required.err = Digite o resultado para a glicemia em jejum -tests_blood_glucose_sub_form.step1.ogtt_fasting.v_numeric.err = Digite um valor numérico -tests_blood_glucose_sub_form.step1.glucose_test_date.v_required.err = Selecione a data do exame de glicemia. -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_text = Uma mulher tem Diabetes Mellitus Gestacional (DMG) se sua glicemia de jejum for entre 92 e 125 mg/dL.\n\nOU\n\n- TOTG 75g - entre 92 e 125 mg/dL a glicemia de jejum\n- TOTG 75g - entre 180 e 199 mg/dL na primeira hora\n- TOTG 75g - entre 153 e 199 mg/dL na segunda hora -tests_blood_glucose_sub_form.step1.ogtt_2.v_required.err = Digite o resultado da 2h do TOTG 75g. -tests_blood_glucose_sub_form.step1.random_plasma.v_numeric.err = Digite um valor numérico -tests_blood_glucose_sub_form.step1.ogtt_fasting.v_required.err = Digite o resultado da glicemia de jejum do TOTG 75g. -tests_blood_glucose_sub_form.step1.diabetes_mellitus_danger_toaster.text = Diagnóstico de Diabetes Mellitus (DM) na gestação! -tests_blood_glucose_sub_form.step1.glucose_test_status.label = Exame de glicemia -tests_blood_glucose_sub_form.step1.random_plasma.hint = Resultado da glicemia aleatória (mg/dL) -tests_blood_glucose_sub_form.step1.fasting_plasma_gluc.hint = Resultado da glicemia de jejum (mg/dL) -tests_blood_glucose_sub_form.step1.ogtt_2.v_numeric.err = Digite o valor numérico -tests_blood_glucose_sub_form.step1.ogtt_1.v_required.err = Digite o resultado da 1h do TOTG 75g. -tests_blood_glucose_sub_form.step1.glucose_test_type.options.fasting_plasma.text = Glicemia plasmática em jejum -tests_blood_glucose_sub_form.step1.gestational_diabetes_danger_toaster.toaster_info_title = Diagnóstico de Diabetes Mellitus Gestacional (DMG)! -tests_blood_glucose_sub_form.step1.dietary_intervention_danger_toaster.toaster_info_text = Mulher com hiperglicemia - Intervenção dietética é recomendada, assim como encaminhamento ao serviço de referência. -tests_blood_glucose_sub_form.step1.ogtt_fasting.hint = Resultado da glicemia de jejum do TOTG 75g (mg/dL) -tests_blood_glucose_sub_form.step1.glucose_test_type.options.random_plasma.text = Resultado da glicemia aleatória From c781802a4a6d670e50273cb73639980abfb3b098 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 05:27:44 +0700 Subject: [PATCH 195/302] Remove unsused form translation languages --- ...s_blood_haemoglobin_sub_form_pt.properties | 47 -------------- .../tests_blood_type_sub_form_fr.properties | 17 ----- .../tests_blood_type_sub_form_pt.properties | 17 ----- .../tests_hepatitis_b_sub_form_fr.properties | 33 ---------- .../tests_hepatitis_b_sub_form_pt.properties | 33 ---------- .../tests_hepatitis_c_sub_form_pt.properties | 26 -------- .../tests_hiv_sub_form_fr.properties | 19 ------ .../tests_hiv_sub_form_pt.properties | 19 ------ .../tests_other_tests_sub_form_pt.properties | 4 -- .../tests_partner_hiv_sub_form_pt.properties | 12 ---- .../tests_syphilis_sub_form_pt.properties | 30 --------- .../tests_tb_screening_sub_form_pt.properties | 24 ------- .../tests_toxo_sub_form_fr.properties | 0 .../tests_toxo_sub_form_ind.properties | 0 .../tests_toxo_sub_form_pt.properties | 0 .../tests_ultrasound_sub_form_pt.properties | 37 ----------- .../tests_urine_sub_form_pt.properties | 62 ------------------- 17 files changed, 380 deletions(-) delete mode 100644 opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties delete mode 100644 opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties delete mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties delete mode 100644 opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_toxo_sub_form_fr.properties delete mode 100644 opensrp-anc/src/main/resources/tests_toxo_sub_form_ind.properties delete mode 100644 opensrp-anc/src/main/resources/tests_toxo_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties delete mode 100644 opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties diff --git a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties deleted file mode 100644 index 9a6a782ff..000000000 --- a/opensrp-anc/src/main/resources/tests_blood_haemoglobin_sub_form_pt.properties +++ /dev/null @@ -1,47 +0,0 @@ -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.complete_blood_count.text = Hemograma completo (recomendado) -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_text = Anemia - nível de Hb < 11 no primeiro ou terceiro trimestre ou < 10,5 no segundo trimestre.\n\nOU\n\nSem registro de resultado de teste de Hb, mas a mulher tem palidez. -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.text = Diagnóstico de anemia! -tests_blood_haemoglobin_sub_form.step1.ht.hint = Hematócrito (Ht) -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.v_required.err = Especifique qualquer outro motivo para o teste de hemoglobina -tests_blood_haemoglobin_sub_form.step1.cbc.v_required.err = Resultado do hemograma completo (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_colour_scale.text = Teste de hemoglobina (escala de cor de hemoglobina) -tests_blood_haemoglobin_sub_form.step1.anaemia_diagnosis_danger_toaster.toaster_info_title = Diagnóstico de anemia! -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_text = Contagem de plaquetas abaixo de 100.000. -tests_blood_haemoglobin_sub_form.step1.hb_colour.hint = Resultado do teste de Hb - escala de cor de hemoglobina (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.other.text = Outro (especifique) -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_title = Número de leucócitos muito alto -tests_blood_haemoglobin_sub_form.step1.cbc.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_title = Tipo de teste de hemoglobina sanguínea -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.expired.text = Fora da validade -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_title = Valor do hematócrito muito baixo -tests_blood_haemoglobin_sub_form.step1.wbc.v_required.err = Digite o número de leucócitos -tests_blood_haemoglobin_sub_form.step1.platelets.hint = Contagem de plaquetas -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.toaster_info_text = Número de leucócitos acima de 16.000. -tests_blood_haemoglobin_sub_form.step1.hb_test_type.v_required.err = É necessário o tipo de teste de Hb -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.toaster_info_text = Valor do hematócrito abaixo de 10,5. -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.v_required.err = Motivo para não ter realizado o teste de Hb é obrigatório -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.label = Motivo -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label_info_text = Hemograma completo é o método preferido para pesquisar anemia na gestação. Se o hemograma completo não estiver disponível, recomenda-se o hemoglobinômetro antes da escala de cor de hemoglobina. -tests_blood_haemoglobin_sub_form.step1.wbc.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.hint = Resultado do teste de Hb - hemoglobinômetro (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_test_date.hint = Data do teste de hemoglobina sanguínea -tests_blood_haemoglobin_sub_form.step1.hb_test_status.label = Teste de hemoglobina sanguínea -tests_blood_haemoglobin_sub_form.step1.platelets.v_required.err = Digite o valor da contagem de plaquetas -tests_blood_haemoglobin_sub_form.step1.ht.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.hb_test_type.label = Tipo de teste de hemoglobina sanguínea -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.toaster_info_title = Contagem de plaquetas muito baixa! -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone.options.no_supplies.text = Sem suprimentos -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.ht.v_required.err = Digite o valor do hematócrito -tests_blood_haemoglobin_sub_form.step1.hb_test_notdone_other.hint = Especifique -tests_blood_haemoglobin_sub_form.step1.hb_test_date.v_required.err = É necessária a data do teste de hemoglobina sanguínea -tests_blood_haemoglobin_sub_form.step1.hb_colour.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.paltelets_danger_toaster.text = Contagem de plaquetas muito baixa! -tests_blood_haemoglobin_sub_form.step1.wbc.hint = Número de leucócitos -tests_blood_haemoglobin_sub_form.step1.platelets.v_numeric.err = Digite um valor numérico -tests_blood_haemoglobin_sub_form.step1.hb_gmeter.v_required.err = Digite o resultado do teste de Hb - hemoglobinômetro (g/dl) -tests_blood_haemoglobin_sub_form.step1.hb_colour.v_required.err = Digite o resultado do teste de Hb - escala de cor de hemoglobina (g/dl) -tests_blood_haemoglobin_sub_form.step1.hematocrit_danger_toaster.text = Valor do hematócrito muito baixo! -tests_blood_haemoglobin_sub_form.step1.cbc.hint = Resultado do hemograma completo (g/dl) (recomendado) -tests_blood_haemoglobin_sub_form.step1.wbc_danger_toaster.text = Número de leucócitos muito alto! -tests_blood_haemoglobin_sub_form.step1.hb_test_type.options.hb_test_haemoglobinometer.text = Teste de Hb (hemoglobinômetro) diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties deleted file mode 100644 index 6735c6cea..000000000 --- a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_fr.properties +++ /dev/null @@ -1,17 +0,0 @@ -tests_blood_type_sub_form.step1.blood_type.options.b.text = B -tests_blood_type_sub_form.step1.blood_type_test_date.hint = Date du test de groupe sanguin -tests_blood_type_sub_form.step1.blood_type.options.o.text = O -tests_blood_type_sub_form.step1.blood_type.v_required.err = Veuillez préciser le groupe sanguin -tests_blood_type_sub_form.step1.blood_type.label = Groupe sanguin -tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - La femme est à risque d'allo-immunisation si le père du bébé est Rh positif ou inconnu.\n\n- Procéder au protocole local pour enquêter sur la sensibilisation et le besoin de référence.\n\n- Si Rh négatif et non sensibilisé, la femme devrait recevoir une prophylaxie anti-D après la naissance si le bébé est Rh positif. -tests_blood_type_sub_form.step1.rh_factor.label = Facteur rhésus -tests_blood_type_sub_form.step1.blood_type.options.a.text = A -tests_blood_type_sub_form.step1.rh_factor_toaster.text = Counselling sur le facteur rhésus négatif -tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Négatif -tests_blood_type_sub_form.step1.rh_factor.v_required.err = Le facteur rhésus est requis -tests_blood_type_sub_form.step1.blood_type_test_status.label = Test de groupe sanguin -tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Date du test sanguin -tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positif -tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Le statut du groupe sanguin est requis -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Counselling sur le facteur rhésus négatif diff --git a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties deleted file mode 100644 index f1b615a1d..000000000 --- a/opensrp-anc/src/main/resources/tests_blood_type_sub_form_pt.properties +++ /dev/null @@ -1,17 +0,0 @@ -tests_blood_type_sub_form.step1.blood_type.options.b.text = B -tests_blood_type_sub_form.step1.blood_type_test_date.hint = Data do exame de tipagem sanguínea -tests_blood_type_sub_form.step1.blood_type.options.o.text = O -tests_blood_type_sub_form.step1.blood_type.v_required.err = Favor, especifique o tipo de sangue -tests_blood_type_sub_form.step1.blood_type.label = Tipagem sanguínea -tests_blood_type_sub_form.step1.blood_type.options.ab.text = AB -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_text = - Mulher está sob risco de aloimunização Rh se pai do bebê for Rh positivo ou Rh desconhecido.\n\n- Realizar investigação sobre aloimunização e necessidade de encaminhamento.\n\n- Se Rh negativo e não sensibilizada, a mulher deve receber imunoglobulina Anti-D no pós-parto imediato se o bebê for Rh positivo. -tests_blood_type_sub_form.step1.rh_factor.label = Fator Rh -tests_blood_type_sub_form.step1.blood_type.options.a.text = A -tests_blood_type_sub_form.step1.rh_factor_toaster.text = Aconselhamento sobre Fator Rh negativo -tests_blood_type_sub_form.step1.rh_factor.options.negative.text = Negativo -tests_blood_type_sub_form.step1.rh_factor.v_required.err = Fator Rh é obrigatório -tests_blood_type_sub_form.step1.blood_type_test_status.label = Tipagem sanguínea -tests_blood_type_sub_form.step1.blood_type_test_date.v_required.err = Data quando exame de sangue foi realizado. -tests_blood_type_sub_form.step1.rh_factor.options.positive.text = Positivo -tests_blood_type_sub_form.step1.blood_type_test_status.v_required.err = Status da tipagem sanguínea é obrigatório -tests_blood_type_sub_form.step1.rh_factor_toaster.toaster_info_title = Aconselhamento sobre Fator Rh negativo diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties deleted file mode 100644 index 3c689f60b..000000000 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_fr.properties +++ /dev/null @@ -1,33 +0,0 @@ -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Rupture de stock -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Diagnostic positif de l'hépatite B! -tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Le test de l'hépatite B est requis -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = La vaccination contre l'hépatite B est requise à tout moment après 12 semaines de gestation. -tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Le type de test de l'hépatite B est requis -tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = Test de diagnostic rapide HBsAg est requis -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = Immunodosage en laboratoire HBsAg (recommandé) -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positif -tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = Test de diagnostic rapide HBsAg (TDR) -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Négatif -tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Tache de sang séché (TSS) est requise -tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Date du test de l'hépatite B -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Test de taches de sang séché (TSS) pour HBsAg -tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Type de test de l'hépatite B -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Diagnostic positif de l'hépatite B! -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Stock expiré -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Vaccination contre l'hépatite B requise -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Autre (spécifier) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Test de taches de sang séché (TSS) pour HBsAg -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Test de l'hépatite B non effectué raison requise -tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = La date du test de l'hépatite B est requise -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = Immunodosage en laboratoire HBsAg est requis -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = Immunodosage en laboratoire HBsAg (recommandé) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positif -tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Test d'hépatite B -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Négatif -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Vaccination contre l'hépatite B requise -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Raison -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positif -tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Spécifier -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = Test de diagnostic rapide HBsAg (TDR) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Négatif -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = Conseil et référence requis diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties deleted file mode 100644 index 2a0be344b..000000000 --- a/opensrp-anc/src/main/resources/tests_hepatitis_b_sub_form_pt.properties +++ /dev/null @@ -1,33 +0,0 @@ -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.stock_out.text = Sem estoque -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.text = Disgnóstico positivo para Hep B! -tests_hepatitis_b_sub_form.step1.hepb_test_status.v_required.err = Exame de Hepatite B é obrigatório -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_text = Vacinação para Hep B é recomendada em qualquer momento após 12 semanas de gestação. -tests_hepatitis_b_sub_form.step1.hepb_test_type.v_required.err = Tipo de exame de Hep B é obrigatório -tests_hepatitis_b_sub_form.step1.hbsag_rdt.v_required.err = Teste rápido de HBsAg é obrigatório -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.label = Exame de imunoensaio de HBsAg (recomendado) -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.positive.text = Positivo -tests_hepatitis_b_sub_form.step1.hbsag_rdt.label = Teste rápido de HBsAg -tests_hepatitis_b_sub_form.step1.hbsag_rdt.options.negative.text = Negativo -tests_hepatitis_b_sub_form.step1.hbsag_dbs.v_required.err = Teste de HBsAg é obrigatório -tests_hepatitis_b_sub_form.step1.hepb_test_date.hint = Data do exame de Hep B -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_dbs.text = Exame de Hep B em amostra de sangue seco -tests_hepatitis_b_sub_form.step1.hepb_test_type.label = Tipo de exame de Hep B -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_title = Diagnóstico positivo para Hep B! -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.expired_stock.text = Sem estoque -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.toaster_info_title = Vacinação para Hep B é obrigatório. -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.options.other.text = Outro (Especifique) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.label = Exame de Hep B em amostra de sangue seco -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.v_required.err = Motivo para não ter realizado exame de Hep B é obrigatório -tests_hepatitis_b_sub_form.step1.hepb_test_date.v_required.err = Data do exame de Hep B é obrigatória -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.v_required.err = Exame de imunoensaio para HBsAg é obrigatório -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_lab_based.text = Exame de imunoensaio de HBsAg (recomendado) -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.positive.text = Positivo -tests_hepatitis_b_sub_form.step1.hepb_test_status.label = Exame de Hepatite B -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.negative.text = Negativo -tests_hepatitis_b_sub_form.step1.hepatitis_b_info_toaster.text = Vacinação de Hep B é obrigatória. -tests_hepatitis_b_sub_form.step1.hepb_test_notdone.label = Motivo -tests_hepatitis_b_sub_form.step1.hbsag_lab_ima.options.positive.text = Positivo -tests_hepatitis_b_sub_form.step1.hepb_test_notdone_other.hint = Especifique -tests_hepatitis_b_sub_form.step1.hepb_test_type.options.hbsag_rdt.text = Teste rápido de HBsAg -tests_hepatitis_b_sub_form.step1.hbsag_dbs.options.negative.text = Negativo -tests_hepatitis_b_sub_form.step1.hepatitis_b_danger_toaster.toaster_info_text = É necessário aconselhamento e encaminhamento. diff --git a/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties deleted file mode 100644 index 706bf0930..000000000 --- a/opensrp-anc/src/main/resources/tests_hepatitis_c_sub_form_pt.properties +++ /dev/null @@ -1,26 +0,0 @@ -tests_hepatitis_c_sub_form.step1.hcv_dbs.label = Teste de HCV em amostra de sangue seco -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.text = Diagnóstico positivo para Hep C! -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.expired_stock.text = Sem estoque -tests_hepatitis_c_sub_form.step1.hepc_test_date.hint = Data do exame de Hep C -tests_hepatitis_c_sub_form.step1.hepc_test_type.label = Tipo de exame de Hep C -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.positive.text = Positivo -tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_text = O exame Anti-HCV por teste de imunoensaio é o método de preferência para testagem durante a gestação. Se o imunoensaio não estiver disponível, o teste preferível para Anti-HCV será o teste rápido em amostra de sangue seco em papel filtro. -tests_hepatitis_c_sub_form.step1.hepc_test_notdone_other.hint = Especifique -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.label = Teste de imunoensaio Anti-HCV (recomendado) -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_title = Disnóstico positivo para Hep C! -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_lab_based.text = Teste de imunoensaio Anti-HCV (recomendado) -tests_hepatitis_c_sub_form.step1.hepc_test_type.label_info_title = Tipo de exame de Hep C -tests_hepatitis_c_sub_form.step1.hcv_dbs.options.negative.text = Negativo -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.stock_out.text = Sem estoque -tests_hepatitis_c_sub_form.step1.hcv_rdt.options.positive.text = Positivo -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_dbs.text = Teste Anti-HCV em amostra de sangue seco -tests_hepatitis_c_sub_form.step1.hcv_rdt.label = Teste rápido de Anti-HCV -tests_hepatitis_c_sub_form.step1.hepc_test_type.options.anti_hcv_rdt.text = Teste rápido de Anti-HCV -tests_hepatitis_c_sub_form.step1.hepc_test_status.label = Exame de Hepatite C -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.options.other.text = Outro (Especifique) -tests_hepatitis_c_sub_form.step1.hcv_dbs.options.positive.text = Positivo -tests_hepatitis_c_sub_form.step1.hepc_test_notdone.label = Motivo -tests_hepatitis_c_sub_form.step1.hepatitis_c_danger_toaster.toaster_info_text = É necessário aconselhamento e encaminhamento. -tests_hepatitis_c_sub_form.step1.hcv_lab_ima.options.negative.text = Negativo -tests_hepatitis_c_sub_form.step1.hcv_rdt.options.negative.text = Negativo -tests_hepatitis_c_sub_form.step1.hepc_test_date.v_required.err = Selecione a data do exame de Hepatite C. diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties deleted file mode 100644 index ef6608de9..000000000 --- a/opensrp-anc/src/main/resources/tests_hiv_sub_form_fr.properties +++ /dev/null @@ -1,19 +0,0 @@ -tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Veuillez enregistrer le résultat du test VIH -tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positif -tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Négatif -tests_hiv_sub_form.step1.hiv_positive_toaster.text = Conseils pour le test résultat du VIH positif -tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Autre (spécifier) -tests_hiv_sub_form.step1.hiv_test_status.v_required.err = Le statut du test VIH est requis -tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = Test VIH non concluant, référez pour d'autres tests. -tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = Raison de ne pas faire de test VIH est requis -tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Stock expiré -tests_hiv_sub_form.step1.hiv_test_result.label = Enregistrer le résultat -tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Spécifier -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Référer pour d'autres tests et confirmation\n- Référer pour les services VIH\n- Donner des conseils sur les infections opportunistes et la nécessité de consulter un médecin\n- Procéder à un dépistage systématique de la tuberculose active -tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Non concluant -tests_hiv_sub_form.step1.hiv_test_status.label = Test du VIH -tests_hiv_sub_form.step1.hiv_test_date.hint = Date du test VIH -tests_hiv_sub_form.step1.hiv_test_date.v_required.err = Date du test VIH est requis -tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Rupture de stock -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = Conseil VIH positif -tests_hiv_sub_form.step1.hiv_test_notdone.label = Raison diff --git a/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties deleted file mode 100644 index e1ac9c3a4..000000000 --- a/opensrp-anc/src/main/resources/tests_hiv_sub_form_pt.properties +++ /dev/null @@ -1,19 +0,0 @@ -tests_hiv_sub_form.step1.hiv_test_result.v_required.err = Registre resultado do exame de HIV -tests_hiv_sub_form.step1.hiv_test_result.options.positive.text = Positivo -tests_hiv_sub_form.step1.hiv_test_result.options.negative.text = Negativo -tests_hiv_sub_form.step1.hiv_positive_toaster.text = Aconselhamento para HIV positivo -tests_hiv_sub_form.step1.hiv_test_notdone.options.other.text = Outro (Especifique) -tests_hiv_sub_form.step1.hiv_test_status.v_required.err = Status do exame de HIV é obrigatório -tests_hiv_sub_form.step1.hiv_inconclusive_toaster.text = Teste para HIV inconclusivo, encaminhar para testagem adicional -tests_hiv_sub_form.step1.hiv_test_notdone.v_required.err = Motivo para não realização do exame de HIV é obrigatório -tests_hiv_sub_form.step1.hiv_test_notdone.options.expired_stock.text = Sem estoque -tests_hiv_sub_form.step1.hiv_test_result.label = Registrar resultado -tests_hiv_sub_form.step1.hiv_test_notdone_other.hint = Especifique -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_text = - Encaminhar para testagem adicional e confirmação\n- Encaminhar para serviço especializado para HIV\n- Orientações sobre infecções oportunistas e sobre necessidade de procurar cuidados em saúde\n- Realize rastreamento para TB ativa -tests_hiv_sub_form.step1.hiv_test_result.options.inconclusive.text = Inconclusivo -tests_hiv_sub_form.step1.hiv_test_status.label = Exame de HIV -tests_hiv_sub_form.step1.hiv_test_date.hint = Data do exame de HIV -tests_hiv_sub_form.step1.hiv_test_date.v_required.err = Data do exame de HIV é obrigatório -tests_hiv_sub_form.step1.hiv_test_notdone.options.stock_out.text = Sem estoque -tests_hiv_sub_form.step1.hiv_positive_toaster.toaster_info_title = Aconselhamento de teste positivo para HIV -tests_hiv_sub_form.step1.hiv_test_notdone.label = Motivo diff --git a/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties deleted file mode 100644 index 7505d9979..000000000 --- a/opensrp-anc/src/main/resources/tests_other_tests_sub_form_pt.properties +++ /dev/null @@ -1,4 +0,0 @@ -tests_other_tests_sub_form.step1.other_test.label = Outro exame -tests_other_tests_sub_form.step1.other_test_date.hint = Data do exame -tests_other_tests_sub_form.step1.other_test_result.hint = Resultado do exame? -tests_other_tests_sub_form.step1.other_test_name.hint = Qual exame? diff --git a/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties deleted file mode 100644 index 568f7c06d..000000000 --- a/opensrp-anc/src/main/resources/tests_partner_hiv_sub_form_pt.properties +++ /dev/null @@ -1,12 +0,0 @@ -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.inconclusive.text = Inconclusivo -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.v_required.err = Resultado do exame é obrigatório -tests_partner_hiv_sub_form.step1.hiv_test_partner_date.hint = Data do exame de HIV do parceiro -tests_partner_hiv_sub_form.step1.hiv_test_partner_date.v_required.err = Data do exame de HIV do parceiro é obrigatório -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_title = Aconselhamento sobre risco do HIV -tests_partner_hiv_sub_form.step1.hiv_test_partner_status.label = Exame de HIV do parceiro -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.positive.text = Positivo -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.toaster_info_text = Orientar sobre as opções de prevenção do HIV: \n- Rastreamento e tratamento de ISTs (diagnóstico sindrômico e sífilis)\n- Promoção do uso do preservativo\n- Aconselhamento de redução de risco\n- PrEP com ênfase na aderência\n- Enfatizar importância do seguimento nas consultas de pré-natal -tests_partner_hiv_sub_form.step1.hiv_risk_toaster.text = Aconselhamento sobre risco do HIV -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.options.negative.text = Negativo -tests_partner_hiv_sub_form.step1.partner_hiv_positive_toaster.text = Exame de HIV do parceiro inconclusivo, encaminhar parceiro para investigação adicional -tests_partner_hiv_sub_form.step1.hiv_test_partner_result.label = Registrar resultado diff --git a/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties deleted file mode 100644 index 2823d3b49..000000000 --- a/opensrp-anc/src/main/resources/tests_syphilis_sub_form_pt.properties +++ /dev/null @@ -1,30 +0,0 @@ -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.text = Ãrea com alta prevalência de sífilis (5% ou mais) -tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_title = Exame de sífilis positivo -tests_syphilis_sub_form.step1.syph_test_notdone.options.stock_out.text = Sem estoque -tests_syphilis_sub_form.step1.syph_test_type.label = Tipo de exame de Sífilis -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_text = Realize um teste rápido de sífilis (RST) e, se possível, administre a primeira dose do tratamento. Após, encaminhe a mulher para realizar teste não treponêmico (RPR). Se RPR positivo, administre o tratamento de acordo com o estágio clínico da doença. -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_title = Ãrea com baixa prevalência de sífilis (abaixo de 5%) -tests_syphilis_sub_form.step1.lab_syphilis_test.label = Exame para sífilis em laboratório externo -tests_syphilis_sub_form.step1.lab_syphilis_test.options.negative.text = Negativo -tests_syphilis_sub_form.step1.syph_test_notdone.options.other.text = Outro (Especifique) -tests_syphilis_sub_form.step1.syph_test_notdone_other.hint = Especifique -tests_syphilis_sub_form.step1.syphilis_greater_5_toaster.toaster_info_title = Ãrea com alta prevalência de sífilis (5% ou mais) -tests_syphilis_sub_form.step1.lab_syphilis_test.options.positive.text = Positivo -tests_syphilis_sub_form.step1.rpr_syphilis_test.label = Teste de reagina plasmática rápido (RPR) -tests_syphilis_sub_form.step1.rpr_syphilis_test.options.positive.text = Positivo -tests_syphilis_sub_form.step1.rpr_syphilis_test.options.negative.text = Negativo -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.text = Ãrea com baixa prevalência de sífilis (abaixo de 5%) -tests_syphilis_sub_form.step1.syphilis_test_date.hint = Data do exame de Sífilis -tests_syphilis_sub_form.step1.syph_test_notdone.label = Motivo -tests_syphilis_sub_form.step1.rapid_syphilis_test.options.positive.text = Positivo -tests_syphilis_sub_form.step1.rapid_syphilis_test.label = Teste rápido de Sífilis (RTS) -tests_syphilis_sub_form.step1.syph_test_notdone.options.expired_stock.text = Sem estoque -tests_syphilis_sub_form.step1.rapid_syphilis_test.options.negative.text = Negativo -tests_syphilis_sub_form.step1.syph_test_type.options.off_site_lab.text = Exame para sífilis em laboratório externo -tests_syphilis_sub_form.step1.syph_test_type.options.rapid_plasma.text = Teste de reagina plasmática rápido -tests_syphilis_sub_form.step1.syphilis_below_5_toaster.toaster_info_text = Um teste rápido para Sífilis deve ser realizado no local -tests_syphilis_sub_form.step1.syphilis_danger_toaster.text = Teste para Sífilis positivo -tests_syphilis_sub_form.step1.syphilis_test_date.v_required.err = Selecione a data do exame de Sífilis -tests_syphilis_sub_form.step1.syph_test_type.options.rapid_syphilis.text = Teste rápido de Sífilis -tests_syphilis_sub_form.step1.syphilis_danger_toaster.toaster_info_text = Ofereça aconselhamento e tratamento de acordo com o protocolo -tests_syphilis_sub_form.step1.syph_test_status.label = Exame de Sífilis diff --git a/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties deleted file mode 100644 index 3f5e2b912..000000000 --- a/opensrp-anc/src/main/resources/tests_tb_screening_sub_form_pt.properties +++ /dev/null @@ -1,24 +0,0 @@ -tests_tb_screening_sub_form.step1.tb_screening_result.v_required.err = Rastreamento para TB é obrigatório -tests_tb_screening_sub_form.step1.tb_screening_result.options.negative.text = Negativo -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.no_sputum_supplies.text = Material para exame de escarro indisponível -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.machine_not_functioning.text = Equipamento não está funcionando -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.technician_not_available.text = Profissionais indisponíveis -tests_tb_screening_sub_form.step1.tb_screening_notdone_other.hint = Especifique -tests_tb_screening_sub_form.step1.tb_screening_status.v_required.err = Status do rastreamento de TB é obrigatório -tests_tb_screening_sub_form.step1.tb_screening_notdone.label = Motivo -tests_tb_screening_sub_form.step1.tb_screening_status.label = Rastreamento de TB -tests_tb_screening_sub_form.step1.tb_screening_result.label = Registrar resultado -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.text = Rastreamento positivo para TB -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_culture.text = Cultura de escarro indisponível -tests_tb_screening_sub_form.step1.tb_screening_date.v_required.err = Favor, registre a data de realização do rastreamento de TB -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_text = Tratar de acordo com protocolo local e/ou encaminhar à referência -tests_tb_screening_sub_form.step1.tb_screening_danger_toaster.toaster_info_title = Rastreamento positivo para TB -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.genexpert_machine.text = Método GeneXpert indisponível -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.other.text = Outro (Especifique) -tests_tb_screening_sub_form.step1.tb_screening_date.hint = Data do rastreamento para TB -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.sputum_smear.text = Esfregaço de escarro indisponível -tests_tb_screening_sub_form.step1.tb_screening_result.options.inconclusive.text = Inconclusivo -tests_tb_screening_sub_form.step1.tb_screening_result.options.incomplete.text = Incompleto (apenas sintomas) -tests_tb_screening_sub_form.step1.tb_screening_notdone.options.xray_machine.text = Equipamento de Raio-X indisponível -tests_tb_screening_sub_form.step1.tb_screening_notdone.v_required.err = Motivos pelo qual o rastreamento de TB não foi realizado é obrigatório -tests_tb_screening_sub_form.step1.tb_screening_result.options.positive.text = Positivo diff --git a/opensrp-anc/src/main/resources/tests_toxo_sub_form_fr.properties b/opensrp-anc/src/main/resources/tests_toxo_sub_form_fr.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/tests_toxo_sub_form_ind.properties b/opensrp-anc/src/main/resources/tests_toxo_sub_form_ind.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/tests_toxo_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_toxo_sub_form_pt.properties deleted file mode 100644 index e69de29bb..000000000 diff --git a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties deleted file mode 100644 index 1ae18c26a..000000000 --- a/opensrp-anc/src/main/resources/tests_ultrasound_sub_form_pt.properties +++ /dev/null @@ -1,37 +0,0 @@ -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.hint = Especifique -tests_ultrasound_sub_form.step1.ultrasound_date.v_required.err = Data em que o Ultrassom foi realizado. -tests_ultrasound_sub_form.step1.ultrasound_notdone_other.v_required.err = Especifique se outro motivo. -tests_ultrasound_sub_form.step1.placenta_location.options.fundal.text = Fúndica -tests_ultrasound_sub_form.step1.placenta_location.options.right_side.text = Lateral direita -tests_ultrasound_sub_form.step1.placenta_location.options.left_side.text = Lateral Esquerda -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.not_available.text = Indisponível -tests_ultrasound_sub_form.step1.placenta_location.options.low.text = Baixa -tests_ultrasound_sub_form.step1.fetal_presentation.options.pelvic.text = Pélvico -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.other.text = Outro (Especifique) -tests_ultrasound_sub_form.step1.ultrasound_date.hint = Data do Ultrassom -tests_ultrasound_sub_form.step1.fetal_presentation.options.transverse.text = Transverso -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.text = Aconselhamento sobre risco de pré-eclâmpsia -tests_ultrasound_sub_form.step1.ultrasound_info_toaster.text = Se for necessário atualizar IG, favor retorne ao Perfil, na página de Gestação Atual -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.text = Exame precoce de Ultrassom realizado! -tests_ultrasound_sub_form.step1.amniotic_fluid.options.reduced.text = Reduzido -tests_ultrasound_sub_form.step1.placenta_location.options.posterior.text = Posterior -tests_ultrasound_sub_form.step1.ultrasound.label = Exame de Ultrassom -tests_ultrasound_sub_form.step1.fetal_presentation.options.cephalic.text = Cefálico -tests_ultrasound_sub_form.step1.placenta_location.label = Localização da placenta -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_text = Uso de aspirina depois de 12 semanas de gestação é recomendada, assim como o uso de cálcio se região com baixa ingesta dietética. Favor, realizar aconselhamento apropriado. -tests_ultrasound_sub_form.step1.fetal_presentation.options.other.text = Outro -tests_ultrasound_sub_form.step1.placenta_location.options.anterior.text = Anterior -tests_ultrasound_sub_form.step1.no_of_fetuses.label = N° de fetos -tests_ultrasound_sub_form.step1.no_of_fetuses_label.text = N° de fetos -tests_ultrasound_sub_form.step1.ultrasound_notdone.options.delayed.text = Postergado para próxima consulta -tests_ultrasound_sub_form.step1.pre_eclampsia_toaster.toaster_info_title = Aconselhamento sobre risco de pré-eclâmpsia -tests_ultrasound_sub_form.step1.amniotic_fluid.options.increased.text = Aumentado -tests_ultrasound_sub_form.step1.amniotic_fluid.options.normal.text = Normal -tests_ultrasound_sub_form.step1.ultrasound_notdone.v_required.err = Favor, especificar não realização do Ultrassom -tests_ultrasound_sub_form.step1.placenta_location.options.praevia.text = Prévia -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_text = Um Ultrassom precoce é essencial para estimar a idade gestacional, melhorar a detecção de anomalias fetais e de gestação múltipla, reduzir indução de parto em gestações prolongadas e melhorar a experiência que a mulher tem com sua gestação. -tests_ultrasound_sub_form.step1.ultrasound_notdone.label = Motivo -tests_ultrasound_sub_form.step1.ultrasound_done_early_toaster.toaster_info_title = Exame precoce de Ultrassom realizado! -tests_ultrasound_sub_form.step1.fetal_presentation.label = Apresentação fetal -tests_ultrasound_sub_form.step1.fetal_presentation.label_info_text = Se gestação múltipla, indicar a posição do primeiro feto, o mais insinuado. -tests_ultrasound_sub_form.step1.amniotic_fluid.label = Líquido Amniótico diff --git a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties b/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties deleted file mode 100644 index eb68da849..000000000 --- a/opensrp-anc/src/main/resources/tests_urine_sub_form_pt.properties +++ /dev/null @@ -1,62 +0,0 @@ -tests_urine_sub_form.step1.urine_test_notdone_other.hint = Especifique -tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_culture.text = Cultura de jato médio de urina (recomendado) -tests_urine_sub_form.step1.urine_test_type.label = Tipo de exame de urina -tests_urine_sub_form.step1.urine_glucose.v_required.err = Campo de glicose na urina é obrigatório -tests_urine_sub_form.step1.urine_nitrites.options.plus_three.text = +++ -tests_urine_sub_form.step1.urine_nitrites.options.plus_two.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.v_required.err = Registrar o resultado de fita urinária - leucócitos -tests_urine_sub_form.step1.urine_nitrites.options.plus_one.text = + -tests_urine_sub_form.step1.urine_test_type.v_required.err = Tipo de exame urinário -tests_urine_sub_form.step1.urine_culture.label = Cultura de jato médio de urina (recomendado) -tests_urine_sub_form.step1.urine_gram_stain.options.positive.text = Positivo -tests_urine_sub_form.step1.urine_glucose.label = Resultado de fita urinária - glicose -tests_urine_sub_form.step1.urine_protein.label = Resultado de fita urinária - proteína -tests_urine_sub_form.step1.urine_test_type.options.urine_dipstick.text = Fita Urinária -tests_urine_sub_form.step1.urine_glucose.options.plus_three.text = +++ -tests_urine_sub_form.step1.urine_culture.options.negative.text = Negativo -tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_text = Uma mulher é considerada com Bacteriúria Assintomática se tiver um dos seguintes resultados:\n\n- Urocultura positiva (> 100,000 bactérias/mL)\n- Coloração de Gram positiva\n- Fita urinária positiva (nitritos ou leucócitos)\n\nSetes dias de antibiótico é recomendado para todas mulheres com bacteriúria assintomática para prevenir bacteriúria persistente, parto prematuro ou baixo peso. -tests_urine_sub_form.step1.urine_gram_stain.label = Coloração de Gram de jato médio de urina positiva -tests_urine_sub_form.step1.urine_culture.v_required.err = Cultura de urina é obrigatório -tests_urine_sub_form.step1.urine_culture.options.positive_gbs.text = Positivo - Estreptococo do Grupo B (GBS) -tests_urine_sub_form.step1.urine_test_notdone.options.expired_stock.text = Sem estoque -tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_title = Aconselhamento sobre risco de Diabetes mellitus gestacional (DMG) -tests_urine_sub_form.step1.urine_test_date.v_required.err = Selecione a data do exame de urina. -tests_urine_sub_form.step1.urine_nitrites.label = Resultado de fita urinária - nitrito -tests_urine_sub_form.step1.urine_test_notdone.options.other.text = Outro (Especifique) -tests_urine_sub_form.step1.urine_protein.options.plus_three.text = +++ -tests_urine_sub_form.step1.urine_leukocytes.options.plus_four.text = ++++ -tests_urine_sub_form.step1.urine_protein.options.plus_two.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.options.none.text = Nenhum -tests_urine_sub_form.step1.gbs_agent_note.text = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal por Estreptococo do Grupo B (GBS) -tests_urine_sub_form.step1.urine_leukocytes.options.plus_three.text = +++ -tests_urine_sub_form.step1.urine_gram_stain.options.negative.text = Negativo -tests_urine_sub_form.step1.urine_protein.v_required.err = Campo de proteinúria é obrigatório -tests_urine_sub_form.step1.urine_test_type.options.midstream_urine_gram.text = Coloração de Gram de jato médio de urina -tests_urine_sub_form.step1.urine_leukocytes.options.plus_one.text = + -tests_urine_sub_form.step1.urine_test_status.v_required.err = Status do exame de urina é obrigatório -tests_urine_sub_form.step1.urine_test_notdone.options.stock_out.text = Sem estoque -tests_urine_sub_form.step1.urine_test_status.label = Exame de urina -tests_urine_sub_form.step1.gbs_agent_note.toaster_info_title = Aconselhamento sobre antibiótico intraparto para prevenção de infecção neonatal precoce por Estreptococo do Grupo B (GBS) -tests_urine_sub_form.step1.gdm_risk_toaster.text = Aconselhamento sobre risco de Diabetes mellitus gestacional (DMG) -tests_urine_sub_form.step1.urine_protein.options.plus_one.text = + -tests_urine_sub_form.step1.urine_protein.options.none.text = Nenhum -tests_urine_sub_form.step1.asb_positive_toaster.toaster_info_title = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) -tests_urine_sub_form.step1.urine_test_notdone.label = Motivo -tests_urine_sub_form.step1.urine_nitrites.options.plus_four.text = ++++ -tests_urine_sub_form.step1.urine_leukocytes.options.plus_two.text = ++ -tests_urine_sub_form.step1.urine_leukocytes.label = Resultado de fita urinária - leucócitos -tests_urine_sub_form.step1.gdm_risk_toaster.toaster_info_text = Por favor, realize aconselhamento sobre redução de risco de DMG, incluindo:\n\n- Readequação de dieta\n\n- Readequação da atividades física na gravidez -tests_urine_sub_form.step1.urine_nitrites.options.none.text = Nenhum -tests_urine_sub_form.step1.urine_glucose.options.plus_four.text = ++++ -tests_urine_sub_form.step1.gbs_agent_note.toaster_info_text = Gestante com colonização por Estreptococo do Grupo B (GBS) deve receber antibiótico intraparto para prevenção de infecção neonatal precoce por GBS. -tests_urine_sub_form.step1.urine_glucose.options.none.text = Nenhum -tests_urine_sub_form.step1.urine_protein.options.plus_four.text = ++++ -tests_urine_sub_form.step1.urine_nitrites.v_required.err = Resultado de exame de fita urinária é obrigatório -tests_urine_sub_form.step1.urine_test_date.hint = Data do exame de urina -tests_urine_sub_form.step1.asb_positive_toaster.text = Tratamento com 7 dias de antibiótico para Bacteriúria Assintomática (BA) -tests_urine_sub_form.step1.urine_culture.options.positive_any.text = Positivo - qualquer agente -tests_urine_sub_form.step1.urine_culture.options.not_available.text = Results not available yet -tests_urine_sub_form.step1.urine_gram_stain.v_required.err = Coloração de Gram de urina é obrigatório -tests_urine_sub_form.step1.urine_glucose.options.plus_two.text = ++ -tests_urine_sub_form.step1.urine_test_notdone.v_required.err = Informar razão por não ter realizado exame de urina -tests_urine_sub_form.step1.urine_glucose.options.plus_one.text = + From 0adac141f5270fc7d80e1c2a4583a54f3f4b0789 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 05:30:00 +0700 Subject: [PATCH 196/302] Translate attention flags to Bahasa Indonesia --- .../main/assets/config/attention-flags.yml | 82 +++++++------- .../main/resources/attention_flags.properties | 105 +++++++++--------- .../resources/attention_flags_in.properties | 62 +++++++++++ 3 files changed, 158 insertions(+), 91 deletions(-) create mode 100644 opensrp-anc/src/main/resources/attention_flags_in.properties diff --git a/opensrp-anc/src/main/assets/config/attention-flags.yml b/opensrp-anc/src/main/assets/config/attention-flags.yml index 80d4f2aca..31a728142 100644 --- a/opensrp-anc/src/main/assets/config/attention-flags.yml +++ b/opensrp-anc/src/main/assets/config/attention-flags.yml @@ -16,34 +16,34 @@ fields: relevance: "!prev_preg_comps.isEmpty() && !prev_preg_comps.contains('none') && !prev_preg_comps.contains('dont_know')" - template: "{{attention_flags.yellow.past_alcohol_substances_used}}: {substances_used_value}" - relevance: "substances_used != null && !substances_used.isEmpty() && (!substances_used.contains('none') && !substances_used.contains('None'))" + relevance: "!substances_used.isEmpty() && !substances_used.contains('none')" - - template: "{{attention_flags.yellow.pre_eclampsia_risk}}" + - template: "{{attention_flags.yellow.pre_eclampsia_risk}}: {{attention_flags.yes}}" relevance: "preeclampsia_risk == 1" - - template: "{{attention_flags.yellow.diabetes_risk}}" + - template: "{{attention_flags.yellow.diabetes_risk}}: {{attention_flags.yes}}" relevance: "gdm_risk == 1" - template: "{{attention_flags.yellow.surgeries}}: {surgeries_value}" relevance: "!surgeries.isEmpty() && !surgeries.contains('none')" - template: "{{attention_flags.yellow.chronic_health_conditions}}: {health_conditions_value}" - relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('None') && !health_conditions.contains('dont_know')" + relevance: "!health_conditions.isEmpty() && !health_conditions.contains('none') && !health_conditions.contains('dont_know')" - - template: "{{attention_flags.yellow.high_daily_consumption_of_caffeine}}" + - template: "{{attention_flags.yellow.high_daily_consumption_of_caffeine}}: {{attention_flags.yes}}" relevance: "!caffeine_intake.isEmpty() && !caffeine_intake.contains('none')" - - template: "{{attention_flags.yellow.second_hand_exposure_to_tobacco_smoke}}" - relevance: "!shs_exposure.isEmpty() && shs_exposure.contains('yes')" + - template: "{{attention_flags.yellow.second_hand_exposure_to_tobacco_smoke}}: {shs_exposure_value}" + relevance: "shs_exposure == 'yes'" - template: "{{attention_flags.yellow.persistent_physiological_symptoms}}: {phys_symptoms_persist_value}" relevance: "!phys_symptoms_persist.isEmpty() && !phys_symptoms_persist.contains('none')" - - template: "{{attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman}}" - relevance: "!mat_percept_fetal_move.isEmpty() && mat_percept_fetal_move.contains('normal_fetal_move')" + - template: "{{attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman}}: {mat_percept_fetal_move_value}" + relevance: "mat_percept_fetal_move != '' && mat_percept_fetal_move != 'normal_fetal_move'" - template: "{{attention_flags.yellow.weight_category}}: {weight_cat_value}" - relevance: "!weight_cat.isEmpty() && (weight_cat.contains('underweight') || weight_cat.contains('Underweight') || weight_cat.contains('overweight') || weight_cat.contains('Overweight') || weight_cat.contains('obese') || weight_cat.contains('Obese'))" + relevance: "weight_cat != '' && (weight_cat == 'underweight' || weight_cat == 'overweight' || weight_cat == 'obese')" - template: "{{attention_flags.yellow.abnormal_breast_exam}}: {breast_exam_abnormal_value}" relevance: "!breast_exam_abnormal.contains('none') && !breast_exam_abnormal.isEmpty()" @@ -54,20 +54,20 @@ fields: - template: "{{attention_flags.yellow.abnormal_pelvic_exam}}: {pelvic_exam_abnormal_value}" relevance: "!pelvic_exam_abnormal.contains('none') && !pelvic_exam_abnormal.isEmpty()" - - template: "{{attention_flags.yellow.oedema_present}}" - relevance: "!oedema.isEmpty() && oedema.contains('yes')" + - template: "{{attention_flags.yellow.oedema_present}}: {oedema_value}" + relevance: "oedema == 'yes'" - - template: "{{attention_flags.yellow.rh_factor_negative}}" - relevance: "!rh_factor.isEmpty() && rh_factor.contains('negative')" + - template: "{{attention_flags.yellow.rh_factor_negative}}: {rh_factor_value}" + relevance: "rh_factor == 'negative'" --- group: red_attention_flag fields: - template: "{{attention_flags.red.danger_sign}}: {danger_signs_value}" - relevance: "!danger_signs.isEmpty() && !danger_signs.contains('none') && !danger_signs.contains('None') && !danger_signs.contains('danger_none')" + relevance: "!danger_signs.isEmpty() && !danger_signs.contains('danger_none')" - - template: "{{attention_flags.red.occupation_informal_employment_sex_worker}}" - relevance: "!occupation.isEmpty() && occupation.contains('informal_employment_sex_worker')" + - template: "{{attention_flags.red.occupation_informal_employment_sex_worker}}: {{attention_flags.yes}}" + relevance: "occupation.contains('informal_employment_sex_worker')" - template: "{{attention_flags.red.no_of_pregnancies_lost_ended}}: {miscarriages_abortions}" relevance: "miscarriages_abortions >= 2" @@ -79,17 +79,16 @@ fields: relevance: "{c_sections} >= 1" - template: "{{attention_flags.red.allergies}}: {allergies_value}" - relevance: "!allergies.isEmpty() && (!allergies.contains('none') || allergies.contains('None'))" + relevance: "!allergies.isEmpty() && !allergies.contains('none')" - - template: "{{attention_flags.red.tobacco_user_or_recently_quit}}" - relevance: "!tobacco_user.isEmpty() && - (tobacco_user.contains('yes') || tobacco_user.contains('Yes') || tobacco_user.contains('recently_quit'))" + - template: "{{attention_flags.red.tobacco_user_or_recently_quit}}: {{attention_flags.yes}}" + relevance: "tobacco_user == 'yes' || tobacco_user == 'recently_quit'" - - template: "{{attention_flags.red.woman_and_her_partner_do_not_use_condoms}}" - relevance: "!condom_use.isEmpty() && (condom_use.contains('no') || condom_use.contains('No'))" + - template: "{{attention_flags.red.woman_and_her_partner_do_not_use_condoms}}: {{attention_flags.yes}}" + relevance: "condom_use == 'no'" - template: "{{attention_flags.red.alcohol_substances_currently_using}}: {alcohol_substance_use_value}" - relevance: "!alcohol_substance_use.isEmpty() && (!alcohol_substance_use.contains('none') && !alcohol_substance_use.contains('None'))" + relevance: "!alcohol_substance_use.isEmpty() && !alcohol_substance_use.contains('none')" - template: "{{attention_flags.red.hypertension_diagnosis}}" relevance: "hypertension == 1" @@ -128,7 +127,7 @@ fields: relevance: "dilation_cm > 2" - template: "{{attention_flags.red.no_fetal_heartbeat_observed}}" - relevance: "fetal_heartbeat.contains('no') && gest_age > 20" + relevance: "fetal_heartbeat == 'no' && gest_age >= 16" - template: "{{attention_flags.red.abnormal_fetal_heart_rate}}: {fetal_heart_rate_repeat}bpm" relevance: "fetal_heart_rate_repeat < 100 || fetal_heart_rate_repeat > 180" @@ -137,39 +136,42 @@ fields: relevance: "no_of_fetuses > 1" - template: "{{attention_flags.red.fetal_presentation}}: {fetal_presentation} " - relevance: "gest_age >= 28 && fetal_presentation.contains('transverse')" + relevance: "gest_age >= 28 && fetal_presentation == 'transverse'" - - template: "{{attention_flags.red.amniotic_fluid}}: {amniotic_fluid}" - relevance: "!amniotic_fluid.isEmpty() && (amniotic_fluid.contains('reduced') || amniotic_fluid.contains('increased'))" + - template: "{{attention_flags.red.amniotic_fluid}}: {{attention_flags.amniotic_fluid.reduced}}" + relevance: "amniotic_fluid == 'reduced'" + + - template: "{{attention_flags.red.amniotic_fluid}}: {{attention_flags.amniotic_fluid.increased}}" + relevance: "amniotic_fluid == 'increased'" - template: "{{attention_flags.red.placenta_location}}: {placenta_location_value}" - relevance: "!placenta_location.isEmpty() && placenta_location.contains('praevia')" + relevance: "placenta_location == 'praevia'" - - template: "{{attention_flags.red.hiv_risk}}" + - template: "{{attention_flags.red.hiv_risk}}: {{attention_flags.yes}}" relevance: "hiv_risk == 1" - - template: "{{attention_flags.red.hiv_positive}}" + - template: "{{attention_flags.red.hiv_positive}}: {{attention_flags.yes}}" relevance: "hiv_positive == 1" - - template: "{{attention_flags.red.hepatitis_b_positive}}" + - template: "{{attention_flags.red.hepatitis_b_positive}}: {{attention_flags.yes}}" relevance: "hepb_positive == 1" - - template: "{{attention_flags.red.hepatitis_c_positive}}" + - template: "{{attention_flags.red.hepatitis_c_positive}}: {{attention_flags.yes}}" relevance: "hepc_positive == 1" - - template: "{{attention_flags.red.syphilis_positive}}" + - template: "{{attention_flags.red.syphilis_positive}}: {{attention_flags.yes}}" relevance: "syphilis_positive == 1" - - template: "{{attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis}}" + - template: "{{attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis}}: {{attention_flags.yes}}" relevance: "asb_positive == 1" - - template: "{{attention_flags.red.group_b_streptococcus_gbs_diagnosis}}" - relevance: "!urine_culture.isEmpty() && (urine_culture.contains('positive - group b streptococcus (gbs)') || urine_culture.contains('positive_gbs'))" + - template: "{{attention_flags.red.group_b_streptococcus_gbs_diagnosis}}: {{attention_flags.yes}}" + relevance: "urine_culture == 'positive - group b streptococcus (gbs)'" - - template: "{{attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis}}" + - template: "{{attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis}}: {{attention_flags.yes}}" relevance: "gdm == 1" - - template: "{{attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis}}" + - template: "{{attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis}}: {{attention_flags.yes}}" relevance: "dm_in_preg == 1" - template: "{{attention_flags.red.hematocrit_ht}}: {ht}" @@ -182,4 +184,4 @@ fields: relevance: "platelets < 100000" - template: "{{attention_flags.red.tb_screening_positive}}" - relevance: "!tb_screening_result.isEmpty() && tb_screening_result.contains('positive')" + relevance: "tb_screening_result == 'positive'" diff --git a/opensrp-anc/src/main/resources/attention_flags.properties b/opensrp-anc/src/main/resources/attention_flags.properties index cc38a5477..45413b493 100644 --- a/opensrp-anc/src/main/resources/attention_flags.properties +++ b/opensrp-anc/src/main/resources/attention_flags.properties @@ -1,59 +1,62 @@ -attention_flags.yellow.age = Age -attention_flags.yellow.gravida = Gravida -attention_flags.yellow.parity = Parity -attention_flags.yellow.past_pregnancy_problems = Past pregnancy problems -attention_flags.yellow.past_alcohol_substances_used = Past alcohol / substances used -attention_flags.yellow.pre_eclampsia_risk = Pre-eclampsia risk -attention_flags.yellow.diabetes_risk = Diabetes risk -attention_flags.yellow.surgeries = Surgeries -attention_flags.yellow.chronic_health_conditions = Chronic health conditions -attention_flags.yellow.high_daily_consumption_of_caffeine = High daily consumption of caffeine -attention_flags.yellow.second_hand_exposure_to_tobacco_smoke = Second-hand exposure to tobacco smoke -attention_flags.yellow.persistent_physiological_symptoms = Persistent physiological symptoms -attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman = Reduced or no fetal movement perceived by woman -attention_flags.yellow.weight_category = Weight category -attention_flags.yellow.abnormal_breast_exam = Abnormal breast exam -attention_flags.yellow.abnormal_abdominal_exam = Abnormal abdominal exam -attention_flags.yellow.abnormal_pelvic_exam = Abnormal pelvic exam -attention_flags.yellow.oedema_present = Oedema present -attention_flags.yellow.rh_factor_negative = Rh factor negative -attention_flags.red.danger_sign = Danger sign(s) -attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Employment that puts woman at increased risk for HIV (e.g. sex worker) -attention_flags.red.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended -attention_flags.red.no_of_stillbirths = No. of stillbirths -attention_flags.red.no_of_C_sections = No. of C-sections -attention_flags.red.allergies = Allergies -attention_flags.red.tobacco_user_or_recently_quit = Tobacco user or recently quit -attention_flags.red.woman_and_her_partner_do_not_use_condoms = Woman and her partner(s) do not use condoms -attention_flags.red.alcohol_substances_currently_using = Alcohol / substances currently using -attention_flags.red.hypertension_diagnosis = Hypertension diagnosis -attention_flags.red.severe_hypertension = Severe hypertension -attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia -attention_flags.red.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis -attention_flags.red.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis -attention_flags.red.fever = Fever -attention_flags.red.abnormal_pulse_rate = Abnormal pulse rate -attention_flags.red.anaemia_diagnosis = Anaemia diagnosis -attention_flags.red.respiratory_distress = Respiratory distress -attention_flags.red.low_oximetry = Low oximetry +attention_flags.amniotic_fluid.increased = Increased +attention_flags.amniotic_fluid.reduced = Recuded attention_flags.red.abnormal_cardiac_exam = Abnormal cardiac exam -attention_flags.red.cervix_dilated = Cervix dilated -attention_flags.red.no_fetal_heartbeat_observed = No fetal heartbeat observed attention_flags.red.abnormal_fetal_heart_rate = Abnormal fetal heart rate -attention_flags.red.no_of_fetuses = No. of fetuses -attention_flags.red.fetal_presentation = Fetal presentation +attention_flags.red.abnormal_pulse_rate = Abnormal pulse rate +attention_flags.red.alcohol_substances_currently_using = Alcohol / substances currently using +attention_flags.red.allergies = Allergies attention_flags.red.amniotic_fluid = Amniotic fluid -attention_flags.red.placenta_location = Placenta location -attention_flags.red.hiv_risk = HIV risk -attention_flags.red.hiv_positive = HIV positive -attention_flags.red.hepatitis_b_positive = Hepatitis B positive -attention_flags.red.hepatitis_c_positive = Hepatitis C positive -attention_flags.red.syphilis_positive = Syphilis positive +attention_flags.red.anaemia_diagnosis = Anaemia diagnosis attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis = Asymptomatic bacteriuria (ASB) diagnosis -attention_flags.red.group_b_streptococcus_gbs_diagnosis = Group B Streptococcus (GBS) diagnosis -attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis = Gestational Diabetes Mellitus (GDM) diagnosis +attention_flags.red.cervix_dilated = Cervix dilated +attention_flags.red.danger_sign = Danger sign(s) attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis = Diabetes Mellitus (DM) in pregnancy diagnosis +attention_flags.red.fetal_presentation = Fetal presentation +attention_flags.red.fever = Fever +attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis = Gestational Diabetes Mellitus (GDM) diagnosis +attention_flags.red.group_b_streptococcus_gbs_diagnosis = Group B Streptococcus (GBS) diagnosis attention_flags.red.hematocrit_ht = Hematocrit (Ht) -attention_flags.red.white_blood_cell_wbc_count = White blood cell (WBC) count +attention_flags.red.hepatitis_b_positive = Hepatitis B positive +attention_flags.red.hepatitis_c_positive = Hepatitis C positive +attention_flags.red.hiv_positive = HIV positive +attention_flags.red.hiv_risk = HIV risk +attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia = Hypertension and symptom of severe pre-eclampsia +attention_flags.red.hypertension_diagnosis = Hypertension diagnosis +attention_flags.red.low_oximetry = Low oximetry +attention_flags.red.no_fetal_heartbeat_observed = No fetal heartbeat observed +attention_flags.red.no_of_C_sections = No. of C-sections +attention_flags.red.no_of_fetuses = No. of fetuses +attention_flags.red.no_of_pregnancies_lost_ended = No. of pregnancies lost/ended +attention_flags.red.no_of_stillbirths = No. of stillbirths +attention_flags.red.occupation_informal_employment_sex_worker = Occupation: Employment that puts woman at increased risk for HIV (e.g. sex worker) +attention_flags.red.placenta_location = Placenta location attention_flags.red.platelet_count = Platelet count +attention_flags.red.pre_eclampsia_diagnosis = Pre-eclampsia diagnosis +attention_flags.red.respiratory_distress = Respiratory distress +attention_flags.red.severe_hypertension = Severe hypertension +attention_flags.red.severe_pre_eclampsia_diagnosis = Severe pre-eclampsia diagnosis +attention_flags.red.syphilis_positive = Syphilis positive attention_flags.red.tb_screening_positive = TB screening positive +attention_flags.red.tobacco_user_or_recently_quit = Tobacco user or recently quit +attention_flags.red.white_blood_cell_wbc_count = White blood cell (WBC) count +attention_flags.red.woman_and_her_partner_do_not_use_condoms = Woman and her partner(s) do not use condoms +attention_flags.yellow.abnormal_abdominal_exam = Abnormal abdominal exam +attention_flags.yellow.abnormal_breast_exam = Abnormal breast exam +attention_flags.yellow.abnormal_pelvic_exam = Abnormal pelvic exam +attention_flags.yellow.age = Age +attention_flags.yellow.chronic_health_conditions = Chronic health conditions +attention_flags.yellow.diabetes_risk = Diabetes risk +attention_flags.yellow.gravida = Gravida +attention_flags.yellow.high_daily_consumption_of_caffeine = High daily consumption of caffeine +attention_flags.yellow.oedema_present = Oedema present +attention_flags.yellow.parity = Parity +attention_flags.yellow.past_alcohol_substances_used = Past alcohol / substances used +attention_flags.yellow.past_pregnancy_problems = Past pregnancy problems +attention_flags.yellow.persistent_physiological_symptoms = Persistent physiological symptoms +attention_flags.yellow.pre_eclampsia_risk = Pre-eclampsia risk +attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman = Reduced or no fetal movement perceived by woman +attention_flags.yellow.rh_factor_negative = Rh factor negative +attention_flags.yellow.second_hand_exposure_to_tobacco_smoke = Second-hand exposure to tobacco smoke +attention_flags.yellow.surgeries = Surgeries +attention_flags.yellow.weight_category = Weight category +attention_flags.yes = Yes \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/attention_flags_in.properties b/opensrp-anc/src/main/resources/attention_flags_in.properties new file mode 100644 index 000000000..7ee18ec42 --- /dev/null +++ b/opensrp-anc/src/main/resources/attention_flags_in.properties @@ -0,0 +1,62 @@ +attention_flags.amniotic_fluid.increased = Bertambah +attention_flags.amniotic_fluid.reduced = Berkurang +attention_flags.red.abnormal_cardiac_exam = Pemeriksaan jantung abnormal +attention_flags.red.abnormal_fetal_heart_rate = Detak jantung janin abnormal +attention_flags.red.abnormal_pulse_rate = Denyut nadi abnormal +attention_flags.red.alcohol_substances_currently_using = Alkohol / zat yang saat ini digunakan +attention_flags.red.allergies = Alergi +attention_flags.red.amniotic_fluid = Air ketuban +attention_flags.red.anaemia_diagnosis = Diagnosis Anemia +attention_flags.red.asymptomatic_bacteriuria_asb_diagnosis = Diagnosis Bakteriuria Asimptomatic (ASB) +attention_flags.red.cervix_dilated = Serviks melebar +attention_flags.red.danger_sign = Tanda bahaya +attention_flags.red.diabetes_mellitus_dm_in_pregnancy_diagnosis = Diagnosis Diabetes Mellitus (DM) dalam kehamilan +attention_flags.red.fetal_presentation = Presentasi janin +attention_flags.red.fever = Demam +attention_flags.red.gestational_diabetes_mellitus_gdm_diagnosis = Diagnosis Gestational Diabetes Mellitus (GDM) +attention_flags.red.group_b_streptococcus_gbs_diagnosis = Diagnosis Grup B Streptococcus (GBS) +attention_flags.red.hematocrit_ht = Hematokrit (HT) +attention_flags.red.hepatitis_b_positive = Hepatitis B Positif +attention_flags.red.hepatitis_c_positive = Hepatitis C Positif +attention_flags.red.hiv_positive = HIV positif +attention_flags.red.hiv_risk = Risiko HIV +attention_flags.red.hypertension_and_symptom_of_severe_pre_eclampsia = Hipertensi dan gejala preeklamsia berat +attention_flags.red.hypertension_diagnosis = Diagnosis hipertensi +attention_flags.red.low_oximetry = Saturasi oksigen rendah +attention_flags.red.no_fetal_heartbeat_observed = Tidak ada detak jantung janin yang diamati +attention_flags.red.no_of_C_sections = Jumlah operasi sesar +attention_flags.red.no_of_fetuses = Jumlah janin +attention_flags.red.no_of_pregnancies_lost_ended = Jumlah kehamilan yang berakhir +attention_flags.red.no_of_stillbirths = Jumlah lahir mati +attention_flags.red.occupation_informal_employment_sex_worker = Pekerjaan\: Pekerjaan yang menempatkan wanita pada peningkatan risiko HIV (mis Pekerja seks) +attention_flags.red.placenta_location = Lokasi plasenta +attention_flags.red.platelet_count = Jumlah platelet +attention_flags.red.pre_eclampsia_diagnosis = Diagnosis preeklamsia +attention_flags.red.respiratory_distress = Gangguan pernapasan +attention_flags.red.severe_hypertension = Hipertensi berat +attention_flags.red.severe_pre_eclampsia_diagnosis = Diagnosis preeklamsia berat +attention_flags.red.syphilis_positive = Sifilis positif +attention_flags.red.tb_screening_positive = Skrining TB Positif +attention_flags.red.tobacco_user_or_recently_quit = Pengguna tembakau atau baru-baru ini berhenti +attention_flags.red.white_blood_cell_wbc_count = Hitung sel darah putih (leukosit) +attention_flags.red.woman_and_her_partner_do_not_use_condoms = Wanita dan pasangannya tidak menggunakan kondom +attention_flags.yellow.abnormal_abdominal_exam = Pemeriksaan abdominal abnormal +attention_flags.yellow.abnormal_breast_exam = Pemeriksaan payudara abnormal +attention_flags.yellow.abnormal_pelvic_exam = Pemeriksaan panggul abnormal +attention_flags.yellow.age = Usia +attention_flags.yellow.chronic_health_conditions = Kondisi kesehatan kronis +attention_flags.yellow.diabetes_risk = Risiko diabetes +attention_flags.yellow.gravida = Gravida +attention_flags.yellow.high_daily_consumption_of_caffeine = Konsumsi kafein sehari-hari yang tinggi +attention_flags.yellow.oedema_present = Edema hadir +attention_flags.yellow.parity = Paritas +attention_flags.yellow.past_alcohol_substances_used = Alkohol / zat yang digunakan sebelumnya +attention_flags.yellow.past_pregnancy_problems = Masalah kehamilan di masa lalu +attention_flags.yellow.persistent_physiological_symptoms = Gejala fisiologis yang persisten +attention_flags.yellow.pre_eclampsia_risk = Risiko preeklamsia +attention_flags.yellow.reduced_or_no_fetal_movement_perceived_by_woman = Gerakan janin yang dirasakan oleh wanita berkurang atau tidak ada +attention_flags.yellow.rh_factor_negative = Faktor Rh negatif +attention_flags.yellow.second_hand_exposure_to_tobacco_smoke = Perokok pasif +attention_flags.yellow.surgeries = Operasi +attention_flags.yellow.weight_category = Kategori berat +attention_flags.yes = Ya \ No newline at end of file From 9a542f861638d45475a0e201a523aee0b293610a Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 05:44:26 +0700 Subject: [PATCH 197/302] Modify attention flags dialog to use strings.xml --- opensrp-anc/src/main/res/layout/alert_dialog_attention_flag.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/res/layout/alert_dialog_attention_flag.xml b/opensrp-anc/src/main/res/layout/alert_dialog_attention_flag.xml index 93a52b7ec..1aad089cb 100644 --- a/opensrp-anc/src/main/res/layout/alert_dialog_attention_flag.xml +++ b/opensrp-anc/src/main/res/layout/alert_dialog_attention_flag.xml @@ -20,7 +20,7 @@ android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_centerVertical="true" - android:text="Attention Flags" + android:text="@string/attention_flags_title" android:textAppearance="@style/TextAppearance.AppCompat.Large" /> Date: Sun, 27 Nov 2022 05:47:18 +0700 Subject: [PATCH 198/302] Modify date/time strings in Bahasa Indonesia --- .../src/main/res/values-in-rID/strings.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index e07c7c871..f5944f7d2 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -203,16 +203,16 @@ - %1$dd - %1$dm - %1$dj - %1$dh - %1$dmg - %1$dmg %2$dh - %1$dbln - %1$dbln %2$dmg - %1$dthn - %1$dthn %2$dbln + %1$d detik + %1$d menit + %1$d jam + %1$d hari + %1$d minggu + %1$d minggu %2$d hari + %1$d bulan + %1$d bulan %2$d minggu + %1$d tahun + %1$d tahun %2$d bulan From ebb27c5aaf171cc810dd2ec547ab3862a70d028e Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sun, 27 Nov 2022 05:48:38 +0700 Subject: [PATCH 199/302] Change app name to 'Bunda' --- opensrp-anc/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 0fdabcfdc..ccf3c86ec 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ - WHO ANC + Bunda App Version: %1$s (built on %2$s) This is an outdated app. Please update to the latest version to continue. App Reset Status From 8f8b528f03c41e4c48e74bc5a93f68518b2ffa3a Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Mon, 28 Nov 2022 16:47:02 +0700 Subject: [PATCH 200/302] Apply opensrp_url value from local.properties file --- reference-app/build.gradle | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 8f732a3ae..b625b9da8 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -140,7 +140,6 @@ android { zipAlignEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rule.pro' - resValue "string", 'opensrp_url', '"https://ancs.dev.sid-indonesia.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -153,10 +152,22 @@ android { buildConfigField "int", "PULL_UNIQUE_IDS_MINUTES", '180' buildConfigField "int", "VIEW_SYNC_CONFIGURATIONS_MINUTES", '15' buildConfigField "int", "CLIENT_SETTINGS_SYNC_MINUTES", '15' + + if (project.rootProject.file("local.properties").exists()) { + Properties properties = new Properties() + properties.load(project.rootProject.file("local.properties").newDataInputStream()) + if (properties != null && properties.containsKey("oauth.client.id")) { + buildConfigField "String", "OAUTH_CLIENT_ID", properties["oauth.client.id"] + resValue "string", 'opensrp_url', properties["opensrp_url"] + } else { + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + } + } else { + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + } } debug { - resValue "string", 'opensrp_url', '"https://ancs.dev.sid-indonesia.org/opensrp/"' buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '250' buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '100' buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2' @@ -171,6 +182,19 @@ android { buildConfigField "int", "CLIENT_SETTINGS_SYNC_MINUTES", '15' testCoverageEnabled true signingConfig signingConfigs.debug + + if (project.rootProject.file("local.properties").exists()) { + Properties properties = new Properties() + properties.load(project.rootProject.file("local.properties").newDataInputStream()) + if (properties != null && properties.containsKey("oauth.client.id")) { + buildConfigField "String", "OAUTH_CLIENT_ID", properties["oauth.client.id"] + resValue "string", 'opensrp_url', properties["opensrp_url"] + } else { + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + } + } else { + resValue "string", 'opensrp_url', '"https://anc.labs.smartregister.org/opensrp/"' + } } } From f58b980f8cec416199d3a4e617b1200bbe1547e2 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Mon, 28 Nov 2022 17:34:57 +0700 Subject: [PATCH 201/302] Integrate strings.xml from opensrp-client-native-form library --- .../src/main/res/values-in-rID/strings.xml | 90 ++++++++++++++++++- opensrp-anc/src/main/res/values/strings.xml | 87 ++++++++++++++++++ 2 files changed, 176 insertions(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index f5944f7d2..fb1dcaff8 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -230,6 +230,94 @@ + + + + + + + + + Pengaturan + Rekam Lokasi + Simpan + Ketuk untuk Mengubah + Pilih Angka + Sebelum + Lanjut + Submit + Lanjut ke Step + Tampilkan gambar pada dialog + + + + + + Format tanggal salah + Format waktu salah + Konfirmasi Tutup Form + Yakin akan kembali? Data yang sudah dimasukkan akan terhapus. + Memuat Lokasi + Tidak bisa mendapatkan lokasi GPS + Menggunakan provider %s + Akurasi tidak diketahui + Label Info + Ikon Toaster + Harap Tunggu + Harap Tunggu + Membuat Grup Berulang + Menjalankan RDT Capture Widget + Jumlah grup berulang tidak boleh lebih dari %1$d + Jumlah grup berulang harus lebih dari %1$d + Jumlah grup berulang harus berupa angka integer + Masukkan jumlah dari item grup berulang + Terdapat %d error pada form. Silakan perbaiki sebelum di-submit. + Silakan perbaiki error pada form untuk melanjutkan. + GUID tidak ditemukan + Project id, user id atau module id tidak ditemukan. Gunakan SimprintsLibrary.init + Izin Ditolak + Aplikasi memerlukan izin ini untuk mengambil informasi perangkat yang diperlukan saat mengirimkan form. Tanpa izin ini, aplikasi tidak akan berfungsi dengan baik. Apakah Anda yakin ingin menolak izin ini? + Ditambah + Memuat + Memuat + Form sedang dimuat. Harap tunggu sejenak... + Membuat sub-form... + %s sudah ditambah sebelumnya + Sumber data eksternal tidak ditemukan atau diproses + Sedang menyiapkan langkah selanjutnya. Harap tunggu sejenak... + Klik tombol ✅ untuk menyiapkan pertanyaan + Error + Terjadi error saat memuat form. + Pilih salah satu opsi + Pastikan opsi radio button sudah dipilih + Info ibu tidak lengkap + + + + + + Get Started + Unable to receive any result + Measure the blood pressure using OptiBP + No fields defined to populate BP values + + + + + + Lintang: %s + Bujur: %s + Ketinggian: %s + Akurasi: %s + Item + repeating_group_label + Perhatian + Ikon info + Tombol Edit + Ikon info ekstra + + + @@ -269,7 +357,7 @@ Pergi ke gambar Sisipkan berkas Lanjutkan - Sunting + Edit diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index ccf3c86ec..3802c80bc 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -229,6 +229,93 @@ / + + + + + + + + + Settings + Record Location + Save + Tap to Change + Select a Number + Previous + Next + Submit + Go to Step + Shows image on dialog + + + + + + Badly formed date + Badly formed time + Confirm Form Close + Are you sure you want to go back? All data you have entered in this form will be cleared. + Loading Location + Could not get your GPS location + Using %s provider + Accuracy is Unknown + Info Label + The toaster icon + Please Wait + Please Wait + Creating Repeating Group + Launching RDT capture widget + The number of repeating groups cannot be greater than %1$d + The number of repeating groups must greater than %1$d + The number of repeating groups must be an integer value + Enter # of repeating group items + Found %d error(s) in the form. Please correct them to submit. + Please correct the error(s) in the form to proceed. + GUID not found + Project id, user id or module id were not found. Please use SimprintsLibrary.init + Permission Denied + The app needs this permission to capture the device information required when submitting forms. Without this permission the app will not function properly. Are you sure you want to deny this permission? + Added + Loading + Loading + Please wait as we load your form... + Loading sub forms... + %s is already added + External DataSource not found or processed + Please wait as we prepare the next step. + Please click the ✅ button to generate the questions + Error + Sorry, a fatal error occurred when loading the form. Please contact a developer for further assistance. + Please select one option + Please make sure you have set the radio button options + Missing client info + + + + + + Get Started + Unable to receive any result + Measure the blood pressure using OptiBP + No fields defined to populate BP values + + + + + + Latitude: %s + Longitude: %s + Altitude: %s + Accuracy: %s + Item + repeating_group_label + The extra info icon + Edit Button + Info icon + Attention + + From bb9f2d31568d50e5f6bca7120c978fac0a68ef6c Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Mon, 28 Nov 2022 18:21:37 +0700 Subject: [PATCH 202/302] Upgrade version (patch) to 1.6.16 --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index b625b9da8..1cb65e82f 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -29,7 +29,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 15 +ext.versionPatch = 16 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From a74607bc93612c756bc95f192a9f5fba72cf606e Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Tue, 29 Nov 2022 07:00:27 +0700 Subject: [PATCH 203/302] Customize registration form fields --- .../main/assets/json.form/anc_register.json | 525 ++++++++++++------ ...rules.yml => anc_register_calculation.yml} | 14 +- .../assets/rule/anc_register_relevance.yml | 42 ++ .../anc/library/constants/FormConstants.java | 19 + .../main/resources/anc_register.properties | 93 ++-- 5 files changed, 480 insertions(+), 213 deletions(-) rename opensrp-anc/src/main/assets/rule/{registration_calculation_rules.yml => anc_register_calculation.yml} (100%) create mode 100644 opensrp-anc/src/main/assets/rule/anc_register_relevance.yml create mode 100644 opensrp-anc/src/main/java/org/smartregister/anc/library/constants/FormConstants.java diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 01cfc779d..467167910 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -51,16 +51,27 @@ "value": "" } }, + "properties_file_name": "anc_register", "step1": { "title": "{{anc_register.step1.title}}", "fields": [ + + { + "key": "spacer_id", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "20sp" + }, + { "key": "wom_image", "openmrs_entity_parent": "", "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity_id": "wom_image", "type": "choose_image", - "uploadButtonText": "Take a picture of the woman" + "uploadButtonText": "{{anc_register.step1.wom_image.button_label}}" }, { "key": "anc_id", @@ -71,7 +82,7 @@ "barcode_type": "qrcode", "hint": "{{anc_register.step1.anc_id.hint}}", "value": "0", - "scanButtonText": "Scan QR Code", + "scanButtonText": "{{anc_register.step1.anc_id.qrcode_button_label}}", "v_numeric": { "value": "true", "err": "{{anc_register.step1.anc_id.v_numeric.err}}" @@ -81,6 +92,127 @@ "err": "{{anc_register.step1.anc_id.v_required.err}}" } }, + + { + "key": "spacer_identity", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "30sp" + }, + { + "key": "group_identity", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_register.step1.group_identity.text}}", + "text_color": "#228CC6", + "text_size": "16px" + }, + { + "key": "uid", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_register.step1.uid.hint}}", + "edit_type": "name", + "v_required": { + "value": "true", + "err": "{{anc_register.step1.uid.v_required.err}}" + }, + "v_regex": { + "value": "[0-9]{16}", + "err": "{{anc_register.step1.uid.v_length.err}}" + }, + "v_max_length": { + "value": "16", + "err": "{{anc_register.step1.uid.v_length.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } + } + } + }, + { + "key": "uid_unknown", + "openmrs_entity_parent": "", + "openmrs_entity": "person", + "openmrs_entity_id": "", + "type": "check_box", + "options": [ + { + "key": "uid_unknown", + "text": "{{anc_register.step1.uid_unknown.options.uid_unknown.text}}", + "text_size": "18px", + "value": "false" + } + ] + }, + { + "key": "uid_unknown_reason", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "label": "{{anc_register.step1.uid_unknown_reason.label}}", + "label_text_style": "bold", + "label_info_text": "{{anc_register.step1.uid_unknown_reason.label_info_text}}", + "type": "native_radio", + "options": [ + { + "key": "dont_have", + "text": "{{anc_register.step1.uid_unknown_reason.options.dont_have.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "lost", + "text": "{{anc_register.step1.uid_unknown_reason.options.lost.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "privacy", + "text": "{{anc_register.step1.uid_unknown_reason.options.privacy.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + } + ], + "v_required": { + "value": "true", + "err": "{{anc_register.step1.uid_unknown_reason.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } + } + } + }, + { + "key": "ssn", + "openmrs_entity_parent": "", + "openmrs_entity": "person", + "openmrs_entity_id": "ssn", + "type": "edit_text", + "hint": "{{anc_register.step1.ssn.hint}}", + "edit_type": "name", + "v_regex": { + "value": "[0-9]{11,13}", + "err": "{{anc_register.step1.ssn.v_length.err}}" + }, + "v_max_length": { + "value": "13", + "err": "{{anc_register.step1.ssn.v_length.err}}" + } + }, { "key": "first_name", "openmrs_entity_parent": "", @@ -115,13 +247,22 @@ "err": "{{anc_register.step1.last_name.v_regex.err}}" } }, + { - "key": "gender", + "key": "spacer_age_dob", "openmrs_entity_parent": "", - "openmrs_entity": "person", - "openmrs_entity_id": "gender", - "type": "hidden", - "value": "F" + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "30sp" + }, + { + "key": "group_age_dob", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_register.step1.group_age_dob.text}}", + "text_color": "#228CC6", + "text_size": "16px" }, { "key": "dob", @@ -133,22 +274,7 @@ "calculation": { "rules-engine": { "ex-rules": { - "rules-file": "registration_calculation_rules.yml" - } - } - } - }, - { - "key": "dob_calculated", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "value": "", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "registration_calculation_rules.yml" + "rules-file": "anc_register_calculation.yml" } } } @@ -171,14 +297,10 @@ "err": "{{anc_register.step1.dob_entered.v_required.err}}" }, "relevance": { - "step1:dob_unknown": { - "ex-checkbox": [ - { - "not": [ - "dob_unknown" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } } } }, @@ -193,43 +315,10 @@ "key": "dob_unknown", "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", "text_size": "18px", - "value": "false", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "" + "value": "false" } ] }, - { - "key": "age", - "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "age", - "type": "hidden", - "value": "", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "registration_calculation_rules.yml" - } - } - } - }, - { - "key": "age_calculated", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "value": "", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "registration_calculation_rules.yml" - } - } - } - }, { "key": "age_entered", "openmrs_entity_parent": "", @@ -243,21 +332,17 @@ }, "v_min": { "value": "10", - "err": "Age must be equal to or greater than 10" + "err": "{{anc_register.step1.age_entered.v_min.err}}" }, "v_max": { "value": "49", - "err": "Age must be equal or less than 49" + "err": "{{anc_register.step1.age_entered.v_max.err}}" }, "relevance": { - "step1:dob_unknown": { - "ex-checkbox": [ - { - "and": [ - "dob_unknown" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } } }, "v_required": { @@ -265,6 +350,23 @@ "err": "{{anc_register.step1.age_entered.v_required.err}}" } }, + + { + "key": "spacer_contact", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "30sp" + }, + { + "key": "group_contact", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_register.step1.group_contact.text}}", + "text_color": "#228CC6", + "text_size": "16px" + }, { "key": "home_address", "openmrs_entity_parent": "", @@ -295,36 +397,73 @@ }, "v_max_length": { "value": "12", - "err": "Phone number input cannot exceed 12 Characters" + "err": "{{anc_register.step1.phone_number.v_max_length.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } + } } }, { - "key": "reminders", + "key": "phone_number_unknown", "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "reminders", + "openmrs_entity": "person", + "openmrs_entity_id": "", + "type": "check_box", + "options": [ + { + "key": "phone_number_unknown", + "text": "{{anc_register.step1.phone_number_unknown.options.phone_number_unknown.text}}", + "text_size": "18px", + "value": "false" + } + ] + }, + { + "key": "phone_number_unknown_reason", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "label": "{{anc_register.step1.phone_number_unknown_reason.label}}", + "label_text_style": "bold", + "label_info_text": "{{anc_register.step1.phone_number_unknown_reason.label_info_text}}", "type": "native_radio", - "label": "{{anc_register.step1.reminders.label}}", - "label_info_text": "{{anc_register.step1.reminders.label_info_text}}", - "label_text_style": "normal", - "text_color": "#000000", "options": [ { - "key": "yes", - "text": "{{anc_register.step1.reminders.options.yes.text}}", + "key": "dont_have", + "text": "{{anc_register.step1.phone_number_unknown_reason.options.dont_have.text}}", + "openmrs_entity_parent": "", "openmrs_entity": "", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" }, { - "key": "no", - "text": "{{anc_register.step1.reminders.options.no.text}}", + "key": "lost", + "text": "{{anc_register.step1.phone_number_unknown_reason.options.lost.text}}", + "openmrs_entity_parent": "", "openmrs_entity": "", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "openmrs_entity_id": "" + }, + { + "key": "privacy", + "text": "{{anc_register.step1.phone_number_unknown_reason.options.privacy.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" } ], "v_required": { - "value": true, - "err": "{{anc_register.step1.reminders.v_required.err}}" + "value": "true", + "err": "{{anc_register.step1.phone_number_unknown_reason.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_relevance.yml" + } + } } }, { @@ -352,8 +491,20 @@ "v_numeric": { "value": "true", "err": "{{anc_register.step1.alt_phone_number.v_numeric.err}}" + }, + "v_max_length": { + "value": "12", + "err": "{{anc_register.step1.alt_phone_number.v_max_length.err}}" } }, + { + "key": "spacer_cohabitants", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "20sp" + }, { "key": "cohabitants", "openmrs_entity_parent": "", @@ -361,6 +512,7 @@ "openmrs_entity_id": "cohabitants", "label": "{{anc_register.step1.cohabitants.label}}", "label_info_text": "{{anc_register.step1.cohabitants.label_info_text}}", + "label_text_style": "bold", "type": "check_box", "exclusive": [ "no_one" @@ -369,7 +521,6 @@ { "key": "parents", "text": "{{anc_register.step1.cohabitants.options.parents.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -377,7 +528,6 @@ { "key": "siblings", "text": "{{anc_register.step1.cohabitants.options.siblings.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -385,7 +535,6 @@ { "key": "extended_family", "text": "{{anc_register.step1.cohabitants.options.extended_family.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -393,7 +542,6 @@ { "key": "partner", "text": "{{anc_register.step1.cohabitants.options.partner.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -401,7 +549,6 @@ { "key": "friends", "text": "{{anc_register.step1.cohabitants.options.friends.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" @@ -409,148 +556,176 @@ { "key": "no_one", "text": "{{anc_register.step1.cohabitants.options.no_one.text}}", - "text_size": "18px", "openmrs_entity_parent": "", "openmrs_entity": "", "openmrs_entity_id": "" } ] }, + { - "key": "next_contact", + "key": "spacer_additional", "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "next_contact", - "type": "hidden", - "value": "" + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "30sp" }, { - "key": "edd", + "key": "group_additional", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_register.step1.group_additional.text}}", + "text_color": "#228CC6", + "text_size": "16px" + }, + { + "key": "reminders", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "edd", + "openmrs_entity_id": "reminders", + "type": "native_radio", + "label": "{{anc_register.step1.reminders.label}}", + "label_info_text": "{{anc_register.step1.reminders.label_info_text}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_register.step1.reminders.options.yes.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, + { + "key": "no", + "text": "{{anc_register.step1.reminders.options.no.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } + ], + "v_required": { + "value": true, + "err": "{{anc_register.step1.reminders.v_required.err}}" + } + }, + + { + "key": "gender", + "openmrs_entity_parent": "", + "openmrs_entity": "person", + "openmrs_entity_id": "gender", "type": "hidden", - "value": "" + "value": "F" }, { - "key": "next_contact_date", + "key": "age", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "next_contact_date", + "openmrs_entity_id": "age", "type": "hidden", - "value": "" + "value": "", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_calculation.yml" + } + } + } }, { - "key": "contact_status", + "key": "age_calculated", "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "contact_status", + "openmrs_entity": "", + "openmrs_entity_id": "", "type": "hidden", - "value": "" + "value": "", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_calculation.yml" + } + } + } }, { - "key": "previous_contact_status", + "key": "dob_calculated", "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "contact_status", + "openmrs_entity": "", + "openmrs_entity_id": "", "type": "hidden", - "value": "" + "value": "", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "anc_register_calculation.yml" + } + } + } }, { - "key": "red_flag_count", + "key": "edd", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "red_flag_count", + "openmrs_entity_id": "edd", "type": "hidden", "value": "" }, { - "key": "yellow_flag_count", + "key": "next_contact", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "yellow_flag_count", + "openmrs_entity_id": "next_contact", "type": "hidden", "value": "" }, { - "key": "last_contact_record_date", + "key": "next_contact_date", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "last_contact_record_date", + "openmrs_entity_id": "next_contact_date", "type": "hidden", "value": "" }, { - "key": "province", + "key": "contact_status", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "province", - "type": "spinner", - "sub_type": "location", - "hint": "Select Province", - "options" : [], - "v_required": { - "value": "true", - "err": "Please Select" - } + "openmrs_entity_id": "contact_status", + "type": "hidden", + "value": "" }, { - "key": "district", + "key": "previous_contact_status", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "district", - "type": "spinner", - "sub_type": "location", - "hint": "Select District", - "options" : [], - "v_required": { - "value": "true", - "err": "Please Select" - } + "openmrs_entity_id": "contact_status", + "type": "hidden", + "value": "" }, { - "key": "subdistrict", + "key": "last_contact_record_date", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "subdistrict", - "type": "spinner", - "sub_type": "location", - "hint": "Select Sub-District", - "options" : [], - "v_required": { - "value": "true", - "err": "Please Select" - } + "openmrs_entity_id": "last_contact_record_date", + "type": "hidden", + "value": "" }, { - "key": "health_facility", + "key": "red_flag_count", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "health_facility", - "type": "spinner", - "sub_type": "location", - "hint": "Select Health Facility", - "options" : [], - "v_required": { - "value": "true", - "err": "Please Select" - } + "openmrs_entity_id": "red_flag_count", + "type": "hidden", + "value": "" }, { - "key": "village", + "key": "yellow_flag_count", "openmrs_entity_parent": "", "openmrs_entity": "person_attribute", - "openmrs_entity_id": "village", - "type": "spinner", - "sub_type": "location", - "hint": "Select Village", - "options" : [], - "v_required": { - "value": "true", - "err": "Please Select" - } + "openmrs_entity_id": "yellow_flag_count", + "type": "hidden", + "value": "" } + ] - }, - "properties_file_name": "anc_register" + } } diff --git a/opensrp-anc/src/main/assets/rule/registration_calculation_rules.yml b/opensrp-anc/src/main/assets/rule/anc_register_calculation.yml similarity index 100% rename from opensrp-anc/src/main/assets/rule/registration_calculation_rules.yml rename to opensrp-anc/src/main/assets/rule/anc_register_calculation.yml index a1bd92e6c..d8131da7e 100644 --- a/opensrp-anc/src/main/assets/rule/registration_calculation_rules.yml +++ b/opensrp-anc/src/main/assets/rule/anc_register_calculation.yml @@ -1,11 +1,4 @@ --- -name: step1_age_calculated -description: Calculated Age -priority: 1 -condition: "step1_dob_entered != ''" -actions: - - 'calculation = helper.getDifferenceDays(step1_dob_entered) / 365.25' ---- name: step1_dob_calculated description: Calculated D.O.B priority: 1 @@ -13,6 +6,13 @@ condition: "step1_age_entered != ''" actions: - 'calculation = helper.getDOBFromAge(step1_age_entered)' --- +name: step1_age_calculated +description: Calculated Age +priority: 1 +condition: "step1_dob_entered != ''" +actions: + - 'calculation = helper.getDifferenceDays(step1_dob_entered) / 365.25' +--- name: step1_dob description: Final calculated DOB priority: 1 diff --git a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml new file mode 100644 index 000000000..855208946 --- /dev/null +++ b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml @@ -0,0 +1,42 @@ +--- +name: step1_uid +description: Hide "uid" input field if "uid_unknown" option is selected. +priority: 1 +condition: "(!step1_uid_unknown.contains('uid_unknown'))" +actions: + - "isRelevant = true" +--- +name: step1_uid_unknown_reason +description: Show "unknown_uid_reason" input field if "uid_unknown" option is selected. +priority: 1 +condition: "(step1_uid_unknown.contains('uid_unknown'))" +actions: + - "isRelevant = true" +--- +name: step1_dob_entered +description: Hide "dob_entered" input field if "dob_unknown" option is selected. +priority: 1 +condition: "(!step1_dob_unknown.contains('dob_unknown'))" +actions: + - "isRelevant = true" +--- +name: step1_age_entered +description: Show "age_entered" input field if "dob_unknown" option is selected. +priority: 1 +condition: "(step1_dob_unknown.contains('dob_unknown'))" +actions: + - "isRelevant = true" +--- +name: step1_phone_number +description: Hide "phone_number" input field if "phone_number_unknown" option is selected. +priority: 1 +condition: "(!step1_phone_number_unknown.contains('phone_number_unknown'))" +actions: + - "isRelevant = true" +--- +name: step1_phone_number_unknown_reason +description: Show "unknown_uid_reason" input field if "uid_unknown" option is selected. +priority: 1 +condition: "(step1_phone_number_unknown.contains('phone_number_unknown'))" +actions: + - "isRelevant = true"s \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/FormConstants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/FormConstants.java new file mode 100644 index 000000000..4a8e6a564 --- /dev/null +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/FormConstants.java @@ -0,0 +1,19 @@ +package org.smartregister.anc.library.constants; + +public class FormConstants { + + public final static class Client { + + // Identifiers + public static final String IDENTIFIER_UID = "uid"; + public static final String IDENTIFIER_SSN = "ssn"; + + // Attributes + public static final String ATTRIBUTE_UID_UNKNOWN = "uid_unknown"; + public static final String ATTRIBUTE_UID_UNKNOWN_REASON = "uid_unknown_reason"; + public static final String ATTRIBUTE_PHONE_UNKNOWN = "phone_number_unknown"; + public static final String ATTRIBUTE_PHONE_UNKNOWN_REASON = "phone_number_unknown_reason"; + + } + +} diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index 49c13c6c3..d173bb115 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -1,42 +1,73 @@ -anc_register.step1.dob_unknown.options.dob_unknown.text = DOB unknown? -anc_register.step1.reminders.options.no.text = No -anc_register.step1.reminders.label = Woman wants to receive reminders during pregnancy -anc_register.step1.dob_entered.v_required.err = Please enter the date of birth -anc_register.step1.home_address.hint = Home address -anc_register.step1.village_address.hint = Village address -anc_register.step1.alt_name.v_regex.err = Please enter a valid VHT name -anc_register.step1.anc_id.hint = ANC ID -anc_register.step1.alt_phone_number.v_numeric.err = Phone number must be numeric -anc_register.step1.age_entered.v_numeric.err = Age must be a number -anc_register.step1.phone_number.hint = Mobile phone number -anc_register.step1.last_name.v_required.err = Please enter the last name -anc_register.step1.last_name.v_regex.err = Please enter a valid name -anc_register.step1.first_name.v_required.err = Please enter the first name -anc_register.step1.dob_entered.hint = Date of birth (DOB) -anc_register.step1.age_entered.hint = Age -anc_register.step1.reminders.label_info_text = Does she want to receive reminders for care and messages regarding her health throughout her pregnancy? anc_register.step1.title = ANC Registration + +anc_register.step1.wom_image.button_label = Take a picture of the woman +anc_register.step1.anc_id.hint = ANC ID +anc_register.step1.anc_id.qrcode_button_label = Scan QR Code anc_register.step1.anc_id.v_numeric.err = Please enter a valid ANC ID -anc_register.step1.alt_name.hint = Alternate contact name -anc_register.step1.home_address.v_required.err = Please enter the woman's home address +anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID + +anc_register.step1.group_identity.text = Woman's Identity +anc_register.step1.uid.hint = National ID Number +anc_register.step1.uid.v_required.err = Please enter national ID number +anc_register.step1.uid.v_length.err = Must be exactly 16 digits of number +anc_register.step1.uid_unknown.options.uid_unknown.text = Cannot record ID Number +anc_register.step1.uid_unknown_reason.label = Select a Reason +anc_register.step1.uid_unknown_reason.label_info_text = Please select a reason why the mother's ID number cannot be recorded +anc_register.step1.uid_unknown_reason.options.dont_have.text = Do not have +anc_register.step1.uid_unknown_reason.options.lost.text = Lost +anc_register.step1.uid_unknown_reason.options.privacy.text = Privacy +anc_register.step1.uid_unknown_reason.v_required.err = Reason must be selected +anc_register.step1.ssn.hint = Social Security Number +anc_register.step1.ssn.v_length.err = Must be 11 to 13 digits of number anc_register.step1.first_name.hint = First name -anc_register.step1.middle_name.hint = Middle name -anc_register.step1.alt_phone_number.hint = Alternate contact phone number -anc_register.step1.reminders.v_required.err = Please select whether the woman has agreed to receiving reminder notifications anc_register.step1.first_name.v_regex.err = Please enter a valid name -anc_register.step1.reminders.options.yes.text = Yes -anc_register.step1.phone_number.v_numeric.err = Phone number must be numeric -anc_register.step1.anc_id.v_required.err = Please enter the Woman's ANC ID +anc_register.step1.first_name.v_required.err = Please enter the first name anc_register.step1.last_name.hint = Last name +anc_register.step1.last_name.v_regex.err = Please enter a valid name +anc_register.step1.last_name.v_required.err = Please enter the last name + +anc_register.step1.group_age_dob.text = Age & Date of Birth +anc_register.step1.dob_entered.duration.label = Age +anc_register.step1.dob_entered.hint = Date of birth (DOB) +anc_register.step1.dob_entered.v_required.err = Please enter the date of birth +anc_register.step1.dob_unknown.options.dob_unknown.text = DOB unknown? +anc_register.step1.age_entered.hint = Age +anc_register.step1.age_entered.v_numeric.err = Age must be a number anc_register.step1.age_entered.v_required.err = Please enter the woman's age +anc_register.step1.age_entered.v_min.err = Age must be equal to or greater than 10 +anc_register.step1.age_entered.v_max.err = Age must be equal or less than 49 + +anc_register.step1.group_contact.text = Contact Information +anc_register.step1.home_address.hint = Home address +anc_register.step1.home_address.v_required.err = Please enter the woman's home address +anc_register.step1.phone_number.hint = Mobile phone number +anc_register.step1.phone_number.v_numeric.err = Phone number must be numeric anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number -anc_register.step1.dob_entered.duration.label = Age -anc_register.step1.cohabitants.options.no_one.text = No one -anc_register.step1.dob_entered.duration.label = Age +anc_register.step1.phone_number.v_max_length.err = Phone number input cannot exceed 12 characters +anc_register.step1.phone_number_unknown.options.phone_number_unknown.text = Cannot record Phone Number +anc_register.step1.phone_number_unknown_reason.label = Select a Reason +anc_register.step1.phone_number_unknown_reason.label_info_text = Please select a reason why the mother's phone number cannot be recorded +anc_register.step1.phone_number_unknown_reason.options.dont_have.text = Do not have +anc_register.step1.phone_number_unknown_reason.options.lost.text = Lost +anc_register.step1.phone_number_unknown_reason.options.privacy.text = Privacy +anc_register.step1.phone_number_unknown_reason.v_required.err = Reason must be selected +anc_register.step1.alt_name.hint = Alternate contact name +anc_register.step1.alt_name.v_regex.err = Please enter a valid name +anc_register.step1.alt_phone_number.hint = Alternate contact phone number +anc_register.step1.alt_phone_number.v_numeric.err = Phone number must be numeric +anc_register.step1.alt_phone_number.v_max_length.err = Phone number input cannot exceed 12 characters anc_register.step1.cohabitants.label = Co-habitants anc_register.step1.cohabitants.label_info_text = Who does the client live with? It is important to know whether client lives with parents, other family members, a partner, friends, etc. -anc_register.step1.cohabitants.options.parents.text = Parents -anc_register.step1.cohabitants.options.siblings.text = Siblings anc_register.step1.cohabitants.options.extended_family.text = Extended Family +anc_register.step1.cohabitants.options.friends.text = Friends +anc_register.step1.cohabitants.options.no_one.text = No one +anc_register.step1.cohabitants.options.parents.text = Parents anc_register.step1.cohabitants.options.partner.text = Partner -anc_register.step1.cohabitants.options.friends.text = Friends \ No newline at end of file +anc_register.step1.cohabitants.options.siblings.text = Siblings + +anc_register.step1.group_additional.text = Additional +anc_register.step1.reminders.label = Woman wants to receive reminders during pregnancy +anc_register.step1.reminders.label_info_text = Does she want to receive reminders for care and messages regarding her health throughout her pregnancy? +anc_register.step1.reminders.options.no.text = No +anc_register.step1.reminders.options.yes.text = Yes +anc_register.step1.reminders.v_required.err = Please select whether the woman has agreed to receiving reminder notifications \ No newline at end of file From 732e81267598c9a7596b19d24e40675e79cfe079 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Tue, 29 Nov 2022 07:11:33 +0700 Subject: [PATCH 204/302] Fix typo in registration relevance rules file --- opensrp-anc/src/main/assets/rule/anc_register_relevance.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml index 855208946..2f91dfe49 100644 --- a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml +++ b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml @@ -39,4 +39,4 @@ description: Show "unknown_uid_reason" input field if "uid_unknown" option is se priority: 1 condition: "(step1_phone_number_unknown.contains('phone_number_unknown'))" actions: - - "isRelevant = true"s \ No newline at end of file + - "isRelevant = true" \ No newline at end of file From cb6a178ac1fa68f107278162d23ccf89a84ace52 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Tue, 29 Nov 2022 17:00:34 +0700 Subject: [PATCH 205/302] Add openmrs_entity to uid field and fix RegEx on ssn field --- opensrp-anc/src/main/assets/json.form/anc_register.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 467167910..672914177 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -112,8 +112,8 @@ { "key": "uid", "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity": "person_identifier", + "openmrs_entity_id": "uid", "type": "edit_text", "hint": "{{anc_register.step1.uid.hint}}", "edit_type": "name", @@ -205,7 +205,7 @@ "hint": "{{anc_register.step1.ssn.hint}}", "edit_type": "name", "v_regex": { - "value": "[0-9]{11,13}", + "value": "^$[0-9]{11,13}", "err": "{{anc_register.step1.ssn.v_length.err}}" }, "v_max_length": { From 60716aef27813d10e37ce734fdbec8c64b0ab5bd Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Wed, 30 Nov 2022 01:32:57 +0700 Subject: [PATCH 206/302] ANC Registration Form translation to Bahasa Indonesia --- .../src/main/assets/ec_client_fields.json | 464 ++-- .../main/assets/json.form/anc_register.json | 28 +- .../assets/rule/anc_register_relevance.yml | 10 +- .../activity/BaseHomeRegisterActivity.java | 1008 ++++---- .../interactor/RegisterInteractor.java | 598 ++--- .../library/presenter/RegisterPresenter.java | 380 +-- .../library/provider/RegisterProvider.java | 564 ++--- .../library/repository/PatientRepository.java | 394 ++-- .../sync/BaseAncClientProcessorForJava.java | 600 ++--- .../library/task/FetchProfileDataTask.java | 76 +- .../anc/library/util/ANCJsonFormUtils.java | 2052 ++++++++--------- .../src/main/res/values-in-rID/strings.xml | 2 +- .../main/resources/anc_register.properties | 4 +- .../main/resources/anc_register_in.properties | 73 + 14 files changed, 3163 insertions(+), 3090 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_register_in.properties diff --git a/opensrp-anc/src/main/assets/ec_client_fields.json b/opensrp-anc/src/main/assets/ec_client_fields.json index e6cc6e745..2f0f4ff81 100644 --- a/opensrp-anc/src/main/assets/ec_client_fields.json +++ b/opensrp-anc/src/main/assets/ec_client_fields.json @@ -1,233 +1,233 @@ -{ - "bindobjects": [ - { - "name": "ec_mother_details", - "columns": [ - { - "column_name": "base_entity_id", - "type": "Client", - "json_mapping": { - "field": "baseEntityId" - } - }, - { - "column_name": "phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.phone_number" - } - }, - { - "column_name": "alt_name", - "type": "Event", - "json_mapping": { - "field": "attributes.alt_name" - } - }, - { - "column_name": "alt_phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.alt_phone_number" - } - }, - { - "column_name": "reminders", - "type": "Event", - "json_mapping": { - "field": "obs.fieldCode", - "concept": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - }, - { - "column_name": "cohabitants", - "type": "Client", - "json_mapping": { - "field": "attributes.cohabitants" - } - }, - { - "column_name": "alt_name", - "type": "Event", - "json_mapping": { - "field": "obs.fieldCode", - "concept": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - }, - { - "column_name": "alt_phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.alt_phone_number" - } - }, - { - "column_name": "edd", - "type": "Client", - "json_mapping": { - "field": "attributes.edd" - } - }, - { - "column_name": "red_flag_count", - "type": "Client", - "json_mapping": { - "field": "attributes.red_flag_count" - } - }, - { - "column_name": "yellow_flag_count", - "type": "Client", - "json_mapping": { - "field": "attributes.yellow_flag_count" - } - }, - { - "column_name": "contact_status", - "type": "Client", - "json_mapping": { - "field": "attributes.contact_status" - } - }, - { - "column_name": "previous_contact_status", - "type": "Client", - "json_mapping": { - "field": "attributes.previous_contact_status" - } - }, - { - "column_name": "next_contact", - "type": "Client", - "json_mapping": { - "field": "attributes.next_contact" - } - }, - { - "column_name": "next_contact_date", - "type": "Client", - "json_mapping": { - "field": "attributes.next_contact_date" - } - }, - { - "column_name": "last_contact_record_date", - "type": "Client", - "json_mapping": { - "field": "attributes.last_contact_record_date" - } - }, - { - "column_name": "province", - "type": "Client", - "json_mapping": { - "field": "attributes.province" - } - }, - { - "column_name": "district", - "type": "Client", - "json_mapping": { - "field": "attributes.district" - } - }, - { - "column_name": "subdistrict", - "type": "Client", - "json_mapping": { - "field": "attributes.subdistrict" - } - }, - { - "column_name": "health_facility", - "type": "Client", - "json_mapping": { - "field": "attributes.health_facility" - } - }, - { - "column_name": "village", - "type": "Client", - "json_mapping": { - "field": "attributes.village" - } - }, - { - "column_name": "visit_start_date", - "type": "Client", - "json_mapping": { - "field": "attributes.visit_start_date" - } - } - ] - }, - { - "name": "ec_client", - "columns": [ - { - "column_name": "base_entity_id", - "type": "Client", - "json_mapping": { - "field": "baseEntityId" - } - }, - { - "column_name": "register_id", - "type": "Client", - "json_mapping": { - "field": "identifiers.ANC_ID" - } - }, - { - "column_name": "first_name", - "type": "Client", - "json_mapping": { - "field": "firstName" - } - }, - { - "column_name": "last_name", - "type": "Client", - "json_mapping": { - "field": "lastName" - } - }, - { - "column_name": "dob", - "type": "Client", - "json_mapping": { - "field": "birthdate" - } - }, - { - "column_name": "dob_unknown", - "type": "Client", - "json_mapping": { - "field": "birthdateApprox" - } - }, - { - "column_name": "last_interacted_with", - "type": "Event", - "json_mapping": { - "field": "version" - } - }, - { - "column_name": "date_removed", - "type": "Client", - "json_mapping": { - "field": "attributes.date_removed" - } - }, - { - "column_name": "home_address", - "type": "Client", - "json_mapping": { - "field": "addresses.address2" - } - } - ] - } - ] +{ + "bindobjects": [ + { + "name": "ec_mother_details", + "columns": [ + { + "column_name": "base_entity_id", + "type": "Client", + "json_mapping": { + "field": "baseEntityId" + } + }, + { + "column_name": "phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.phone_number" + } + }, + { + "column_name": "alt_name", + "type": "Event", + "json_mapping": { + "field": "attributes.alt_name" + } + }, + { + "column_name": "alt_phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.alt_phone_number" + } + }, + { + "column_name": "reminders", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "cohabitants", + "type": "Client", + "json_mapping": { + "field": "attributes.cohabitants" + } + }, + { + "column_name": "alt_name", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "alt_phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.alt_phone_number" + } + }, + { + "column_name": "edd", + "type": "Client", + "json_mapping": { + "field": "attributes.edd" + } + }, + { + "column_name": "red_flag_count", + "type": "Client", + "json_mapping": { + "field": "attributes.red_flag_count" + } + }, + { + "column_name": "yellow_flag_count", + "type": "Client", + "json_mapping": { + "field": "attributes.yellow_flag_count" + } + }, + { + "column_name": "contact_status", + "type": "Client", + "json_mapping": { + "field": "attributes.contact_status" + } + }, + { + "column_name": "previous_contact_status", + "type": "Client", + "json_mapping": { + "field": "attributes.previous_contact_status" + } + }, + { + "column_name": "next_contact", + "type": "Client", + "json_mapping": { + "field": "attributes.next_contact" + } + }, + { + "column_name": "next_contact_date", + "type": "Client", + "json_mapping": { + "field": "attributes.next_contact_date" + } + }, + { + "column_name": "last_contact_record_date", + "type": "Client", + "json_mapping": { + "field": "attributes.last_contact_record_date" + } + }, + { + "column_name": "province", + "type": "Client", + "json_mapping": { + "field": "attributes.province" + } + }, + { + "column_name": "district", + "type": "Client", + "json_mapping": { + "field": "attributes.district" + } + }, + { + "column_name": "subdistrict", + "type": "Client", + "json_mapping": { + "field": "attributes.subdistrict" + } + }, + { + "column_name": "health_facility", + "type": "Client", + "json_mapping": { + "field": "attributes.health_facility" + } + }, + { + "column_name": "village", + "type": "Client", + "json_mapping": { + "field": "attributes.village" + } + }, + { + "column_name": "visit_start_date", + "type": "Client", + "json_mapping": { + "field": "attributes.visit_start_date" + } + } + ] + }, + { + "name": "ec_client", + "columns": [ + { + "column_name": "base_entity_id", + "type": "Client", + "json_mapping": { + "field": "baseEntityId" + } + }, + { + "column_name": "register_id", + "type": "Client", + "json_mapping": { + "field": "identifiers.ANC_ID" + } + }, + { + "column_name": "first_name", + "type": "Client", + "json_mapping": { + "field": "firstName" + } + }, + { + "column_name": "last_name", + "type": "Client", + "json_mapping": { + "field": "lastName" + } + }, + { + "column_name": "dob", + "type": "Client", + "json_mapping": { + "field": "birthdate" + } + }, + { + "column_name": "dob_unknown", + "type": "Client", + "json_mapping": { + "field": "birthdateApprox" + } + }, + { + "column_name": "last_interacted_with", + "type": "Event", + "json_mapping": { + "field": "version" + } + }, + { + "column_name": "date_removed", + "type": "Client", + "json_mapping": { + "field": "attributes.date_removed" + } + }, + { + "column_name": "home_address", + "type": "Client", + "json_mapping": { + "field": "addresses.address2" + } + } + ] + } + ] } \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 672914177..1596ce6a5 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -140,13 +140,13 @@ { "key": "uid_unknown", "openmrs_entity_parent": "", - "openmrs_entity": "person", - "openmrs_entity_id": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "uid_unknown", "type": "check_box", "options": [ { - "key": "uid_unknown", - "text": "{{anc_register.step1.uid_unknown.options.uid_unknown.text}}", + "key": "yes", + "text": "{{anc_register.step1.uid_unknown.options.yes.text}}", "text_size": "18px", "value": "false" } @@ -155,8 +155,8 @@ { "key": "uid_unknown_reason", "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "uid_unknown_reason", "label": "{{anc_register.step1.uid_unknown_reason.label}}", "label_text_style": "bold", "label_info_text": "{{anc_register.step1.uid_unknown_reason.label_info_text}}", @@ -199,13 +199,13 @@ { "key": "ssn", "openmrs_entity_parent": "", - "openmrs_entity": "person", + "openmrs_entity": "person_identifier", "openmrs_entity_id": "ssn", "type": "edit_text", "hint": "{{anc_register.step1.ssn.hint}}", "edit_type": "name", "v_regex": { - "value": "^$[0-9]{11,13}", + "value": "^$|[0-9]{11,13}", "err": "{{anc_register.step1.ssn.v_length.err}}" }, "v_max_length": { @@ -410,13 +410,13 @@ { "key": "phone_number_unknown", "openmrs_entity_parent": "", - "openmrs_entity": "person", - "openmrs_entity_id": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "phone_number_unknown", "type": "check_box", "options": [ { - "key": "phone_number_unknown", - "text": "{{anc_register.step1.phone_number_unknown.options.phone_number_unknown.text}}", + "key": "yes", + "text": "{{anc_register.step1.phone_number_unknown.options.yes.text}}", "text_size": "18px", "value": "false" } @@ -425,8 +425,8 @@ { "key": "phone_number_unknown_reason", "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "phone_number_unknown_reason", "label": "{{anc_register.step1.phone_number_unknown_reason.label}}", "label_text_style": "bold", "label_info_text": "{{anc_register.step1.phone_number_unknown_reason.label_info_text}}", diff --git a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml index 2f91dfe49..bac79c033 100644 --- a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml +++ b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml @@ -9,34 +9,34 @@ actions: name: step1_uid_unknown_reason description: Show "unknown_uid_reason" input field if "uid_unknown" option is selected. priority: 1 -condition: "(step1_uid_unknown.contains('uid_unknown'))" +condition: "(step1_uid_unknown.contains('yes'))" actions: - "isRelevant = true" --- name: step1_dob_entered description: Hide "dob_entered" input field if "dob_unknown" option is selected. priority: 1 -condition: "(!step1_dob_unknown.contains('dob_unknown'))" +condition: "(!step1_dob_unknown.contains('yes'))" actions: - "isRelevant = true" --- name: step1_age_entered description: Show "age_entered" input field if "dob_unknown" option is selected. priority: 1 -condition: "(step1_dob_unknown.contains('dob_unknown'))" +condition: "(step1_dob_unknown.contains('yes'))" actions: - "isRelevant = true" --- name: step1_phone_number description: Hide "phone_number" input field if "phone_number_unknown" option is selected. priority: 1 -condition: "(!step1_phone_number_unknown.contains('phone_number_unknown'))" +condition: "(!step1_phone_number_unknown.contains('yes'))" actions: - "isRelevant = true" --- name: step1_phone_number_unknown_reason description: Show "unknown_uid_reason" input field if "uid_unknown" option is selected. priority: 1 -condition: "(step1_phone_number_unknown.contains('phone_number_unknown'))" +condition: "(step1_phone_number_unknown.contains('yes'))" actions: - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index f708a4fe7..6306a78be 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -1,504 +1,504 @@ -package org.smartregister.anc.library.activity; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.Fragment; - -import com.google.android.gms.vision.barcode.Barcode; -import com.google.android.material.bottomnavigation.LabelVisibilityMode; -import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; -import com.vijay.jsonwizard.constants.JsonFormConstants; - -import org.apache.commons.lang3.StringUtils; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; -import org.json.JSONObject; -import org.smartregister.AllConstants; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.R; -import org.smartregister.anc.library.contract.RegisterContract; -import org.smartregister.anc.library.domain.AttentionFlag; -import org.smartregister.anc.library.domain.Contact; -import org.smartregister.anc.library.event.PatientRemovedEvent; -import org.smartregister.anc.library.event.ShowProgressDialogEvent; -import org.smartregister.anc.library.fragment.AdvancedSearchFragment; -import org.smartregister.anc.library.fragment.HomeRegisterFragment; -import org.smartregister.anc.library.fragment.LibraryFragment; -import org.smartregister.anc.library.fragment.MeFragment; -import org.smartregister.anc.library.fragment.SortFilterFragment; -import org.smartregister.anc.library.presenter.RegisterPresenter; -import org.smartregister.anc.library.repository.PatientRepository; -import org.smartregister.anc.library.util.ANCFormUtils; -import org.smartregister.anc.library.util.ANCJsonFormUtils; -import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.Utils; -import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.configurableviews.ConfigurableViewsLibrary; -import org.smartregister.configurableviews.model.Field; -import org.smartregister.domain.FetchStatus; -import org.smartregister.helper.BottomNavigationHelper; -import org.smartregister.listener.BottomNavigationListener; -import org.smartregister.view.activity.BaseRegisterActivity; -import org.smartregister.view.fragment.BaseRegisterFragment; - -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import timber.log.Timber; - -/** - * Created by keyman on 26/06/2018. - */ - -public class BaseHomeRegisterActivity extends BaseRegisterActivity implements RegisterContract.View { - private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy"); - - private AlertDialog recordBirthAlertDialog; - private AlertDialog attentionFlagAlertDialog; - private View attentionFlagDialogView; - private boolean isAdvancedSearch = false; - private boolean isLibrary = false; - private String advancedSearchQrText = ""; - private HashMap advancedSearchFormData = new HashMap<>(); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - recordBirthAlertDialog = createAlertDialog(); - createAttentionFlagsAlertDialog(); - } - - @Override - protected void registerBottomNavigation() { - bottomNavigationHelper = new BottomNavigationHelper(); - bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); - - if (bottomNavigationView != null) { - if (isMeItemEnabled()) { - bottomNavigationView.getMenu() - .add(Menu.NONE, org.smartregister.R.string.action_me, Menu.NONE, org.smartregister.R.string.me).setIcon( - bottomNavigationHelper - .writeOnDrawable(org.smartregister.R.drawable.bottom_bar_initials_background, userInitials, - getResources())); - } - - bottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED); - - if (!isLibraryItemEnabled()) { - bottomNavigationView.getMenu().removeItem(R.id.action_library); - } - - if (!isAdvancedSearchEnabled()) { - bottomNavigationView.getMenu().removeItem(R.id.action_search); - } - - BottomNavigationListener bottomNavigationListener = new BottomNavigationListener(this); - bottomNavigationView.setOnNavigationItemSelectedListener(bottomNavigationListener); - } - } - - @Override - public void onBackPressed() { - Fragment fragment = findFragmentByPosition(currentPage); - if (fragment instanceof AdvancedSearchFragment) { - ((AdvancedSearchFragment) fragment).onBackPressed(); - return; - } else if (fragment instanceof BaseRegisterFragment) { - setSelectedBottomBarMenuItem(org.smartregister.R.id.action_clients); - BaseRegisterFragment registerFragment = (BaseRegisterFragment) fragment; - if (registerFragment.onBackPressed()) { - return; - } - } - if (currentPage == 0) { - super.onBackPressed(); - } else { - switchToBaseFragment(); - setSelectedBottomBarMenuItem(org.smartregister.R.id.action_clients); - } - } - - @Override - protected void initializePresenter() { - presenter = new RegisterPresenter(this); - } - - @Override - public BaseRegisterFragment getRegisterFragment() { - return new HomeRegisterFragment(); - } - - @Override - protected Fragment[] getOtherFragments() { - int posCounter = 0; - if (isAdvancedSearchEnabled()) { - BaseRegisterActivity.ADVANCED_SEARCH_POSITION = ++posCounter; - } - - BaseRegisterActivity.SORT_FILTER_POSITION = ++posCounter; - - if (isMeItemEnabled()) { - BaseRegisterActivity.ME_POSITION = ++posCounter; - } - - if (isLibraryItemEnabled()) { - BaseRegisterActivity.LIBRARY_POSITION = ++posCounter; - } - - Fragment[] fragments = new Fragment[posCounter]; - - if (isAdvancedSearchEnabled()) { - fragments[BaseRegisterActivity.ADVANCED_SEARCH_POSITION - 1] = new AdvancedSearchFragment(); - } - - fragments[BaseRegisterActivity.SORT_FILTER_POSITION - 1] = new SortFilterFragment(); - - if (isMeItemEnabled()) { - fragments[BaseRegisterActivity.ME_POSITION - 1] = new MeFragment(); - } - - if (isLibraryItemEnabled()) { - fragments[BaseRegisterActivity.LIBRARY_POSITION - 1] = new LibraryFragment(); - } - - return fragments; - } - - @Override - public void startFormActivity(String s, String s1, Map map) { - //Todo implementing an abstract class - } - - @Override - public void startFormActivity(String formName, String entityId, String metaData) { - try { - if (mBaseFragment instanceof HomeRegisterFragment) { - String locationId = AncLibrary.getInstance().getContext().allSharedPreferences().getPreference(AllConstants.CURRENT_LOCATION_ID); - ((RegisterPresenter) presenter).startForm(formName, entityId, metaData, locationId); - } - } catch (Exception e) { - Timber.e(e, "%s --> startFormActivity()", this.getClass().getCanonicalName()); - displayToast(getString(R.string.error_unable_to_start_form)); - } - - } - - @Override - public void startFormActivity(JSONObject form) { - Intent intent = new Intent(this, AncRegistrationActivity.class); - intent.putExtra(ConstantsUtils.JsonFormExtraUtils.JSON, form.toString()); - intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); - startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { - if (data != null) { - Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); - if (barcode != null) { - Timber.d(barcode.displayValue); - - Fragment fragment = findFragmentByPosition(currentPage); - if (fragment instanceof AdvancedSearchFragment) { - advancedSearchQrText = barcode.displayValue; - } else { - mBaseFragment.onQRCodeSucessfullyScanned(barcode.displayValue); - mBaseFragment.setSearchTerm(barcode.displayValue); - } - } - } else { - Timber.i("NO RESULT FOR QR CODE"); - } - } else { - super.onActivityResult(requestCode, resultCode, data); - } - } - - @Override - protected void onActivityResultExtended(int requestCode, int resultCode, Intent data) { - if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { - try { - String jsonString = data.getStringExtra(ConstantsUtils.JsonFormExtraUtils.JSON); - Timber.d(jsonString); - if (StringUtils.isNotBlank(jsonString)) { - JSONObject form = new JSONObject(jsonString); - switch (form.getString(ANCJsonFormUtils.ENCOUNTER_TYPE)) { - case ConstantsUtils.EventTypeUtils.REGISTRATION: - ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); - break; - case ConstantsUtils.EventTypeUtils.CLOSE: - ((RegisterContract.Presenter) presenter).closeAncRecord(jsonString); - break; - case ConstantsUtils.EventTypeUtils.QUICK_CHECK: - Contact contact = new Contact(); - contact.setContactNumber(getIntent().getIntExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, 0)); - ANCFormUtils - .persistPartial(getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID), contact); - PatientRepository - .updateContactVisitStartDate(getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID), - Utils.getDBDateToday()); - break; - default: - break; - } - } - } catch (Exception e) { - Timber.e(e, "%s --> onActivityResultExtended()", this.getClass().getCanonicalName()); - } - - } - } - - @Override - public void onResume() { - super.onResume(); - EventBus.getDefault().register(this); - - if (isAdvancedSearchEnabled()) { - switchToAdvancedSearchFromBarcode(); - } - if (isLibrary()) { - switchToFragment(BaseRegisterActivity.LIBRARY_POSITION); - setSelectedBottomBarMenuItem(org.smartregister.R.id.action_library); - } - } - - @Override - public List getViewIdentifiers() { - return Arrays.asList(ConstantsUtils.ConfigurationUtils.HOME_REGISTER); - } - - @Override - public void updateInitialsText(String initials) { - this.userInitials = initials; - } - - public void switchToBaseFragment() { - switchToFragment(BaseRegisterActivity.BASE_REG_POSITION); - } - - public void setSelectedBottomBarMenuItem(int itemId) { - bottomNavigationView.setSelectedItemId(itemId); - } - - /** - * Forces the Home register activity to open the the Advanced search fragment after the barcode activity is closed (as - * long as it was opened from the advanced search page) - */ - private void switchToAdvancedSearchFromBarcode() { - if (isAdvancedSearch) { - switchToFragment(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); - setSelectedBottomBarMenuItem(org.smartregister.R.id.action_search); - setAdvancedFragmentSearchTerm(advancedSearchQrText); - setFormData(advancedSearchFormData); - advancedSearchQrText = ""; - isAdvancedSearch = false; - advancedSearchFormData = new HashMap<>(); - } - } - - public boolean isLibrary() { - return isLibrary; - } - - private void setAdvancedFragmentSearchTerm(String searchTerm) { - mBaseFragment.setUniqueID(searchTerm); - } - - private void setFormData(HashMap formData) { - mBaseFragment.setAdvancedSearchFormData(formData); - } - - public void setLibrary(boolean library) { - isLibrary = library; - } - - public boolean isMeItemEnabled() { - return true; - } - - public boolean isLibraryItemEnabled() { - return true; - } - - public boolean isAdvancedSearchEnabled() { - return true; - } - - @NonNull - protected AlertDialog createAlertDialog() { - AlertDialog alertDialog = new AlertDialog.Builder(this).create(); - alertDialog.setTitle(getString(R.string.record_birth) + "?"); - - alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, getString(R.string.cancel).toUpperCase(), - (dialog, which) -> dialog.dismiss()); - alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.record_birth).toUpperCase(), - (dialog, which) -> ANCJsonFormUtils.launchANCCloseForm(BaseHomeRegisterActivity.this)); - return alertDialog; - } - - @NonNull - protected void createAttentionFlagsAlertDialog() { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); - - attentionFlagDialogView = LayoutInflater.from(this).inflate(R.layout.alert_dialog_attention_flag, null); - dialogBuilder.setView(attentionFlagDialogView); - - attentionFlagDialogView.findViewById(R.id.closeButton).setOnClickListener(view -> attentionFlagAlertDialog.dismiss()); - attentionFlagAlertDialog = dialogBuilder.create(); - setAttentionFlagAlertDialog(attentionFlagAlertDialog); - } - - public void updateSortAndFilter(List filterList, Field sortField) { - ((HomeRegisterFragment) mBaseFragment).updateSortAndFilter(filterList, sortField); - switchToBaseFragment(); - } - - public void startAdvancedSearch() { - if (isAdvancedSearchEnabled()) { - try { - mPager.setCurrentItem(BaseRegisterActivity.ADVANCED_SEARCH_POSITION, false); - } catch (Exception e) { - Timber.e(e, "%s --> startAdvancedSearch()", this.getClass().getCanonicalName()); - } - } - - } - - @Override - public void showLanguageDialog(final List displayValues) { - ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, - displayValues.toArray(new String[displayValues.size()])) { - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextView view = (TextView) super.getView(position, convertView, parent); - ConfigurableViewsLibrary.getInstance(); - view.setTextColor(ConfigurableViewsLibrary.getContext().getColorResource(R.color.customAppThemeBlue)); - - return view; - } - }; - - AlertDialog languageDialog = createLanguageDialog(adapter, displayValues); - languageDialog.show(); - } - - public AlertDialog createLanguageDialog(ArrayAdapter adapter, final List displayValues) { - final AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(this.getString(R.string.select_language)); - builder.setSingleChoiceItems(adapter, 0, (dialog, which) -> { - String selectedItem = displayValues.get(which); - ((RegisterContract.Presenter) presenter).saveLanguage(selectedItem); - dialog.dismiss(); - }); - - return builder.create(); - } - - @Override - public void showAttentionFlagsDialog(List attentionFlags) { - ViewGroup redFlagsContainer = attentionFlagDialogView.findViewById(R.id.red_flags_container); - ViewGroup yellowFlagsContainer = attentionFlagDialogView.findViewById(R.id.yellow_flags_container); - - redFlagsContainer.removeAllViews(); - yellowFlagsContainer.removeAllViews(); - - int yellowFlagCount = 0; - int redFlagCount = 0; - - for (AttentionFlag flag : attentionFlags) { - if (flag.isRedFlag()) { - LinearLayout redRow = (LinearLayout) LayoutInflater.from(this) - .inflate(R.layout.alert_dialog_attention_flag_row_red, redFlagsContainer, false); - ((TextView) redRow.getChildAt(1)).setText(flag.getTitle()); - redFlagsContainer.addView(redRow); - redFlagCount += 1; - } else { - - LinearLayout yellowRow = (LinearLayout) LayoutInflater.from(this) - .inflate(R.layout.alert_dialog_attention_flag_row_yellow, yellowFlagsContainer, false); - ((TextView) yellowRow.getChildAt(1)).setText(flag.getTitle()); - yellowFlagsContainer.addView(yellowRow); - yellowFlagCount += 1; - } - } - - ((View) redFlagsContainer.getParent()).setVisibility(redFlagCount > 0 ? View.VISIBLE : View.GONE); - ((View) yellowFlagsContainer.getParent()).setVisibility(yellowFlagCount > 0 ? View.VISIBLE : View.GONE); - - getAttentionFlagAlertDialog().show(); - } - - public AlertDialog getAttentionFlagAlertDialog() { - return attentionFlagAlertDialog; - } - - public void setAttentionFlagAlertDialog(AlertDialog attentionFlagAlertDialog) { - this.attentionFlagAlertDialog = attentionFlagAlertDialog; - } - - @Override - public void onPause() { - EventBus.getDefault().unregister(this); - super.onPause(); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void showProgressDialogHandler(ShowProgressDialogEvent showProgressDialogEvent) { - if (showProgressDialogEvent != null) { - showProgressDialog(R.string.saving_dialog_title); - } - } - - @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) - public void removePatientHandler(PatientRemovedEvent event) { - if (event != null) { - Utils.removeStickyEvent(event); - refreshList(FetchStatus.fetched); - hideProgressDialog(); - } - } - - @Override - public void startRegistration() { - startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, ""); - } - - public void showRecordBirthPopUp(CommonPersonObjectClient client) { - //This is required - getIntent() - .putExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID, client.getColumnmaps().get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID)); - - recordBirthAlertDialog.setMessage(String.format(this.getString(R.string.record_birth_popup_message), - Utils.getGestationAgeFromEDDate(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), - Utils.convertDateFormat(Utils.dobStringToDate(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), - dateFormatter), Utils.getDuration(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), - client.getColumnmaps().get(DBConstantsUtils.KeyUtils.FIRST_NAME))); - recordBirthAlertDialog.show(); - } - - public void setAdvancedSearch(boolean advancedSearch) { - isAdvancedSearch = advancedSearch; - } - - public void setAdvancedSearchFormData(HashMap advancedSearchFormData) { - this.advancedSearchFormData = advancedSearchFormData; - } -} +package org.smartregister.anc.library.activity; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; + +import com.google.android.gms.vision.barcode.Barcode; +import com.google.android.material.bottomnavigation.LabelVisibilityMode; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; +import com.vijay.jsonwizard.constants.JsonFormConstants; + +import org.apache.commons.lang3.StringUtils; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONObject; +import org.smartregister.AllConstants; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.R; +import org.smartregister.anc.library.contract.RegisterContract; +import org.smartregister.anc.library.domain.AttentionFlag; +import org.smartregister.anc.library.domain.Contact; +import org.smartregister.anc.library.event.PatientRemovedEvent; +import org.smartregister.anc.library.event.ShowProgressDialogEvent; +import org.smartregister.anc.library.fragment.AdvancedSearchFragment; +import org.smartregister.anc.library.fragment.HomeRegisterFragment; +import org.smartregister.anc.library.fragment.LibraryFragment; +import org.smartregister.anc.library.fragment.MeFragment; +import org.smartregister.anc.library.fragment.SortFilterFragment; +import org.smartregister.anc.library.presenter.RegisterPresenter; +import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.util.ANCFormUtils; +import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.configurableviews.ConfigurableViewsLibrary; +import org.smartregister.configurableviews.model.Field; +import org.smartregister.domain.FetchStatus; +import org.smartregister.helper.BottomNavigationHelper; +import org.smartregister.listener.BottomNavigationListener; +import org.smartregister.view.activity.BaseRegisterActivity; +import org.smartregister.view.fragment.BaseRegisterFragment; + +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import timber.log.Timber; + +/** + * Created by keyman on 26/06/2018. + */ + +public class BaseHomeRegisterActivity extends BaseRegisterActivity implements RegisterContract.View { + private static final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy"); + + private AlertDialog recordBirthAlertDialog; + private AlertDialog attentionFlagAlertDialog; + private View attentionFlagDialogView; + private boolean isAdvancedSearch = false; + private boolean isLibrary = false; + private String advancedSearchQrText = ""; + private HashMap advancedSearchFormData = new HashMap<>(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + recordBirthAlertDialog = createAlertDialog(); + createAttentionFlagsAlertDialog(); + } + + @Override + protected void registerBottomNavigation() { + bottomNavigationHelper = new BottomNavigationHelper(); + bottomNavigationView = findViewById(org.smartregister.R.id.bottom_navigation); + + if (bottomNavigationView != null) { + if (isMeItemEnabled()) { + bottomNavigationView.getMenu() + .add(Menu.NONE, org.smartregister.R.string.action_me, Menu.NONE, org.smartregister.R.string.me).setIcon( + bottomNavigationHelper + .writeOnDrawable(org.smartregister.R.drawable.bottom_bar_initials_background, userInitials, + getResources())); + } + + bottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED); + + if (!isLibraryItemEnabled()) { + bottomNavigationView.getMenu().removeItem(R.id.action_library); + } + + if (!isAdvancedSearchEnabled()) { + bottomNavigationView.getMenu().removeItem(R.id.action_search); + } + + BottomNavigationListener bottomNavigationListener = new BottomNavigationListener(this); + bottomNavigationView.setOnNavigationItemSelectedListener(bottomNavigationListener); + } + } + + @Override + public void onBackPressed() { + Fragment fragment = findFragmentByPosition(currentPage); + if (fragment instanceof AdvancedSearchFragment) { + ((AdvancedSearchFragment) fragment).onBackPressed(); + return; + } else if (fragment instanceof BaseRegisterFragment) { + setSelectedBottomBarMenuItem(org.smartregister.R.id.action_clients); + BaseRegisterFragment registerFragment = (BaseRegisterFragment) fragment; + if (registerFragment.onBackPressed()) { + return; + } + } + if (currentPage == 0) { + super.onBackPressed(); + } else { + switchToBaseFragment(); + setSelectedBottomBarMenuItem(org.smartregister.R.id.action_clients); + } + } + + @Override + protected void initializePresenter() { + presenter = new RegisterPresenter(this); + } + + @Override + public BaseRegisterFragment getRegisterFragment() { + return new HomeRegisterFragment(); + } + + @Override + protected Fragment[] getOtherFragments() { + int posCounter = 0; + if (isAdvancedSearchEnabled()) { + BaseRegisterActivity.ADVANCED_SEARCH_POSITION = ++posCounter; + } + + BaseRegisterActivity.SORT_FILTER_POSITION = ++posCounter; + + if (isMeItemEnabled()) { + BaseRegisterActivity.ME_POSITION = ++posCounter; + } + + if (isLibraryItemEnabled()) { + BaseRegisterActivity.LIBRARY_POSITION = ++posCounter; + } + + Fragment[] fragments = new Fragment[posCounter]; + + if (isAdvancedSearchEnabled()) { + fragments[BaseRegisterActivity.ADVANCED_SEARCH_POSITION - 1] = new AdvancedSearchFragment(); + } + + fragments[BaseRegisterActivity.SORT_FILTER_POSITION - 1] = new SortFilterFragment(); + + if (isMeItemEnabled()) { + fragments[BaseRegisterActivity.ME_POSITION - 1] = new MeFragment(); + } + + if (isLibraryItemEnabled()) { + fragments[BaseRegisterActivity.LIBRARY_POSITION - 1] = new LibraryFragment(); + } + + return fragments; + } + + @Override + public void startFormActivity(String s, String s1, Map map) { + //Todo implementing an abstract class + } + + @Override + public void startFormActivity(String formName, String entityId, String metaData) { + try { + if (mBaseFragment instanceof HomeRegisterFragment) { + String locationId = AncLibrary.getInstance().getContext().allSharedPreferences().getPreference(AllConstants.CURRENT_LOCATION_ID); + ((RegisterPresenter) presenter).startForm(formName, entityId, metaData, locationId); + } + } catch (Exception e) { + Timber.e(e, "%s --> startFormActivity()", this.getClass().getCanonicalName()); + displayToast(getString(R.string.error_unable_to_start_form)); + } + + } + + @Override + public void startFormActivity(JSONObject form) { + Intent intent = new Intent(this, AncRegistrationActivity.class); + intent.putExtra(ConstantsUtils.JsonFormExtraUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); + startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == AllConstants.BARCODE.BARCODE_REQUEST_CODE && resultCode == Activity.RESULT_OK) { + if (data != null) { + Barcode barcode = data.getParcelableExtra(AllConstants.BARCODE.BARCODE_KEY); + if (barcode != null) { + Timber.d(barcode.displayValue); + + Fragment fragment = findFragmentByPosition(currentPage); + if (fragment instanceof AdvancedSearchFragment) { + advancedSearchQrText = barcode.displayValue; + } else { + mBaseFragment.onQRCodeSucessfullyScanned(barcode.displayValue); + mBaseFragment.setSearchTerm(barcode.displayValue); + } + } + } else { + Timber.i("NO RESULT FOR QR CODE"); + } + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + @Override + protected void onActivityResultExtended(int requestCode, int resultCode, Intent data) { + if (requestCode == ANCJsonFormUtils.REQUEST_CODE_GET_JSON && resultCode == Activity.RESULT_OK) { + try { + String jsonString = data.getStringExtra(ConstantsUtils.JsonFormExtraUtils.JSON); + Timber.d(jsonString); + if (StringUtils.isNotBlank(jsonString)) { + JSONObject form = new JSONObject(jsonString); + switch (form.getString(ANCJsonFormUtils.ENCOUNTER_TYPE)) { + case ConstantsUtils.EventTypeUtils.REGISTRATION: + ((RegisterContract.Presenter) presenter).saveRegistrationForm(jsonString, false); + break; + case ConstantsUtils.EventTypeUtils.CLOSE: + ((RegisterContract.Presenter) presenter).closeAncRecord(jsonString); + break; + case ConstantsUtils.EventTypeUtils.QUICK_CHECK: + Contact contact = new Contact(); + contact.setContactNumber(getIntent().getIntExtra(ConstantsUtils.IntentKeyUtils.CONTACT_NO, 0)); + ANCFormUtils + .persistPartial(getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID), contact); + PatientRepository + .updateContactVisitStartDate(getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID), + Utils.getDBDateToday()); + break; + default: + break; + } + } + } catch (Exception e) { + Timber.e(e, "%s --> onActivityResultExtended()", this.getClass().getCanonicalName()); + } + + } + } + + @Override + public void onResume() { + super.onResume(); + EventBus.getDefault().register(this); + + if (isAdvancedSearchEnabled()) { + switchToAdvancedSearchFromBarcode(); + } + if (isLibrary()) { + switchToFragment(BaseRegisterActivity.LIBRARY_POSITION); + setSelectedBottomBarMenuItem(org.smartregister.R.id.action_library); + } + } + + @Override + public List getViewIdentifiers() { + return Arrays.asList(ConstantsUtils.ConfigurationUtils.HOME_REGISTER); + } + + @Override + public void updateInitialsText(String initials) { + this.userInitials = initials; + } + + public void switchToBaseFragment() { + switchToFragment(BaseRegisterActivity.BASE_REG_POSITION); + } + + public void setSelectedBottomBarMenuItem(int itemId) { + bottomNavigationView.setSelectedItemId(itemId); + } + + /** + * Forces the Home register activity to open the the Advanced search fragment after the barcode activity is closed (as + * long as it was opened from the advanced search page) + */ + private void switchToAdvancedSearchFromBarcode() { + if (isAdvancedSearch) { + switchToFragment(BaseRegisterActivity.ADVANCED_SEARCH_POSITION); + setSelectedBottomBarMenuItem(org.smartregister.R.id.action_search); + setAdvancedFragmentSearchTerm(advancedSearchQrText); + setFormData(advancedSearchFormData); + advancedSearchQrText = ""; + isAdvancedSearch = false; + advancedSearchFormData = new HashMap<>(); + } + } + + public boolean isLibrary() { + return isLibrary; + } + + private void setAdvancedFragmentSearchTerm(String searchTerm) { + mBaseFragment.setUniqueID(searchTerm); + } + + private void setFormData(HashMap formData) { + mBaseFragment.setAdvancedSearchFormData(formData); + } + + public void setLibrary(boolean library) { + isLibrary = library; + } + + public boolean isMeItemEnabled() { + return true; + } + + public boolean isLibraryItemEnabled() { + return true; + } + + public boolean isAdvancedSearchEnabled() { + return true; + } + + @NonNull + protected AlertDialog createAlertDialog() { + AlertDialog alertDialog = new AlertDialog.Builder(this).create(); + alertDialog.setTitle(getString(R.string.record_birth) + "?"); + + alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, getString(R.string.cancel).toUpperCase(), + (dialog, which) -> dialog.dismiss()); + alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, getString(R.string.record_birth).toUpperCase(), + (dialog, which) -> ANCJsonFormUtils.launchANCCloseForm(BaseHomeRegisterActivity.this)); + return alertDialog; + } + + @NonNull + protected void createAttentionFlagsAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + + attentionFlagDialogView = LayoutInflater.from(this).inflate(R.layout.alert_dialog_attention_flag, null); + dialogBuilder.setView(attentionFlagDialogView); + + attentionFlagDialogView.findViewById(R.id.closeButton).setOnClickListener(view -> attentionFlagAlertDialog.dismiss()); + attentionFlagAlertDialog = dialogBuilder.create(); + setAttentionFlagAlertDialog(attentionFlagAlertDialog); + } + + public void updateSortAndFilter(List filterList, Field sortField) { + ((HomeRegisterFragment) mBaseFragment).updateSortAndFilter(filterList, sortField); + switchToBaseFragment(); + } + + public void startAdvancedSearch() { + if (isAdvancedSearchEnabled()) { + try { + mPager.setCurrentItem(BaseRegisterActivity.ADVANCED_SEARCH_POSITION, false); + } catch (Exception e) { + Timber.e(e, "%s --> startAdvancedSearch()", this.getClass().getCanonicalName()); + } + } + + } + + @Override + public void showLanguageDialog(final List displayValues) { + ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, + displayValues.toArray(new String[displayValues.size()])) { + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TextView view = (TextView) super.getView(position, convertView, parent); + ConfigurableViewsLibrary.getInstance(); + view.setTextColor(ConfigurableViewsLibrary.getContext().getColorResource(R.color.customAppThemeBlue)); + + return view; + } + }; + + AlertDialog languageDialog = createLanguageDialog(adapter, displayValues); + languageDialog.show(); + } + + public AlertDialog createLanguageDialog(ArrayAdapter adapter, final List displayValues) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(this.getString(R.string.select_language)); + builder.setSingleChoiceItems(adapter, 0, (dialog, which) -> { + String selectedItem = displayValues.get(which); + ((RegisterContract.Presenter) presenter).saveLanguage(selectedItem); + dialog.dismiss(); + }); + + return builder.create(); + } + + @Override + public void showAttentionFlagsDialog(List attentionFlags) { + ViewGroup redFlagsContainer = attentionFlagDialogView.findViewById(R.id.red_flags_container); + ViewGroup yellowFlagsContainer = attentionFlagDialogView.findViewById(R.id.yellow_flags_container); + + redFlagsContainer.removeAllViews(); + yellowFlagsContainer.removeAllViews(); + + int yellowFlagCount = 0; + int redFlagCount = 0; + + for (AttentionFlag flag : attentionFlags) { + if (flag.isRedFlag()) { + LinearLayout redRow = (LinearLayout) LayoutInflater.from(this) + .inflate(R.layout.alert_dialog_attention_flag_row_red, redFlagsContainer, false); + ((TextView) redRow.getChildAt(1)).setText(flag.getTitle()); + redFlagsContainer.addView(redRow); + redFlagCount += 1; + } else { + + LinearLayout yellowRow = (LinearLayout) LayoutInflater.from(this) + .inflate(R.layout.alert_dialog_attention_flag_row_yellow, yellowFlagsContainer, false); + ((TextView) yellowRow.getChildAt(1)).setText(flag.getTitle()); + yellowFlagsContainer.addView(yellowRow); + yellowFlagCount += 1; + } + } + + ((View) redFlagsContainer.getParent()).setVisibility(redFlagCount > 0 ? View.VISIBLE : View.GONE); + ((View) yellowFlagsContainer.getParent()).setVisibility(yellowFlagCount > 0 ? View.VISIBLE : View.GONE); + + getAttentionFlagAlertDialog().show(); + } + + public AlertDialog getAttentionFlagAlertDialog() { + return attentionFlagAlertDialog; + } + + public void setAttentionFlagAlertDialog(AlertDialog attentionFlagAlertDialog) { + this.attentionFlagAlertDialog = attentionFlagAlertDialog; + } + + @Override + public void onPause() { + EventBus.getDefault().unregister(this); + super.onPause(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void showProgressDialogHandler(ShowProgressDialogEvent showProgressDialogEvent) { + if (showProgressDialogEvent != null) { + showProgressDialog(R.string.saving_dialog_title); + } + } + + @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) + public void removePatientHandler(PatientRemovedEvent event) { + if (event != null) { + Utils.removeStickyEvent(event); + refreshList(FetchStatus.fetched); + hideProgressDialog(); + } + } + + @Override + public void startRegistration() { + startFormActivity(ConstantsUtils.JsonFormUtils.ANC_REGISTER, null, ""); + } + + public void showRecordBirthPopUp(CommonPersonObjectClient client) { + //This is required + getIntent() + .putExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID, client.getColumnmaps().get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID)); + + recordBirthAlertDialog.setMessage(String.format(this.getString(R.string.record_birth_popup_message), + Utils.getGestationAgeFromEDDate(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), + Utils.convertDateFormat(Utils.dobStringToDate(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), + dateFormatter), Utils.getDuration(client.getColumnmaps().get(DBConstantsUtils.KeyUtils.EDD)), + client.getColumnmaps().get(DBConstantsUtils.KeyUtils.FIRST_NAME))); + recordBirthAlertDialog.show(); + } + + public void setAdvancedSearch(boolean advancedSearch) { + isAdvancedSearch = advancedSearch; + } + + public void setAdvancedSearchFormData(HashMap advancedSearchFormData) { + this.advancedSearchFormData = advancedSearchFormData; + } +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java index 921a40890..5d2f9dfaa 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/interactor/RegisterInteractor.java @@ -1,300 +1,300 @@ -package org.smartregister.anc.library.interactor; - -import android.content.ContentValues; - -import androidx.annotation.VisibleForTesting; -import androidx.core.util.Pair; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Triple; -import org.json.JSONException; -import org.json.JSONObject; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.contract.RegisterContract; -import org.smartregister.anc.library.event.PatientRemovedEvent; -import org.smartregister.anc.library.helper.ECSyncHelper; -import org.smartregister.anc.library.repository.PatientRepository; -import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; -import org.smartregister.anc.library.util.ANCJsonFormUtils; -import org.smartregister.anc.library.util.AppExecutors; -import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.Utils; -import org.smartregister.clientandeventmodel.Client; -import org.smartregister.clientandeventmodel.Event; -import org.smartregister.commonregistry.AllCommonsRepository; -import org.smartregister.domain.UniqueId; -import org.smartregister.job.PullUniqueIdsServiceJob; -import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.repository.UniqueIdRepository; -import org.smartregister.sync.ClientProcessorForJava; - -import java.util.Collections; -import java.util.Date; - -import timber.log.Timber; - -/** - * Created by keyman 27/06/2018. - */ -public class RegisterInteractor implements RegisterContract.Interactor { - private AppExecutors appExecutors; - private UniqueIdRepository uniqueIdRepository; - private ECSyncHelper syncHelper; - private AllSharedPreferences allSharedPreferences; - private ClientProcessorForJava clientProcessorForJava; - private AllCommonsRepository allCommonsRepository; - - public RegisterInteractor() { - this(new AppExecutors()); - } - - @VisibleForTesting - RegisterInteractor(AppExecutors appExecutors) { - this.appExecutors = appExecutors; - } - - @Override - public void onDestroy(boolean isChangingConfiguration) { - //TODO set presenter or model to null - } - - @Override - public void getNextUniqueId(final Triple triple, - final RegisterContract.InteractorCallBack callBack) { - Runnable runnable = () -> { - UniqueId uniqueId = getUniqueIdRepository().getNextUniqueId(); - final String entityId = uniqueId != null ? uniqueId.getOpenmrsId() : ""; - appExecutors.mainThread().execute(() -> { - if (StringUtils.isBlank(entityId)) { - callBack.onNoUniqueId(); - PullUniqueIdsServiceJob.scheduleJobImmediately(PullUniqueIdsServiceJob.TAG); //Non were found...lets trigger this againz - } else { - callBack.onUniqueIdFetched(triple, entityId); - } - }); - }; - - appExecutors.diskIO().execute(runnable); - } - - @Override - public void saveRegistration(final Pair pair, final String jsonString, final boolean isEditMode, - final RegisterContract.InteractorCallBack callBack) { - Runnable runnable = () -> { - - saveRegistration(pair, jsonString, isEditMode); - - String baseEntityId = getBaseEntityId(pair); - - if (!isEditMode && ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { - createPartialPreviousEvent(pair, baseEntityId); - } - - PatientRepository.updateCohabitants(jsonString, baseEntityId); - appExecutors.mainThread().execute(() -> { - callBack.setBaseEntityRegister(baseEntityId); - callBack.onRegistrationSaved(isEditMode); - }); - }; - appExecutors.diskIO().execute(runnable); - } - - /*** - * creates partial previous visit events after creation of client - * @param pair {@link Pair} - * @param baseEntityId {@link String} - */ - private void createPartialPreviousEvent(Pair pair, String baseEntityId) { - appExecutors.diskIO().execute(() -> { - try { - if (pair.second != null && pair.second.getDetails() != null) { - String strPreviousVisitsMap = pair.second.getDetails().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); - if (StringUtils.isNotBlank(strPreviousVisitsMap)) { - Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); - } - } - } catch (JSONException e) { - Timber.e(e); - } - }); - } - - @Override - public void removeWomanFromANCRegister(final String closeFormJsonString, final String providerId) { - Runnable runnable = () -> { - try { - Triple triple = ANCJsonFormUtils - .saveRemovedFromANCRegister(getAllSharedPreferences(), closeFormJsonString, providerId); - - if (triple == null) { - return; - } - - boolean isDeath = triple.getLeft(); - Event event = triple.getMiddle(); - Event updateChildDetailsEvent = triple.getRight(); - - String baseEntityId = event.getBaseEntityId(); - - //Update client to deceased - JSONObject client = getSyncHelper().getClient(baseEntityId); - if (isDeath) { - client.put(ConstantsUtils.JsonFormKeyUtils.DEATH_DATE, Utils.getTodaysDate()); - client.put(ConstantsUtils.JsonFormKeyUtils.DEATH_DATE_APPROX, false); - } - JSONObject attributes = client.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); - attributes.put(DBConstantsUtils.KeyUtils.DATE_REMOVED, Utils.getTodaysDate()); - client.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); - getSyncHelper().addClient(baseEntityId, client); - - //Add Remove Event for child to flag for Server delete - JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(event)); - getSyncHelper().addEvent(event.getBaseEntityId(), eventJson); - - //Update Child Entity to include death date - JSONObject eventJsonUpdateChildEvent = - new JSONObject(ANCJsonFormUtils.gson.toJson(updateChildDetailsEvent)); - getSyncHelper().addEvent(baseEntityId, eventJsonUpdateChildEvent); //Add event to flag server update - - //Update REGISTER and FTS Tables - if (getAllCommonsRepository() != null) { - ContentValues values = new ContentValues(); - values.put(DBConstantsUtils.KeyUtils.DATE_REMOVED, Utils.getTodaysDate()); - getAllCommonsRepository().update(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME, values, baseEntityId); - getAllCommonsRepository().updateSearch(baseEntityId); - - } - } catch (Exception e) { - Timber.e(e, " --> removeWomanFromANCRegister"); - } finally { - Utils.postStickyEvent(new PatientRemovedEvent()); - } - }; - - appExecutors.diskIO().execute(runnable); - } - - public AllCommonsRepository getAllCommonsRepository() { - if (allCommonsRepository == null) { - allCommonsRepository = - AncLibrary.getInstance().getContext().allCommonsRepositoryobjects(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); - } - return allCommonsRepository; - } - - public void setAllCommonsRepository(AllCommonsRepository allCommonsRepository) { - this.allCommonsRepository = allCommonsRepository; - } - - private void saveRegistration(Pair pair, String jsonString, boolean isEditMode) { - try { - Client baseClient = pair.first; - Event baseEvent = pair.second; - - if (baseClient != null) { - JSONObject clientJson = new JSONObject(ANCJsonFormUtils.gson.toJson(baseClient)); - if (isEditMode) { - ANCJsonFormUtils.mergeAndSaveClient(baseClient); - } else { - getSyncHelper().addClient(baseClient.getBaseEntityId(), clientJson); - } - } - - if (baseEvent != null) { - JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(baseEvent)); - getSyncHelper().addEvent(baseEvent.getBaseEntityId(), eventJson); - } - - if (isEditMode) { - // Unassign current OPENSRP ID - if (baseClient != null) { - String newOpenSRPId = baseClient.getIdentifier(ConstantsUtils.ClientUtils.ANC_ID).replace("-", ""); - String currentOpenSRPId = - ANCJsonFormUtils.getString(jsonString, ConstantsUtils.CURRENT_OPENSRP_ID).replace("-", ""); - if (!newOpenSRPId.equals(currentOpenSRPId)) { - //OPENSRP ID was changed - // TODO: The new ID should be closed in the unique_ids repository - getUniqueIdRepository().open(currentOpenSRPId); - } - } - - } else { - if (baseClient != null) { - String opensrpId = baseClient.getIdentifier(ConstantsUtils.ClientUtils.ANC_ID); - - //mark OPENSRP ID as used - getUniqueIdRepository().close(opensrpId); - } - } - - if (baseClient != null || baseEvent != null) { - String imageLocation = ANCJsonFormUtils.getFieldValue(jsonString, ConstantsUtils.WOM_IMAGE); - ANCJsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); - } - - long lastSyncTimeStamp = getAllSharedPreferences().fetchLastUpdatedAtDate(0); - Date lastSyncDate = new Date(lastSyncTimeStamp); - getClientProcessorForJava().processClient(getSyncHelper().getEvents(Collections.singletonList(baseEvent.getFormSubmissionId()))); - getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); - } catch (Exception e) { - Timber.e(e, " --> saveRegistration"); - } - } - - private String getBaseEntityId(Pair clientEventPair) { - String baseEntityId = ""; - if (clientEventPair != null) { - Client client = clientEventPair.first; - baseEntityId = client.getBaseEntityId(); - } - - return baseEntityId; - } - - public ECSyncHelper getSyncHelper() { - if (syncHelper == null) { - syncHelper = AncLibrary.getInstance().getEcSyncHelper(); - } - return syncHelper; - } - - public void setSyncHelper(ECSyncHelper syncHelper) { - this.syncHelper = syncHelper; - } - - public AllSharedPreferences getAllSharedPreferences() { - if (allSharedPreferences == null) { - allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); - } - return allSharedPreferences; - } - - public void setAllSharedPreferences(AllSharedPreferences allSharedPreferences) { - this.allSharedPreferences = allSharedPreferences; - } - - public ClientProcessorForJava getClientProcessorForJava() { - if (clientProcessorForJava == null) { - clientProcessorForJava = AncLibrary.getInstance().getClientProcessorForJava(); - } - return clientProcessorForJava; - } - - public void setClientProcessorForJava(BaseAncClientProcessorForJava clientProcessorForJava) { - this.clientProcessorForJava = clientProcessorForJava; - } - - public UniqueIdRepository getUniqueIdRepository() { - if (uniqueIdRepository == null) { - uniqueIdRepository = AncLibrary.getInstance().getUniqueIdRepository(); - } - return uniqueIdRepository; - } - - public void setUniqueIdRepository(UniqueIdRepository uniqueIdRepository) { - this.uniqueIdRepository = uniqueIdRepository; - } - - public enum TYPE {SAVED, UPDATED} +package org.smartregister.anc.library.interactor; + +import android.content.ContentValues; + +import androidx.annotation.VisibleForTesting; +import androidx.core.util.Pair; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Triple; +import org.json.JSONException; +import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.contract.RegisterContract; +import org.smartregister.anc.library.event.PatientRemovedEvent; +import org.smartregister.anc.library.helper.ECSyncHelper; +import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.sync.BaseAncClientProcessorForJava; +import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.AppExecutors; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.clientandeventmodel.Client; +import org.smartregister.clientandeventmodel.Event; +import org.smartregister.commonregistry.AllCommonsRepository; +import org.smartregister.domain.UniqueId; +import org.smartregister.job.PullUniqueIdsServiceJob; +import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.repository.UniqueIdRepository; +import org.smartregister.sync.ClientProcessorForJava; + +import java.util.Collections; +import java.util.Date; + +import timber.log.Timber; + +/** + * Created by keyman 27/06/2018. + */ +public class RegisterInteractor implements RegisterContract.Interactor { + private AppExecutors appExecutors; + private UniqueIdRepository uniqueIdRepository; + private ECSyncHelper syncHelper; + private AllSharedPreferences allSharedPreferences; + private ClientProcessorForJava clientProcessorForJava; + private AllCommonsRepository allCommonsRepository; + + public RegisterInteractor() { + this(new AppExecutors()); + } + + @VisibleForTesting + RegisterInteractor(AppExecutors appExecutors) { + this.appExecutors = appExecutors; + } + + @Override + public void onDestroy(boolean isChangingConfiguration) { + //TODO set presenter or model to null + } + + @Override + public void getNextUniqueId(final Triple triple, + final RegisterContract.InteractorCallBack callBack) { + Runnable runnable = () -> { + UniqueId uniqueId = getUniqueIdRepository().getNextUniqueId(); + final String entityId = uniqueId != null ? uniqueId.getOpenmrsId() : ""; + appExecutors.mainThread().execute(() -> { + if (StringUtils.isBlank(entityId)) { + callBack.onNoUniqueId(); + PullUniqueIdsServiceJob.scheduleJobImmediately(PullUniqueIdsServiceJob.TAG); //Non were found...lets trigger this againz + } else { + callBack.onUniqueIdFetched(triple, entityId); + } + }); + }; + + appExecutors.diskIO().execute(runnable); + } + + @Override + public void saveRegistration(final Pair pair, final String jsonString, final boolean isEditMode, + final RegisterContract.InteractorCallBack callBack) { + Runnable runnable = () -> { + + saveRegistration(pair, jsonString, isEditMode); + + String baseEntityId = getBaseEntityId(pair); + + if (!isEditMode && ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + createPartialPreviousEvent(pair, baseEntityId); + } + + PatientRepository.updateCohabitants(jsonString, baseEntityId); + appExecutors.mainThread().execute(() -> { + callBack.setBaseEntityRegister(baseEntityId); + callBack.onRegistrationSaved(isEditMode); + }); + }; + appExecutors.diskIO().execute(runnable); + } + + /*** + * creates partial previous visit events after creation of client + * @param pair {@link Pair} + * @param baseEntityId {@link String} + */ + private void createPartialPreviousEvent(Pair pair, String baseEntityId) { + appExecutors.diskIO().execute(() -> { + try { + if (pair.second != null && pair.second.getDetails() != null) { + String strPreviousVisitsMap = pair.second.getDetails().get(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP); + if (StringUtils.isNotBlank(strPreviousVisitsMap)) { + Utils.createPreviousVisitFromGroup(strPreviousVisitsMap, baseEntityId); + } + } + } catch (JSONException e) { + Timber.e(e); + } + }); + } + + @Override + public void removeWomanFromANCRegister(final String closeFormJsonString, final String providerId) { + Runnable runnable = () -> { + try { + Triple triple = ANCJsonFormUtils + .saveRemovedFromANCRegister(getAllSharedPreferences(), closeFormJsonString, providerId); + + if (triple == null) { + return; + } + + boolean isDeath = triple.getLeft(); + Event event = triple.getMiddle(); + Event updateChildDetailsEvent = triple.getRight(); + + String baseEntityId = event.getBaseEntityId(); + + //Update client to deceased + JSONObject client = getSyncHelper().getClient(baseEntityId); + if (isDeath) { + client.put(ConstantsUtils.JsonFormKeyUtils.DEATH_DATE, Utils.getTodaysDate()); + client.put(ConstantsUtils.JsonFormKeyUtils.DEATH_DATE_APPROX, false); + } + JSONObject attributes = client.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); + attributes.put(DBConstantsUtils.KeyUtils.DATE_REMOVED, Utils.getTodaysDate()); + client.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); + getSyncHelper().addClient(baseEntityId, client); + + //Add Remove Event for child to flag for Server delete + JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(event)); + getSyncHelper().addEvent(event.getBaseEntityId(), eventJson); + + //Update Child Entity to include death date + JSONObject eventJsonUpdateChildEvent = + new JSONObject(ANCJsonFormUtils.gson.toJson(updateChildDetailsEvent)); + getSyncHelper().addEvent(baseEntityId, eventJsonUpdateChildEvent); //Add event to flag server update + + //Update REGISTER and FTS Tables + if (getAllCommonsRepository() != null) { + ContentValues values = new ContentValues(); + values.put(DBConstantsUtils.KeyUtils.DATE_REMOVED, Utils.getTodaysDate()); + getAllCommonsRepository().update(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME, values, baseEntityId); + getAllCommonsRepository().updateSearch(baseEntityId); + + } + } catch (Exception e) { + Timber.e(e, " --> removeWomanFromANCRegister"); + } finally { + Utils.postStickyEvent(new PatientRemovedEvent()); + } + }; + + appExecutors.diskIO().execute(runnable); + } + + public AllCommonsRepository getAllCommonsRepository() { + if (allCommonsRepository == null) { + allCommonsRepository = + AncLibrary.getInstance().getContext().allCommonsRepositoryobjects(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); + } + return allCommonsRepository; + } + + public void setAllCommonsRepository(AllCommonsRepository allCommonsRepository) { + this.allCommonsRepository = allCommonsRepository; + } + + private void saveRegistration(Pair pair, String jsonString, boolean isEditMode) { + try { + Client baseClient = pair.first; + Event baseEvent = pair.second; + + if (baseClient != null) { + JSONObject clientJson = new JSONObject(ANCJsonFormUtils.gson.toJson(baseClient)); + if (isEditMode) { + ANCJsonFormUtils.mergeAndSaveClient(baseClient); + } else { + getSyncHelper().addClient(baseClient.getBaseEntityId(), clientJson); + } + } + + if (baseEvent != null) { + JSONObject eventJson = new JSONObject(ANCJsonFormUtils.gson.toJson(baseEvent)); + getSyncHelper().addEvent(baseEvent.getBaseEntityId(), eventJson); + } + + if (isEditMode) { + // Unassign current OPENSRP ID + if (baseClient != null) { + String newOpenSRPId = baseClient.getIdentifier(ConstantsUtils.ClientUtils.ANC_ID).replace("-", ""); + String currentOpenSRPId = + ANCJsonFormUtils.getString(jsonString, ConstantsUtils.CURRENT_OPENSRP_ID).replace("-", ""); + if (!newOpenSRPId.equals(currentOpenSRPId)) { + //OPENSRP ID was changed + // TODO: The new ID should be closed in the unique_ids repository + getUniqueIdRepository().open(currentOpenSRPId); + } + } + + } else { + if (baseClient != null) { + String opensrpId = baseClient.getIdentifier(ConstantsUtils.ClientUtils.ANC_ID); + + //mark OPENSRP ID as used + getUniqueIdRepository().close(opensrpId); + } + } + + if (baseClient != null || baseEvent != null) { + String imageLocation = ANCJsonFormUtils.getFieldValue(jsonString, ConstantsUtils.WOM_IMAGE); + ANCJsonFormUtils.saveImage(baseEvent.getProviderId(), baseClient.getBaseEntityId(), imageLocation); + } + + long lastSyncTimeStamp = getAllSharedPreferences().fetchLastUpdatedAtDate(0); + Date lastSyncDate = new Date(lastSyncTimeStamp); + getClientProcessorForJava().processClient(getSyncHelper().getEvents(Collections.singletonList(baseEvent.getFormSubmissionId()))); + getAllSharedPreferences().saveLastUpdatedAtDate(lastSyncDate.getTime()); + } catch (Exception e) { + Timber.e(e, " --> saveRegistration"); + } + } + + private String getBaseEntityId(Pair clientEventPair) { + String baseEntityId = ""; + if (clientEventPair != null) { + Client client = clientEventPair.first; + baseEntityId = client.getBaseEntityId(); + } + + return baseEntityId; + } + + public ECSyncHelper getSyncHelper() { + if (syncHelper == null) { + syncHelper = AncLibrary.getInstance().getEcSyncHelper(); + } + return syncHelper; + } + + public void setSyncHelper(ECSyncHelper syncHelper) { + this.syncHelper = syncHelper; + } + + public AllSharedPreferences getAllSharedPreferences() { + if (allSharedPreferences == null) { + allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); + } + return allSharedPreferences; + } + + public void setAllSharedPreferences(AllSharedPreferences allSharedPreferences) { + this.allSharedPreferences = allSharedPreferences; + } + + public ClientProcessorForJava getClientProcessorForJava() { + if (clientProcessorForJava == null) { + clientProcessorForJava = AncLibrary.getInstance().getClientProcessorForJava(); + } + return clientProcessorForJava; + } + + public void setClientProcessorForJava(BaseAncClientProcessorForJava clientProcessorForJava) { + this.clientProcessorForJava = clientProcessorForJava; + } + + public UniqueIdRepository getUniqueIdRepository() { + if (uniqueIdRepository == null) { + uniqueIdRepository = AncLibrary.getInstance().getUniqueIdRepository(); + } + return uniqueIdRepository; + } + + public void setUniqueIdRepository(UniqueIdRepository uniqueIdRepository) { + this.uniqueIdRepository = uniqueIdRepository; + } + + public enum TYPE {SAVED, UPDATED} } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java index 9db43bffb..0c22d9b08 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java @@ -1,190 +1,190 @@ -package org.smartregister.anc.library.presenter; - -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - -import androidx.core.util.Pair; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Triple; -import org.json.JSONObject; -import org.smartregister.anc.library.R; -import org.smartregister.anc.library.contract.RegisterContract; -import org.smartregister.anc.library.interactor.RegisterInteractor; -import org.smartregister.anc.library.model.RegisterModel; -import org.smartregister.anc.library.repository.PatientRepository; -import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.Utils; -import org.smartregister.clientandeventmodel.Client; -import org.smartregister.clientandeventmodel.Event; -import org.smartregister.domain.FetchStatus; -import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.view.LocationPickerView; - -import java.lang.ref.WeakReference; -import java.util.HashMap; -import java.util.List; - -import timber.log.Timber; - -/** - * Created by keyamn on 27/06/2018. - */ -public class RegisterPresenter implements RegisterContract.Presenter, RegisterContract.InteractorCallBack { - private WeakReference viewReference; - private RegisterContract.Interactor interactor; - private RegisterContract.Model model; - private String baseEntityId; - private boolean isProgressDialogVisible = false; - - public RegisterPresenter(RegisterContract.View view) { - viewReference = new WeakReference<>(view); - interactor = new RegisterInteractor(); - model = new RegisterModel(); - } - - public void setModel(RegisterContract.Model model) { - this.model = model; - } - - public void setInteractor(RegisterContract.Interactor interactor) { - this.interactor = interactor; - } - - @Override - public void registerViewConfigurations(List viewIdentifiers) { - model.registerViewConfigurations(viewIdentifiers); - } - - @Override - public void unregisterViewConfiguration(List viewIdentifiers) { - model.unregisterViewConfiguration(viewIdentifiers); - } - - @Override - public void onDestroy(boolean isChangingConfiguration) { - viewReference = null;//set to null on destroy - // Inform interactor - interactor.onDestroy(isChangingConfiguration); - // Activity destroyed set interactor to null - if (!isChangingConfiguration) { - interactor = null; - model = null; - } - } - - @Override - public void updateInitials() { - String initials = model.getInitials(); - if (initials != null) { - getView().updateInitialsText(initials); - } - } - - private RegisterContract.View getView() { - if (viewReference != null) return viewReference.get(); - else return null; - } - - @Override - public void saveLanguage(String language) { - model.saveLanguage(language); - getView().displayToast(language + " selected"); - } - - @Override - public void startForm(String formName, String entityId, String metadata, LocationPickerView locationPickerView) - throws Exception { - if (locationPickerView == null || StringUtils.isBlank(locationPickerView.getSelectedItem())) { - getView().displayToast(R.string.no_location_picker); - } else { - String currentLocationId = model.getLocationId(locationPickerView.getSelectedItem()); - startForm(formName, entityId, metadata, currentLocationId); - } - } - - @Override - public void startForm(String formName, String entityId, String metadata, String currentLocationId) throws Exception { - - if (StringUtils.isBlank(entityId)) { - Triple triple = Triple.of(formName, metadata, currentLocationId); - interactor.getNextUniqueId(triple, this); - return; - } - - JSONObject form = model.getFormAsJson(formName, entityId, currentLocationId); - getView().startFormActivity(form); - - } - - @Override - public void saveRegistrationForm(String jsonString, boolean isEditMode) { - try { - if(!isProgressDialogVisible) - getView().showProgressDialog(R.string.saving_dialog_title); - isProgressDialogVisible = true; - Pair pair = model.processRegistration(jsonString); - if (pair == null) { - return; - } - - interactor.saveRegistration(pair, jsonString, isEditMode, this); - } catch (Exception e) { - Timber.e(e, " --> saveRegistrationForm"); - } - } - - @Override - public void closeAncRecord(String jsonString) { - try { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getView().getContext()); - AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); - - Timber.d(jsonString); - getView().showProgressDialog(jsonString.contains(ConstantsUtils.EventTypeUtils.CLOSE) ? R.string.removing_dialog_title : - R.string.saving_dialog_title); - - interactor.removeWomanFromANCRegister(jsonString, allSharedPreferences.fetchRegisteredANM()); - } catch (Exception e) { - Timber.e(e, " --> closeAncRecord"); - - } - } - - @Override - public void onUniqueIdFetched(Triple triple, String entityId) { - try { - startForm(triple.getLeft(), entityId, triple.getMiddle(), triple.getRight()); - } catch (Exception e) { - Timber.e(e, " --> onUniqueIdFetched"); - getView().displayToast(R.string.error_unable_to_start_form); - } - } - - @Override - public void onNoUniqueId() { - getView().displayShortToast(R.string.no_openmrs_id); - } - - @Override - public void setBaseEntityRegister(String baseEntityId) { - this.baseEntityId = baseEntityId; - } - - @Override - public void onRegistrationSaved(boolean isEdit) { - getView().refreshList(FetchStatus.fetched); - goToClientProfile(baseEntityId); - getView().hideProgressDialog(); - isProgressDialogVisible = false; - } - - private void goToClientProfile(String baseEntityId) { - if (StringUtils.isNotBlank(baseEntityId)) { - HashMap womanProfileDetails = (HashMap) PatientRepository.getWomanProfileDetails(baseEntityId); - if (womanProfileDetails != null) { - Utils.navigateToProfile(getView().getContext(), womanProfileDetails); - } - } - } -} +package org.smartregister.anc.library.presenter; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import androidx.core.util.Pair; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Triple; +import org.json.JSONObject; +import org.smartregister.anc.library.R; +import org.smartregister.anc.library.contract.RegisterContract; +import org.smartregister.anc.library.interactor.RegisterInteractor; +import org.smartregister.anc.library.model.RegisterModel; +import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.clientandeventmodel.Client; +import org.smartregister.clientandeventmodel.Event; +import org.smartregister.domain.FetchStatus; +import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.view.LocationPickerView; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.List; + +import timber.log.Timber; + +/** + * Created by keyamn on 27/06/2018. + */ +public class RegisterPresenter implements RegisterContract.Presenter, RegisterContract.InteractorCallBack { + private WeakReference viewReference; + private RegisterContract.Interactor interactor; + private RegisterContract.Model model; + private String baseEntityId; + private boolean isProgressDialogVisible = false; + + public RegisterPresenter(RegisterContract.View view) { + viewReference = new WeakReference<>(view); + interactor = new RegisterInteractor(); + model = new RegisterModel(); + } + + public void setModel(RegisterContract.Model model) { + this.model = model; + } + + public void setInteractor(RegisterContract.Interactor interactor) { + this.interactor = interactor; + } + + @Override + public void registerViewConfigurations(List viewIdentifiers) { + model.registerViewConfigurations(viewIdentifiers); + } + + @Override + public void unregisterViewConfiguration(List viewIdentifiers) { + model.unregisterViewConfiguration(viewIdentifiers); + } + + @Override + public void onDestroy(boolean isChangingConfiguration) { + viewReference = null;//set to null on destroy + // Inform interactor + interactor.onDestroy(isChangingConfiguration); + // Activity destroyed set interactor to null + if (!isChangingConfiguration) { + interactor = null; + model = null; + } + } + + @Override + public void updateInitials() { + String initials = model.getInitials(); + if (initials != null) { + getView().updateInitialsText(initials); + } + } + + private RegisterContract.View getView() { + if (viewReference != null) return viewReference.get(); + else return null; + } + + @Override + public void saveLanguage(String language) { + model.saveLanguage(language); + getView().displayToast(language + " selected"); + } + + @Override + public void startForm(String formName, String entityId, String metadata, LocationPickerView locationPickerView) + throws Exception { + if (locationPickerView == null || StringUtils.isBlank(locationPickerView.getSelectedItem())) { + getView().displayToast(R.string.no_location_picker); + } else { + String currentLocationId = model.getLocationId(locationPickerView.getSelectedItem()); + startForm(formName, entityId, metadata, currentLocationId); + } + } + + @Override + public void startForm(String formName, String entityId, String metadata, String currentLocationId) throws Exception { + + if (StringUtils.isBlank(entityId)) { + Triple triple = Triple.of(formName, metadata, currentLocationId); + interactor.getNextUniqueId(triple, this); + return; + } + + JSONObject form = model.getFormAsJson(formName, entityId, currentLocationId); + getView().startFormActivity(form); + + } + + @Override + public void saveRegistrationForm(String jsonString, boolean isEditMode) { + try { + if(!isProgressDialogVisible) + getView().showProgressDialog(R.string.saving_dialog_title); + isProgressDialogVisible = true; + Pair pair = model.processRegistration(jsonString); + if (pair == null) { + return; + } + + interactor.saveRegistration(pair, jsonString, isEditMode, this); + } catch (Exception e) { + Timber.e(e, " --> saveRegistrationForm"); + } + } + + @Override + public void closeAncRecord(String jsonString) { + try { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getView().getContext()); + AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); + + Timber.d(jsonString); + getView().showProgressDialog(jsonString.contains(ConstantsUtils.EventTypeUtils.CLOSE) ? R.string.removing_dialog_title : + R.string.saving_dialog_title); + + interactor.removeWomanFromANCRegister(jsonString, allSharedPreferences.fetchRegisteredANM()); + } catch (Exception e) { + Timber.e(e, " --> closeAncRecord"); + + } + } + + @Override + public void onUniqueIdFetched(Triple triple, String entityId) { + try { + startForm(triple.getLeft(), entityId, triple.getMiddle(), triple.getRight()); + } catch (Exception e) { + Timber.e(e, " --> onUniqueIdFetched"); + getView().displayToast(R.string.error_unable_to_start_form); + } + } + + @Override + public void onNoUniqueId() { + getView().displayShortToast(R.string.no_openmrs_id); + } + + @Override + public void setBaseEntityRegister(String baseEntityId) { + this.baseEntityId = baseEntityId; + } + + @Override + public void onRegistrationSaved(boolean isEdit) { + getView().refreshList(FetchStatus.fetched); + goToClientProfile(baseEntityId); + getView().hideProgressDialog(); + isProgressDialogVisible = false; + } + + private void goToClientProfile(String baseEntityId) { + if (StringUtils.isNotBlank(baseEntityId)) { + HashMap womanProfileDetails = (HashMap) PatientRepository.getWomanProfileDetails(baseEntityId); + if (womanProfileDetails != null) { + Utils.navigateToProfile(getView().getContext(), womanProfileDetails); + } + } + } +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java index 1312774b5..e45c00498 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/provider/RegisterProvider.java @@ -1,282 +1,282 @@ -package org.smartregister.anc.library.provider; - -import android.content.Context; -import android.database.Cursor; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.TextView; - -import androidx.recyclerview.widget.RecyclerView; - -import com.vijay.jsonwizard.views.CustomTextView; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.text.WordUtils; -import org.smartregister.anc.library.R; -import org.smartregister.anc.library.domain.ButtonAlertStatus; -import org.smartregister.anc.library.fragment.HomeRegisterFragment; -import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.Utils; -import org.smartregister.commonregistry.CommonPersonObject; -import org.smartregister.commonregistry.CommonPersonObjectClient; -import org.smartregister.commonregistry.CommonRepository; -import org.smartregister.cursoradapter.RecyclerViewProvider; -import org.smartregister.view.contract.SmartRegisterClient; -import org.smartregister.view.contract.SmartRegisterClients; -import org.smartregister.view.dialog.FilterOption; -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; - -/** - * Created by keyman on 26/06/2018. - */ - -public class RegisterProvider implements RecyclerViewProvider { - private final LayoutInflater inflater; - private Set visibleColumns; - - private View.OnClickListener onClickListener; - private View.OnClickListener paginationClickListener; - - private Context context; - private CommonRepository commonRepository; - - public RegisterProvider(Context context, CommonRepository commonRepository, Set visibleColumns, - View.OnClickListener onClickListener, View.OnClickListener paginationClickListener) { - - inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - this.visibleColumns = visibleColumns; - - this.onClickListener = onClickListener; - this.paginationClickListener = paginationClickListener; - - this.context = context; - this.commonRepository = commonRepository; - } - - @Override - public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolder viewHolder) { - CommonPersonObjectClient pc = (CommonPersonObjectClient) client; - if (visibleColumns.isEmpty()) { - populatePatientColumn(pc, client, viewHolder); - populateIdentifierColumn(pc, viewHolder); - populateLastColumn(pc, viewHolder); - } - } - - @Override - public void getFooterView(RecyclerView.ViewHolder viewHolder, int currentPageCount, int totalPageCount, boolean hasNext, - boolean hasPrevious) { - FooterViewHolder footerViewHolder = (FooterViewHolder) viewHolder; - footerViewHolder.pageInfoView - .setText(MessageFormat.format(context.getString(R.string.str_page_info), currentPageCount, totalPageCount)); - - footerViewHolder.nextPageView.setVisibility(hasNext ? View.VISIBLE : View.INVISIBLE); - footerViewHolder.previousPageView.setVisibility(hasPrevious ? View.VISIBLE : View.INVISIBLE); - - footerViewHolder.nextPageView.setOnClickListener(paginationClickListener); - footerViewHolder.previousPageView.setOnClickListener(paginationClickListener); - } - - @Override - public SmartRegisterClients updateClients(FilterOption villageFilter, ServiceModeOption serviceModeOption, - FilterOption searchFilter, SortOption sortOption) { - return null; - } - - @Override - public void onServiceModeSelected(ServiceModeOption serviceModeOption) {//Implement Abstract Method - } - - @Override - public OnClickFormLauncher newFormLauncher(String formName, String entityId, String metaData) { - return null; - } - - @Override - public LayoutInflater inflater() { - return inflater; - } - - @Override - public RegisterViewHolder createViewHolder(ViewGroup parent) { - View view = inflater.inflate(R.layout.register_home_list_row, parent, false); - return new RegisterViewHolder(view); - } - - @Override - public RecyclerView.ViewHolder createFooterHolder(ViewGroup parent) { - View view = inflater.inflate(R.layout.smart_register_pagination, parent, false); - return new FooterViewHolder(view); - } - - @Override - public boolean isFooterViewHolder(RecyclerView.ViewHolder viewHolder) { - return viewHolder instanceof FooterViewHolder; - } - - private void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterClient client, - RegisterViewHolder viewHolder) { - - String firstName = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.FIRST_NAME, true); - String lastName = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.LAST_NAME, true); - String patientName = Utils.getName(firstName, lastName); - - fillValue(viewHolder.patientName, WordUtils.capitalize(patientName)); - - String dobString = Utils.getDuration(Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.DOB, false)); - dobString = dobString.contains("y") ? dobString.substring(0, dobString.indexOf("y")) : dobString; - fillValue((viewHolder.age), String.format(context.getString(R.string.age_text), dobString)); - - - String edd = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.EDD, false); - - if (StringUtils.isNotBlank(edd)) { - if(Utils.getGestationAgeFromEDDate(edd) > 40) - { - fillValue(viewHolder.ga, ""); - } - else { - fillValue((viewHolder.ga), - String.format(context.getString(R.string.ga_text), Utils.getGestationAgeFromEDDate(edd))); - viewHolder.period.setVisibility(View.VISIBLE); - } - } else { - - fillValue((viewHolder.ga), ""); - } - - View patient = viewHolder.patientColumn; - attachPatientOnclickListener(patient, client); - - - View dueButton = viewHolder.dueButton; - attachAlertButtonOnclickListener(dueButton, client); - - - String redFlagCountRaw = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, false); - String yellowFlagCountRaw = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, false); - - int redFlagCount = !TextUtils.isEmpty(redFlagCountRaw) ? Integer.valueOf(redFlagCountRaw) : 0; - int yellowFlagCount = !TextUtils.isEmpty(yellowFlagCountRaw) ? Integer.valueOf(yellowFlagCountRaw) : 0; - int totalFlagCount = yellowFlagCount + redFlagCount; - - TextView riskLayout = viewHolder.risk; - - if (totalFlagCount > 0) { - riskLayout.setCompoundDrawablesWithIntrinsicBounds( - redFlagCount > 0 ? R.drawable.ic_red_flag : R.drawable.ic_yellow_flag, 0, 0, 0); - riskLayout.setText(String.valueOf(totalFlagCount)); - riskLayout.setVisibility(View.VISIBLE); - - attachRiskLayoutOnclickListener(riskLayout, client); - } else { - riskLayout.setVisibility(View.GONE); - } - } - - private void populateIdentifierColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { - String ancId = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.ANC_ID, false); - fillValue(viewHolder.ancId, String.format(context.getString(R.string.anc_id_text), ancId)); - } - - private void populateLastColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { - if (commonRepository != null) { - CommonPersonObject commonPersonObject = commonRepository.findByBaseEntityId(pc.entityId()); - if (commonPersonObject != null) { - viewHolder.sync.setVisibility(View.GONE); - ButtonAlertStatus buttonAlertStatus = - Utils.getButtonAlertStatus(pc.getColumnmaps(), context, false); - Utils.processButtonAlertStatus(context, viewHolder.dueButton, viewHolder.contactDoneTodayButton, - buttonAlertStatus); - - } else { - viewHolder.dueButton.setVisibility(View.GONE); - viewHolder.sync.setVisibility(View.VISIBLE); - - attachSyncOnclickListener(viewHolder.sync, pc); - } - } - } - - public static void fillValue(TextView v, String value) { - if (v != null) v.setText(value); - - } - - private void attachPatientOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_NORMAL); - } - - private void attachAlertButtonOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_ALERT_STATUS); - } - - private void attachRiskLayoutOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_ATTENTION_FLAG); - } - - private void attachSyncOnclickListener(View view, SmartRegisterClient client) { - view.setOnClickListener(onClickListener); - view.setTag(client); - view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_SYNC); - } - - //////////////////////////////////////////////////////////////// - // Inner classes - //////////////////////////////////////////////////////////////// - - public class RegisterViewHolder extends RecyclerView.ViewHolder { - private TextView patientName; - private TextView age; - private TextView period; - private TextView ga; - private TextView ancId; - private TextView risk; - private Button dueButton; - private Button sync; - private View patientColumn; - private CustomTextView contactDoneTodayButton; - - public RegisterViewHolder(View itemView) { - super(itemView); - patientName = itemView.findViewById(R.id.patient_name); - age = itemView.findViewById(R.id.age); - ga = itemView.findViewById(R.id.ga); - period = itemView.findViewById(R.id.period); - ancId = itemView.findViewById(R.id.anc_id); - risk = itemView.findViewById(R.id.risk); - dueButton = itemView.findViewById(R.id.due_button); - sync = itemView.findViewById(R.id.sync); - patientColumn = itemView.findViewById(R.id.patient_column); - contactDoneTodayButton = itemView.findViewById(R.id.contact_today_text); - } - } - - public class FooterViewHolder extends RecyclerView.ViewHolder { - private TextView pageInfoView; - private Button nextPageView; - private Button previousPageView; - - public FooterViewHolder(View view) { - super(view); - - nextPageView = view.findViewById(org.smartregister.R.id.btn_next_page); - previousPageView = view.findViewById(org.smartregister.R.id.btn_previous_page); - pageInfoView = view.findViewById(org.smartregister.R.id.txt_page_info); - } - } -} +package org.smartregister.anc.library.provider; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import com.vijay.jsonwizard.views.CustomTextView; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.WordUtils; +import org.smartregister.anc.library.R; +import org.smartregister.anc.library.domain.ButtonAlertStatus; +import org.smartregister.anc.library.fragment.HomeRegisterFragment; +import org.smartregister.anc.library.util.DBConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.commonregistry.CommonPersonObject; +import org.smartregister.commonregistry.CommonPersonObjectClient; +import org.smartregister.commonregistry.CommonRepository; +import org.smartregister.cursoradapter.RecyclerViewProvider; +import org.smartregister.view.contract.SmartRegisterClient; +import org.smartregister.view.contract.SmartRegisterClients; +import org.smartregister.view.dialog.FilterOption; +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; + +/** + * Created by keyman on 26/06/2018. + */ + +public class RegisterProvider implements RecyclerViewProvider { + private final LayoutInflater inflater; + private Set visibleColumns; + + private View.OnClickListener onClickListener; + private View.OnClickListener paginationClickListener; + + private Context context; + private CommonRepository commonRepository; + + public RegisterProvider(Context context, CommonRepository commonRepository, Set visibleColumns, + View.OnClickListener onClickListener, View.OnClickListener paginationClickListener) { + + inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.visibleColumns = visibleColumns; + + this.onClickListener = onClickListener; + this.paginationClickListener = paginationClickListener; + + this.context = context; + this.commonRepository = commonRepository; + } + + @Override + public void getView(Cursor cursor, SmartRegisterClient client, RegisterViewHolder viewHolder) { + CommonPersonObjectClient pc = (CommonPersonObjectClient) client; + if (visibleColumns.isEmpty()) { + populatePatientColumn(pc, client, viewHolder); + populateIdentifierColumn(pc, viewHolder); + populateLastColumn(pc, viewHolder); + } + } + + @Override + public void getFooterView(RecyclerView.ViewHolder viewHolder, int currentPageCount, int totalPageCount, boolean hasNext, + boolean hasPrevious) { + FooterViewHolder footerViewHolder = (FooterViewHolder) viewHolder; + footerViewHolder.pageInfoView + .setText(MessageFormat.format(context.getString(R.string.str_page_info), currentPageCount, totalPageCount)); + + footerViewHolder.nextPageView.setVisibility(hasNext ? View.VISIBLE : View.INVISIBLE); + footerViewHolder.previousPageView.setVisibility(hasPrevious ? View.VISIBLE : View.INVISIBLE); + + footerViewHolder.nextPageView.setOnClickListener(paginationClickListener); + footerViewHolder.previousPageView.setOnClickListener(paginationClickListener); + } + + @Override + public SmartRegisterClients updateClients(FilterOption villageFilter, ServiceModeOption serviceModeOption, + FilterOption searchFilter, SortOption sortOption) { + return null; + } + + @Override + public void onServiceModeSelected(ServiceModeOption serviceModeOption) {//Implement Abstract Method + } + + @Override + public OnClickFormLauncher newFormLauncher(String formName, String entityId, String metaData) { + return null; + } + + @Override + public LayoutInflater inflater() { + return inflater; + } + + @Override + public RegisterViewHolder createViewHolder(ViewGroup parent) { + View view = inflater.inflate(R.layout.register_home_list_row, parent, false); + return new RegisterViewHolder(view); + } + + @Override + public RecyclerView.ViewHolder createFooterHolder(ViewGroup parent) { + View view = inflater.inflate(R.layout.smart_register_pagination, parent, false); + return new FooterViewHolder(view); + } + + @Override + public boolean isFooterViewHolder(RecyclerView.ViewHolder viewHolder) { + return viewHolder instanceof FooterViewHolder; + } + + private void populatePatientColumn(CommonPersonObjectClient pc, SmartRegisterClient client, + RegisterViewHolder viewHolder) { + + String firstName = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.FIRST_NAME, true); + String lastName = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.LAST_NAME, true); + String patientName = Utils.getName(firstName, lastName); + + fillValue(viewHolder.patientName, WordUtils.capitalize(patientName)); + + String dobString = Utils.getDuration(Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.DOB, false)); + dobString = dobString.contains("y") ? dobString.substring(0, dobString.indexOf("y")) : dobString; + fillValue((viewHolder.age), String.format(context.getString(R.string.age_text), dobString)); + + + String edd = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.EDD, false); + + if (StringUtils.isNotBlank(edd)) { + if(Utils.getGestationAgeFromEDDate(edd) > 40) + { + fillValue(viewHolder.ga, ""); + } + else { + fillValue((viewHolder.ga), + String.format(context.getString(R.string.ga_text), Utils.getGestationAgeFromEDDate(edd))); + viewHolder.period.setVisibility(View.VISIBLE); + } + } else { + + fillValue((viewHolder.ga), ""); + } + + View patient = viewHolder.patientColumn; + attachPatientOnclickListener(patient, client); + + + View dueButton = viewHolder.dueButton; + attachAlertButtonOnclickListener(dueButton, client); + + + String redFlagCountRaw = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, false); + String yellowFlagCountRaw = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, false); + + int redFlagCount = !TextUtils.isEmpty(redFlagCountRaw) ? Integer.valueOf(redFlagCountRaw) : 0; + int yellowFlagCount = !TextUtils.isEmpty(yellowFlagCountRaw) ? Integer.valueOf(yellowFlagCountRaw) : 0; + int totalFlagCount = yellowFlagCount + redFlagCount; + + TextView riskLayout = viewHolder.risk; + + if (totalFlagCount > 0) { + riskLayout.setCompoundDrawablesWithIntrinsicBounds( + redFlagCount > 0 ? R.drawable.ic_red_flag : R.drawable.ic_yellow_flag, 0, 0, 0); + riskLayout.setText(String.valueOf(totalFlagCount)); + riskLayout.setVisibility(View.VISIBLE); + + attachRiskLayoutOnclickListener(riskLayout, client); + } else { + riskLayout.setVisibility(View.GONE); + } + } + + private void populateIdentifierColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { + String ancId = Utils.getValue(pc.getColumnmaps(), DBConstantsUtils.KeyUtils.ANC_ID, false); + fillValue(viewHolder.ancId, String.format(context.getString(R.string.anc_id_text), ancId)); + } + + private void populateLastColumn(CommonPersonObjectClient pc, RegisterViewHolder viewHolder) { + if (commonRepository != null) { + CommonPersonObject commonPersonObject = commonRepository.findByBaseEntityId(pc.entityId()); + if (commonPersonObject != null) { + viewHolder.sync.setVisibility(View.GONE); + ButtonAlertStatus buttonAlertStatus = + Utils.getButtonAlertStatus(pc.getColumnmaps(), context, false); + Utils.processButtonAlertStatus(context, viewHolder.dueButton, viewHolder.contactDoneTodayButton, + buttonAlertStatus); + + } else { + viewHolder.dueButton.setVisibility(View.GONE); + viewHolder.sync.setVisibility(View.VISIBLE); + + attachSyncOnclickListener(viewHolder.sync, pc); + } + } + } + + public static void fillValue(TextView v, String value) { + if (v != null) v.setText(value); + + } + + private void attachPatientOnclickListener(View view, SmartRegisterClient client) { + view.setOnClickListener(onClickListener); + view.setTag(client); + view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_NORMAL); + } + + private void attachAlertButtonOnclickListener(View view, SmartRegisterClient client) { + view.setOnClickListener(onClickListener); + view.setTag(client); + view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_ALERT_STATUS); + } + + private void attachRiskLayoutOnclickListener(View view, SmartRegisterClient client) { + view.setOnClickListener(onClickListener); + view.setTag(client); + view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_ATTENTION_FLAG); + } + + private void attachSyncOnclickListener(View view, SmartRegisterClient client) { + view.setOnClickListener(onClickListener); + view.setTag(client); + view.setTag(R.id.VIEW_ID, HomeRegisterFragment.CLICK_VIEW_SYNC); + } + + //////////////////////////////////////////////////////////////// + // Inner classes + //////////////////////////////////////////////////////////////// + + public class RegisterViewHolder extends RecyclerView.ViewHolder { + private TextView patientName; + private TextView age; + private TextView period; + private TextView ga; + private TextView ancId; + private TextView risk; + private Button dueButton; + private Button sync; + private View patientColumn; + private CustomTextView contactDoneTodayButton; + + public RegisterViewHolder(View itemView) { + super(itemView); + patientName = itemView.findViewById(R.id.patient_name); + age = itemView.findViewById(R.id.age); + ga = itemView.findViewById(R.id.ga); + period = itemView.findViewById(R.id.period); + ancId = itemView.findViewById(R.id.anc_id); + risk = itemView.findViewById(R.id.risk); + dueButton = itemView.findViewById(R.id.due_button); + sync = itemView.findViewById(R.id.sync); + patientColumn = itemView.findViewById(R.id.patient_column); + contactDoneTodayButton = itemView.findViewById(R.id.contact_today_text); + } + } + + public class FooterViewHolder extends RecyclerView.ViewHolder { + private TextView pageInfoView; + private Button nextPageView; + private Button previousPageView; + + public FooterViewHolder(View view) { + super(view); + + nextPageView = view.findViewById(org.smartregister.R.id.btn_next_page); + previousPageView = view.findViewById(org.smartregister.R.id.btn_previous_page); + pageInfoView = view.findViewById(org.smartregister.R.id.txt_page_info); + } + } +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java index 8511c7bb6..eb360337e 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PatientRepository.java @@ -1,197 +1,197 @@ -package org.smartregister.anc.library.repository; - -import android.content.ContentValues; - -import androidx.annotation.NonNull; - -import net.sqlcipher.Cursor; -import net.sqlcipher.database.SQLiteDatabase; - -import org.apache.commons.lang3.StringUtils; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.domain.WomanDetail; -import org.smartregister.anc.library.util.ANCJsonFormUtils; -import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.anc.library.util.Utils; -import org.smartregister.repository.BaseRepository; -import org.smartregister.repository.Repository; -import org.smartregister.view.activity.DrishtiApplication; - -import java.util.Calendar; -import java.util.HashMap; -import java.util.Map; - -import timber.log.Timber; - -/** - * Created by ndegwamartin on 14/07/2018. - */ -public class PatientRepository extends BaseRepository { - - private static final String[] projection = getRegisterQueryProvider().mainColumns(); - - /** - * Provides all woman details needed for display and/or editing - * - * @param baseEntityId - * @return {@link Map} - */ - public static Map getWomanProfileDetails(String baseEntityId) { - Cursor cursor = null; - - Map detailsMap = null; - try { - SQLiteDatabase db = getMasterRepository().getReadableDatabase(); - - String query = - "SELECT " + StringUtils.join(projection, ",") + " FROM " + getRegisterQueryProvider().getDemographicTable() + " join " + getRegisterQueryProvider().getDetailsTable() + - " on " + getRegisterQueryProvider().getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = " + getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " WHERE " + - getRegisterQueryProvider().getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?"; - cursor = db.rawQuery(query, new String[]{baseEntityId}); - if (cursor != null && cursor.moveToFirst()) { - detailsMap = new HashMap<>(); - for (int count = 0; count < projection.length; count++) { - String columnName = cursor.getColumnName(count); - if (columnName != null) { - String columnValue = cursor.getString(cursor.getColumnIndex(columnName)); - if (columnName.equals(DBConstantsUtils.KeyUtils.LAST_NAME) && StringUtils.isBlank(columnValue)) - columnValue = ""; - detailsMap.put(columnName, columnValue); - } - } - } - return detailsMap; - } catch (Exception e) { - Timber.e(e, "%s ==> getWomanProfileDetails()", PatientRepository.class.getCanonicalName()); - } finally { - if (cursor != null) { - cursor.close(); - } - } - return null; - } - - public static boolean isFirstVisit(@NonNull String baseEntityId) { - SQLiteDatabase sqLiteDatabase = getMasterRepository().getReadableDatabase(); - Cursor cursor = sqLiteDatabase.query(getRegisterQueryProvider().getDetailsTable(), - new String[]{DBConstantsUtils.KeyUtils.EDD}, - DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ? ", - new String[]{baseEntityId}, null, null, null, "1"); - String isFirstVisit = null; - if (cursor != null && cursor.moveToFirst()) { - isFirstVisit = cursor.getString(cursor.getColumnIndex(DBConstantsUtils.KeyUtils.EDD)); - cursor.close(); - } - - return StringUtils.isBlank(isFirstVisit); - } - - protected static Repository getMasterRepository() { - return DrishtiApplication.getInstance().getRepository(); - } - - private static RegisterQueryProvider getRegisterQueryProvider() { - return AncLibrary.getInstance().getRegisterQueryProvider(); - } - - public static void updateWomanAlertStatus(String baseEntityId, String alertStatus) { - ContentValues contentValues = new ContentValues(); - contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, alertStatus); - - updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); - - updateLastInteractedWith(baseEntityId); - } - - public static void updatePatient(String baseEntityId, ContentValues contentValues, String table) { - getMasterRepository().getWritableDatabase() - .update(table, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", - new String[]{baseEntityId}); - } - - private static void updateLastInteractedWith(String baseEntityId) { - ContentValues lastInteractedWithContentValue = new ContentValues(); - - lastInteractedWithContentValue.put(DBConstantsUtils.KeyUtils.LAST_INTERACTED_WITH, Calendar.getInstance().getTimeInMillis()); - - updatePatient(baseEntityId, lastInteractedWithContentValue, getRegisterQueryProvider().getDemographicTable()); - } - - public static void updateContactVisitDetails(WomanDetail patientDetail, boolean isFinalize) { - ContentValues contentValues = new ContentValues(); - contentValues.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, patientDetail.getNextContact()); - contentValues.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, patientDetail.getNextContactDate()); - contentValues.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, patientDetail.getYellowFlagCount()); - contentValues.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, patientDetail.getRedFlagCount()); - contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, patientDetail.getContactStatus()); - if (isFinalize) { - if (!patientDetail.isReferral()) { - contentValues - .put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, Utils.DB_DF.format(Calendar.getInstance().getTime())); - contentValues.put(DBConstantsUtils.KeyUtils.PREVIOUS_CONTACT_STATUS, patientDetail.getContactStatus()); - } else { - contentValues.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, patientDetail.getLastContactRecordDate()); - contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, patientDetail.getPreviousContactStatus()); - } - } - - updatePatient(patientDetail.getBaseEntityId(), contentValues, getRegisterQueryProvider().getDetailsTable()); - - updateLastInteractedWith(patientDetail.getBaseEntityId()); - } - - /** - * This is a bad hack. Needs to be changed later - * - * @param form - * @param baseEntityId - */ - public static void updateCohabitants(String form, String baseEntityId) { - try { - JSONObject jsonObject = new JSONObject(form); - JSONArray fields = ANCJsonFormUtils.getSingleStepFormfields(jsonObject); - JSONObject cohabitants = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.COHABITANTS); - JSONObject reminder = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.REMINDERS); - - String value = cohabitants.optString(ConstantsUtils.KeyUtils.VALUE, "[]"); - String remindersValue = reminder.optString(ConstantsUtils.KeyUtils.VALUE,"{}"); - - ContentValues contentValues = new ContentValues(); - contentValues.put(DBConstantsUtils.KeyUtils.COHABITANTS, value); - contentValues.put(DBConstantsUtils.KeyUtils.REMINDERS,remindersValue); - - updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); - - updateLastInteractedWith(baseEntityId); - } catch (JSONException e) { - Timber.e(e); - } - } - - public static void updateEDDDate(String baseEntityId, String edd) { - - ContentValues contentValues = new ContentValues(); - if (edd != null) { - contentValues.put(DBConstantsUtils.KeyUtils.EDD, edd); - } else { - contentValues.putNull(DBConstantsUtils.KeyUtils.EDD); - } - updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); - } - - public static void updateContactVisitStartDate(String baseEntityId, String contactVisitStartDate) { - - ContentValues contentValues = new ContentValues(); - if (contactVisitStartDate != null) { - contentValues.put(DBConstantsUtils.KeyUtils.VISIT_START_DATE, contactVisitStartDate); - } else { - contentValues.putNull(DBConstantsUtils.KeyUtils.VISIT_START_DATE); - } - updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); - } - -} +package org.smartregister.anc.library.repository; + +import android.content.ContentValues; + +import androidx.annotation.NonNull; + +import net.sqlcipher.Cursor; +import net.sqlcipher.database.SQLiteDatabase; + +import org.apache.commons.lang3.StringUtils; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.domain.WomanDetail; +import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.repository.BaseRepository; +import org.smartregister.repository.Repository; +import org.smartregister.view.activity.DrishtiApplication; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; + +import timber.log.Timber; + +/** + * Created by ndegwamartin on 14/07/2018. + */ +public class PatientRepository extends BaseRepository { + + private static final String[] projection = getRegisterQueryProvider().mainColumns(); + + /** + * Provides all woman details needed for display and/or editing + * + * @param baseEntityId + * @return {@link Map} + */ + public static Map getWomanProfileDetails(String baseEntityId) { + Cursor cursor = null; + + Map detailsMap = null; + try { + SQLiteDatabase db = getMasterRepository().getReadableDatabase(); + + String query = + "SELECT " + StringUtils.join(projection, ",") + " FROM " + getRegisterQueryProvider().getDemographicTable() + " join " + getRegisterQueryProvider().getDetailsTable() + + " on " + getRegisterQueryProvider().getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = " + getRegisterQueryProvider().getDetailsTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " WHERE " + + getRegisterQueryProvider().getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?"; + cursor = db.rawQuery(query, new String[]{baseEntityId}); + if (cursor != null && cursor.moveToFirst()) { + detailsMap = new HashMap<>(); + for (int count = 0; count < projection.length; count++) { + String columnName = cursor.getColumnName(count); + if (columnName != null) { + String columnValue = cursor.getString(cursor.getColumnIndex(columnName)); + if (columnName.equals(DBConstantsUtils.KeyUtils.LAST_NAME) && StringUtils.isBlank(columnValue)) + columnValue = ""; + detailsMap.put(columnName, columnValue); + } + } + } + return detailsMap; + } catch (Exception e) { + Timber.e(e, "%s ==> getWomanProfileDetails()", PatientRepository.class.getCanonicalName()); + } finally { + if (cursor != null) { + cursor.close(); + } + } + return null; + } + + public static boolean isFirstVisit(@NonNull String baseEntityId) { + SQLiteDatabase sqLiteDatabase = getMasterRepository().getReadableDatabase(); + Cursor cursor = sqLiteDatabase.query(getRegisterQueryProvider().getDetailsTable(), + new String[]{DBConstantsUtils.KeyUtils.EDD}, + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ? ", + new String[]{baseEntityId}, null, null, null, "1"); + String isFirstVisit = null; + if (cursor != null && cursor.moveToFirst()) { + isFirstVisit = cursor.getString(cursor.getColumnIndex(DBConstantsUtils.KeyUtils.EDD)); + cursor.close(); + } + + return StringUtils.isBlank(isFirstVisit); + } + + protected static Repository getMasterRepository() { + return DrishtiApplication.getInstance().getRepository(); + } + + private static RegisterQueryProvider getRegisterQueryProvider() { + return AncLibrary.getInstance().getRegisterQueryProvider(); + } + + public static void updateWomanAlertStatus(String baseEntityId, String alertStatus) { + ContentValues contentValues = new ContentValues(); + contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, alertStatus); + + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + + updateLastInteractedWith(baseEntityId); + } + + public static void updatePatient(String baseEntityId, ContentValues contentValues, String table) { + getMasterRepository().getWritableDatabase() + .update(table, contentValues, DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " = ?", + new String[]{baseEntityId}); + } + + private static void updateLastInteractedWith(String baseEntityId) { + ContentValues lastInteractedWithContentValue = new ContentValues(); + + lastInteractedWithContentValue.put(DBConstantsUtils.KeyUtils.LAST_INTERACTED_WITH, Calendar.getInstance().getTimeInMillis()); + + updatePatient(baseEntityId, lastInteractedWithContentValue, getRegisterQueryProvider().getDemographicTable()); + } + + public static void updateContactVisitDetails(WomanDetail patientDetail, boolean isFinalize) { + ContentValues contentValues = new ContentValues(); + contentValues.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, patientDetail.getNextContact()); + contentValues.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, patientDetail.getNextContactDate()); + contentValues.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, patientDetail.getYellowFlagCount()); + contentValues.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, patientDetail.getRedFlagCount()); + contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, patientDetail.getContactStatus()); + if (isFinalize) { + if (!patientDetail.isReferral()) { + contentValues + .put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, Utils.DB_DF.format(Calendar.getInstance().getTime())); + contentValues.put(DBConstantsUtils.KeyUtils.PREVIOUS_CONTACT_STATUS, patientDetail.getContactStatus()); + } else { + contentValues.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, patientDetail.getLastContactRecordDate()); + contentValues.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, patientDetail.getPreviousContactStatus()); + } + } + + updatePatient(patientDetail.getBaseEntityId(), contentValues, getRegisterQueryProvider().getDetailsTable()); + + updateLastInteractedWith(patientDetail.getBaseEntityId()); + } + + /** + * This is a bad hack. Needs to be changed later + * + * @param form + * @param baseEntityId + */ + public static void updateCohabitants(String form, String baseEntityId) { + try { + JSONObject jsonObject = new JSONObject(form); + JSONArray fields = ANCJsonFormUtils.getSingleStepFormfields(jsonObject); + JSONObject cohabitants = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.COHABITANTS); + JSONObject reminder = ANCJsonFormUtils.getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.REMINDERS); + + String value = cohabitants.optString(ConstantsUtils.KeyUtils.VALUE, "[]"); + String remindersValue = reminder.optString(ConstantsUtils.KeyUtils.VALUE,"{}"); + + ContentValues contentValues = new ContentValues(); + contentValues.put(DBConstantsUtils.KeyUtils.COHABITANTS, value); + contentValues.put(DBConstantsUtils.KeyUtils.REMINDERS,remindersValue); + + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + + updateLastInteractedWith(baseEntityId); + } catch (JSONException e) { + Timber.e(e); + } + } + + public static void updateEDDDate(String baseEntityId, String edd) { + + ContentValues contentValues = new ContentValues(); + if (edd != null) { + contentValues.put(DBConstantsUtils.KeyUtils.EDD, edd); + } else { + contentValues.putNull(DBConstantsUtils.KeyUtils.EDD); + } + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + } + + public static void updateContactVisitStartDate(String baseEntityId, String contactVisitStartDate) { + + ContentValues contentValues = new ContentValues(); + if (contactVisitStartDate != null) { + contentValues.put(DBConstantsUtils.KeyUtils.VISIT_START_DATE, contactVisitStartDate); + } else { + contentValues.putNull(DBConstantsUtils.KeyUtils.VISIT_START_DATE); + } + updatePatient(baseEntityId, contentValues, getRegisterQueryProvider().getDetailsTable()); + } + +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java index e77e2ad32..477124c0c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/sync/BaseAncClientProcessorForJava.java @@ -1,301 +1,301 @@ -package org.smartregister.anc.library.sync; - -import android.content.ContentValues; -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.text.TextUtils; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.google.gson.reflect.TypeToken; -import com.vijay.jsonwizard.constants.JsonFormConstants; - -import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.helper.ECSyncHelper; -import org.smartregister.anc.library.model.PreviousContact; -import org.smartregister.anc.library.model.Task; -import org.smartregister.anc.library.repository.ContactTasksRepository; -import org.smartregister.anc.library.util.ANCJsonFormUtils; -import org.smartregister.anc.library.util.ConstantsUtils; -import org.smartregister.anc.library.util.DBConstantsUtils; -import org.smartregister.commonregistry.AllCommonsRepository; -import org.smartregister.domain.Client; -import org.smartregister.domain.Event; -import org.smartregister.domain.db.EventClient; -import org.smartregister.domain.jsonmapping.ClientClassification; -import org.smartregister.domain.jsonmapping.ClientField; -import org.smartregister.domain.jsonmapping.Table; -import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.repository.DetailsRepository; -import org.smartregister.sync.ClientProcessorForJava; -import org.smartregister.sync.MiniClientProcessorForJava; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashSet; -import java.util.List; -import java.util.Map; - -import timber.log.Timber; - -/** - * Created by ndegwamartin on 15/03/2018. - */ - -public class BaseAncClientProcessorForJava extends ClientProcessorForJava implements MiniClientProcessorForJava { - private HashSet eventTypes = new HashSet<>(); - - public BaseAncClientProcessorForJava(Context context) { - super(context); - } - - public static BaseAncClientProcessorForJava getInstance(Context context) { - if (instance == null) { - instance = new BaseAncClientProcessorForJava(context); - } - - return (BaseAncClientProcessorForJava) instance; - } - - @Override - public void processClient(List eventClients) throws Exception { - Timber.d("Inside the BaseAncClientProcessorForJava"); - ClientClassification clientClassification = - assetJsonToJava(ConstantsUtils.EcFileUtils.CLIENT_CLASSIFICATION, ClientClassification.class); - - if (!eventClients.isEmpty()) { - List unsyncEvents = new ArrayList<>(); - for (EventClient eventClient : eventClients) { - processEventClient(eventClient, unsyncEvents, clientClassification); - } - - // Unsync events that are should not be in this device - if (!unsyncEvents.isEmpty()) { - unSync(unsyncEvents); - } - } - } - - private void processVisit(Event event) { - //Attention flags - getDetailsRepository() - .add(event.getBaseEntityId(), ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS, - event.getDetails().get(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS), - Calendar.getInstance().getTimeInMillis()); - processPreviousContacts(event); - processContactTasks(event); - - } - - private boolean unSync(ECSyncHelper ecSyncHelper, DetailsRepository detailsRepository, List bindObjects, - Event event, String registeredAnm) { - try { - String baseEntityId = event.getBaseEntityId(); - String providerId = event.getProviderId(); - - if (providerId.equals(registeredAnm)) { - ecSyncHelper.deleteEventsByBaseEntityId(baseEntityId); - ecSyncHelper.deleteClient(baseEntityId); - detailsRepository.deleteDetails(baseEntityId); - - for (Table bindObject : bindObjects) { - String tableName = bindObject.name; - deleteCase(tableName, baseEntityId); - } - - return true; - } - } catch (Exception e) { - Timber.e(e); - } - return false; - } - - public DetailsRepository getDetailsRepository() { - return AncLibrary.getInstance().getDetailsRepository(); - } - - private void processPreviousContacts(Event event) { - //Previous contact state - String previousContactsRaw = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.PREVIOUS_CONTACTS); - Map previousContactMap = getPreviousContactMap(previousContactsRaw); - - if (previousContactMap != null) { - String contactNo = getContact(event); - for (Map.Entry entry : previousContactMap.entrySet()) { - AncLibrary.getInstance().getPreviousContactRepository().savePreviousContact( - new PreviousContact(event.getBaseEntityId(), entry.getKey(), entry.getValue(), contactNo)); - } - } - } - - private void processContactTasks(Event event) { - try { - String openTasks = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.OPEN_TEST_TASKS); - if (StringUtils.isNotBlank(openTasks)) { - JSONArray openTasksArray = new JSONArray(openTasks); - getContactTasksRepository().deleteAllTasks(event.getBaseEntityId()); - for (int i = 0; i < openTasksArray.length(); i++) { - JSONObject tasks = new JSONObject(openTasksArray.getString(i)); - String key = tasks.optString(JsonFormConstants.KEY); - - Task task = getTask(tasks, key, event.getBaseEntityId()); - getContactTasksRepository().saveOrUpdateTasks(task); - } - } - } catch (JSONException e) { - Timber.e(e, " --> processContactTasks"); - } - } - - public Map getPreviousContactMap(String previousContactsRaw) { - return AncLibrary.getInstance().getGsonInstance().fromJson(previousContactsRaw, new TypeToken>() { - }.getType()); - } - - @NotNull - private String getContact(Event event) { - String contactNo = ""; - if (!TextUtils.isEmpty(event.getDetails().get(ConstantsUtils.CONTACT))) { - String[] contacts = event.getDetails().get(ConstantsUtils.CONTACT).split(" "); - if (contacts.length >= 2) { - int nextContact = Integer.parseInt(contacts[1]); - if (nextContact > 0) { - contactNo = String.valueOf(nextContact - 1); - } else { - contactNo = String.valueOf(nextContact + 1); - } - } - } - return contactNo; - } - - @NotNull - private Task getTask(JSONObject field, String key, String baseEntityId) { - Task task = new Task(); - task.setBaseEntityId(baseEntityId); - task.setKey(key); - task.setValue(String.valueOf(field)); - task.setUpdated(false); - task.setComplete(ANCJsonFormUtils.checkIfTaskIsComplete(field)); - task.setCreatedAt(Calendar.getInstance().getTimeInMillis()); - return task; - } - - public ContactTasksRepository getContactTasksRepository() { - return AncLibrary.getInstance().getContactTasksRepository(); - } - - @Override - public void updateFTSsearch(String tableName, String entityId, ContentValues contentValues) { - AllCommonsRepository allCommonsRepository = org.smartregister.CoreLibrary.getInstance().context().allCommonsRepositoryobjects(tableName); - - if (allCommonsRepository != null) { - allCommonsRepository.updateSearch(entityId); - } - } - - @Override - public String[] getOpenmrsGenIds() { - /* - This method is not currently used because the ANC_ID is always a number and does not contain hyphens. - This method is used to get the identifiers used by OpenMRS so that we remove the hyphens in the - content values for such identifiers - */ - return new String[]{DBConstantsUtils.KeyUtils.ANC_ID, ConstantsUtils.JsonFormKeyUtils.ANC_ID}; - } - - @Override - public void processEventClient(@NonNull EventClient eventClient, @NonNull List unsyncEvents, @Nullable ClientClassification clientClassification) throws Exception { - Event event = eventClient.getEvent(); - if (event == null) { - return; - } - - String eventType = event.getEventType(); - if (StringUtils.isBlank(eventType)) { - return; - } - Client client = eventClient.getClient(); - switch (eventType) { - case ConstantsUtils.EventTypeUtils.CLOSE: - case ConstantsUtils.EventTypeUtils.REGISTRATION: - case ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION: - if (clientClassification == null) { - return; - } - //iterate through the events - if (client != null) { - processEvent(event, client, clientClassification); - } - break; - case ConstantsUtils.EventTypeUtils.CONTACT_VISIT: - processVisit(event); - break; - default: - break; - } - } - - @Override - public boolean unSync(@Nullable List events) { - try { - - if (events == null || events.isEmpty()) { - return false; - } - - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext()); - AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); - String registeredAnm = allSharedPreferences.fetchRegisteredANM(); - - ClientField clientField = assetJsonToJava(ConstantsUtils.EcFileUtils.CLIENT_FIELDS, ClientField.class); - if (clientField == null) { - return false; - } - - List
bindObjects = clientField.bindobjects; - DetailsRepository detailsRepository = AncLibrary.getInstance().getContext().detailsRepository(); - ECSyncHelper ecUpdater = ECSyncHelper.getInstance(getContext()); - - for (Event event : events) { - unSync(ecUpdater, detailsRepository, bindObjects, event, registeredAnm); - } - - return true; - - } catch (Exception e) { - Timber.e(e, " --> unSync"); - } - - return false; - } - - - @NonNull - @Override - public HashSet getEventTypes() { - if (eventTypes.isEmpty()) { - eventTypes.add(ConstantsUtils.EventTypeUtils.REGISTRATION); - eventTypes.add(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION); - eventTypes.add(ConstantsUtils.EventTypeUtils.QUICK_CHECK); - eventTypes.add(ConstantsUtils.EventTypeUtils.CONTACT_VISIT); - eventTypes.add(ConstantsUtils.EventTypeUtils.CLOSE); - eventTypes.add(ConstantsUtils.EventTypeUtils.SITE_CHARACTERISTICS); - } - - return eventTypes; - } - - @Override - public boolean canProcess(@NonNull String eventType) { - return getEventTypes().contains(eventType); - } +package org.smartregister.anc.library.sync; + +import android.content.ContentValues; +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; +import android.text.TextUtils; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.google.gson.reflect.TypeToken; +import com.vijay.jsonwizard.constants.JsonFormConstants; + +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.helper.ECSyncHelper; +import org.smartregister.anc.library.model.PreviousContact; +import org.smartregister.anc.library.model.Task; +import org.smartregister.anc.library.repository.ContactTasksRepository; +import org.smartregister.anc.library.util.ANCJsonFormUtils; +import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.DBConstantsUtils; +import org.smartregister.commonregistry.AllCommonsRepository; +import org.smartregister.domain.Client; +import org.smartregister.domain.Event; +import org.smartregister.domain.db.EventClient; +import org.smartregister.domain.jsonmapping.ClientClassification; +import org.smartregister.domain.jsonmapping.ClientField; +import org.smartregister.domain.jsonmapping.Table; +import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.repository.DetailsRepository; +import org.smartregister.sync.ClientProcessorForJava; +import org.smartregister.sync.MiniClientProcessorForJava; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import timber.log.Timber; + +/** + * Created by ndegwamartin on 15/03/2018. + */ + +public class BaseAncClientProcessorForJava extends ClientProcessorForJava implements MiniClientProcessorForJava { + private HashSet eventTypes = new HashSet<>(); + + public BaseAncClientProcessorForJava(Context context) { + super(context); + } + + public static BaseAncClientProcessorForJava getInstance(Context context) { + if (instance == null) { + instance = new BaseAncClientProcessorForJava(context); + } + + return (BaseAncClientProcessorForJava) instance; + } + + @Override + public void processClient(List eventClients) throws Exception { + Timber.d("Inside the BaseAncClientProcessorForJava"); + ClientClassification clientClassification = + assetJsonToJava(ConstantsUtils.EcFileUtils.CLIENT_CLASSIFICATION, ClientClassification.class); + + if (!eventClients.isEmpty()) { + List unsyncEvents = new ArrayList<>(); + for (EventClient eventClient : eventClients) { + processEventClient(eventClient, unsyncEvents, clientClassification); + } + + // Unsync events that are should not be in this device + if (!unsyncEvents.isEmpty()) { + unSync(unsyncEvents); + } + } + } + + private void processVisit(Event event) { + //Attention flags + getDetailsRepository() + .add(event.getBaseEntityId(), ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS, + event.getDetails().get(ConstantsUtils.DetailsKeyUtils.ATTENTION_FLAG_FACTS), + Calendar.getInstance().getTimeInMillis()); + processPreviousContacts(event); + processContactTasks(event); + + } + + private boolean unSync(ECSyncHelper ecSyncHelper, DetailsRepository detailsRepository, List
bindObjects, + Event event, String registeredAnm) { + try { + String baseEntityId = event.getBaseEntityId(); + String providerId = event.getProviderId(); + + if (providerId.equals(registeredAnm)) { + ecSyncHelper.deleteEventsByBaseEntityId(baseEntityId); + ecSyncHelper.deleteClient(baseEntityId); + detailsRepository.deleteDetails(baseEntityId); + + for (Table bindObject : bindObjects) { + String tableName = bindObject.name; + deleteCase(tableName, baseEntityId); + } + + return true; + } + } catch (Exception e) { + Timber.e(e); + } + return false; + } + + public DetailsRepository getDetailsRepository() { + return AncLibrary.getInstance().getDetailsRepository(); + } + + private void processPreviousContacts(Event event) { + //Previous contact state + String previousContactsRaw = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.PREVIOUS_CONTACTS); + Map previousContactMap = getPreviousContactMap(previousContactsRaw); + + if (previousContactMap != null) { + String contactNo = getContact(event); + for (Map.Entry entry : previousContactMap.entrySet()) { + AncLibrary.getInstance().getPreviousContactRepository().savePreviousContact( + new PreviousContact(event.getBaseEntityId(), entry.getKey(), entry.getValue(), contactNo)); + } + } + } + + private void processContactTasks(Event event) { + try { + String openTasks = event.getDetails().get(ConstantsUtils.DetailsKeyUtils.OPEN_TEST_TASKS); + if (StringUtils.isNotBlank(openTasks)) { + JSONArray openTasksArray = new JSONArray(openTasks); + getContactTasksRepository().deleteAllTasks(event.getBaseEntityId()); + for (int i = 0; i < openTasksArray.length(); i++) { + JSONObject tasks = new JSONObject(openTasksArray.getString(i)); + String key = tasks.optString(JsonFormConstants.KEY); + + Task task = getTask(tasks, key, event.getBaseEntityId()); + getContactTasksRepository().saveOrUpdateTasks(task); + } + } + } catch (JSONException e) { + Timber.e(e, " --> processContactTasks"); + } + } + + public Map getPreviousContactMap(String previousContactsRaw) { + return AncLibrary.getInstance().getGsonInstance().fromJson(previousContactsRaw, new TypeToken>() { + }.getType()); + } + + @NotNull + private String getContact(Event event) { + String contactNo = ""; + if (!TextUtils.isEmpty(event.getDetails().get(ConstantsUtils.CONTACT))) { + String[] contacts = event.getDetails().get(ConstantsUtils.CONTACT).split(" "); + if (contacts.length >= 2) { + int nextContact = Integer.parseInt(contacts[1]); + if (nextContact > 0) { + contactNo = String.valueOf(nextContact - 1); + } else { + contactNo = String.valueOf(nextContact + 1); + } + } + } + return contactNo; + } + + @NotNull + private Task getTask(JSONObject field, String key, String baseEntityId) { + Task task = new Task(); + task.setBaseEntityId(baseEntityId); + task.setKey(key); + task.setValue(String.valueOf(field)); + task.setUpdated(false); + task.setComplete(ANCJsonFormUtils.checkIfTaskIsComplete(field)); + task.setCreatedAt(Calendar.getInstance().getTimeInMillis()); + return task; + } + + public ContactTasksRepository getContactTasksRepository() { + return AncLibrary.getInstance().getContactTasksRepository(); + } + + @Override + public void updateFTSsearch(String tableName, String entityId, ContentValues contentValues) { + AllCommonsRepository allCommonsRepository = org.smartregister.CoreLibrary.getInstance().context().allCommonsRepositoryobjects(tableName); + + if (allCommonsRepository != null) { + allCommonsRepository.updateSearch(entityId); + } + } + + @Override + public String[] getOpenmrsGenIds() { + /* + This method is not currently used because the ANC_ID is always a number and does not contain hyphens. + This method is used to get the identifiers used by OpenMRS so that we remove the hyphens in the + content values for such identifiers + */ + return new String[]{DBConstantsUtils.KeyUtils.ANC_ID, ConstantsUtils.JsonFormKeyUtils.ANC_ID}; + } + + @Override + public void processEventClient(@NonNull EventClient eventClient, @NonNull List unsyncEvents, @Nullable ClientClassification clientClassification) throws Exception { + Event event = eventClient.getEvent(); + if (event == null) { + return; + } + + String eventType = event.getEventType(); + if (StringUtils.isBlank(eventType)) { + return; + } + Client client = eventClient.getClient(); + switch (eventType) { + case ConstantsUtils.EventTypeUtils.CLOSE: + case ConstantsUtils.EventTypeUtils.REGISTRATION: + case ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION: + if (clientClassification == null) { + return; + } + //iterate through the events + if (client != null) { + processEvent(event, client, clientClassification); + } + break; + case ConstantsUtils.EventTypeUtils.CONTACT_VISIT: + processVisit(event); + break; + default: + break; + } + } + + @Override + public boolean unSync(@Nullable List events) { + try { + + if (events == null || events.isEmpty()) { + return false; + } + + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext()); + AllSharedPreferences allSharedPreferences = new AllSharedPreferences(preferences); + String registeredAnm = allSharedPreferences.fetchRegisteredANM(); + + ClientField clientField = assetJsonToJava(ConstantsUtils.EcFileUtils.CLIENT_FIELDS, ClientField.class); + if (clientField == null) { + return false; + } + + List
bindObjects = clientField.bindobjects; + DetailsRepository detailsRepository = AncLibrary.getInstance().getContext().detailsRepository(); + ECSyncHelper ecUpdater = ECSyncHelper.getInstance(getContext()); + + for (Event event : events) { + unSync(ecUpdater, detailsRepository, bindObjects, event, registeredAnm); + } + + return true; + + } catch (Exception e) { + Timber.e(e, " --> unSync"); + } + + return false; + } + + + @NonNull + @Override + public HashSet getEventTypes() { + if (eventTypes.isEmpty()) { + eventTypes.add(ConstantsUtils.EventTypeUtils.REGISTRATION); + eventTypes.add(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION); + eventTypes.add(ConstantsUtils.EventTypeUtils.QUICK_CHECK); + eventTypes.add(ConstantsUtils.EventTypeUtils.CONTACT_VISIT); + eventTypes.add(ConstantsUtils.EventTypeUtils.CLOSE); + eventTypes.add(ConstantsUtils.EventTypeUtils.SITE_CHARACTERISTICS); + } + + return eventTypes; + } + + @Override + public boolean canProcess(@NonNull String eventType) { + return getEventTypes().contains(eventType); + } } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchProfileDataTask.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchProfileDataTask.java index b66564f2a..e06f9a26f 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchProfileDataTask.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/task/FetchProfileDataTask.java @@ -1,38 +1,38 @@ -package org.smartregister.anc.library.task; - -import org.smartregister.anc.library.event.ClientDetailsFetchedEvent; -import org.smartregister.anc.library.repository.PatientRepository; -import org.smartregister.anc.library.util.AppExecutors; -import org.smartregister.anc.library.util.Utils; - -import java.util.Map; - -/** - * Created by ndegwamartin on 13/07/2018. - */ -public class FetchProfileDataTask { - - private boolean isForEdit; - private AppExecutors appExecutors; - - public FetchProfileDataTask(boolean isForEdit) { - this.isForEdit = isForEdit; - } - - public void execute(String baseEntityId) { - appExecutors = new AppExecutors(); - appExecutors.diskIO().execute(() -> { - Map client = this.getWomanDetailsOnBackground(baseEntityId); - appExecutors.mainThread().execute(() -> postStickEventOnPostExec(client)); - }); - - } - - private Map getWomanDetailsOnBackground(String baseEntityId) { - return PatientRepository.getWomanProfileDetails(baseEntityId); - } - - protected void postStickEventOnPostExec(Map client) { - Utils.postStickyEvent(new ClientDetailsFetchedEvent(client, isForEdit)); - } -} +package org.smartregister.anc.library.task; + +import org.smartregister.anc.library.event.ClientDetailsFetchedEvent; +import org.smartregister.anc.library.repository.PatientRepository; +import org.smartregister.anc.library.util.AppExecutors; +import org.smartregister.anc.library.util.Utils; + +import java.util.Map; + +/** + * Created by ndegwamartin on 13/07/2018. + */ +public class FetchProfileDataTask { + + private boolean isForEdit; + private AppExecutors appExecutors; + + public FetchProfileDataTask(boolean isForEdit) { + this.isForEdit = isForEdit; + } + + public void execute(String baseEntityId) { + appExecutors = new AppExecutors(); + appExecutors.diskIO().execute(() -> { + Map client = this.getWomanDetailsOnBackground(baseEntityId); + appExecutors.mainThread().execute(() -> postStickEventOnPostExec(client)); + }); + + } + + private Map getWomanDetailsOnBackground(String baseEntityId) { + return PatientRepository.getWomanProfileDetails(baseEntityId); + } + + protected void postStickEventOnPostExec(Map client) { + Utils.postStickyEvent(new ClientDetailsFetchedEvent(client, isForEdit)); + } +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java index 4119daff4..b146cf51a 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/ANCJsonFormUtils.java @@ -1,1027 +1,1027 @@ -package org.smartregister.anc.library.util; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.graphics.Bitmap; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.core.util.Pair; - -import com.google.common.reflect.TypeToken; -import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; -import com.vijay.jsonwizard.constants.JsonFormConstants; - -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.Triple; -import org.jeasy.rules.api.Facts; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.joda.time.LocalDate; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.smartregister.anc.library.AncLibrary; -import org.smartregister.anc.library.BuildConfig; -import org.smartregister.anc.library.R; -import org.smartregister.anc.library.activity.EditJsonFormActivity; -import org.smartregister.anc.library.domain.YamlConfigItem; -import org.smartregister.anc.library.domain.YamlConfigWrapper; -import org.smartregister.anc.library.model.ContactSummaryModel; -import org.smartregister.anc.library.model.Task; -import org.smartregister.clientandeventmodel.Client; -import org.smartregister.clientandeventmodel.Event; -import org.smartregister.clientandeventmodel.FormEntityConstants; -import org.smartregister.domain.Photo; -import org.smartregister.domain.ProfileImage; -import org.smartregister.domain.form.FormLocation; -import org.smartregister.domain.tag.FormTag; -import org.smartregister.location.helper.LocationHelper; -import org.smartregister.repository.AllSharedPreferences; -import org.smartregister.repository.EventClientRepository; -import org.smartregister.repository.ImageRepository; -import org.smartregister.util.AssetHandler; -import org.smartregister.util.FormUtils; -import org.smartregister.util.ImageUtils; -import org.smartregister.view.LocationPickerView; -import org.smartregister.view.activity.DrishtiApplication; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -import timber.log.Timber; - -/** - * Created by keyman on 27/06/2018. - */ -public class ANCJsonFormUtils extends org.smartregister.util.JsonFormUtils { - public static final String METADATA = "metadata"; - public static final String ENCOUNTER_TYPE = "encounter_type"; - public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy"); - public static final SimpleDateFormat EDD_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); - public static final String READ_ONLY = "read_only"; - public static final int REQUEST_CODE_GET_JSON = 3432; - private static final String TAG = ANCJsonFormUtils.class.getCanonicalName(); - - public static boolean isFieldRequired(JSONObject fieldObject) throws JSONException { - boolean isValueRequired = false; - if (fieldObject.has(JsonFormConstants.V_REQUIRED)) { - JSONObject valueRequired = fieldObject.getJSONObject(JsonFormConstants.V_REQUIRED); - String value = valueRequired.getString(JsonFormConstants.VALUE); - isValueRequired = Boolean.parseBoolean(value); - } - //Don't check required for hidden, toaster notes, spacer and label widgets - return (!fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.LABEL) && - !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.SPACER) && - !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.TOASTER_NOTES) && - !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.HIDDEN)) && - isValueRequired; - } - - public static JSONObject getFormAsJson(JSONObject form, String formName, String id, String currentLocationId) - throws Exception { - if (form == null) { - return null; - } - - String entityId = id; - form.getJSONObject(METADATA).put(ANCJsonFormUtils.ENCOUNTER_LOCATION, currentLocationId); - - if (ConstantsUtils.JsonFormUtils.ANC_REGISTER.equals(formName)) { - if (StringUtils.isNotBlank(entityId)) { - entityId = entityId.replace("-", ""); - } - - addRegistrationLocationHierarchyQuestions(form); - // Inject opensrp id into the form - JSONArray field = ANCJsonFormUtils.fields(form); - JSONObject ancId = getFieldJSONObject(field, ConstantsUtils.JsonFormKeyUtils.ANC_ID); - if (ancId != null) { - ancId.remove(ANCJsonFormUtils.VALUE); - ancId.put(ANCJsonFormUtils.VALUE, entityId); - } - - } else if (ConstantsUtils.JsonFormUtils.ANC_CLOSE.equals(formName)) { - if (StringUtils.isNotBlank(entityId)) { - // Inject entity id into the remove form - form.remove(ANCJsonFormUtils.ENTITY_ID); - form.put(ENTITY_ID, entityId); - } - } else { - Timber.tag(TAG).w("Unsupported form requested for launch %s", formName); - } - Timber.d("form is %s", form.toString()); - return form; - } - - private static void addRegistrationLocationHierarchyQuestions(@NonNull JSONObject form) { - try { - JSONArray fields = com.vijay.jsonwizard.utils.FormUtils.getMultiStepFormFields(form); - AncMetadata metadata = AncLibrary.getInstance().getAncMetadata(); - ArrayList allLevels = metadata.getLocationLevels(); - ArrayList healthFacilities = metadata.getHealthFacilityLevels(); - List defaultLocation = LocationHelper.getInstance().generateDefaultLocationHierarchy(allLevels); - List defaultFacility = LocationHelper.getInstance().generateDefaultLocationHierarchy(healthFacilities); - List entireTree = LocationHelper.getInstance().generateLocationHierarchyTree(true, allLevels); - String defaultLocationString = AssetHandler.javaToJsonString(defaultLocation, new TypeToken>() { - }.getType()); - - String defaultFacilityString = AssetHandler.javaToJsonString(defaultFacility, new TypeToken>() { - }.getType()); - - String entireTreeString = AssetHandler.javaToJsonString(entireTree, new TypeToken>() { - }.getType()); - - updateLocationTree(fields, defaultLocationString, defaultFacilityString, entireTreeString); - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> addRegLocHierarchyQuestions"); - } - } - - private static void updateLocationTree(@NonNull JSONArray fields, - @NonNull String defaultLocationString, - @NonNull String defaultFacilityString, - @NonNull String entireTreeString) { - AncMetadata ancMetadata = AncLibrary.getInstance().getAncMetadata(); - if (ancMetadata.getFieldsWithLocationHierarchy() != null && !ancMetadata.getFieldsWithLocationHierarchy().isEmpty()) { - for (int i = 0; i < fields.length(); i++) { - JSONObject widget = fields.optJSONObject(i); - if (ancMetadata.getFieldsWithLocationHierarchy().contains(widget.optString(JsonFormConstants.KEY))) { - if (StringUtils.isNotBlank(entireTreeString)) { - addLocationTree(widget.optString(JsonFormConstants.KEY), widget, entireTreeString, JsonFormConstants.TREE); - } - if (StringUtils.isNotBlank(defaultFacilityString)) { - addLocationTreeDefault(widget.optString(JsonFormConstants.KEY), widget, defaultLocationString); - } - } - } - } - } - - private static void addLocationTree(@NonNull String widgetKey, @NonNull JSONObject widget, @NonNull String updateString, @NonNull String treeType) { - try { - if (widget.optString(JsonFormConstants.KEY).equals(widgetKey)) { - widget.put(treeType, new JSONArray(updateString)); - } - } catch (JSONException e) { - Timber.e(e, "JsonFormUtils --> addLocationTree"); - } - } - - private static void addLocationTreeDefault(@NonNull String widgetKey, @NonNull JSONObject widget, @NonNull String updateString) { - addLocationTree(widgetKey, widget, updateString, JsonFormConstants.DEFAULT); - } - - public static JSONObject getFieldJSONObject(JSONArray jsonArray, String key) { - if (jsonArray == null || jsonArray.length() == 0) { - return null; - } - - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(jsonArray, i); - String keyVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.KEY); - if (keyVal != null && keyVal.equals(key)) { - return jsonObject; - } - } - return null; - } - - public static Pair processRegistrationForm(AllSharedPreferences allSharedPreferences, String jsonString) { - try { - Triple registrationFormParams = validateParameters(jsonString); - - if (!registrationFormParams.getLeft()) { - return null; - } - - JSONObject jsonForm = registrationFormParams.getMiddle(); - JSONArray fields = registrationFormParams.getRight(); - - String entityId = getEntityId(jsonForm); - String encounterType = ANCJsonFormUtils.getString(jsonForm, ENCOUNTER_TYPE); - JSONObject metadata = ANCJsonFormUtils.getJSONObject(jsonForm, METADATA); - addLastInteractedWith(fields); - getDobStrings(fields); - String previousVisitsMap = initializeFirstContactValues(fields); - processLocationFields(fields); - - FormTag formTag = getFormTag(allSharedPreferences); - - Client baseClient = org.smartregister.util.JsonFormUtils.createBaseClient(fields, formTag, entityId); - Event baseEvent = org.smartregister.util.JsonFormUtils - .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); - - if (previousVisitsMap != null) { - baseEvent.addDetails(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP, previousVisitsMap); - } - tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs - - return Pair.create(baseClient, baseEvent); - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> processRegistrationForm"); - return null; - } - } - - protected static void processLocationFields(@NonNull JSONArray fields) throws JSONException { - for (int i = 0; i < fields.length(); i++) { - if (fields.optJSONObject(i).has(JsonFormConstants.TYPE) && - fields.optJSONObject(i).optString(JsonFormConstants.TYPE).equals(JsonFormConstants.TREE)) - try { - String rawValue = fields.optJSONObject(i).optString(JsonFormConstants.VALUE); - if (StringUtils.isNotBlank(rawValue)) { - JSONArray valueArray = new JSONArray(rawValue); - if (valueArray.length() > 0) { - String lastLocationName = valueArray.optString(valueArray.length() - 1); - String lastLocationId = LocationHelper.getInstance().getOpenMrsLocationId(lastLocationName); - fields.optJSONObject(i).put(JsonFormConstants.VALUE, lastLocationId); - } - } - } catch (NullPointerException e) { - Timber.e(e); - } catch (IllegalArgumentException e) { - Timber.e(e); - } - } - } - - public static Triple validateParameters(String jsonString) { - - JSONObject jsonForm = ANCJsonFormUtils.toJSONObject(jsonString); - JSONArray fields = ANCJsonFormUtils.fields(jsonForm); - - return Triple.of(jsonForm != null && fields != null, jsonForm, fields); - } - - @NotNull - private static String getEntityId(JSONObject jsonForm) { - String entityId = ANCJsonFormUtils.getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); - if (StringUtils.isBlank(entityId)) { - entityId = ANCJsonFormUtils.generateRandomUUIDString(); - } - return entityId; - } - - private static void addLastInteractedWith(JSONArray fields) throws JSONException { - JSONObject lastInteractedWith = new JSONObject(); - lastInteractedWith.put(ConstantsUtils.KeyUtils.KEY, DBConstantsUtils.KeyUtils.LAST_INTERACTED_WITH); - lastInteractedWith.put(ConstantsUtils.KeyUtils.VALUE, Calendar.getInstance().getTimeInMillis()); - fields.put(lastInteractedWith); - } - - private static void getDobStrings(JSONArray fields) throws JSONException { - JSONObject dobUnknownObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.DOB_UNKNOWN); - JSONArray options = ANCJsonFormUtils.getJSONArray(dobUnknownObject, ConstantsUtils.JsonFormKeyUtils.OPTIONS); - JSONObject option = ANCJsonFormUtils.getJSONObject(options, 0); - String dobUnKnownString = option != null ? option.getString(ANCJsonFormUtils.VALUE) : null; - - if (StringUtils.isNotBlank(dobUnKnownString)) { - dobUnknownObject.put(ANCJsonFormUtils.VALUE, Boolean.valueOf(dobUnKnownString) ? 1 : 0); - } - } - - /*** - * Initializes the values in the mother details table used by contact containers - * @param fields {@link JSONArray} - * @return - * @throws JSONException - */ - private static String initializeFirstContactValues(@NonNull JSONArray fields) throws JSONException { - String strGroup = null; - - int nextContact = 1; - - String nextContactDate = Utils.convertDateFormat(Calendar.getInstance().getTime(), Utils.DB_DF); - - if (ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { - HashMap> previousVisitsMap = Utils.buildRepeatingGroupValues(fields, ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS); - if (!previousVisitsMap.isEmpty()) { - - nextContact = previousVisitsMap.size() + 1; - - strGroup = ANCJsonFormUtils.gson.toJson(previousVisitsMap); - - Set>> previousVisitsMapSet = previousVisitsMap.entrySet(); - - HashMap previousVisitsMapItem = new LinkedHashMap<>(); - - for (Map.Entry> entry : previousVisitsMapSet) { - previousVisitsMapItem = entry.getValue(); - } - - JSONObject lastContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); - lastContactDateJSONObject.put(ANCJsonFormUtils.VALUE, previousVisitsMapItem.get(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE)); - } - } - JSONObject nextContactJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); - if (nextContactJSONObject.has(JsonFormConstants.VALUE) && - "".equals(nextContactJSONObject.getString(JsonFormConstants.VALUE))) { - nextContactJSONObject.put(ANCJsonFormUtils.VALUE, nextContact); - } - - JSONObject nextContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE); - if (nextContactDateJSONObject.has(JsonFormConstants.VALUE) && - "".equals(nextContactDateJSONObject.getString(JsonFormConstants.VALUE))) { - nextContactDateJSONObject.put(ANCJsonFormUtils.VALUE, nextContactDate); - } - - return strGroup; - } - - - @NotNull - public static FormTag getFormTag(AllSharedPreferences allSharedPreferences) { - FormTag formTag = new FormTag(); - formTag.providerId = allSharedPreferences.fetchRegisteredANM(); - formTag.appVersion = BuildConfig.VERSION_CODE; - formTag.databaseVersion = AncLibrary.getInstance().getDatabaseVersion(); - return formTag; - } - - public static void tagSyncMetadata(AllSharedPreferences allSharedPreferences, Event event) { - String providerId = allSharedPreferences.fetchRegisteredANM(); - event.setProviderId(providerId); - event.setLocationId(allSharedPreferences.fetchDefaultLocalityId(providerId)); - event.setChildLocationId(getChildLocationId(event.getLocationId(), allSharedPreferences)); - event.setTeam(allSharedPreferences.fetchDefaultTeam(providerId)); - event.setTeamId(allSharedPreferences.fetchDefaultTeamId(providerId)); - //event.setVersion(BuildConfig.EVENT_VERSION); - event.setClientApplicationVersion(BuildConfig.VERSION_CODE); - event.setClientDatabaseVersion(AncLibrary.getInstance().getDatabaseVersion()); - } - - @Nullable - public static String getChildLocationId(@NonNull String defaultLocationId, @NonNull AllSharedPreferences allSharedPreferences) { - String currentLocality = allSharedPreferences.fetchCurrentLocality(); - - if (StringUtils.isNotBlank(currentLocality)) { - String currentLocalityId = LocationHelper.getInstance().getOpenMrsLocationId(currentLocality); - if (StringUtils.isNotBlank(currentLocalityId) && !defaultLocationId.equals(currentLocalityId)) { - return currentLocalityId; - } - } - - return null; - } - - public static void mergeAndSaveClient(Client baseClient) throws Exception { - JSONObject updatedClientJson = new JSONObject(org.smartregister.util.JsonFormUtils.gson.toJson(baseClient)); - - JSONObject originalClientJsonObject = - AncLibrary.getInstance().getEcSyncHelper().getClient(baseClient.getBaseEntityId()); - - JSONObject mergedJson = org.smartregister.util.JsonFormUtils.merge(originalClientJsonObject, updatedClientJson); - - //TODO Save edit log ? - - AncLibrary.getInstance().getEcSyncHelper().addClient(baseClient.getBaseEntityId(), mergedJson); - } - - public static void saveImage(String providerId, String entityId, String imageLocation) { - OutputStream outputStream = null; - try { - if (StringUtils.isBlank(imageLocation)) { - return; - } - - File file = FileUtil.createFileFromPath(imageLocation); - if (!file.exists()) { - return; - } - - Bitmap compressedBitmap = AncLibrary.getInstance().getCompressor().compressToBitmap(file); - if (compressedBitmap == null || StringUtils.isBlank(providerId) || StringUtils.isBlank(entityId)) { - return; - } - - if (!entityId.isEmpty()) { - final String absoluteFileName = DrishtiApplication.getAppDir() + File.separator + entityId + ".JPEG"; - - File outputFile = FileUtil.createFileFromPath(absoluteFileName); - outputStream = FileUtil.createFileOutputStream(outputFile); - Bitmap.CompressFormat compressFormat = Bitmap.CompressFormat.JPEG; - compressedBitmap.compress(compressFormat, 100, outputStream); - // insert into the db - ProfileImage profileImage = getProfileImage(providerId, entityId, absoluteFileName); - ImageRepository imageRepository = AncLibrary.getInstance().getContext().imageRepository(); - imageRepository.add(profileImage); - } - - } catch (FileNotFoundException e) { - Timber.e("Failed to save static image to disk"); - } catch (IOException e) { - Timber.e(e, " --> saveImage"); - } finally { - if (outputStream != null) { - try { - outputStream.close(); - } catch (IOException e) { - Timber.e("Failed to close static images output stream after attempting to write image"); - } - } - } - } - - @NotNull - private static ProfileImage getProfileImage(String providerId, String entityId, String absoluteFileName) { - ProfileImage profileImage = new ProfileImage(); - profileImage.setImageid(UUID.randomUUID().toString()); - profileImage.setAnmId(providerId); - profileImage.setEntityID(entityId); - profileImage.setFilepath(absoluteFileName); - profileImage.setFilecategory(ConstantsUtils.FileCategoryUtils.PROFILE_PIC); - profileImage.setSyncStatus(ImageRepository.TYPE_Unsynced); - return profileImage; - } - - public static String getString(String jsonString, String field) { - return ANCJsonFormUtils.getString(ANCJsonFormUtils.toJSONObject(jsonString), field); - } - - public static String getFieldValue(String jsonString, String key) { - JSONObject jsonForm = ANCJsonFormUtils.toJSONObject(jsonString); - if (jsonForm == null) { - return null; - } - - JSONArray fields = ANCJsonFormUtils.fields(jsonForm); - if (fields == null) { - return null; - } - - return ANCJsonFormUtils.getFieldValue(fields, key); - - } - - public static String getAutoPopulatedJsonEditRegisterFormString(Context context, Map womanClient) { - try { - JSONObject form = FormUtils.getInstance(context).getFormJson(ConstantsUtils.JsonFormUtils.ANC_REGISTER); - LocationPickerView lpv = createLocationPickerView(context); - if (lpv != null) { - lpv.init(); - } - - Timber.d("Form is %s", form.toString()); - - if (form != null) { - form.put(ANCJsonFormUtils.ENTITY_ID, womanClient.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID)); - form.put(ANCJsonFormUtils.ENCOUNTER_TYPE, ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION); - - JSONObject metadata = form.getJSONObject(ANCJsonFormUtils.METADATA); - String lastLocationId = - lpv != null ? LocationHelper.getInstance().getOpenMrsLocationId(lpv.getSelectedItem()) : ""; - - metadata.put(ANCJsonFormUtils.ENCOUNTER_LOCATION, lastLocationId); - - form.put(ConstantsUtils.CURRENT_OPENSRP_ID, womanClient.get(DBConstantsUtils.KeyUtils.ANC_ID).replace("-", "")); - - //inject opensrp id into the form - JSONObject stepOne = form.getJSONObject(ANCJsonFormUtils.STEP1); - JSONArray jsonArray = stepOne.getJSONArray(ANCJsonFormUtils.FIELDS); - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - - processPopulatableFields(womanClient, jsonObject); - - } - - return form.toString(); - } - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> getAutoPopulatedJsonEditRegisterFormString"); - } - - return ""; - } - - private static LocationPickerView createLocationPickerView(Context context) { - try { - return new LocationPickerView(context); - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> createLocationPickerView"); - return null; - } - } - - protected static void processPopulatableFields(Map womanClient, JSONObject jsonObject) - throws JSONException { - - AncMetadata ancMetadata = AncLibrary.getInstance().getAncMetadata(); - - if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.DOB_ENTERED)) { - getDobUsingEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.DOB); - - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.HOME_ADDRESS)) { - String homeAddress = womanClient.get(DBConstantsUtils.KeyUtils.HOME_ADDRESS); - jsonObject.put(ANCJsonFormUtils.VALUE, homeAddress); - - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.WOM_IMAGE)) { - getPhotoFieldValue(womanClient, jsonObject); - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.DOB_UNKNOWN)) { - jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); - JSONObject optionsObject = jsonObject.getJSONArray(ConstantsUtils.JsonFormKeyUtils.OPTIONS).getJSONObject(0); - optionsObject.put(ANCJsonFormUtils.VALUE, womanClient.get(DBConstantsUtils.KeyUtils.DOB_UNKNOWN)); - - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.KeyUtils.AGE_ENTERED)) { - jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); - if (StringUtils.isNotBlank(womanClient.get(DBConstantsUtils.KeyUtils.DOB))) { - jsonObject.put(ANCJsonFormUtils.VALUE, Utils.getAgeFromDate(womanClient.get(DBConstantsUtils.KeyUtils.DOB))); - } - } else if (ancMetadata != null && ancMetadata.getFieldsWithLocationHierarchy() != null && - ancMetadata.getFieldsWithLocationHierarchy().contains(jsonObject.optString(ANCJsonFormUtils.KEY))) { - reverseLocationTree(jsonObject, womanClient.get(jsonObject.optString(ANCJsonFormUtils.KEY))); - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.EDD)) { - formatEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.EDD); - - } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.ANC_ID)) { - jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(DBConstantsUtils.KeyUtils.ANC_ID).replace("-", "")); - } else if (womanClient.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { - jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); - jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(jsonObject.getString(ANCJsonFormUtils.KEY))); - } else { - Timber.e("ERROR:: Unprocessed Form Object Key %s", jsonObject.getString(ANCJsonFormUtils.KEY)); - } - } - - private static void reverseLocationTree(@NonNull JSONObject jsonObject, @Nullable String entity) throws JSONException { - List entityHierarchy = null; - if (entity != null) { - if (ConstantsUtils.OTHER.equalsIgnoreCase(entity)) { - entityHierarchy = new ArrayList<>(); - entityHierarchy.add(entity); - } else { - String locationId = LocationHelper.getInstance().getOpenMrsLocationId(entity); - entityHierarchy = LocationHelper.getInstance().getOpenMrsLocationHierarchy(locationId, false); - } - } - ArrayList allLevels = AncLibrary.getInstance().getAncMetadata().getHealthFacilityLevels(); - List entireTree = LocationHelper.getInstance().generateLocationHierarchyTree(true, allLevels); - String entireTreeString = AssetHandler.javaToJsonString(entireTree, new TypeToken>() { - }.getType()); - String facilityHierarchyString = AssetHandler.javaToJsonString(entityHierarchy, new TypeToken>() { - }.getType()); - if (StringUtils.isNotBlank(facilityHierarchyString)) { - jsonObject.put(JsonFormConstants.VALUE, facilityHierarchyString); - jsonObject.put(JsonFormConstants.TREE, new JSONArray(entireTreeString)); - } - } - - private static void getDobUsingEdd(Map womanClient, JSONObject jsonObject, String birthDate) - throws JSONException { - String dobString = womanClient.get(birthDate); - if (StringUtils.isNotBlank(dobString)) { - Date dob = Utils.dobStringToDate(dobString); - if (dob != null) { - jsonObject.put(ANCJsonFormUtils.VALUE, DATE_FORMAT.format(dob)); - } - } - } - - private static void getPhotoFieldValue(Map womanClient, JSONObject jsonObject) throws JSONException { - Photo photo = ImageUtils.profilePhotoByClientID(womanClient.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID), - Utils.getProfileImageResourceIdentifier()); - - if (photo != null && StringUtils.isNotBlank(photo.getFilePath())) { - jsonObject.put(ANCJsonFormUtils.VALUE, photo.getFilePath()); - - } - } - - private static void formatEdd(Map womanClient, JSONObject jsonObject, String eddDate) - throws JSONException { - String eddString = womanClient.get(eddDate); - if (StringUtils.isNotBlank(eddString)) { - Date edd = Utils.dobStringToDate(eddString); - if (edd != null) { - jsonObject.put(ANCJsonFormUtils.VALUE, EDD_DATE_FORMAT.format(edd)); - } - } - } - - public static void startFormForEdit(Activity context, int jsonFormActivityRequestCode, String metaData) { - Intent intent = new Intent(context, EditJsonFormActivity.class); - intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, metaData); - intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); - Timber.d("form is %s", metaData); - context.startActivityForResult(intent, jsonFormActivityRequestCode); - } - - public static Triple saveRemovedFromANCRegister(AllSharedPreferences allSharedPreferences, String jsonString, String providerId) { - try { - boolean isDeath = false; - Triple registrationFormParams = validateParameters(jsonString); - - if (!registrationFormParams.getLeft()) { - return null; - } - - JSONObject jsonForm = registrationFormParams.getMiddle(); - JSONArray fields = registrationFormParams.getRight(); - - String encounterType = ANCJsonFormUtils.getString(jsonForm, ENCOUNTER_TYPE); - JSONObject metadata = ANCJsonFormUtils.getJSONObject(jsonForm, METADATA); - - String encounterLocation = null; - - try { - encounterLocation = metadata.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_LOCATION); - } catch (JSONException e) { - Timber.e(e, "JsonFormUtils --> saveRemovedFromANCRegister --> getEncounterLocation"); - } - - Date encounterDate = new Date(); - String entityId = ANCJsonFormUtils.getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); - - Event event = (Event) new Event().withBaseEntityId(entityId) //should be different for main and subform - .withEventDate(encounterDate).withEventType(encounterType).withLocationId(encounterLocation) - .withProviderId(providerId).withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME) - .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()).withDateCreated(new Date()); - tagSyncMetadata(allSharedPreferences, event); - - for (int i = 0; i < fields.length(); i++) { - JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(fields, i); - - String value = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.VALUE); - if (StringUtils.isNotBlank(value)) { - ANCJsonFormUtils.addObservation(event, jsonObject); - if (jsonObject.get(ANCJsonFormUtils.KEY).equals(ConstantsUtils.JsonFormKeyUtils.ANC_CLOSE_REASON)) { - isDeath = "Woman Died".equalsIgnoreCase(value); - } - } - } - - Iterator keys = metadata.keys(); - - while (keys.hasNext()) { - String key = (String) keys.next(); - JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(metadata, key); - String value = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.VALUE); - if (StringUtils.isNotBlank(value)) { - String entityVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.OPENMRS_ENTITY); - if (entityVal != null) { - if (entityVal.equals(ANCJsonFormUtils.CONCEPT)) { - ANCJsonFormUtils.addToJSONObject(jsonObject, ANCJsonFormUtils.KEY, key); - ANCJsonFormUtils.addObservation(event, jsonObject); - - } else if (entityVal.equals(ANCJsonFormUtils.ENCOUNTER)) { - String entityIdVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.OPENMRS_ENTITY_ID); - if (entityIdVal.equals(FormEntityConstants.Encounter.encounter_date.name())) { - Date eDate = ANCJsonFormUtils.formatDate(value, false); - if (eDate != null) { - event.setEventDate(eDate); - } - } - } - } - } - } - - //Update Child Entity to include death date - Event updateChildDetailsEvent = - (Event) new Event().withBaseEntityId(entityId) //should be different for main and subform - .withEventDate(encounterDate).withEventType(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION) - .withLocationId(encounterLocation).withProviderId(providerId) - .withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME).withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()) - .withDateCreated(new Date()); - tagSyncMetadata(allSharedPreferences, updateChildDetailsEvent); - - return Triple.of(isDeath, event, updateChildDetailsEvent); - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> saveRemovedFromANCRegister"); - } - return null; - } - - public static void launchANCCloseForm(Activity activity) { - try { - Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); - JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_CLOSE); - if (form != null) { - form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); - intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); - intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); - activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); - } - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> launchANCCloseForm"); - } - } - - public static void launchSiteCharacteristicsForm(Activity activity) { - try { - Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); - JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); - if (form != null) { - form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, - activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); - intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); - intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); - activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); - } - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> launchSiteCharacteristicsForm"); - } - } - - public static Map processSiteCharacteristics(String jsonString) { - try { - Triple registrationFormParams = validateParameters(jsonString); - if (!registrationFormParams.getLeft()) { - return null; - } - - Map settings = new HashMap<>(); - JSONArray fields = - registrationFormParams.getMiddle().getJSONObject(ANCJsonFormUtils.STEP1).getJSONArray(ANCJsonFormUtils.FIELDS); - - for (int i = 0; i < fields.length(); i++) { - if (!"label".equals(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.TYPE))) { - settings.put(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.KEY), - StringUtils.isBlank(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.VALUE)) ? "0" : - fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.VALUE)); - } - } - - return settings; - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> processSiteCharacteristics"); - return null; - } - } - - public static String getAutoPopulatedSiteCharacteristicsEditFormString(Context context, - Map characteristics) { - try { - JSONObject form = FormUtils.getInstance(context).getFormJson(ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); - Timber.d("Form is %s", form.toString()); - if (form != null) { - form.put(ANCJsonFormUtils.ENCOUNTER_TYPE, ConstantsUtils.EventTypeUtils.SITE_CHARACTERISTICS); - - JSONObject stepOne = form.getJSONObject(ANCJsonFormUtils.STEP1); - JSONArray jsonArray = stepOne.getJSONArray(ANCJsonFormUtils.FIELDS); - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - if (characteristics.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { - jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); - jsonObject.put(ANCJsonFormUtils.VALUE, - "true".equals(characteristics.get(jsonObject.getString(ANCJsonFormUtils.KEY))) ? "1" : "0"); - } - - } - - return form.toString(); - } - } catch (Exception e) { - Timber.e(e, "JsonFormUtils --> getAutoPopulatedSiteCharacteristicsEditFormString"); - } - - return ""; - } - - public static Pair createVisitAndUpdateEvent(List formSubmissionIDs, - Map womanDetails) { - if (formSubmissionIDs.size() < 1 && womanDetails.get(ConstantsUtils.REFERRAL) == null) { - return null; - } - - try { - String baseEntityId = womanDetails.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID); - - Event contactVisitEvent = Utils.createContactVisitEvent(formSubmissionIDs, womanDetails, String.valueOf(getOpenTasks(baseEntityId))); - - //Update client - EventClientRepository db = AncLibrary.getInstance().getEventClientRepository(); - - JSONObject clientForm = db.getClientByBaseEntityId(baseEntityId); - JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT)); - attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); - attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, - womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); - attributes.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, womanDetails.get(DBConstantsUtils.KeyUtils.CONTACT_STATUS)); - attributes.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT)); - attributes.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT)); - attributes.put(DBConstantsUtils.KeyUtils.EDD, womanDetails.get(DBConstantsUtils.KeyUtils.EDD)); - attributes.put(DBConstantsUtils.KeyUtils.ALT_NAME, womanDetails.get(DBConstantsUtils.KeyUtils.ALT_NAME)); - attributes.put(DBConstantsUtils.KeyUtils.PHONE_NUMBER, womanDetails.get(DBConstantsUtils.KeyUtils.PHONE_NUMBER)); - attributes.put(DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER, womanDetails.get(DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER)); - clientForm.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); - - db.addorUpdateClient(baseEntityId, clientForm); - - Event updateClientEvent = createUpdateClientDetailsEvent(baseEntityId); - - return Pair.create(contactVisitEvent, updateClientEvent); - - } catch (Exception e) { - Timber.e(e, " --> createContactVisitEvent"); - return null; - } - - } - - public static Date getContactStartDate(String contactStartDate) { - try { - return new LocalDate(contactStartDate).toDate(); - } catch (Exception e) { - return new LocalDate().toDate(); - } - } - - private static JSONArray getOpenTasks(String baseEntityId) { - List openTasks = AncLibrary.getInstance().getContactTasksRepository().getOpenTasks(baseEntityId); - JSONArray openTaskArray = new JSONArray(); - if (openTasks != null && openTasks.size() > 0) { - for (Task task : openTasks) { - openTaskArray.put(task.getValue()); - } - } - return openTaskArray; - } - - protected static Event createUpdateClientDetailsEvent(String baseEntityId) { - - Event updateChildDetailsEvent = (Event) new Event().withBaseEntityId(baseEntityId).withEventDate(new Date()) - .withEventType(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION).withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME) - .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()).withDateCreated(new Date()); - - ANCJsonFormUtils - .tagSyncMetadata(AncLibrary.getInstance().getContext().allSharedPreferences(), updateChildDetailsEvent); - - return updateChildDetailsEvent; - } - - public static Event processContactFormEvent(JSONObject jsonForm, String baseEntityId) { - AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); - JSONArray fields = getMultiStepFormFields(jsonForm); - - String entityId = getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); - if (StringUtils.isBlank(entityId)) { - entityId = baseEntityId; - } - - String encounterType = getString(jsonForm, ENCOUNTER_TYPE); - JSONObject metadata = getJSONObject(jsonForm, METADATA); - - FormTag formTag = getFormTag(allSharedPreferences); - Event baseEvent = org.smartregister.util.JsonFormUtils - .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); - - tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs - - return baseEvent; - } - - public static JSONObject readJsonFromAsset(Context context, String filePath) throws Exception { - InputStream inputStream = context.getAssets().open(filePath + ".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()); - } - - /** - * Gets an expansion panel {@link JSONObject} value then check whether the test/tasks was `ordered` or `not done`. - * If any either of this is selected then we mark it as not complete. - * - * @param field {@link JSONObject} - * @return isComplete {@link Boolean} - */ - public static boolean checkIfTaskIsComplete(JSONObject field) { - boolean isComplete = true; - try { - if (field != null && field.has(JsonFormConstants.VALUE)) { - JSONArray value = field.getJSONArray(JsonFormConstants.VALUE); - if (value.length() > 1) { - JSONObject valueField = value.getJSONObject(0); - if (valueField != null && valueField.has(JsonFormConstants.VALUES)) { - JSONArray values = valueField.getJSONArray(JsonFormConstants.VALUES); - if (values.length() > 0) { - String selectedValue = values.getString(0); - if (selectedValue.contains(JsonFormConstants.AncRadioButtonOptionTypesUtils.ORDERED) || selectedValue.contains(JsonFormConstants.AncRadioButtonOptionTypesUtils.NOT_DONE)) { - isComplete = false; - } - } - } - } - } - } catch (JSONException e) { - Timber.e(e, " --> checkIfTaskIsComplete"); - } - return isComplete; - } - - public List generateNextContactSchedule(String edd, List contactSchedule, - Integer lastContactSequence) { - List contactDates = new ArrayList<>(); - Integer contactSequence = lastContactSequence; - if (StringUtils.isNotBlank(edd)) { - LocalDate localDate = new LocalDate(edd); - LocalDate lmpDate = localDate.minusWeeks(ConstantsUtils.DELIVERY_DATE_WEEKS); - - for (String contactWeeks : contactSchedule) { - contactDates.add(new ContactSummaryModel(String.format( - AncLibrary.getInstance().getContext().getStringResource(R.string.contact_number), - contactSequence++), - Utils.convertDateFormat(lmpDate.plusWeeks(Integer.valueOf(contactWeeks)).toDate(), - Utils.CONTACT_SUMMARY_DF), lmpDate.plusWeeks(Integer.valueOf(contactWeeks)).toDate(), - contactWeeks)); - } - } - return contactDates; - } - - /** - * Creates and populates a constraint view to add the contacts tab view instead of using recycler views which introduce - * lots of scroll complexities - * - * @param data - * @param facts - * @param position - * @param context - * @return constraintLayout - */ - @NonNull - public ConstraintLayout createListViewItems(List data, Facts facts, int position, Context context) { - YamlConfigItem yamlConfigItem = data.get(position).getYamlConfigItem(); - - ANCJsonFormUtils.Template template = getTemplate(yamlConfigItem.getTemplate()); - String output = ""; - if (!TextUtils.isEmpty(template.detail)) { - output = Utils.fillTemplate(template.detail, facts); - } - - LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - ConstraintLayout constraintLayout = - (ConstraintLayout) inflater.inflate(R.layout.previous_contacts_preview_row, null); - TextView sectionDetailTitle = constraintLayout.findViewById(R.id.overview_section_details_left); - TextView sectionDetails = constraintLayout.findViewById(R.id.overview_section_details_right); - - - sectionDetailTitle.setText(template.title); - sectionDetails.setText(output);//Perhaps refactor to use Json Form Parser Implementation - - if (AncLibrary.getInstance().getAncRulesEngineHelper().getRelevance(facts, yamlConfigItem.getIsRedFont())) { - sectionDetailTitle.setTextColor(context.getResources().getColor(R.color.overview_font_red)); - sectionDetails.setTextColor(context.getResources().getColor(R.color.overview_font_red)); - } else { - sectionDetailTitle.setTextColor(context.getResources().getColor(R.color.overview_font_left)); - sectionDetails.setTextColor(context.getResources().getColor(R.color.overview_font_right)); - } - - sectionDetailTitle.setVisibility(View.VISIBLE); - sectionDetails.setVisibility(View.VISIBLE); - return constraintLayout; - } - - public Template getTemplate(String rawTemplate) { - Template template = new Template(); - - if (rawTemplate.contains(":")) { - String[] templateArray = rawTemplate.split(":"); - if (templateArray.length == 1) { - template.title = templateArray[0].trim(); - } else if (templateArray.length > 1) { - template.title = templateArray[0].trim(); - template.detail = templateArray[1].trim(); - } - } else { - template.title = rawTemplate; - template.detail = "Yes"; - } - - return template; - } - - public class Template { - public String title = ""; - public String detail = ""; - } +package org.smartregister.anc.library.util; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.core.util.Pair; + +import com.google.common.reflect.TypeToken; +import com.vijay.jsonwizard.activities.FormConfigurationJsonFormActivity; +import com.vijay.jsonwizard.constants.JsonFormConstants; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Triple; +import org.jeasy.rules.api.Facts; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.joda.time.LocalDate; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.BuildConfig; +import org.smartregister.anc.library.R; +import org.smartregister.anc.library.activity.EditJsonFormActivity; +import org.smartregister.anc.library.domain.YamlConfigItem; +import org.smartregister.anc.library.domain.YamlConfigWrapper; +import org.smartregister.anc.library.model.ContactSummaryModel; +import org.smartregister.anc.library.model.Task; +import org.smartregister.clientandeventmodel.Client; +import org.smartregister.clientandeventmodel.Event; +import org.smartregister.clientandeventmodel.FormEntityConstants; +import org.smartregister.domain.Photo; +import org.smartregister.domain.ProfileImage; +import org.smartregister.domain.form.FormLocation; +import org.smartregister.domain.tag.FormTag; +import org.smartregister.location.helper.LocationHelper; +import org.smartregister.repository.AllSharedPreferences; +import org.smartregister.repository.EventClientRepository; +import org.smartregister.repository.ImageRepository; +import org.smartregister.util.AssetHandler; +import org.smartregister.util.FormUtils; +import org.smartregister.util.ImageUtils; +import org.smartregister.view.LocationPickerView; +import org.smartregister.view.activity.DrishtiApplication; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +import timber.log.Timber; + +/** + * Created by keyman on 27/06/2018. + */ +public class ANCJsonFormUtils extends org.smartregister.util.JsonFormUtils { + public static final String METADATA = "metadata"; + public static final String ENCOUNTER_TYPE = "encounter_type"; + public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy"); + public static final SimpleDateFormat EDD_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + public static final String READ_ONLY = "read_only"; + public static final int REQUEST_CODE_GET_JSON = 3432; + private static final String TAG = ANCJsonFormUtils.class.getCanonicalName(); + + public static boolean isFieldRequired(JSONObject fieldObject) throws JSONException { + boolean isValueRequired = false; + if (fieldObject.has(JsonFormConstants.V_REQUIRED)) { + JSONObject valueRequired = fieldObject.getJSONObject(JsonFormConstants.V_REQUIRED); + String value = valueRequired.getString(JsonFormConstants.VALUE); + isValueRequired = Boolean.parseBoolean(value); + } + //Don't check required for hidden, toaster notes, spacer and label widgets + return (!fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.LABEL) && + !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.SPACER) && + !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.TOASTER_NOTES) && + !fieldObject.getString(JsonFormConstants.TYPE).equals(JsonFormConstants.HIDDEN)) && + isValueRequired; + } + + public static JSONObject getFormAsJson(JSONObject form, String formName, String id, String currentLocationId) + throws Exception { + if (form == null) { + return null; + } + + String entityId = id; + form.getJSONObject(METADATA).put(ANCJsonFormUtils.ENCOUNTER_LOCATION, currentLocationId); + + if (ConstantsUtils.JsonFormUtils.ANC_REGISTER.equals(formName)) { + if (StringUtils.isNotBlank(entityId)) { + entityId = entityId.replace("-", ""); + } + + addRegistrationLocationHierarchyQuestions(form); + // Inject opensrp id into the form + JSONArray field = ANCJsonFormUtils.fields(form); + JSONObject ancId = getFieldJSONObject(field, ConstantsUtils.JsonFormKeyUtils.ANC_ID); + if (ancId != null) { + ancId.remove(ANCJsonFormUtils.VALUE); + ancId.put(ANCJsonFormUtils.VALUE, entityId); + } + + } else if (ConstantsUtils.JsonFormUtils.ANC_CLOSE.equals(formName)) { + if (StringUtils.isNotBlank(entityId)) { + // Inject entity id into the remove form + form.remove(ANCJsonFormUtils.ENTITY_ID); + form.put(ENTITY_ID, entityId); + } + } else { + Timber.tag(TAG).w("Unsupported form requested for launch %s", formName); + } + Timber.d("form is %s", form.toString()); + return form; + } + + private static void addRegistrationLocationHierarchyQuestions(@NonNull JSONObject form) { + try { + JSONArray fields = com.vijay.jsonwizard.utils.FormUtils.getMultiStepFormFields(form); + AncMetadata metadata = AncLibrary.getInstance().getAncMetadata(); + ArrayList allLevels = metadata.getLocationLevels(); + ArrayList healthFacilities = metadata.getHealthFacilityLevels(); + List defaultLocation = LocationHelper.getInstance().generateDefaultLocationHierarchy(allLevels); + List defaultFacility = LocationHelper.getInstance().generateDefaultLocationHierarchy(healthFacilities); + List entireTree = LocationHelper.getInstance().generateLocationHierarchyTree(true, allLevels); + String defaultLocationString = AssetHandler.javaToJsonString(defaultLocation, new TypeToken>() { + }.getType()); + + String defaultFacilityString = AssetHandler.javaToJsonString(defaultFacility, new TypeToken>() { + }.getType()); + + String entireTreeString = AssetHandler.javaToJsonString(entireTree, new TypeToken>() { + }.getType()); + + updateLocationTree(fields, defaultLocationString, defaultFacilityString, entireTreeString); + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> addRegLocHierarchyQuestions"); + } + } + + private static void updateLocationTree(@NonNull JSONArray fields, + @NonNull String defaultLocationString, + @NonNull String defaultFacilityString, + @NonNull String entireTreeString) { + AncMetadata ancMetadata = AncLibrary.getInstance().getAncMetadata(); + if (ancMetadata.getFieldsWithLocationHierarchy() != null && !ancMetadata.getFieldsWithLocationHierarchy().isEmpty()) { + for (int i = 0; i < fields.length(); i++) { + JSONObject widget = fields.optJSONObject(i); + if (ancMetadata.getFieldsWithLocationHierarchy().contains(widget.optString(JsonFormConstants.KEY))) { + if (StringUtils.isNotBlank(entireTreeString)) { + addLocationTree(widget.optString(JsonFormConstants.KEY), widget, entireTreeString, JsonFormConstants.TREE); + } + if (StringUtils.isNotBlank(defaultFacilityString)) { + addLocationTreeDefault(widget.optString(JsonFormConstants.KEY), widget, defaultLocationString); + } + } + } + } + } + + private static void addLocationTree(@NonNull String widgetKey, @NonNull JSONObject widget, @NonNull String updateString, @NonNull String treeType) { + try { + if (widget.optString(JsonFormConstants.KEY).equals(widgetKey)) { + widget.put(treeType, new JSONArray(updateString)); + } + } catch (JSONException e) { + Timber.e(e, "JsonFormUtils --> addLocationTree"); + } + } + + private static void addLocationTreeDefault(@NonNull String widgetKey, @NonNull JSONObject widget, @NonNull String updateString) { + addLocationTree(widgetKey, widget, updateString, JsonFormConstants.DEFAULT); + } + + public static JSONObject getFieldJSONObject(JSONArray jsonArray, String key) { + if (jsonArray == null || jsonArray.length() == 0) { + return null; + } + + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(jsonArray, i); + String keyVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.KEY); + if (keyVal != null && keyVal.equals(key)) { + return jsonObject; + } + } + return null; + } + + public static Pair processRegistrationForm(AllSharedPreferences allSharedPreferences, String jsonString) { + try { + Triple registrationFormParams = validateParameters(jsonString); + + if (!registrationFormParams.getLeft()) { + return null; + } + + JSONObject jsonForm = registrationFormParams.getMiddle(); + JSONArray fields = registrationFormParams.getRight(); + + String entityId = getEntityId(jsonForm); + String encounterType = ANCJsonFormUtils.getString(jsonForm, ENCOUNTER_TYPE); + JSONObject metadata = ANCJsonFormUtils.getJSONObject(jsonForm, METADATA); + addLastInteractedWith(fields); + getDobStrings(fields); + String previousVisitsMap = initializeFirstContactValues(fields); + processLocationFields(fields); + + FormTag formTag = getFormTag(allSharedPreferences); + + Client baseClient = org.smartregister.util.JsonFormUtils.createBaseClient(fields, formTag, entityId); + Event baseEvent = org.smartregister.util.JsonFormUtils + .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); + + if (previousVisitsMap != null) { + baseEvent.addDetails(ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS_MAP, previousVisitsMap); + } + tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs + + return Pair.create(baseClient, baseEvent); + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> processRegistrationForm"); + return null; + } + } + + protected static void processLocationFields(@NonNull JSONArray fields) throws JSONException { + for (int i = 0; i < fields.length(); i++) { + if (fields.optJSONObject(i).has(JsonFormConstants.TYPE) && + fields.optJSONObject(i).optString(JsonFormConstants.TYPE).equals(JsonFormConstants.TREE)) + try { + String rawValue = fields.optJSONObject(i).optString(JsonFormConstants.VALUE); + if (StringUtils.isNotBlank(rawValue)) { + JSONArray valueArray = new JSONArray(rawValue); + if (valueArray.length() > 0) { + String lastLocationName = valueArray.optString(valueArray.length() - 1); + String lastLocationId = LocationHelper.getInstance().getOpenMrsLocationId(lastLocationName); + fields.optJSONObject(i).put(JsonFormConstants.VALUE, lastLocationId); + } + } + } catch (NullPointerException e) { + Timber.e(e); + } catch (IllegalArgumentException e) { + Timber.e(e); + } + } + } + + public static Triple validateParameters(String jsonString) { + + JSONObject jsonForm = ANCJsonFormUtils.toJSONObject(jsonString); + JSONArray fields = ANCJsonFormUtils.fields(jsonForm); + + return Triple.of(jsonForm != null && fields != null, jsonForm, fields); + } + + @NotNull + private static String getEntityId(JSONObject jsonForm) { + String entityId = ANCJsonFormUtils.getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); + if (StringUtils.isBlank(entityId)) { + entityId = ANCJsonFormUtils.generateRandomUUIDString(); + } + return entityId; + } + + private static void addLastInteractedWith(JSONArray fields) throws JSONException { + JSONObject lastInteractedWith = new JSONObject(); + lastInteractedWith.put(ConstantsUtils.KeyUtils.KEY, DBConstantsUtils.KeyUtils.LAST_INTERACTED_WITH); + lastInteractedWith.put(ConstantsUtils.KeyUtils.VALUE, Calendar.getInstance().getTimeInMillis()); + fields.put(lastInteractedWith); + } + + private static void getDobStrings(JSONArray fields) throws JSONException { + JSONObject dobUnknownObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.DOB_UNKNOWN); + JSONArray options = ANCJsonFormUtils.getJSONArray(dobUnknownObject, ConstantsUtils.JsonFormKeyUtils.OPTIONS); + JSONObject option = ANCJsonFormUtils.getJSONObject(options, 0); + String dobUnKnownString = option != null ? option.getString(ANCJsonFormUtils.VALUE) : null; + + if (StringUtils.isNotBlank(dobUnKnownString)) { + dobUnknownObject.put(ANCJsonFormUtils.VALUE, Boolean.valueOf(dobUnKnownString) ? 1 : 0); + } + } + + /*** + * Initializes the values in the mother details table used by contact containers + * @param fields {@link JSONArray} + * @return + * @throws JSONException + */ + private static String initializeFirstContactValues(@NonNull JSONArray fields) throws JSONException { + String strGroup = null; + + int nextContact = 1; + + String nextContactDate = Utils.convertDateFormat(Calendar.getInstance().getTime(), Utils.DB_DF); + + if (ConstantsUtils.DueCheckStrategy.CHECK_FOR_FIRST_CONTACT.equals(Utils.getDueCheckStrategy())) { + HashMap> previousVisitsMap = Utils.buildRepeatingGroupValues(fields, ConstantsUtils.JsonFormKeyUtils.PREVIOUS_VISITS); + if (!previousVisitsMap.isEmpty()) { + + nextContact = previousVisitsMap.size() + 1; + + strGroup = ANCJsonFormUtils.gson.toJson(previousVisitsMap); + + Set>> previousVisitsMapSet = previousVisitsMap.entrySet(); + + HashMap previousVisitsMapItem = new LinkedHashMap<>(); + + for (Map.Entry> entry : previousVisitsMapSet) { + previousVisitsMapItem = entry.getValue(); + } + + JSONObject lastContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE); + lastContactDateJSONObject.put(ANCJsonFormUtils.VALUE, previousVisitsMapItem.get(ConstantsUtils.JsonFormKeyUtils.VISIT_DATE)); + } + } + JSONObject nextContactJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT); + if (nextContactJSONObject.has(JsonFormConstants.VALUE) && + "".equals(nextContactJSONObject.getString(JsonFormConstants.VALUE))) { + nextContactJSONObject.put(ANCJsonFormUtils.VALUE, nextContact); + } + + JSONObject nextContactDateJSONObject = getFieldJSONObject(fields, DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE); + if (nextContactDateJSONObject.has(JsonFormConstants.VALUE) && + "".equals(nextContactDateJSONObject.getString(JsonFormConstants.VALUE))) { + nextContactDateJSONObject.put(ANCJsonFormUtils.VALUE, nextContactDate); + } + + return strGroup; + } + + + @NotNull + public static FormTag getFormTag(AllSharedPreferences allSharedPreferences) { + FormTag formTag = new FormTag(); + formTag.providerId = allSharedPreferences.fetchRegisteredANM(); + formTag.appVersion = BuildConfig.VERSION_CODE; + formTag.databaseVersion = AncLibrary.getInstance().getDatabaseVersion(); + return formTag; + } + + public static void tagSyncMetadata(AllSharedPreferences allSharedPreferences, Event event) { + String providerId = allSharedPreferences.fetchRegisteredANM(); + event.setProviderId(providerId); + event.setLocationId(allSharedPreferences.fetchDefaultLocalityId(providerId)); + event.setChildLocationId(getChildLocationId(event.getLocationId(), allSharedPreferences)); + event.setTeam(allSharedPreferences.fetchDefaultTeam(providerId)); + event.setTeamId(allSharedPreferences.fetchDefaultTeamId(providerId)); + //event.setVersion(BuildConfig.EVENT_VERSION); + event.setClientApplicationVersion(BuildConfig.VERSION_CODE); + event.setClientDatabaseVersion(AncLibrary.getInstance().getDatabaseVersion()); + } + + @Nullable + public static String getChildLocationId(@NonNull String defaultLocationId, @NonNull AllSharedPreferences allSharedPreferences) { + String currentLocality = allSharedPreferences.fetchCurrentLocality(); + + if (StringUtils.isNotBlank(currentLocality)) { + String currentLocalityId = LocationHelper.getInstance().getOpenMrsLocationId(currentLocality); + if (StringUtils.isNotBlank(currentLocalityId) && !defaultLocationId.equals(currentLocalityId)) { + return currentLocalityId; + } + } + + return null; + } + + public static void mergeAndSaveClient(Client baseClient) throws Exception { + JSONObject updatedClientJson = new JSONObject(org.smartregister.util.JsonFormUtils.gson.toJson(baseClient)); + + JSONObject originalClientJsonObject = + AncLibrary.getInstance().getEcSyncHelper().getClient(baseClient.getBaseEntityId()); + + JSONObject mergedJson = org.smartregister.util.JsonFormUtils.merge(originalClientJsonObject, updatedClientJson); + + //TODO Save edit log ? + + AncLibrary.getInstance().getEcSyncHelper().addClient(baseClient.getBaseEntityId(), mergedJson); + } + + public static void saveImage(String providerId, String entityId, String imageLocation) { + OutputStream outputStream = null; + try { + if (StringUtils.isBlank(imageLocation)) { + return; + } + + File file = FileUtil.createFileFromPath(imageLocation); + if (!file.exists()) { + return; + } + + Bitmap compressedBitmap = AncLibrary.getInstance().getCompressor().compressToBitmap(file); + if (compressedBitmap == null || StringUtils.isBlank(providerId) || StringUtils.isBlank(entityId)) { + return; + } + + if (!entityId.isEmpty()) { + final String absoluteFileName = DrishtiApplication.getAppDir() + File.separator + entityId + ".JPEG"; + + File outputFile = FileUtil.createFileFromPath(absoluteFileName); + outputStream = FileUtil.createFileOutputStream(outputFile); + Bitmap.CompressFormat compressFormat = Bitmap.CompressFormat.JPEG; + compressedBitmap.compress(compressFormat, 100, outputStream); + // insert into the db + ProfileImage profileImage = getProfileImage(providerId, entityId, absoluteFileName); + ImageRepository imageRepository = AncLibrary.getInstance().getContext().imageRepository(); + imageRepository.add(profileImage); + } + + } catch (FileNotFoundException e) { + Timber.e("Failed to save static image to disk"); + } catch (IOException e) { + Timber.e(e, " --> saveImage"); + } finally { + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + Timber.e("Failed to close static images output stream after attempting to write image"); + } + } + } + } + + @NotNull + private static ProfileImage getProfileImage(String providerId, String entityId, String absoluteFileName) { + ProfileImage profileImage = new ProfileImage(); + profileImage.setImageid(UUID.randomUUID().toString()); + profileImage.setAnmId(providerId); + profileImage.setEntityID(entityId); + profileImage.setFilepath(absoluteFileName); + profileImage.setFilecategory(ConstantsUtils.FileCategoryUtils.PROFILE_PIC); + profileImage.setSyncStatus(ImageRepository.TYPE_Unsynced); + return profileImage; + } + + public static String getString(String jsonString, String field) { + return ANCJsonFormUtils.getString(ANCJsonFormUtils.toJSONObject(jsonString), field); + } + + public static String getFieldValue(String jsonString, String key) { + JSONObject jsonForm = ANCJsonFormUtils.toJSONObject(jsonString); + if (jsonForm == null) { + return null; + } + + JSONArray fields = ANCJsonFormUtils.fields(jsonForm); + if (fields == null) { + return null; + } + + return ANCJsonFormUtils.getFieldValue(fields, key); + + } + + public static String getAutoPopulatedJsonEditRegisterFormString(Context context, Map womanClient) { + try { + JSONObject form = FormUtils.getInstance(context).getFormJson(ConstantsUtils.JsonFormUtils.ANC_REGISTER); + LocationPickerView lpv = createLocationPickerView(context); + if (lpv != null) { + lpv.init(); + } + + Timber.d("Form is %s", form.toString()); + + if (form != null) { + form.put(ANCJsonFormUtils.ENTITY_ID, womanClient.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID)); + form.put(ANCJsonFormUtils.ENCOUNTER_TYPE, ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION); + + JSONObject metadata = form.getJSONObject(ANCJsonFormUtils.METADATA); + String lastLocationId = + lpv != null ? LocationHelper.getInstance().getOpenMrsLocationId(lpv.getSelectedItem()) : ""; + + metadata.put(ANCJsonFormUtils.ENCOUNTER_LOCATION, lastLocationId); + + form.put(ConstantsUtils.CURRENT_OPENSRP_ID, womanClient.get(DBConstantsUtils.KeyUtils.ANC_ID).replace("-", "")); + + //inject opensrp id into the form + JSONObject stepOne = form.getJSONObject(ANCJsonFormUtils.STEP1); + JSONArray jsonArray = stepOne.getJSONArray(ANCJsonFormUtils.FIELDS); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + + processPopulatableFields(womanClient, jsonObject); + + } + + return form.toString(); + } + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> getAutoPopulatedJsonEditRegisterFormString"); + } + + return ""; + } + + private static LocationPickerView createLocationPickerView(Context context) { + try { + return new LocationPickerView(context); + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> createLocationPickerView"); + return null; + } + } + + protected static void processPopulatableFields(Map womanClient, JSONObject jsonObject) + throws JSONException { + + AncMetadata ancMetadata = AncLibrary.getInstance().getAncMetadata(); + + if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.DOB_ENTERED)) { + getDobUsingEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.DOB); + + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.HOME_ADDRESS)) { + String homeAddress = womanClient.get(DBConstantsUtils.KeyUtils.HOME_ADDRESS); + jsonObject.put(ANCJsonFormUtils.VALUE, homeAddress); + + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.WOM_IMAGE)) { + getPhotoFieldValue(womanClient, jsonObject); + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.DOB_UNKNOWN)) { + jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); + JSONObject optionsObject = jsonObject.getJSONArray(ConstantsUtils.JsonFormKeyUtils.OPTIONS).getJSONObject(0); + optionsObject.put(ANCJsonFormUtils.VALUE, womanClient.get(DBConstantsUtils.KeyUtils.DOB_UNKNOWN)); + + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.KeyUtils.AGE_ENTERED)) { + jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); + if (StringUtils.isNotBlank(womanClient.get(DBConstantsUtils.KeyUtils.DOB))) { + jsonObject.put(ANCJsonFormUtils.VALUE, Utils.getAgeFromDate(womanClient.get(DBConstantsUtils.KeyUtils.DOB))); + } + } else if (ancMetadata != null && ancMetadata.getFieldsWithLocationHierarchy() != null && + ancMetadata.getFieldsWithLocationHierarchy().contains(jsonObject.optString(ANCJsonFormUtils.KEY))) { + reverseLocationTree(jsonObject, womanClient.get(jsonObject.optString(ANCJsonFormUtils.KEY))); + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(DBConstantsUtils.KeyUtils.EDD)) { + formatEdd(womanClient, jsonObject, DBConstantsUtils.KeyUtils.EDD); + + } else if (jsonObject.getString(ANCJsonFormUtils.KEY).equalsIgnoreCase(ConstantsUtils.JsonFormKeyUtils.ANC_ID)) { + jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(DBConstantsUtils.KeyUtils.ANC_ID).replace("-", "")); + } else if (womanClient.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { + jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); + jsonObject.put(ANCJsonFormUtils.VALUE, womanClient.get(jsonObject.getString(ANCJsonFormUtils.KEY))); + } else { + Timber.e("ERROR:: Unprocessed Form Object Key %s", jsonObject.getString(ANCJsonFormUtils.KEY)); + } + } + + private static void reverseLocationTree(@NonNull JSONObject jsonObject, @Nullable String entity) throws JSONException { + List entityHierarchy = null; + if (entity != null) { + if (ConstantsUtils.OTHER.equalsIgnoreCase(entity)) { + entityHierarchy = new ArrayList<>(); + entityHierarchy.add(entity); + } else { + String locationId = LocationHelper.getInstance().getOpenMrsLocationId(entity); + entityHierarchy = LocationHelper.getInstance().getOpenMrsLocationHierarchy(locationId, false); + } + } + ArrayList allLevels = AncLibrary.getInstance().getAncMetadata().getHealthFacilityLevels(); + List entireTree = LocationHelper.getInstance().generateLocationHierarchyTree(true, allLevels); + String entireTreeString = AssetHandler.javaToJsonString(entireTree, new TypeToken>() { + }.getType()); + String facilityHierarchyString = AssetHandler.javaToJsonString(entityHierarchy, new TypeToken>() { + }.getType()); + if (StringUtils.isNotBlank(facilityHierarchyString)) { + jsonObject.put(JsonFormConstants.VALUE, facilityHierarchyString); + jsonObject.put(JsonFormConstants.TREE, new JSONArray(entireTreeString)); + } + } + + private static void getDobUsingEdd(Map womanClient, JSONObject jsonObject, String birthDate) + throws JSONException { + String dobString = womanClient.get(birthDate); + if (StringUtils.isNotBlank(dobString)) { + Date dob = Utils.dobStringToDate(dobString); + if (dob != null) { + jsonObject.put(ANCJsonFormUtils.VALUE, DATE_FORMAT.format(dob)); + } + } + } + + private static void getPhotoFieldValue(Map womanClient, JSONObject jsonObject) throws JSONException { + Photo photo = ImageUtils.profilePhotoByClientID(womanClient.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID), + Utils.getProfileImageResourceIdentifier()); + + if (photo != null && StringUtils.isNotBlank(photo.getFilePath())) { + jsonObject.put(ANCJsonFormUtils.VALUE, photo.getFilePath()); + + } + } + + private static void formatEdd(Map womanClient, JSONObject jsonObject, String eddDate) + throws JSONException { + String eddString = womanClient.get(eddDate); + if (StringUtils.isNotBlank(eddString)) { + Date edd = Utils.dobStringToDate(eddString); + if (edd != null) { + jsonObject.put(ANCJsonFormUtils.VALUE, EDD_DATE_FORMAT.format(edd)); + } + } + } + + public static void startFormForEdit(Activity context, int jsonFormActivityRequestCode, String metaData) { + Intent intent = new Intent(context, EditJsonFormActivity.class); + intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, metaData); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); + Timber.d("form is %s", metaData); + context.startActivityForResult(intent, jsonFormActivityRequestCode); + } + + public static Triple saveRemovedFromANCRegister(AllSharedPreferences allSharedPreferences, String jsonString, String providerId) { + try { + boolean isDeath = false; + Triple registrationFormParams = validateParameters(jsonString); + + if (!registrationFormParams.getLeft()) { + return null; + } + + JSONObject jsonForm = registrationFormParams.getMiddle(); + JSONArray fields = registrationFormParams.getRight(); + + String encounterType = ANCJsonFormUtils.getString(jsonForm, ENCOUNTER_TYPE); + JSONObject metadata = ANCJsonFormUtils.getJSONObject(jsonForm, METADATA); + + String encounterLocation = null; + + try { + encounterLocation = metadata.getString(ConstantsUtils.JsonFormKeyUtils.ENCOUNTER_LOCATION); + } catch (JSONException e) { + Timber.e(e, "JsonFormUtils --> saveRemovedFromANCRegister --> getEncounterLocation"); + } + + Date encounterDate = new Date(); + String entityId = ANCJsonFormUtils.getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); + + Event event = (Event) new Event().withBaseEntityId(entityId) //should be different for main and subform + .withEventDate(encounterDate).withEventType(encounterType).withLocationId(encounterLocation) + .withProviderId(providerId).withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME) + .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()).withDateCreated(new Date()); + tagSyncMetadata(allSharedPreferences, event); + + for (int i = 0; i < fields.length(); i++) { + JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(fields, i); + + String value = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.VALUE); + if (StringUtils.isNotBlank(value)) { + ANCJsonFormUtils.addObservation(event, jsonObject); + if (jsonObject.get(ANCJsonFormUtils.KEY).equals(ConstantsUtils.JsonFormKeyUtils.ANC_CLOSE_REASON)) { + isDeath = "Woman Died".equalsIgnoreCase(value); + } + } + } + + Iterator keys = metadata.keys(); + + while (keys.hasNext()) { + String key = (String) keys.next(); + JSONObject jsonObject = ANCJsonFormUtils.getJSONObject(metadata, key); + String value = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.VALUE); + if (StringUtils.isNotBlank(value)) { + String entityVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.OPENMRS_ENTITY); + if (entityVal != null) { + if (entityVal.equals(ANCJsonFormUtils.CONCEPT)) { + ANCJsonFormUtils.addToJSONObject(jsonObject, ANCJsonFormUtils.KEY, key); + ANCJsonFormUtils.addObservation(event, jsonObject); + + } else if (entityVal.equals(ANCJsonFormUtils.ENCOUNTER)) { + String entityIdVal = ANCJsonFormUtils.getString(jsonObject, ANCJsonFormUtils.OPENMRS_ENTITY_ID); + if (entityIdVal.equals(FormEntityConstants.Encounter.encounter_date.name())) { + Date eDate = ANCJsonFormUtils.formatDate(value, false); + if (eDate != null) { + event.setEventDate(eDate); + } + } + } + } + } + } + + //Update Child Entity to include death date + Event updateChildDetailsEvent = + (Event) new Event().withBaseEntityId(entityId) //should be different for main and subform + .withEventDate(encounterDate).withEventType(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION) + .withLocationId(encounterLocation).withProviderId(providerId) + .withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME).withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()) + .withDateCreated(new Date()); + tagSyncMetadata(allSharedPreferences, updateChildDetailsEvent); + + return Triple.of(isDeath, event, updateChildDetailsEvent); + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> saveRemovedFromANCRegister"); + } + return null; + } + + public static void launchANCCloseForm(Activity activity) { + try { + Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_CLOSE); + if (form != null) { + form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); + intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); + activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); + } + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> launchANCCloseForm"); + } + } + + public static void launchSiteCharacteristicsForm(Activity activity) { + try { + Intent intent = new Intent(activity, FormConfigurationJsonFormActivity.class); + JSONObject form = new com.vijay.jsonwizard.utils.FormUtils().getFormJsonFromRepositoryOrAssets(activity.getApplicationContext(), ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); + if (form != null) { + form.put(ConstantsUtils.JsonFormKeyUtils.ENTITY_ID, + activity.getIntent().getStringExtra(ConstantsUtils.IntentKeyUtils.BASE_ENTITY_ID)); + intent.putExtra(ConstantsUtils.IntentKeyUtils.JSON, form.toString()); + intent.putExtra(JsonFormConstants.PERFORM_FORM_TRANSLATION, true); + activity.startActivityForResult(intent, ANCJsonFormUtils.REQUEST_CODE_GET_JSON); + } + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> launchSiteCharacteristicsForm"); + } + } + + public static Map processSiteCharacteristics(String jsonString) { + try { + Triple registrationFormParams = validateParameters(jsonString); + if (!registrationFormParams.getLeft()) { + return null; + } + + Map settings = new HashMap<>(); + JSONArray fields = + registrationFormParams.getMiddle().getJSONObject(ANCJsonFormUtils.STEP1).getJSONArray(ANCJsonFormUtils.FIELDS); + + for (int i = 0; i < fields.length(); i++) { + if (!"label".equals(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.TYPE))) { + settings.put(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.KEY), + StringUtils.isBlank(fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.VALUE)) ? "0" : + fields.getJSONObject(i).getString(ConstantsUtils.KeyUtils.VALUE)); + } + } + + return settings; + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> processSiteCharacteristics"); + return null; + } + } + + public static String getAutoPopulatedSiteCharacteristicsEditFormString(Context context, + Map characteristics) { + try { + JSONObject form = FormUtils.getInstance(context).getFormJson(ConstantsUtils.JsonFormUtils.ANC_SITE_CHARACTERISTICS); + Timber.d("Form is %s", form.toString()); + if (form != null) { + form.put(ANCJsonFormUtils.ENCOUNTER_TYPE, ConstantsUtils.EventTypeUtils.SITE_CHARACTERISTICS); + + JSONObject stepOne = form.getJSONObject(ANCJsonFormUtils.STEP1); + JSONArray jsonArray = stepOne.getJSONArray(ANCJsonFormUtils.FIELDS); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + if (characteristics.containsKey(jsonObject.getString(ANCJsonFormUtils.KEY))) { + jsonObject.put(ANCJsonFormUtils.READ_ONLY, false); + jsonObject.put(ANCJsonFormUtils.VALUE, + "true".equals(characteristics.get(jsonObject.getString(ANCJsonFormUtils.KEY))) ? "1" : "0"); + } + + } + + return form.toString(); + } + } catch (Exception e) { + Timber.e(e, "JsonFormUtils --> getAutoPopulatedSiteCharacteristicsEditFormString"); + } + + return ""; + } + + public static Pair createVisitAndUpdateEvent(List formSubmissionIDs, + Map womanDetails) { + if (formSubmissionIDs.size() < 1 && womanDetails.get(ConstantsUtils.REFERRAL) == null) { + return null; + } + + try { + String baseEntityId = womanDetails.get(DBConstantsUtils.KeyUtils.BASE_ENTITY_ID); + + Event contactVisitEvent = Utils.createContactVisitEvent(formSubmissionIDs, womanDetails, String.valueOf(getOpenTasks(baseEntityId))); + + //Update client + EventClientRepository db = AncLibrary.getInstance().getEventClientRepository(); + + JSONObject clientForm = db.getClientByBaseEntityId(baseEntityId); + JSONObject attributes = clientForm.getJSONObject(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT)); + attributes.put(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, womanDetails.get(DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE)); + attributes.put(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, + womanDetails.get(DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE)); + attributes.put(DBConstantsUtils.KeyUtils.CONTACT_STATUS, womanDetails.get(DBConstantsUtils.KeyUtils.CONTACT_STATUS)); + attributes.put(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT)); + attributes.put(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, womanDetails.get(DBConstantsUtils.KeyUtils.RED_FLAG_COUNT)); + attributes.put(DBConstantsUtils.KeyUtils.EDD, womanDetails.get(DBConstantsUtils.KeyUtils.EDD)); + attributes.put(DBConstantsUtils.KeyUtils.ALT_NAME, womanDetails.get(DBConstantsUtils.KeyUtils.ALT_NAME)); + attributes.put(DBConstantsUtils.KeyUtils.PHONE_NUMBER, womanDetails.get(DBConstantsUtils.KeyUtils.PHONE_NUMBER)); + attributes.put(DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER, womanDetails.get(DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER)); + clientForm.put(ConstantsUtils.JsonFormKeyUtils.ATTRIBUTES, attributes); + + db.addorUpdateClient(baseEntityId, clientForm); + + Event updateClientEvent = createUpdateClientDetailsEvent(baseEntityId); + + return Pair.create(contactVisitEvent, updateClientEvent); + + } catch (Exception e) { + Timber.e(e, " --> createContactVisitEvent"); + return null; + } + + } + + public static Date getContactStartDate(String contactStartDate) { + try { + return new LocalDate(contactStartDate).toDate(); + } catch (Exception e) { + return new LocalDate().toDate(); + } + } + + private static JSONArray getOpenTasks(String baseEntityId) { + List openTasks = AncLibrary.getInstance().getContactTasksRepository().getOpenTasks(baseEntityId); + JSONArray openTaskArray = new JSONArray(); + if (openTasks != null && openTasks.size() > 0) { + for (Task task : openTasks) { + openTaskArray.put(task.getValue()); + } + } + return openTaskArray; + } + + protected static Event createUpdateClientDetailsEvent(String baseEntityId) { + + Event updateChildDetailsEvent = (Event) new Event().withBaseEntityId(baseEntityId).withEventDate(new Date()) + .withEventType(ConstantsUtils.EventTypeUtils.UPDATE_REGISTRATION).withEntityType(DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME) + .withFormSubmissionId(ANCJsonFormUtils.generateRandomUUIDString()).withDateCreated(new Date()); + + ANCJsonFormUtils + .tagSyncMetadata(AncLibrary.getInstance().getContext().allSharedPreferences(), updateChildDetailsEvent); + + return updateChildDetailsEvent; + } + + public static Event processContactFormEvent(JSONObject jsonForm, String baseEntityId) { + AllSharedPreferences allSharedPreferences = AncLibrary.getInstance().getContext().allSharedPreferences(); + JSONArray fields = getMultiStepFormFields(jsonForm); + + String entityId = getString(jsonForm, ANCJsonFormUtils.ENTITY_ID); + if (StringUtils.isBlank(entityId)) { + entityId = baseEntityId; + } + + String encounterType = getString(jsonForm, ENCOUNTER_TYPE); + JSONObject metadata = getJSONObject(jsonForm, METADATA); + + FormTag formTag = getFormTag(allSharedPreferences); + Event baseEvent = org.smartregister.util.JsonFormUtils + .createEvent(fields, metadata, formTag, entityId, encounterType, DBConstantsUtils.DEMOGRAPHIC_TABLE_NAME); + + tagSyncMetadata(allSharedPreferences, baseEvent);// tag docs + + return baseEvent; + } + + public static JSONObject readJsonFromAsset(Context context, String filePath) throws Exception { + InputStream inputStream = context.getAssets().open(filePath + ".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()); + } + + /** + * Gets an expansion panel {@link JSONObject} value then check whether the test/tasks was `ordered` or `not done`. + * If any either of this is selected then we mark it as not complete. + * + * @param field {@link JSONObject} + * @return isComplete {@link Boolean} + */ + public static boolean checkIfTaskIsComplete(JSONObject field) { + boolean isComplete = true; + try { + if (field != null && field.has(JsonFormConstants.VALUE)) { + JSONArray value = field.getJSONArray(JsonFormConstants.VALUE); + if (value.length() > 1) { + JSONObject valueField = value.getJSONObject(0); + if (valueField != null && valueField.has(JsonFormConstants.VALUES)) { + JSONArray values = valueField.getJSONArray(JsonFormConstants.VALUES); + if (values.length() > 0) { + String selectedValue = values.getString(0); + if (selectedValue.contains(JsonFormConstants.AncRadioButtonOptionTypesUtils.ORDERED) || selectedValue.contains(JsonFormConstants.AncRadioButtonOptionTypesUtils.NOT_DONE)) { + isComplete = false; + } + } + } + } + } + } catch (JSONException e) { + Timber.e(e, " --> checkIfTaskIsComplete"); + } + return isComplete; + } + + public List generateNextContactSchedule(String edd, List contactSchedule, + Integer lastContactSequence) { + List contactDates = new ArrayList<>(); + Integer contactSequence = lastContactSequence; + if (StringUtils.isNotBlank(edd)) { + LocalDate localDate = new LocalDate(edd); + LocalDate lmpDate = localDate.minusWeeks(ConstantsUtils.DELIVERY_DATE_WEEKS); + + for (String contactWeeks : contactSchedule) { + contactDates.add(new ContactSummaryModel(String.format( + AncLibrary.getInstance().getContext().getStringResource(R.string.contact_number), + contactSequence++), + Utils.convertDateFormat(lmpDate.plusWeeks(Integer.valueOf(contactWeeks)).toDate(), + Utils.CONTACT_SUMMARY_DF), lmpDate.plusWeeks(Integer.valueOf(contactWeeks)).toDate(), + contactWeeks)); + } + } + return contactDates; + } + + /** + * Creates and populates a constraint view to add the contacts tab view instead of using recycler views which introduce + * lots of scroll complexities + * + * @param data + * @param facts + * @param position + * @param context + * @return constraintLayout + */ + @NonNull + public ConstraintLayout createListViewItems(List data, Facts facts, int position, Context context) { + YamlConfigItem yamlConfigItem = data.get(position).getYamlConfigItem(); + + ANCJsonFormUtils.Template template = getTemplate(yamlConfigItem.getTemplate()); + String output = ""; + if (!TextUtils.isEmpty(template.detail)) { + output = Utils.fillTemplate(template.detail, facts); + } + + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + ConstraintLayout constraintLayout = + (ConstraintLayout) inflater.inflate(R.layout.previous_contacts_preview_row, null); + TextView sectionDetailTitle = constraintLayout.findViewById(R.id.overview_section_details_left); + TextView sectionDetails = constraintLayout.findViewById(R.id.overview_section_details_right); + + + sectionDetailTitle.setText(template.title); + sectionDetails.setText(output);//Perhaps refactor to use Json Form Parser Implementation + + if (AncLibrary.getInstance().getAncRulesEngineHelper().getRelevance(facts, yamlConfigItem.getIsRedFont())) { + sectionDetailTitle.setTextColor(context.getResources().getColor(R.color.overview_font_red)); + sectionDetails.setTextColor(context.getResources().getColor(R.color.overview_font_red)); + } else { + sectionDetailTitle.setTextColor(context.getResources().getColor(R.color.overview_font_left)); + sectionDetails.setTextColor(context.getResources().getColor(R.color.overview_font_right)); + } + + sectionDetailTitle.setVisibility(View.VISIBLE); + sectionDetails.setVisibility(View.VISIBLE); + return constraintLayout; + } + + public Template getTemplate(String rawTemplate) { + Template template = new Template(); + + if (rawTemplate.contains(":")) { + String[] templateArray = rawTemplate.split(":"); + if (templateArray.length == 1) { + template.title = templateArray[0].trim(); + } else if (templateArray.length > 1) { + template.title = templateArray[0].trim(); + template.detail = templateArray[1].trim(); + } + } else { + template.title = rawTemplate; + template.detail = "Yes"; + } + + return template; + } + + public class Template { + public String title = ""; + public String detail = ""; + } } \ No newline at end of file diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index fb1dcaff8..7a7d76eab 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -271,7 +271,7 @@ Jumlah grup berulang harus lebih dari %1$d Jumlah grup berulang harus berupa angka integer Masukkan jumlah dari item grup berulang - Terdapat %d error pada form. Silakan perbaiki sebelum di-submit. + Terdapat %d error pada form. Silakan perbaiki sebelum disimpan. Silakan perbaiki error pada form untuk melanjutkan. GUID tidak ditemukan Project id, user id atau module id tidak ditemukan. Gunakan SimprintsLibrary.init diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index d173bb115..891277dbf 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -10,7 +10,7 @@ anc_register.step1.group_identity.text = Woman's Identity anc_register.step1.uid.hint = National ID Number anc_register.step1.uid.v_required.err = Please enter national ID number anc_register.step1.uid.v_length.err = Must be exactly 16 digits of number -anc_register.step1.uid_unknown.options.uid_unknown.text = Cannot record ID Number +anc_register.step1.uid_unknown.options.yes.text = Cannot record ID Number anc_register.step1.uid_unknown_reason.label = Select a Reason anc_register.step1.uid_unknown_reason.label_info_text = Please select a reason why the mother's ID number cannot be recorded anc_register.step1.uid_unknown_reason.options.dont_have.text = Do not have @@ -44,7 +44,7 @@ anc_register.step1.phone_number.hint = Mobile phone number anc_register.step1.phone_number.v_numeric.err = Phone number must be numeric anc_register.step1.phone_number.v_required.err = Please specify the woman's phone number anc_register.step1.phone_number.v_max_length.err = Phone number input cannot exceed 12 characters -anc_register.step1.phone_number_unknown.options.phone_number_unknown.text = Cannot record Phone Number +anc_register.step1.phone_number_unknown.options.yes.text = Cannot record Phone Number anc_register.step1.phone_number_unknown_reason.label = Select a Reason anc_register.step1.phone_number_unknown_reason.label_info_text = Please select a reason why the mother's phone number cannot be recorded anc_register.step1.phone_number_unknown_reason.options.dont_have.text = Do not have diff --git a/opensrp-anc/src/main/resources/anc_register_in.properties b/opensrp-anc/src/main/resources/anc_register_in.properties new file mode 100644 index 000000000..6939068bd --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_register_in.properties @@ -0,0 +1,73 @@ +anc_register.step1.title = Pendaftaran ANC + +anc_register.step1.wom_image.button_label = Ambil foto ibu +anc_register.step1.anc_id.hint = ID ANC +anc_register.step1.anc_id.qrcode_button_label = Pindai QR Code +anc_register.step1.anc_id.v_numeric.err = ID ANC harus numerik +anc_register.step1.anc_id.v_required.err = ID ANC harus diisi + +anc_register.step1.group_identity.text = Identitas Ibu +anc_register.step1.uid.hint = Nomor KTP (NIK) +anc_register.step1.uid.v_required.err = Nomor KTP harus diisi +anc_register.step1.uid.v_length.err = Harus berupa 16 digit angka +anc_register.step1.uid_unknown.options.yes.text = Tidak ada nomor KTP +anc_register.step1.uid_unknown_reason.label = Pilih Alasan +anc_register.step1.uid_unknown_reason.label_info_text = Mengapa nomor KTP ibu tidak diketahui? +anc_register.step1.uid_unknown_reason.options.dont_have.text = Tidak Punya +anc_register.step1.uid_unknown_reason.options.lost.text = Hilang +anc_register.step1.uid_unknown_reason.options.privacy.text = Privasi +anc_register.step1.uid_unknown_reason.v_required.err = Alasan harus dipilih +anc_register.step1.ssn.hint = Nomor BPJS Kesehatan +anc_register.step1.ssn.v_length.err = Harus berupa 11-13 digit angka +anc_register.step1.first_name.hint = Nama Depan +anc_register.step1.first_name.v_regex.err = Masukkan nama yang benar +anc_register.step1.first_name.v_required.err = Nama depan harus diisi +anc_register.step1.last_name.hint = Nama Belakang +anc_register.step1.last_name.v_regex.err = Masukkan nama yang benar +anc_register.step1.last_name.v_required.err = Nama belakang harus diisi + +anc_register.step1.group_age_dob.text = Usia & Tanggal Lahir +anc_register.step1.dob_entered.duration.label = Usia +anc_register.step1.dob_entered.hint = Tanggal Lahir +anc_register.step1.dob_entered.v_required.err = Tanggal lahir harus diisi +anc_register.step1.dob_unknown.options.dob_unknown.text = Tanggal lahir tidak diketahui +anc_register.step1.age_entered.hint = Usia (Tahun) +anc_register.step1.age_entered.v_numeric.err = Usia harus berupa angka dalam tahun +anc_register.step1.age_entered.v_required.err = Usia ibu harus diisi +anc_register.step1.age_entered.v_min.err = Usia minimal 10 tahun +anc_register.step1.age_entered.v_max.err = Usia maksimal 49 tahun + +anc_register.step1.group_contact.text = Informasi Kontak +anc_register.step1.home_address.hint = Alamat Rumah +anc_register.step1.home_address.v_required.err = Masukkan alamat rumah ibu +anc_register.step1.phone_number.hint = Nomor HP +anc_register.step1.phone_number.v_numeric.err = Nomor HP harus berupa angka +anc_register.step1.phone_number.v_required.err = Nomor HP harus diisi +anc_register.step1.phone_number.v_max_length.err = Nomor HP maksimal 12 digit +anc_register.step1.phone_number_unknown.options.yes.text = Tidak ada nomor HP +anc_register.step1.phone_number_unknown_reason.label = Pilih Alasan +anc_register.step1.phone_number_unknown_reason.label_info_text = Mengapa nomor HP ibu tidak diketahui? +anc_register.step1.phone_number_unknown_reason.options.dont_have.text = Tidak Punya +anc_register.step1.phone_number_unknown_reason.options.lost.text = Hilang +anc_register.step1.phone_number_unknown_reason.options.privacy.text = Privasi +anc_register.step1.phone_number_unknown_reason.v_required.err = Alasan harus dipilih +anc_register.step1.alt_name.hint = Nama Kontak Alternatif +anc_register.step1.alt_name.v_regex.err = Masukkan nama yang benar +anc_register.step1.alt_phone_number.hint = Nomor HP Kontak Alternatif +anc_register.step1.alt_phone_number.v_numeric.err = Nomor HP harus berupa angka +anc_register.step1.alt_phone_number.v_max_length.err = Nomor HP maksimal 12 digit +anc_register.step1.cohabitants.label = Rekan Serumah +anc_register.step1.cohabitants.label_info_text = Bersama siapa saja ibu tinggal? +anc_register.step1.cohabitants.options.extended_family.text = Keluarga Besar +anc_register.step1.cohabitants.options.friends.text = Teman +anc_register.step1.cohabitants.options.no_one.text = Tinggal Sendirian +anc_register.step1.cohabitants.options.parents.text = Orang Tua +anc_register.step1.cohabitants.options.partner.text = Pasangan +anc_register.step1.cohabitants.options.siblings.text = Saudara (kakak atau adik) + +anc_register.step1.group_additional.text = Tambahan +anc_register.step1.reminders.label = Ibu ingin menerima pengingat selama kehamilan? +anc_register.step1.reminders.label_info_text = Apakah ibu ingin menerima pengingat selama kehamilan? +anc_register.step1.reminders.options.no.text = Tidak +anc_register.step1.reminders.options.yes.text = Ya +anc_register.step1.reminders.v_required.err = Silakan pilih Ya atau Tidak \ No newline at end of file From 874109ecd218683d090b9e6ea7772e3a711fdadc Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 01:31:12 +0700 Subject: [PATCH 207/302] Refactor to suppress IDE's error message --- .../anc/library/presenter/RegisterPresenter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java index 0c22d9b08..b02410232 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/presenter/RegisterPresenter.java @@ -24,6 +24,7 @@ import java.lang.ref.WeakReference; import java.util.HashMap; import java.util.List; +import java.util.Objects; import timber.log.Timber; @@ -120,9 +121,11 @@ public void startForm(String formName, String entityId, String metadata, String @Override public void saveRegistrationForm(String jsonString, boolean isEditMode) { try { - if(!isProgressDialogVisible) - getView().showProgressDialog(R.string.saving_dialog_title); - isProgressDialogVisible = true; + if(!isProgressDialogVisible) { + Objects.requireNonNull(getView()).showProgressDialog(R.string.saving_dialog_title); + isProgressDialogVisible = true; + } + Pair pair = model.processRegistration(jsonString); if (pair == null) { return; From a568960a156c0872713bb71db60b3d972b119f29 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 01:52:38 +0700 Subject: [PATCH 208/302] Refactor mainColumns() for better readability --- .../repository/RegisterQueryProvider.java | 43 +++++++++++++------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java index 6b08f091d..740ffe0a1 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java @@ -69,18 +69,35 @@ public String mainRegisterQuery() { } public String[] mainColumns() { - return new String[]{DBConstantsUtils.KeyUtils.FIRST_NAME, DBConstantsUtils.KeyUtils.LAST_NAME, DBConstantsUtils.KeyUtils.DOB, - DBConstantsUtils.KeyUtils.DOB_UNKNOWN, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PHONE_NUMBER, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.ALT_NAME, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER, getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, - getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " as " + DBConstantsUtils.KeyUtils.ID_LOWER_CASE, DBConstantsUtils.KeyUtils.ANC_ID, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.REMINDERS, DBConstantsUtils.KeyUtils.HOME_ADDRESS, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.EDD, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.CONTACT_STATUS, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PREVIOUS_CONTACT_STATUS, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.VISIT_START_DATE, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, getDetailsTable() + "." + DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, - getDetailsTable() + "." + DBConstantsUtils.KeyUtils.COHABITANTS, getDemographicTable() + "." + DBConstantsUtils.KeyUtils.RELATIONAL_ID, - getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.PROVINCE, getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.DISTRICT, - getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.SUB_DISTRICT, getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.FACILITY, - getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.VILLAGE}; + return new String[]{ + DBConstantsUtils.KeyUtils.ANC_ID, + DBConstantsUtils.KeyUtils.FIRST_NAME, + DBConstantsUtils.KeyUtils.LAST_NAME, + DBConstantsUtils.KeyUtils.DOB, + DBConstantsUtils.KeyUtils.DOB_UNKNOWN, + DBConstantsUtils.KeyUtils.HOME_ADDRESS, + getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID + " as " + DBConstantsUtils.KeyUtils.ID_LOWER_CASE, + getDemographicTable() + "." + DBConstantsUtils.KeyUtils.RELATIONAL_ID, + getDemographicTable() + "." + DBConstantsUtils.KeyUtils.BASE_ENTITY_ID, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PHONE_NUMBER, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.ALT_NAME, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.ALT_PHONE_NUMBER, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.REMINDERS, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.EDD, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.CONTACT_STATUS, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PREVIOUS_CONTACT_STATUS, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.NEXT_CONTACT_DATE, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.VISIT_START_DATE, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.RED_FLAG_COUNT, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.YELLOW_FLAG_COUNT, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.LAST_CONTACT_RECORD_DATE, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.COHABITANTS, + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.PROVINCE, + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.DISTRICT, + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.SUB_DISTRICT, + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.FACILITY, + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.VILLAGE + }; } } \ No newline at end of file From ce7ef44022e606f39798e19d918a280225b09f19 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 02:25:12 +0700 Subject: [PATCH 209/302] Add fields for local Client requirements --- .../src/main/assets/ec_client_fields.json | 505 ++++++++++-------- .../repository/RegisterQueryProvider.java | 13 +- .../anc/library/util/DBConstantsUtils.java | 11 + 3 files changed, 297 insertions(+), 232 deletions(-) diff --git a/opensrp-anc/src/main/assets/ec_client_fields.json b/opensrp-anc/src/main/assets/ec_client_fields.json index 2f0f4ff81..1f9e1c4ed 100644 --- a/opensrp-anc/src/main/assets/ec_client_fields.json +++ b/opensrp-anc/src/main/assets/ec_client_fields.json @@ -1,233 +1,276 @@ { - "bindobjects": [ - { - "name": "ec_mother_details", - "columns": [ - { - "column_name": "base_entity_id", - "type": "Client", - "json_mapping": { - "field": "baseEntityId" - } - }, - { - "column_name": "phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.phone_number" - } - }, - { - "column_name": "alt_name", - "type": "Event", - "json_mapping": { - "field": "attributes.alt_name" - } - }, - { - "column_name": "alt_phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.alt_phone_number" - } - }, - { - "column_name": "reminders", - "type": "Event", - "json_mapping": { - "field": "obs.fieldCode", - "concept": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - }, - { - "column_name": "cohabitants", - "type": "Client", - "json_mapping": { - "field": "attributes.cohabitants" - } - }, - { - "column_name": "alt_name", - "type": "Event", - "json_mapping": { - "field": "obs.fieldCode", - "concept": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - }, - { - "column_name": "alt_phone_number", - "type": "Client", - "json_mapping": { - "field": "attributes.alt_phone_number" - } - }, - { - "column_name": "edd", - "type": "Client", - "json_mapping": { - "field": "attributes.edd" - } - }, - { - "column_name": "red_flag_count", - "type": "Client", - "json_mapping": { - "field": "attributes.red_flag_count" - } - }, - { - "column_name": "yellow_flag_count", - "type": "Client", - "json_mapping": { - "field": "attributes.yellow_flag_count" - } - }, - { - "column_name": "contact_status", - "type": "Client", - "json_mapping": { - "field": "attributes.contact_status" - } - }, - { - "column_name": "previous_contact_status", - "type": "Client", - "json_mapping": { - "field": "attributes.previous_contact_status" - } - }, - { - "column_name": "next_contact", - "type": "Client", - "json_mapping": { - "field": "attributes.next_contact" - } - }, - { - "column_name": "next_contact_date", - "type": "Client", - "json_mapping": { - "field": "attributes.next_contact_date" - } - }, - { - "column_name": "last_contact_record_date", - "type": "Client", - "json_mapping": { - "field": "attributes.last_contact_record_date" - } - }, - { - "column_name": "province", - "type": "Client", - "json_mapping": { - "field": "attributes.province" - } - }, - { - "column_name": "district", - "type": "Client", - "json_mapping": { - "field": "attributes.district" - } - }, - { - "column_name": "subdistrict", - "type": "Client", - "json_mapping": { - "field": "attributes.subdistrict" - } - }, - { - "column_name": "health_facility", - "type": "Client", - "json_mapping": { - "field": "attributes.health_facility" - } - }, - { - "column_name": "village", - "type": "Client", - "json_mapping": { - "field": "attributes.village" - } - }, - { - "column_name": "visit_start_date", - "type": "Client", - "json_mapping": { - "field": "attributes.visit_start_date" - } - } - ] - }, - { - "name": "ec_client", - "columns": [ - { - "column_name": "base_entity_id", - "type": "Client", - "json_mapping": { - "field": "baseEntityId" - } - }, - { - "column_name": "register_id", - "type": "Client", - "json_mapping": { - "field": "identifiers.ANC_ID" - } - }, - { - "column_name": "first_name", - "type": "Client", - "json_mapping": { - "field": "firstName" - } - }, - { - "column_name": "last_name", - "type": "Client", - "json_mapping": { - "field": "lastName" - } - }, - { - "column_name": "dob", - "type": "Client", - "json_mapping": { - "field": "birthdate" - } - }, - { - "column_name": "dob_unknown", - "type": "Client", - "json_mapping": { - "field": "birthdateApprox" - } - }, - { - "column_name": "last_interacted_with", - "type": "Event", - "json_mapping": { - "field": "version" - } - }, - { - "column_name": "date_removed", - "type": "Client", - "json_mapping": { - "field": "attributes.date_removed" - } - }, - { - "column_name": "home_address", - "type": "Client", - "json_mapping": { - "field": "addresses.address2" - } - } - ] - } - ] + "bindobjects": [ + { + "name": "ec_client", + "columns": [ + { + "column_name": "base_entity_id", + "type": "Client", + "json_mapping": { + "field": "baseEntityId" + } + }, + { + "column_name": "register_id", + "type": "Client", + "json_mapping": { + "field": "identifiers.ANC_ID" + } + }, + { + "column_name": "uid", + "type": "Client", + "json_mapping": { + "field": "identifiers.uid" + } + }, + { + "column_name": "ssn", + "type": "Client", + "json_mapping": { + "field": "identifiers.ssn" + } + }, + { + "column_name": "first_name", + "type": "Client", + "json_mapping": { + "field": "firstName" + } + }, + { + "column_name": "last_name", + "type": "Client", + "json_mapping": { + "field": "lastName" + } + }, + { + "column_name": "dob", + "type": "Client", + "json_mapping": { + "field": "birthdate" + } + }, + { + "column_name": "dob_unknown", + "type": "Client", + "json_mapping": { + "field": "birthdateApprox" + } + }, + { + "column_name": "last_interacted_with", + "type": "Event", + "json_mapping": { + "field": "version" + } + }, + { + "column_name": "date_removed", + "type": "Client", + "json_mapping": { + "field": "attributes.date_removed" + } + }, + { + "column_name": "home_address", + "type": "Client", + "json_mapping": { + "field": "addresses.address2" + } + } + ] + }, + + { + "name": "ec_mother_details", + "columns": [ + { + "column_name": "base_entity_id", + "type": "Client", + "json_mapping": { + "field": "baseEntityId" + } + }, + { + "column_name": "uid_unknown", + "type": "Client", + "json_mapping": { + "field": "attributes.uid_unknown" + } + }, + { + "column_name": "uid_unknown_reason", + "type": "Client", + "json_mapping": { + "field": "attributes.uid_unknown_reason" + } + }, + { + "column_name": "phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.phone_number" + } + }, + { + "column_name": "phone_number_unknown", + "type": "Client", + "json_mapping": { + "field": "attributes.phone_number_unknown" + } + }, + { + "column_name": "phone_number_unknown_reason", + "type": "Client", + "json_mapping": { + "field": "attributes.phone_number_unknown_reason" + } + }, + { + "column_name": "alt_name", + "type": "Event", + "json_mapping": { + "field": "attributes.alt_name" + } + }, + { + "column_name": "alt_phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.alt_phone_number" + } + }, + { + "column_name": "reminders", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "163164AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "cohabitants", + "type": "Client", + "json_mapping": { + "field": "attributes.cohabitants" + } + }, + { + "column_name": "alt_name", + "type": "Event", + "json_mapping": { + "field": "obs.fieldCode", + "concept": "163258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + }, + { + "column_name": "alt_phone_number", + "type": "Client", + "json_mapping": { + "field": "attributes.alt_phone_number" + } + }, + { + "column_name": "edd", + "type": "Client", + "json_mapping": { + "field": "attributes.edd" + } + }, + { + "column_name": "red_flag_count", + "type": "Client", + "json_mapping": { + "field": "attributes.red_flag_count" + } + }, + { + "column_name": "yellow_flag_count", + "type": "Client", + "json_mapping": { + "field": "attributes.yellow_flag_count" + } + }, + { + "column_name": "contact_status", + "type": "Client", + "json_mapping": { + "field": "attributes.contact_status" + } + }, + { + "column_name": "previous_contact_status", + "type": "Client", + "json_mapping": { + "field": "attributes.previous_contact_status" + } + }, + { + "column_name": "next_contact", + "type": "Client", + "json_mapping": { + "field": "attributes.next_contact" + } + }, + { + "column_name": "next_contact_date", + "type": "Client", + "json_mapping": { + "field": "attributes.next_contact_date" + } + }, + { + "column_name": "last_contact_record_date", + "type": "Client", + "json_mapping": { + "field": "attributes.last_contact_record_date" + } + }, + { + "column_name": "province", + "type": "Client", + "json_mapping": { + "field": "attributes.province" + } + }, + { + "column_name": "district", + "type": "Client", + "json_mapping": { + "field": "attributes.district" + } + }, + { + "column_name": "subdistrict", + "type": "Client", + "json_mapping": { + "field": "attributes.subdistrict" + } + }, + { + "column_name": "health_facility", + "type": "Client", + "json_mapping": { + "field": "attributes.health_facility" + } + }, + { + "column_name": "village", + "type": "Client", + "json_mapping": { + "field": "attributes.village" + } + }, + { + "column_name": "visit_start_date", + "type": "Client", + "json_mapping": { + "field": "attributes.visit_start_date" + } + } + ] + } + ] } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java index 740ffe0a1..8856f65d3 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/RegisterQueryProvider.java @@ -70,6 +70,8 @@ public String mainRegisterQuery() { public String[] mainColumns() { return new String[]{ + + // Base WHO ANC fields DBConstantsUtils.KeyUtils.ANC_ID, DBConstantsUtils.KeyUtils.FIRST_NAME, DBConstantsUtils.KeyUtils.LAST_NAME, @@ -97,7 +99,16 @@ public String[] mainColumns() { getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.DISTRICT, getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.SUB_DISTRICT, getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.FACILITY, - getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.VILLAGE + getDetailsTable() + "." + ConstantsUtils.SpinnerKeyConstants.VILLAGE, + + // Additional local fields + DBConstantsUtils.KeyUtils.UID, + DBConstantsUtils.KeyUtils.SSN, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.UID_UNKNOWN, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.UID_UNKNOWN_REASON, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PHONE_NUMBER_UNKNOWN, + getDetailsTable() + "." + DBConstantsUtils.KeyUtils.PHONE_NUMBER_UNKNOWN_REASON + }; } } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java index ff3303532..d83a7be18 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/util/DBConstantsUtils.java @@ -14,6 +14,8 @@ public interface RegisterTable { } public static final class KeyUtils { + + // Base WHO ANC fields public static final String ID = "_ID"; public static final String ID_LOWER_CASE = "_id"; public static final String STEPNAME = "stepName"; @@ -45,5 +47,14 @@ public static final class KeyUtils { public static final String VISIT_START_DATE = "visit_start_date"; public static final String IS_FIRST_VISIT = "is_first_visit"; public static final String COHABITANTS = "cohabitants"; + + // Additional fields for local requirements + public static final String UID = "uid"; + public static final String SSN = "ssn"; + public static final String UID_UNKNOWN = "uid_unknown"; + public static final String UID_UNKNOWN_REASON = "uid_unknown_reason"; + public static final String PHONE_NUMBER_UNKNOWN = "phone_number_unknown"; + public static final String PHONE_NUMBER_UNKNOWN_REASON = "phone_number_unknown_reason"; + } } From 24117dd7409d41abeef6489ce04d04d1b6928f83 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 14:42:51 +0700 Subject: [PATCH 210/302] Add "dont_bring" option to "uid_unknown_reason" field Additional: - Fix the relevance rule to synchronize "uid" input field with "uid_unknown". - Change "dob_unknown" option value to "yes" if checked. --- .../src/main/assets/json.form/anc_register.json | 11 +++++++++-- .../src/main/assets/rule/anc_register_relevance.yml | 2 +- .../src/main/resources/anc_register.properties | 5 +++-- .../src/main/resources/anc_register_in.properties | 5 +++-- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_register.json b/opensrp-anc/src/main/assets/json.form/anc_register.json index 1596ce6a5..62a2ae290 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_register.json +++ b/opensrp-anc/src/main/assets/json.form/anc_register.json @@ -169,6 +169,13 @@ "openmrs_entity": "", "openmrs_entity_id": "" }, + { + "key": "dont_bring", + "text": "{{anc_register.step1.uid_unknown_reason.options.dont_bring.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "" + }, { "key": "lost", "text": "{{anc_register.step1.uid_unknown_reason.options.lost.text}}", @@ -312,8 +319,8 @@ "type": "check_box", "options": [ { - "key": "dob_unknown", - "text": "{{anc_register.step1.dob_unknown.options.dob_unknown.text}}", + "key": "yes", + "text": "{{anc_register.step1.dob_unknown.options.yes.text}}", "text_size": "18px", "value": "false" } diff --git a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml index bac79c033..e8ca37878 100644 --- a/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml +++ b/opensrp-anc/src/main/assets/rule/anc_register_relevance.yml @@ -2,7 +2,7 @@ name: step1_uid description: Hide "uid" input field if "uid_unknown" option is selected. priority: 1 -condition: "(!step1_uid_unknown.contains('uid_unknown'))" +condition: "(!step1_uid_unknown.contains('yes'))" actions: - "isRelevant = true" --- diff --git a/opensrp-anc/src/main/resources/anc_register.properties b/opensrp-anc/src/main/resources/anc_register.properties index 891277dbf..62f705212 100644 --- a/opensrp-anc/src/main/resources/anc_register.properties +++ b/opensrp-anc/src/main/resources/anc_register.properties @@ -13,7 +13,8 @@ anc_register.step1.uid.v_length.err = Must be exactly 16 digits of number anc_register.step1.uid_unknown.options.yes.text = Cannot record ID Number anc_register.step1.uid_unknown_reason.label = Select a Reason anc_register.step1.uid_unknown_reason.label_info_text = Please select a reason why the mother's ID number cannot be recorded -anc_register.step1.uid_unknown_reason.options.dont_have.text = Do not have +anc_register.step1.uid_unknown_reason.options.dont_have.text = Do not have a National ID +anc_register.step1.uid_unknown_reason.options.dont_bring.text = Do not bring the ID anc_register.step1.uid_unknown_reason.options.lost.text = Lost anc_register.step1.uid_unknown_reason.options.privacy.text = Privacy anc_register.step1.uid_unknown_reason.v_required.err = Reason must be selected @@ -30,7 +31,7 @@ anc_register.step1.group_age_dob.text = Age & Date of Birth anc_register.step1.dob_entered.duration.label = Age anc_register.step1.dob_entered.hint = Date of birth (DOB) anc_register.step1.dob_entered.v_required.err = Please enter the date of birth -anc_register.step1.dob_unknown.options.dob_unknown.text = DOB unknown? +anc_register.step1.dob_unknown.options.yes.text = DOB unknown? anc_register.step1.age_entered.hint = Age anc_register.step1.age_entered.v_numeric.err = Age must be a number anc_register.step1.age_entered.v_required.err = Please enter the woman's age diff --git a/opensrp-anc/src/main/resources/anc_register_in.properties b/opensrp-anc/src/main/resources/anc_register_in.properties index 6939068bd..0ac37dcb8 100644 --- a/opensrp-anc/src/main/resources/anc_register_in.properties +++ b/opensrp-anc/src/main/resources/anc_register_in.properties @@ -13,7 +13,8 @@ anc_register.step1.uid.v_length.err = Harus berupa 16 digit angka anc_register.step1.uid_unknown.options.yes.text = Tidak ada nomor KTP anc_register.step1.uid_unknown_reason.label = Pilih Alasan anc_register.step1.uid_unknown_reason.label_info_text = Mengapa nomor KTP ibu tidak diketahui? -anc_register.step1.uid_unknown_reason.options.dont_have.text = Tidak Punya +anc_register.step1.uid_unknown_reason.options.dont_have.text = Tidak Punya KTP +anc_register.step1.uid_unknown_reason.options.dont_bring.text = KTP Tidak Dibawa anc_register.step1.uid_unknown_reason.options.lost.text = Hilang anc_register.step1.uid_unknown_reason.options.privacy.text = Privasi anc_register.step1.uid_unknown_reason.v_required.err = Alasan harus dipilih @@ -30,7 +31,7 @@ anc_register.step1.group_age_dob.text = Usia & Tanggal Lahir anc_register.step1.dob_entered.duration.label = Usia anc_register.step1.dob_entered.hint = Tanggal Lahir anc_register.step1.dob_entered.v_required.err = Tanggal lahir harus diisi -anc_register.step1.dob_unknown.options.dob_unknown.text = Tanggal lahir tidak diketahui +anc_register.step1.dob_unknown.options.yes.text = Tanggal lahir tidak diketahui anc_register.step1.age_entered.hint = Usia (Tahun) anc_register.step1.age_entered.v_numeric.err = Usia harus berupa angka dalam tahun anc_register.step1.age_entered.v_required.err = Usia ibu harus diisi From add51ddb278ee04a909f8e5647d006cb869a46dd Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 18:02:43 +0700 Subject: [PATCH 211/302] Refactored Quick Check form & properties files for better readability --- .../assets/json.form/anc_quick_check.json | 1270 ++++++++--------- .../main/resources/anc_quick_check.properties | 141 +- 2 files changed, 721 insertions(+), 690 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index 89979cf4b..3d038a923 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -1,637 +1,637 @@ { - "validate_on_submit": true, - "display_scroll_bars": true, - "count": "1", - "encounter_type": "Quick Check", - "entity_id": "", - "relational_id": "", - "form_version": "0.0.6", - "metadata": { - "start": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "start", - "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "end": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "end", - "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "today": { - "openmrs_entity_parent": "", - "openmrs_entity": "encounter", - "openmrs_entity_id": "encounter_date" - }, - "deviceid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "deviceid", - "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "subscriberid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "subscriberid", - "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "simserial": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "simserial", - "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "phonenumber": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "phonenumber", - "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "encounter_location": "", - "look_up": { - "entity_id": "", - "value": "" - } - }, - "step1": { - "title": "{{anc_quick_check.step1.title}}", - "fields": [ - { - "key": "contact_reason", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160288AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_quick_check.step1.contact_reason.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "first_contact", - "text": "{{anc_quick_check.step1.contact_reason.options.first_contact.text}}", - "translation_text": "anc_quick_check.step1.contact_reason.options.first_contact.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165269AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "scheduled_contact", - "text": "{{anc_quick_check.step1.contact_reason.options.scheduled_contact.text}}", - "translation_text": "anc_quick_check.step1.contact_reason.options.scheduled_contact.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "specific_complaint", - "text": "{{anc_quick_check.step1.contact_reason.options.specific_complaint.text}}", - "translation_text": "anc_quick_check.step1.contact_reason.options.specific_complaint.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": "true", - "err": "{{anc_quick_check.step1.contact_reason.v_required.err}}" - } - }, - { - "key": "specific_complaint", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "check_box", - "label": "{{anc_quick_check.step1.specific_complaint.label}}", - "label_text_style": "bold", - "text_color": "#000000", - "options": [ - { - "key": "abnormal_discharge", - "text": "{{anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "123395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "changes_in_bp", - "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "" - }, - { - "key": "changes_in_bp_down", - "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "" - }, - { - "key": "constipation", - "text": "{{anc_quick_check.step1.specific_complaint.options.constipation.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "996AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "contractions", - "text": "{{anc_quick_check.step1.specific_complaint.options.contractions.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163750AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "cough", - "text": "{{anc_quick_check.step1.specific_complaint.options.cough.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "143264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "diarrhea", - "text": "{{anc_quick_check.step1.specific_complaint.options.diarrhea.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "" - }, - { - "key": "dizziness", - "text": "{{anc_quick_check.step1.specific_complaint.options.dizziness.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "156046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no_fetal_movement", - "text": "{{anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1452AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "reduced_fetal_movement", - "text": "{{anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "113377AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "fever", - "text": "{{anc_quick_check.step1.specific_complaint.options.fever.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "flu_symptoms", - "text": "{{anc_quick_check.step1.specific_complaint.options.flu_symptoms.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "137162AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "fluid_loss", - "text": "{{anc_quick_check.step1.specific_complaint.options.fluid_loss.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "148968AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "headache", - "text": "{{anc_quick_check.step1.specific_complaint.options.headache.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "139084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "heartburn", - "text": "{{anc_quick_check.step1.specific_complaint.options.heartburn.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "139059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "trauma", - "text": "{{anc_quick_check.step1.specific_complaint.options.trauma.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "124193AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "domestic_violence", - "text": "{{anc_quick_check.step1.specific_complaint.options.domestic_violence.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "141814AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "altered_skin_color", - "text": "{{anc_quick_check.step1.specific_complaint.options.altered_skin_color.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "136443AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "leg_cramps", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_cramps.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "135969AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "leg_redness", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_redness.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165215AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "anxiety", - "text": "{{anc_quick_check.step1.specific_complaint.options.anxiety.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "121543AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "depression", - "text": "{{anc_quick_check.step1.specific_complaint.options.depression.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "119537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other_psychological_symptoms", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160198AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "nausea_vomiting_diarrhea", - "text": "{{anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "157892AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "oedema", - "text": "{{anc_quick_check.step1.specific_complaint.options.oedema.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other_bleeding", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_bleeding.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "147241AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other_skin_disorder", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "119022AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other_types_of_violence", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "158358AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "full_abdominal_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "139547AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "dysuria", - "text": "{{anc_quick_check.step1.specific_complaint.options.dysuria.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "118771AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "extreme_pelvic_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165270AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "leg_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.leg_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "114395AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "low_back_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.low_back_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "116225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "114403AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "pelvic_pain", - "text": "{{anc_quick_check.step1.specific_complaint.options.pelvic_pain.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "131034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "pruritus", - "text": "{{anc_quick_check.step1.specific_complaint.options.pruritus.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "879AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "shortness_of_breath", - "text": "{{anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "141600AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "tiredness", - "text": "{{anc_quick_check.step1.specific_complaint.options.tiredness.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "124628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "bleeding", - "text": "{{anc_quick_check.step1.specific_complaint.options.bleeding.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "147232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "visual_disturbance", - "text": "{{anc_quick_check.step1.specific_complaint.options.visual_disturbance.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "123074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "vomiting", - "text": "{{anc_quick_check.step1.specific_complaint.options.vomiting.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "" - }, - { - "key": "other_specify", - "text": "{{anc_quick_check.step1.specific_complaint.options.other_specify.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": "true", - "err": "{{anc_quick_check.step1.specific_complaint.v_required.err}}" - }, - "relevance": { - "step1:contact_reason": { - "type": "string", - "ex": "equalTo(.,\"specific_complaint\")" - } - } - }, - { - "key": "specific_complaint_other", - "openmrs_entity_parent": "5219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "normal_edit_text", - "edit_text_style": "bordered", - "hint": "{{anc_quick_check.step1.specific_complaint_other.hint}}", - "v_regex": { - "value": "[A-Za-z\\s\\.\\-]*", - "err": "{{anc_quick_check.step1.specific_complaint_other.v_regex.err}}" - }, - "relevance": { - "step1:specific_complaint": { - "ex-checkbox": [ - { - "or": [ - "other_specify" - ] - } - ] - } - } - }, - { - "key": "danger_signs", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160939AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "check_box", - "label": "{{anc_quick_check.step1.danger_signs.label}}", - "label_text_style": "bold", - "text_color": "#000000", - "exclusive": [ - "danger_none" - ], - "options": [ - { - "key": "danger_none", - "text": "{{anc_quick_check.step1.danger_signs.options.danger_none.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.danger_none.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "danger_bleeding", - "text": "{{anc_quick_check.step1.danger_signs.options.danger_bleeding.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.danger_bleeding.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "150802AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "central_cyanosis", - "text": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.central_cyanosis.text}", - "label_info_text": "Bluish discolouration around the mucous membranes in the mouth, lips and tongue", - "label_info_title": "Central cyanosis", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165216AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "convulsing", - "text": "{{anc_quick_check.step1.danger_signs.options.convulsing.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.convulsing.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "164483AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "danger_fever", - "text": "{{anc_quick_check.step1.danger_signs.options.danger_fever.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.danger_fever.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "140238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "severe_headache", - "text": "{{anc_quick_check.step1.danger_signs.options.severe_headache.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.severe_headache.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "139081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "visual_disturbance", - "text": "{{anc_quick_check.step1.danger_signs.options.visual_disturbance.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.visual_disturbance.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "123074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "imminent_delivery", - "text": "{{anc_quick_check.step1.danger_signs.options.imminent_delivery.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.imminent_delivery.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "162818AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "labour", - "text": "{{anc_quick_check.step1.danger_signs.options.labour.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.labour.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "145AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "looks_very_ill", - "text": "{{anc_quick_check.step1.danger_signs.options.looks_very_ill.text}}", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163293AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "severe_vomiting", - "text": "{{anc_quick_check.step1.danger_signs.options.severe_vomiting.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.severe_vomiting.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "118477AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "severe_pain", - "text": "{{anc_quick_check.step1.danger_signs.options.severe_pain.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.severe_pain.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163477AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "severe_abdominal_pain", - "text": "{{anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165271AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "unconscious", - "text": "{{anc_quick_check.step1.danger_signs.options.unconscious.text}}", - "translation_text": "anc_quick_check.step1.danger_signs.options.unconscious.text", - "value": false, - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "123818AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": "true", - "err": "{{anc_quick_check.step1.danger_signs.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "quick_check_relevance_rules.yml" - } - } - } - } - ] - }, - "properties_file_name": "anc_quick_check" + "validate_on_submit": true, + "display_scroll_bars": true, + "count": "1", + "encounter_type": "Quick Check", + "entity_id": "", + "relational_id": "", + "form_version": "0.0.6", + "metadata": { + "start": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "start", + "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "end": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "end", + "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "today": { + "openmrs_entity_parent": "", + "openmrs_entity": "encounter", + "openmrs_entity_id": "encounter_date" + }, + "deviceid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "deviceid", + "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "subscriberid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "subscriberid", + "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "simserial": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "simserial", + "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "phonenumber": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "phonenumber", + "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "encounter_location": "", + "look_up": { + "entity_id": "", + "value": "" + } + }, + "step1": { + "title": "{{anc_quick_check.step1.title}}", + "fields": [ + { + "key": "contact_reason", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "contact_reason", + "type": "native_radio", + "label": "{{anc_quick_check.step1.contact_reason.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "first_contact", + "text": "{{anc_quick_check.step1.contact_reason.options.first_contact.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.first_contact.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "first_contact" + }, + { + "key": "scheduled_contact", + "text": "{{anc_quick_check.step1.contact_reason.options.scheduled_contact.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.scheduled_contact.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "specific_complaint", + "text": "{{anc_quick_check.step1.contact_reason.options.specific_complaint.text}}", + "translation_text": "anc_quick_check.step1.contact_reason.options.specific_complaint.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "specific_complaint" + } + ], + "v_required": { + "value": "true", + "err": "{{anc_quick_check.step1.contact_reason.v_required.err}}" + } + }, + { + "key": "specific_complaint", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "specific_complaint", + "type": "check_box", + "label": "{{anc_quick_check.step1.specific_complaint.label}}", + "label_text_style": "bold", + "text_color": "#000000", + "options": [ + { + "key": "abnormal_discharge", + "text": "{{anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "abnormal_discharge" + }, + { + "key": "changes_in_bp", + "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "changes_in_bp" + }, + { + "key": "changes_in_bp_down", + "text": "{{anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "changes_in_bp_down" + }, + { + "key": "constipation", + "text": "{{anc_quick_check.step1.specific_complaint.options.constipation.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "constipation" + }, + { + "key": "contractions", + "text": "{{anc_quick_check.step1.specific_complaint.options.contractions.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "contractions" + }, + { + "key": "cough", + "text": "{{anc_quick_check.step1.specific_complaint.options.cough.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "cough" + }, + { + "key": "diarrhea", + "text": "{{anc_quick_check.step1.specific_complaint.options.diarrhea.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "diarrhea" + }, + { + "key": "dizziness", + "text": "{{anc_quick_check.step1.specific_complaint.options.dizziness.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "dizziness" + }, + { + "key": "no_fetal_movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "no_fetal_movement" + }, + { + "key": "reduced_fetal_movement", + "text": "{{anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "reduced_fetal_movement" + }, + { + "key": "fever", + "text": "{{anc_quick_check.step1.specific_complaint.options.fever.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "fever" + }, + { + "key": "flu_symptoms", + "text": "{{anc_quick_check.step1.specific_complaint.options.flu_symptoms.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "flu_symptoms" + }, + { + "key": "fluid_loss", + "text": "{{anc_quick_check.step1.specific_complaint.options.fluid_loss.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "fluid_loss" + }, + { + "key": "headache", + "text": "{{anc_quick_check.step1.specific_complaint.options.headache.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "headache" + }, + { + "key": "heartburn", + "text": "{{anc_quick_check.step1.specific_complaint.options.heartburn.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "heartburn" + }, + { + "key": "trauma", + "text": "{{anc_quick_check.step1.specific_complaint.options.trauma.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "trauma" + }, + { + "key": "domestic_violence", + "text": "{{anc_quick_check.step1.specific_complaint.options.domestic_violence.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "domestic_violence" + }, + { + "key": "altered_skin_color", + "text": "{{anc_quick_check.step1.specific_complaint.options.altered_skin_color.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "altered_skin_color" + }, + { + "key": "leg_cramps", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_cramps.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "leg_cramps" + }, + { + "key": "leg_redness", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_redness.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "leg_redness" + }, + { + "key": "anxiety", + "text": "{{anc_quick_check.step1.specific_complaint.options.anxiety.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "anxiety" + }, + { + "key": "depression", + "text": "{{anc_quick_check.step1.specific_complaint.options.depression.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "depression" + }, + { + "key": "other_psychological_symptoms", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_psychological_symptoms" + }, + { + "key": "nausea_vomiting_diarrhea", + "text": "{{anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "nausea_vomiting_diarrhea" + }, + { + "key": "oedema", + "text": "{{anc_quick_check.step1.specific_complaint.options.oedema.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "oedema" + }, + { + "key": "other_bleeding", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_bleeding.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_bleeding" + }, + { + "key": "other_skin_disorder", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_skin_disorder" + }, + { + "key": "other_types_of_violence", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_types_of_violence" + }, + { + "key": "full_abdominal_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "full_abdominal_pain" + }, + { + "key": "dysuria", + "text": "{{anc_quick_check.step1.specific_complaint.options.dysuria.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "dysuria" + }, + { + "key": "extreme_pelvic_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "extreme_pelvic_pain" + }, + { + "key": "leg_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.leg_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "leg_pain" + }, + { + "key": "low_back_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.low_back_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "low_back_pain" + }, + { + "key": "other_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_pain" + }, + { + "key": "pelvic_pain", + "text": "{{anc_quick_check.step1.specific_complaint.options.pelvic_pain.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "pelvic_pain" + }, + { + "key": "pruritus", + "text": "{{anc_quick_check.step1.specific_complaint.options.pruritus.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "pruritus" + }, + { + "key": "shortness_of_breath", + "text": "{{anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "shortness_of_breath" + }, + { + "key": "tiredness", + "text": "{{anc_quick_check.step1.specific_complaint.options.tiredness.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "tiredness" + }, + { + "key": "bleeding", + "text": "{{anc_quick_check.step1.specific_complaint.options.bleeding.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "bleeding" + }, + { + "key": "visual_disturbance", + "text": "{{anc_quick_check.step1.specific_complaint.options.visual_disturbance.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "visual_disturbance" + }, + { + "key": "vomiting", + "text": "{{anc_quick_check.step1.specific_complaint.options.vomiting.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "vomiting" + }, + { + "key": "other_specify", + "text": "{{anc_quick_check.step1.specific_complaint.options.other_specify.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other_specify" + } + ], + "v_required": { + "value": "true", + "err": "{{anc_quick_check.step1.specific_complaint.v_required.err}}" + }, + "relevance": { + "step1:contact_reason": { + "type": "string", + "ex": "equalTo(.,\"specific_complaint\")" + } + } + }, + { + "key": "specific_complaint_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "specific_complaint_other", + "type": "normal_edit_text", + "edit_text_style": "bordered", + "hint": "{{anc_quick_check.step1.specific_complaint_other.hint}}", + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_quick_check.step1.specific_complaint_other.v_regex.err}}" + }, + "relevance": { + "step1:specific_complaint": { + "ex-checkbox": [ + { + "or": [ + "other_specify" + ] + } + ] + } + } + }, + { + "key": "danger_signs", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "danger_signs", + "type": "check_box", + "label": "{{anc_quick_check.step1.danger_signs.label}}", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "danger_none" + ], + "options": [ + { + "key": "danger_none", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_none.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_none.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "danger_none" + }, + { + "key": "danger_bleeding", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_bleeding.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_bleeding.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "danger_bleeding" + }, + { + "key": "central_cyanosis", + "text": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.central_cyanosis.text}", + "label_info_title": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_title}}", + "label_info_text": "{{anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "central_cyanosis" + }, + { + "key": "convulsing", + "text": "{{anc_quick_check.step1.danger_signs.options.convulsing.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.convulsing.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "convulsing" + }, + { + "key": "danger_fever", + "text": "{{anc_quick_check.step1.danger_signs.options.danger_fever.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.danger_fever.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "danger_fever" + }, + { + "key": "severe_headache", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_headache.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_headache.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "severe_headache" + }, + { + "key": "visual_disturbance", + "text": "{{anc_quick_check.step1.danger_signs.options.visual_disturbance.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.visual_disturbance.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "visual_disturbance" + }, + { + "key": "imminent_delivery", + "text": "{{anc_quick_check.step1.danger_signs.options.imminent_delivery.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.imminent_delivery.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "imminent_delivery" + }, + { + "key": "labour", + "text": "{{anc_quick_check.step1.danger_signs.options.labour.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.labour.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "labour" + }, + { + "key": "looks_very_ill", + "text": "{{anc_quick_check.step1.danger_signs.options.looks_very_ill.text}}", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "looks_very_ill" + }, + { + "key": "severe_vomiting", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_vomiting.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_vomiting.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "severe_vomiting" + }, + { + "key": "severe_pain", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_pain.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_pain.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "severe_pain" + }, + { + "key": "severe_abdominal_pain", + "text": "{{anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "severe_abdominal_pain" + }, + { + "key": "unconscious", + "text": "{{anc_quick_check.step1.danger_signs.options.unconscious.text}}", + "translation_text": "anc_quick_check.step1.danger_signs.options.unconscious.text", + "value": false, + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "unconscious" + } + ], + "v_required": { + "value": "true", + "err": "{{anc_quick_check.step1.danger_signs.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "quick_check_relevance_rules.yml" + } + } + } + } + ] + }, + "properties_file_name": "anc_quick_check" } \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_quick_check.properties b/opensrp-anc/src/main/resources/anc_quick_check.properties index c07f3ec93..109e4b542 100644 --- a/opensrp-anc/src/main/resources/anc_quick_check.properties +++ b/opensrp-anc/src/main/resources/anc_quick_check.properties @@ -1,68 +1,99 @@ +# [ Form Properties ] +# =================== + +anc_quick_check.step1.title = Quick Check + +# [ Contact Reason ] +# ================== + +anc_quick_check.step1.contact_reason.label = Reason for coming to facility +anc_quick_check.step1.contact_reason.v_required.err = Reason for coming to facility is required +anc_quick_check.step1.contact_reason.options.first_contact.text = First contact +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Scheduled contact +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Health concern + +# [ Specific Complaint ] +# ====================== + +anc_quick_check.step1.specific_complaint.label = Health concern(s) +anc_quick_check.step1.specific_complaint.v_required.err = Specific complaint is required +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Change in blood pressure - up (hypertension) +anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text = Change in blood pressure - down (hypotension) +anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation +anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions +anc_quick_check.step1.specific_complaint.options.cough.text = Cough +anc_quick_check.step1.specific_complaint.options.diarrhea.text = Diarrhea anc_quick_check.step1.specific_complaint.options.dizziness.text = Dizziness -anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Intimate partner violence -anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Other bleeding -anc_quick_check.step1.specific_complaint.options.depression.text = Mental health - Depression +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Fetal movements - none +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Fetal movements - reduced/poor +anc_quick_check.step1.specific_complaint.options.fever.text = Fever +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Flu symptoms +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss (leaking) +anc_quick_check.step1.specific_complaint.options.headache.text = Headache anc_quick_check.step1.specific_complaint.options.heartburn.text = Heartburn -anc_quick_check.step1.specific_complaint.options.other_specify.text = Other health concern (specify) -anc_quick_check.step1.specific_complaint.options.oedema.text = Oedema -anc_quick_check.step1.specific_complaint.options.contractions.text = Contractions +anc_quick_check.step1.specific_complaint.options.trauma.text = Injury +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Intimate partner violence +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaundice anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Leg cramps -anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Mental health - Other psychological symptoms -anc_quick_check.step1.specific_complaint.options.fever.text = Fever -anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Scheduled contact -anc_quick_check.step1.danger_signs.options.severe_headache.text = Severe headache -anc_quick_check.step1.danger_signs.options.danger_fever.text = Fever -anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Looks very ill -anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Visual disturbance anc_quick_check.step1.specific_complaint.options.leg_redness.text = Leg redness -anc_quick_check.step1.specific_complaint_other.hint = Specify -anc_quick_check.step1.specific_complaint.options.tiredness.text = Tiredness -anc_quick_check.step1.danger_signs.options.severe_pain.text = Severe pain -anc_quick_check.step1.specific_complaint.options.constipation.text = Constipation -anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Central cyanosis -anc_quick_check.step1.specific_complaint_other.v_regex.err = Please enter valid content +anc_quick_check.step1.specific_complaint.options.anxiety.text = Mental health - Anxiety +anc_quick_check.step1.specific_complaint.options.depression.text = Mental health - Depression +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Mental health - Other psychological symptoms +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea +anc_quick_check.step1.specific_complaint.options.oedema.text = Oedema +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Other bleeding anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Other skin disorder -anc_quick_check.step1.danger_signs.options.danger_none.text = None -anc_quick_check.step1.specific_complaint.label = Health concern(s) -anc_quick_check.step1.specific_complaint.options.leg_pain.text = Pain - Leg -anc_quick_check.step1.title = Quick Check -anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Fetal movements - reduced/poor -anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Bleeding vaginally -anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Pain - Abdominal -anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Abnormal vaginal discharge (physiological) (foul smelling) (curd like) anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Other types of violence -anc_quick_check.step1.specific_complaint.options.other_pain.text = Pain - Other -anc_quick_check.step1.specific_complaint.options.anxiety.text = Mental health - Anxiety +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Pain - Abdominal +anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain - During urination (dysuria) anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Pain - Extreme pelvic pain/cannot walk (symphysis pubis dysfunction) +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Pain - Leg +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Pain - Low back +anc_quick_check.step1.specific_complaint.options.other_pain.text = Pain - Other anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Pain - Pelvic -anc_quick_check.step1.specific_complaint.options.bleeding.text = Vaginal bleeding -anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Change in blood pressure - up (hypertension) -anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text = Change in blood pressure - down (hypotension) +anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Shortness of breath -anc_quick_check.step1.specific_complaint.v_required.err = Specific complaint is required -anc_quick_check.step1.contact_reason.v_required.err = Reason for coming to facility is required -anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Fluid loss (leaking) -anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Severe abdominal pain -anc_quick_check.step1.contact_reason.label = Reason for coming to facility +anc_quick_check.step1.specific_complaint.options.tiredness.text = Tiredness +anc_quick_check.step1.specific_complaint.options.bleeding.text = Vaginal bleeding +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Visual disturbance +anc_quick_check.step1.specific_complaint.options.vomiting.text = Vomiting +anc_quick_check.step1.specific_complaint.options.other_specify.text = Other health concern (specify) + +# [ Specific Complaint: Other ] +# ============================= + +anc_quick_check.step1.specific_complaint_other.hint = Specify +anc_quick_check.step1.specific_complaint_other.v_regex.err = Please enter valid content + +# [ Danger Signs ] +# ================ + anc_quick_check.step1.danger_signs.label = Danger signs -anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Pain - Low back -anc_quick_check.step1.specific_complaint.options.trauma.text = Injury -anc_quick_check.step1.danger_signs.options.unconscious.text = Unconscious -anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Jaundice -anc_quick_check.step1.danger_signs.options.labour.text = Labour -anc_quick_check.step1.specific_complaint.options.headache.text = Headache +anc_quick_check.step1.danger_signs.v_required.err = Danger signs is required +anc_quick_check.step1.danger_signs.options.danger_none.text = None +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Bleeding vaginally +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Central cyanosis +anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_title = Central cyanosis +anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_text = Bluish discolouration around the mucous membranes in the mouth, lips and tongue +anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsing +anc_quick_check.step1.danger_signs.options.danger_fever.text = Fever +anc_quick_check.step1.danger_signs.options.severe_headache.text = Severe headache anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Visual disturbance anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Imminent delivery -anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus -anc_quick_check.step1.specific_complaint.options.cough.text = Cough -anc_quick_check.step1.specific_complaint.options.dysuria.text = Pain - During urination (dysuria) -anc_quick_check.step1.contact_reason.options.first_contact.text = First contact -anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Flu symptoms -anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Nausea -anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Fetal movements - none -anc_quick_check.step1.danger_signs.options.convulsing.text = Convulsing +anc_quick_check.step1.danger_signs.options.labour.text = Labour +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Looks very ill anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Severe vomiting -anc_quick_check.step1.contact_reason.options.specific_complaint.text = Health concern -anc_quick_check.step1.danger_signs.v_required.err = Danger signs is required -anc_quick_check.step1.specific_complaint.options.vomiting.text = Vomiting -anc_quick_check.step1.specific_complaint.options.diarrhea.text = Diarrhoea \ No newline at end of file +anc_quick_check.step1.danger_signs.options.severe_pain.text = Severe pain +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Severe abdominal pain +anc_quick_check.step1.danger_signs.options.unconscious.text = Unconscious + + + + + + + + + + From 787ce6bbc2ab993bd77b39c1a5f00ed23ca5a478 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 18:54:49 +0700 Subject: [PATCH 212/302] Complete relevance rules for Quick Check form --- .../assets/json.form/anc_quick_check.json | 21 ++++++++----------- .../assets/rule/anc_quick_check_relevance.yml | 21 +++++++++++++++++++ .../rule/quick_check_relevance_rules.yml | 7 ------- 3 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 opensrp-anc/src/main/assets/rule/anc_quick_check_relevance.yml delete mode 100644 opensrp-anc/src/main/assets/rule/quick_check_relevance_rules.yml diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index 3d038a923..8b5f68fec 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -448,9 +448,10 @@ "err": "{{anc_quick_check.step1.specific_complaint.v_required.err}}" }, "relevance": { - "step1:contact_reason": { - "type": "string", - "ex": "equalTo(.,\"specific_complaint\")" + "rules-engine": { + "ex-rules": { + "rules-file": "anc_quick_check_relevance.yml" + } } } }, @@ -467,14 +468,10 @@ "err": "{{anc_quick_check.step1.specific_complaint_other.v_regex.err}}" }, "relevance": { - "step1:specific_complaint": { - "ex-checkbox": [ - { - "or": [ - "other_specify" - ] - } - ] + "rules-engine": { + "ex-rules": { + "rules-file": "anc_quick_check_relevance.yml" + } } } }, @@ -626,7 +623,7 @@ "relevance": { "rules-engine": { "ex-rules": { - "rules-file": "quick_check_relevance_rules.yml" + "rules-file": "anc_quick_check_relevance.yml" } } } diff --git a/opensrp-anc/src/main/assets/rule/anc_quick_check_relevance.yml b/opensrp-anc/src/main/assets/rule/anc_quick_check_relevance.yml new file mode 100644 index 000000000..206dba66a --- /dev/null +++ b/opensrp-anc/src/main/assets/rule/anc_quick_check_relevance.yml @@ -0,0 +1,21 @@ +--- +name: step1_specific_complaint +description: danger_signs +priority: 1 +condition: "!step1_contact_reason.isEmpty() && step1_contact_reason == 'specific_complaint'" +actions: + - "isRelevant = true" +--- +name: step1_specific_complaint_other +description: danger_signs +priority: 1 +condition: "step1_specific_complaint.contains('other_specify')" +actions: + - "isRelevant = true" +--- +name: step1_danger_signs +description: danger_signs +priority: 1 +condition: "!step1_contact_reason.isEmpty()" +actions: + - "isRelevant = true" \ No newline at end of file diff --git a/opensrp-anc/src/main/assets/rule/quick_check_relevance_rules.yml b/opensrp-anc/src/main/assets/rule/quick_check_relevance_rules.yml deleted file mode 100644 index a3fda7759..000000000 --- a/opensrp-anc/src/main/assets/rule/quick_check_relevance_rules.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: step1_danger_signs -description: danger_signs -priority: 1 -condition: "!step1_contact_reason.isEmpty()" -actions: - - "isRelevant = true" \ No newline at end of file From caf4095b9741200e0e1c94de1f2f8f2a6936c6f9 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 2 Dec 2022 19:15:49 +0700 Subject: [PATCH 213/302] Translated Quick Check properties to Bahasa Indonesia --- .../resources/anc_quick_check_in.properties | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 opensrp-anc/src/main/resources/anc_quick_check_in.properties diff --git a/opensrp-anc/src/main/resources/anc_quick_check_in.properties b/opensrp-anc/src/main/resources/anc_quick_check_in.properties new file mode 100644 index 000000000..505dbed58 --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_quick_check_in.properties @@ -0,0 +1,99 @@ +# [ Form Properties ] +# =================== + +anc_quick_check.step1.title = Pemeriksaan Cepat + +# [ Contact Reason ] +# ================== + +anc_quick_check.step1.contact_reason.label = Alasan Berkunjung +anc_quick_check.step1.contact_reason.v_required.err = Alasan berkunjung harus diisi +anc_quick_check.step1.contact_reason.options.first_contact.text = Kunjungan Pertama +anc_quick_check.step1.contact_reason.options.scheduled_contact.text = Kunjungan Terjadwal +anc_quick_check.step1.contact_reason.options.specific_complaint.text = Masalah Kesehatan + +# [ Specific Complaint ] +# ====================== + +anc_quick_check.step1.specific_complaint.label = Pilih Masalah Kesehatan +anc_quick_check.step1.specific_complaint.v_required.err = Masalah kesehatan harus diisi +anc_quick_check.step1.specific_complaint.options.abnormal_discharge.text = Keputihan Abnormal +anc_quick_check.step1.specific_complaint.options.changes_in_bp.text = Hipertensi (Tekanan Darah Tinggi) +anc_quick_check.step1.specific_complaint.options.changes_in_bp_down.text = Hipotensi (Tekanan Darah Rendah) +anc_quick_check.step1.specific_complaint.options.constipation.text = Konstipasi +anc_quick_check.step1.specific_complaint.options.contractions.text = Kontraksi +anc_quick_check.step1.specific_complaint.options.cough.text = Batuk +anc_quick_check.step1.specific_complaint.options.diarrhea.text = Diare +anc_quick_check.step1.specific_complaint.options.dizziness.text = Pusing +anc_quick_check.step1.specific_complaint.options.no_fetal_movement.text = Tidak Ada Pergerakan Janin +anc_quick_check.step1.specific_complaint.options.reduced_fetal_movement.text = Pergerakan Janin Buruk/Berkurang +anc_quick_check.step1.specific_complaint.options.fever.text = Demam +anc_quick_check.step1.specific_complaint.options.flu_symptoms.text = Gejala Flu +anc_quick_check.step1.specific_complaint.options.fluid_loss.text = Kehilangan Cairan +anc_quick_check.step1.specific_complaint.options.headache.text = Sakit Kepala +anc_quick_check.step1.specific_complaint.options.heartburn.text = Heartburn / Maag +anc_quick_check.step1.specific_complaint.options.trauma.text = Cedera +anc_quick_check.step1.specific_complaint.options.domestic_violence.text = Kekerasan - KDRT +anc_quick_check.step1.specific_complaint.options.altered_skin_color.text = Penyakit Kuning +anc_quick_check.step1.specific_complaint.options.leg_cramps.text = Kram Kaki +anc_quick_check.step1.specific_complaint.options.leg_redness.text = Kaki Kemerahan +anc_quick_check.step1.specific_complaint.options.anxiety.text = Gangguan Mental - Kecemasan +anc_quick_check.step1.specific_complaint.options.depression.text = Gangguan Mental - Depresi +anc_quick_check.step1.specific_complaint.options.other_psychological_symptoms.text = Gangguan Mental Lainnya +anc_quick_check.step1.specific_complaint.options.nausea_vomiting_diarrhea.text = Mual +anc_quick_check.step1.specific_complaint.options.oedema.text = Edema +anc_quick_check.step1.specific_complaint.options.other_bleeding.text = Pendarahan Lainnya +anc_quick_check.step1.specific_complaint.options.other_skin_disorder.text = Gangguan Kulit Lainnya +anc_quick_check.step1.specific_complaint.options.other_types_of_violence.text = Jenis Kekerasan Lainnya +anc_quick_check.step1.specific_complaint.options.full_abdominal_pain.text = Nyeri Abdomen +anc_quick_check.step1.specific_complaint.options.dysuria.text = Nyeri Saat Buang Air Kecil +anc_quick_check.step1.specific_complaint.options.extreme_pelvic_pain.text = Nyeri Panggul Ekstrim +anc_quick_check.step1.specific_complaint.options.leg_pain.text = Nyeri di Kaki +anc_quick_check.step1.specific_complaint.options.low_back_pain.text = Nyeri Punggung Bawah +anc_quick_check.step1.specific_complaint.options.other_pain.text = Nyeri Lainnya +anc_quick_check.step1.specific_complaint.options.pelvic_pain.text = Nyeri Panggul +anc_quick_check.step1.specific_complaint.options.pruritus.text = Pruritus +anc_quick_check.step1.specific_complaint.options.shortness_of_breath.text = Sesak Nafas +anc_quick_check.step1.specific_complaint.options.tiredness.text = Kelelahan +anc_quick_check.step1.specific_complaint.options.bleeding.text = Pendarahan Melalui Vagina +anc_quick_check.step1.specific_complaint.options.visual_disturbance.text = Gangguan Penglihatan +anc_quick_check.step1.specific_complaint.options.vomiting.text = Muntah +anc_quick_check.step1.specific_complaint.options.other_specify.text = Masalah Kesehatan Lainnya + +# [ Specific Complaint: Other ] +# ============================= + +anc_quick_check.step1.specific_complaint_other.hint = Sebutkan masalah kesehatan lainnya +anc_quick_check.step1.specific_complaint_other.v_regex.err = Masukkan input yang benar + +# [ Danger Signs ] +# ================ + +anc_quick_check.step1.danger_signs.label = Tanda Bahaya +anc_quick_check.step1.danger_signs.v_required.err = Tanda bahaya harus diisi +anc_quick_check.step1.danger_signs.options.danger_none.text = Tidak Ada +anc_quick_check.step1.danger_signs.options.danger_bleeding.text = Pendarahan Melalui Vagina +anc_quick_check.step1.danger_signs.options.central_cyanosis.text = Sianosis Sentral +anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_title = Sianosis Sentral +anc_quick_check.step1.danger_signs.options.central_cyanosis.label_info_text = Kebiruan di sekitar selaput lendir pada mulut, bibir, dan lidah. +anc_quick_check.step1.danger_signs.options.convulsing.text = Kejang +anc_quick_check.step1.danger_signs.options.danger_fever.text = Demam +anc_quick_check.step1.danger_signs.options.severe_headache.text = Sakit Kepala Parah +anc_quick_check.step1.danger_signs.options.visual_disturbance.text = Gangguan Penglihatan +anc_quick_check.step1.danger_signs.options.imminent_delivery.text = Persalinan Segera +anc_quick_check.step1.danger_signs.options.labour.text = Persalinan +anc_quick_check.step1.danger_signs.options.looks_very_ill.text = Terlihat Sangat Sakit +anc_quick_check.step1.danger_signs.options.severe_vomiting.text = Muntah Parah +anc_quick_check.step1.danger_signs.options.severe_pain.text = Nyeri Parah +anc_quick_check.step1.danger_signs.options.severe_abdominal_pain.text = Nyeri Abdomen Parah +anc_quick_check.step1.danger_signs.options.unconscious.text = Tidak Sadarkan Diri + + + + + + + + + + From 6eb956c5ffcfca93daa5fb9a802c9c9214461c1e Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sat, 3 Dec 2022 05:11:51 +0700 Subject: [PATCH 214/302] Create app configuration file & locale constants --- .../smartregister/anc/library/AppConfig.java | 13 +++++++++++++ .../anc/library/constants/Constants.java | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java create mode 100644 opensrp-anc/src/main/java/org/smartregister/anc/library/constants/Constants.java diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java new file mode 100644 index 000000000..d0af60e57 --- /dev/null +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java @@ -0,0 +1,13 @@ +package org.smartregister.anc.library; + +import org.smartregister.anc.library.constants.Constants; + +import java.util.Locale; + +/** Application configuration to accomodate local requirements. */ +public class AppConfig { + + /** The default locale of the app for language translations & locale-specific resources. */ + public static final Locale DefaultLocale = Constants.Locales.INDONESIAN_ID; + +} diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/Constants.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/Constants.java new file mode 100644 index 000000000..e3483f71c --- /dev/null +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/constants/Constants.java @@ -0,0 +1,17 @@ +package org.smartregister.anc.library.constants; + +import android.os.LocaleList; + +import java.util.Locale; + +public class Constants { + + public static class Locales { + public static final Locale ENGLISH_US = LocaleList.forLanguageTags("en-US").get(0); + public static final Locale INDONESIAN_ID = LocaleList.forLanguageTags("in-ID").get(0); + public static final Locale FRANCE_RW = LocaleList.forLanguageTags("fr-RW").get(0); + public static final Locale NEPALI_NP = LocaleList.forLanguageTags("ne-NP").get(0); + public static final Locale PORTUGESE_BR = LocaleList.forLanguageTags("pt-BR").get(0); + } + +} From cd3deb6736dd4b64bed1616ab8165a5bac7a2385 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sat, 3 Dec 2022 05:12:57 +0700 Subject: [PATCH 215/302] Implement more robust locale settings & language switching --- .../activity/BaseHomeRegisterActivity.java | 23 ++++++- .../anc/library/fragment/MeFragment.java | 64 +++++++------------ .../anc/application/AncApplication.java | 4 +- 3 files changed, 49 insertions(+), 42 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java index 6306a78be..6a5c2a3f0 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseHomeRegisterActivity.java @@ -3,6 +3,7 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; @@ -27,7 +28,9 @@ import org.json.JSONObject; import org.smartregister.AllConstants; import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.AppConfig; import org.smartregister.anc.library.R; +import org.smartregister.anc.library.constants.Constants; import org.smartregister.anc.library.contract.RegisterContract; import org.smartregister.anc.library.domain.AttentionFlag; import org.smartregister.anc.library.domain.Contact; @@ -51,6 +54,7 @@ import org.smartregister.domain.FetchStatus; import org.smartregister.helper.BottomNavigationHelper; import org.smartregister.listener.BottomNavigationListener; +import org.smartregister.util.LangUtils; import org.smartregister.view.activity.BaseRegisterActivity; import org.smartregister.view.fragment.BaseRegisterFragment; @@ -58,6 +62,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import timber.log.Timber; @@ -79,11 +84,27 @@ public class BaseHomeRegisterActivity extends BaseRegisterActivity implements Re @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + if (savedInstanceState == null) { + setDefaultLocale(); + } + super.onCreate(null); recordBirthAlertDialog = createAlertDialog(); createAttentionFlagsAlertDialog(); } + public void setDefaultLocale() { + LangUtils.saveLanguage(getApplication(), AppConfig.DefaultLocale.getLanguage()); + Utils.saveLanguage(AppConfig.DefaultLocale.getLanguage()); + } + + public void setLocale(Locale locale) { + if (locale != null) { + LangUtils.saveLanguage(getApplication(), locale.getLanguage()); + Utils.saveLanguage(locale.getLanguage()); + recreate(); + } + } + @Override protected void registerBottomNavigation() { bottomNavigationHelper = new BottomNavigationHelper(); diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java index e5084878b..c4485f1db 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/fragment/MeFragment.java @@ -2,6 +2,7 @@ import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,8 +17,10 @@ import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.R; import org.smartregister.anc.library.activity.AncP2pModeSelectActivity; +import org.smartregister.anc.library.activity.BaseHomeRegisterActivity; import org.smartregister.anc.library.activity.PopulationCharacteristicsActivity; import org.smartregister.anc.library.activity.SiteCharacteristicsActivity; +import org.smartregister.anc.library.constants.Constants; import org.smartregister.anc.library.presenter.MePresenter; import org.smartregister.anc.library.util.Utils; import org.smartregister.util.LangUtils; @@ -36,7 +39,7 @@ public class MeFragment extends org.smartregister.view.fragment.MeFragment imple private RelativeLayout languageSwitcherSection; private RelativeLayout p2pSyncSetion; private TextView languageSwitcherText; - private final Map locales = new HashMap<>(); + private Locale[] locales; private String[] languages; @Nullable @@ -118,9 +121,7 @@ private void languageSwitcherDialog() { if (MeFragment.this.getActivity() != null) { String selectedLanguage = languages[position]; languageSwitcherText.setText(String.format(MeFragment.this.getActivity().getResources().getString(R.string.default_language_string), selectedLanguage)); - - saveLanguage(selectedLanguage); - MeFragment.this.reloadClass(); + saveLanguage(locales[position]); AncLibrary.getInstance().notifyAppContextChange(); } }); @@ -130,52 +131,35 @@ private void languageSwitcherDialog() { } } - private void saveLanguage(String selectedLanguage) { - if (MeFragment.this.getActivity() != null && StringUtils.isNotBlank(selectedLanguage)) { - Locale selectedLanguageLocale = locales.get(selectedLanguage); - if (selectedLanguageLocale != null) { - LangUtils.saveLanguage(MeFragment.this.getActivity().getApplication(), getFullLanguage(selectedLanguageLocale)); - } else { - Timber.i("Language could not be set"); + private void saveLanguage(Locale selectedLocale) { + if (MeFragment.this.getActivity() != null && selectedLocale != null) { + if (getActivity() instanceof BaseHomeRegisterActivity) { + BaseHomeRegisterActivity parentActivity = (BaseHomeRegisterActivity) getActivity(); + parentActivity.setLocale(selectedLocale); } } } - private void reloadClass() { - if (getActivity() != null) { - Intent intent = getActivity().getIntent(); - getActivity().finish(); - getActivity().startActivity(intent); - } - } - private void registerLanguageSwitcher() { if (getActivity() != null) { - addLanguages(); - - languages = new String[locales.size()]; - Locale current = getActivity().getResources().getConfiguration().locale; - int x = 0; - for (Map.Entry language : locales.entrySet()) { - languages[x] = language.getKey(); //Update the languages strings array with the languages to be displayed on the alert dialog - x++; - - if (getFullLanguage(current).equalsIgnoreCase(getFullLanguage(language.getValue()))) { - languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), language.getKey())); - } + setLocaleList(); + languages = new String[locales.length]; + Locale currentLocale = getActivity().getResources().getConfiguration().getLocales().get(0); + for (int index = 0; index < locales.length; index++) { + languages[index] = locales[index].getDisplayLanguage() + " (" + locales[index].getDisplayCountry() + ")"; } + languageSwitcherText.setText(String.format(getActivity().getResources().getString(R.string.default_language_string), currentLocale.getDisplayLanguage())); } } - private String getFullLanguage(Locale locale) { - return StringUtils.isNotEmpty(locale.getCountry()) ? locale.getLanguage() + "_" + locale.getCountry() : locale.getLanguage(); - } - - private void addLanguages() { - locales.put(getString(R.string.english_language), Locale.ENGLISH); - // locales.put(getString(R.string.french_language), Locale.FRENCH); - // locales.put(getString(R.string.portuguese_brazil_language), new Locale("pt")); - locales.put(getString(R.string.bahasa_indonesia_language), new Locale("in")); + private void setLocaleList() { + locales = new Locale[]{ + Constants.Locales.ENGLISH_US, + Constants.Locales.FRANCE_RW, + Constants.Locales.INDONESIAN_ID, + Constants.Locales.NEPALI_NP, + Constants.Locales.PORTUGESE_BR, + }; } } \ No newline at end of file diff --git a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java index 48ccbfb40..16ecb3ecb 100644 --- a/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java +++ b/reference-app/src/main/java/org/smartregister/anc/application/AncApplication.java @@ -19,6 +19,8 @@ import org.smartregister.anc.ANCEventBusIndex; import org.smartregister.anc.BuildConfig; import org.smartregister.anc.activity.LoginActivity; +import org.smartregister.anc.library.AppConfig; +import org.smartregister.anc.library.constants.Constants; import org.smartregister.anc.job.AncJobCreator; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.auth.AncCoreAuthorizationService; @@ -133,7 +135,7 @@ public void onCreate() { private void setDefaultLanguage() { try { - Utils.saveLanguage("in"); + Utils.saveLanguage(AppConfig.DefaultLocale.getLanguage()); } catch (Exception e) { Timber.e(e, " --> saveLanguage"); } From 3af828290bbf2302c734922e3e3b0d1ffd3c8b9e Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sat, 3 Dec 2022 05:15:12 +0700 Subject: [PATCH 216/302] Remove unused strings Strings for language display text that substituted by generated implementation using Locale.getDisplayLanguage() --- opensrp-anc/src/main/res/values-in-rID/strings.xml | 6 +----- opensrp-anc/src/main/res/values/strings.xml | 8 ++------ 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/opensrp-anc/src/main/res/values-in-rID/strings.xml b/opensrp-anc/src/main/res/values-in-rID/strings.xml index 7a7d76eab..a6685501d 100644 --- a/opensrp-anc/src/main/res/values-in-rID/strings.xml +++ b/opensrp-anc/src/main/res/values-in-rID/strings.xml @@ -619,13 +619,9 @@ Placeholder Halaman Saya - %1s + Bahasa %1s Pilih Bahasa Pilih Bahasa - English - French - Portuguese (Brazil) - Bahasa Indonesia Sinkronisasi antarperangkat diff --git a/opensrp-anc/src/main/res/values/strings.xml b/opensrp-anc/src/main/res/values/strings.xml index 3802c80bc..e74e6775d 100644 --- a/opensrp-anc/src/main/res/values/strings.xml +++ b/opensrp-anc/src/main/res/values/strings.xml @@ -415,7 +415,6 @@ Contact Summary Data - %1$s \n %2$s \"PDF saved on location \" contactSummaryData.pdf - Device-to-device sync @@ -621,11 +620,8 @@ Me Page Placeholder Current language: %1s Select Language - Current language: %1s - English - French - Portuguese (Brazil) - Bahasa (Indonesia) + Choose Language + Device-to-device sync From 8f9cae6798d06dc4bdce9e7e1dd6a00bbf5a389a Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Sat, 3 Dec 2022 07:05:41 +0700 Subject: [PATCH 217/302] Add "visit_date" field --- .../main/assets/json.form/anc_quick_check.json | 15 +++++++++++++++ .../src/main/resources/anc_quick_check.properties | 6 ++++++ .../main/resources/anc_quick_check_in.properties | 6 ++++++ 3 files changed, 27 insertions(+) diff --git a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json index 8b5f68fec..e7c4e3109 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_quick_check.json +++ b/opensrp-anc/src/main/assets/json.form/anc_quick_check.json @@ -57,6 +57,21 @@ "step1": { "title": "{{anc_quick_check.step1.title}}", "fields": [ + { + "key": "visit_date", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "visit_date", + "type": "date_picker", + "hint": "{{anc_quick_check.step1.visit_date.hint}}", + "expanded": false, + "min_date": "today-30d", + "max_date": "today", + "v_required": { + "value": "true", + "err": "{{anc_quick_check.step1.visit_date.v_required.err}}" + } + }, { "key": "contact_reason", "openmrs_entity_parent": "", diff --git a/opensrp-anc/src/main/resources/anc_quick_check.properties b/opensrp-anc/src/main/resources/anc_quick_check.properties index 109e4b542..23005c2aa 100644 --- a/opensrp-anc/src/main/resources/anc_quick_check.properties +++ b/opensrp-anc/src/main/resources/anc_quick_check.properties @@ -3,6 +3,12 @@ anc_quick_check.step1.title = Quick Check +# [ Visit Date ] +# ============== + +anc_quick_check.step1.visit_date.hint = Visit Date +anc_quick_check.step1.visit_date.v_required.err = Visit date is required + # [ Contact Reason ] # ================== diff --git a/opensrp-anc/src/main/resources/anc_quick_check_in.properties b/opensrp-anc/src/main/resources/anc_quick_check_in.properties index 505dbed58..c962c4a73 100644 --- a/opensrp-anc/src/main/resources/anc_quick_check_in.properties +++ b/opensrp-anc/src/main/resources/anc_quick_check_in.properties @@ -3,6 +3,12 @@ anc_quick_check.step1.title = Pemeriksaan Cepat +# [ Visit Date ] +# ============== + +anc_quick_check.step1.visit_date.hint = Tanggal Kunjungan +anc_quick_check.step1.visit_date.v_required.err = Tanggal kunjungan harus diisi + # [ Contact Reason ] # ================== From 8bba2e7ef9938f2310901d341032973f6b780ed6 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Thu, 8 Dec 2022 18:16:53 +0700 Subject: [PATCH 218/302] Fix issue #924 caused by memory leak --- .../repository/PreviousContactRepository.java | 203 +++++++++++++----- 1 file changed, 153 insertions(+), 50 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index d89658637..3ea175aed 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -1,7 +1,6 @@ package org.smartregister.anc.library.repository; import android.content.ContentValues; -import android.text.TextUtils; import android.util.Log; import com.vijay.jsonwizard.constants.JsonFormConstants; @@ -12,6 +11,7 @@ import org.apache.commons.lang3.StringUtils; import org.jeasy.rules.api.Facts; +import org.json.JSONException; import org.json.JSONObject; import org.smartregister.anc.library.AncLibrary; import org.smartregister.anc.library.model.PreviousContact; @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Objects; import timber.log.Timber; @@ -307,80 +308,182 @@ public Facts getAllTestResultsForIndividualTest(String baseEntityId, String indi return allTestResults; } + /** - * Gets the Immediate previous contact's facts. It checks for both referral and normal contacts hence the recursion. + * Gets the immediate previous contact's facts. * * @param baseEntityId {@link String} * @param contactNo {@link String} - * @param checkNegative {@link Boolean} - * @return previousContactsFacts {@link Facts} + * @return Previous contact Facts object if found, otherwise returns null {@link Facts} */ - public Facts getPreviousContactFacts(String baseEntityId, String contactNo, boolean checkNegative) { - Cursor mCursor = null; - String selection = ""; - String orderBy = "MAX("+ ID + ") DESC"; - String[] selectionArgs = null; - Facts previousContactFacts = new Facts(); + public Facts getPreviousContactFacts (String baseEntityId, String contactNo) { + + // Validate input parameters + // Return null if one of the parameters is invalid + if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo)) return null; + + // Input parameters are validated + // Get previous contact Facts try { - int contactNumber = Integer.parseInt(contactNo); + + // Prepare to get data from SQLite database + Facts previousContactFacts = new Facts(); SQLiteDatabase db = getReadableDatabase(); - if (StringUtils.isNotBlank(baseEntityId) && StringUtils.isNotBlank(contactNo)) { - selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; - selectionArgs = new String[]{baseEntityId, getContactNo(contactNo, checkNegative)}; - } + // Database query components + String selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; + String[] selectionArgs = new String[]{ baseEntityId, contactNo }; + String orderBy = "MAX(" + ID + ") DESC"; - mCursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, KEY, null, orderBy, null); + // Database cursor object + Cursor cursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, KEY, null, orderBy, null); - if (mCursor != null && mCursor.getCount() > 0) { - while (mCursor.moveToNext()) { - String previousContactValue = mCursor.getString(mCursor.getColumnIndex(VALUE)); - if (StringUtils.isNotBlank(previousContactValue) && previousContactValue.trim().charAt(0) == '{') { - JSONObject previousContactObject = new JSONObject(previousContactValue); - if (previousContactObject.has(JsonFormConstants.KEY) && previousContactObject.has(JsonFormConstants.TEXT)) { - String translated_text, text; - text = previousContactObject.optString(JsonFormConstants.TEXT).trim(); - translated_text = StringUtils.isNotBlank(text) ? NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()) : ""; - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), translated_text); - } else { - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); + // If the cursor found data, process it as Facts object + if (cursor != null & Objects.requireNonNull(cursor).getCount() > 0) { + + previousContactFacts.put(CONTACT_NO, contactNo); + + // Process the retrieved data + while (cursor.moveToNext()) { + + String key; + String value; + + // -- Process key + + int keyColumnIndex = cursor.getColumnIndex(KEY); + // If data doesn't have "key" column, break the while-loop process + if (keyColumnIndex == -1) break; + + key = cursor.getString(keyColumnIndex); + // If key is empty, break the while-loop process + if (StringUtils.isBlank(key)) break; + + // -- Process value + + // Get and validate the "value" column + int valueColumnIndex = cursor.getColumnIndex(VALUE); + // If data doesn't have "value" column, break the while-loop process + if (valueColumnIndex == -1) break; + + // Read the value string + value = cursor.getString(valueColumnIndex); + // If the "value" column is empty, break the while-loop process + if (StringUtils.isBlank(value)) break; + + // Check if value is a JSON, then process it accordingly + try { + JSONObject valueObject = new JSONObject(value); + if (valueObject.has(JsonFormConstants.KEY) && valueObject.has(JsonFormConstants.TEXT)) { + String text = valueObject.optString(JsonFormConstants.TEXT).trim(); + String translatedText = text; + if (StringUtils.isNotBlank(text)) { + translatedText = NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()); + } + previousContactFacts.put(key, translatedText); } - } else { - previousContactFacts.put(mCursor.getString(mCursor.getColumnIndex(KEY)), previousContactValue); + } + + // Value is not a JSON, process it as is + catch (JSONException exp) { + previousContactFacts.put(key, value); } } - previousContactFacts.put(CONTACT_NO, selectionArgs[1]); + + // Return the result return previousContactFacts; - } else if (contactNumber > 0) { - return getPreviousContactFacts(baseEntityId, contactNo, false); - } - } catch (Exception e) { - Log.e(TAG, e.toString(), e); - } finally { - if (mCursor != null) { - mCursor.close(); + } + + // Data is not found, return null + return null; } - return previousContactFacts; + // Cannot get previous contact Facts, return null + catch(Exception error) { + Timber.d(error); + return null; + } } + /** - * Returns contact numbers according to the @param checkNegative. If true then it just uses the initial contact. If - * true the it would return a previous|referral contact + * Gets the immediate previous contact's facts. * - * @param previousContact {@link String} - * @param checkNegative {@link Boolean} - * @return contactNo {@link String} + * @param baseEntityId {@link String} + * @param contactNo {@link String} + * @param checkNegative {@link Boolean} + * @return Previous contact Facts object if found, otherwise returns empty Facts object {@link Facts} */ - private String getContactNo(String previousContact, boolean checkNegative) { - String contactNo = previousContact; - if (!TextUtils.isEmpty(previousContact) && checkNegative) { - contactNo = "-" + (Integer.parseInt(previousContact) + 1); + public Facts getPreviousContactFacts(String baseEntityId, String contactNo, boolean checkNegative) { + + final int negativeContactsLimit = 10; // Maximum contactNo of negative contact to search for + + // Validate input parameters + // Return empty Facts object if one of the parameters is invalid + if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo)) return new Facts(); + + // Input parameters are validated + // Continue the process + try { + + Facts previousContactFacts = null; + + // If the checkNegative parameter is true, search for negative contacts + if (checkNegative) { + + Facts negativeContact = null; + int currentNegativeContactNo = (-1) * negativeContactsLimit; + + // Search for a negative contact numbered -10 to -1 (-10, -9, -8, ..., -1) + + while ((currentNegativeContactNo < 0) && (negativeContact == null)) { + + negativeContact = getPreviousContactFacts(baseEntityId, String.valueOf(currentNegativeContactNo)); + + // Contact found + if (negativeContact != null) { + previousContactFacts = negativeContact; + } + // Negative contact not found, update the current number + else { + currentNegativeContactNo++; + } + } + + // Return if the previousContactFacts has been set by negativeContact + if (previousContactFacts != null) return previousContactFacts; + + } + + // There is no negative contact or the checkNegative is false + // Search for current contactNo + int contactNumber = Integer.parseInt(contactNo); + + // If contactNumber is zero, return empty Facts object + if (contactNumber == 0) return new Facts(); + + // contactNumber is greater than zero + if (contactNumber > 0) { + previousContactFacts = getPreviousContactFacts(baseEntityId, contactNo); + } + + // Previous contact found, return the value + if (previousContactFacts != null) return previousContactFacts; + + // Catch all if no previous contact found, return empty Facts object + return new Facts(); + + } + + // Something happens when processing the previous contact + // Return empty Facts object + catch (Exception error) { + Timber.d(error); + return new Facts(); } - return contactNo; } /** From d593cb19bba4f23590c9de49f101cae96967f933 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 9 Dec 2022 11:51:56 +0700 Subject: [PATCH 219/302] Improve algorithm efficiency --- .../repository/PreviousContactRepository.java | 180 ++++++------------ 1 file changed, 62 insertions(+), 118 deletions(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index 3ea175aed..c76336036 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -22,7 +22,9 @@ import org.smartregister.repository.BaseRepository; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import timber.log.Timber; @@ -320,91 +322,75 @@ public Facts getPreviousContactFacts (String baseEntityId, String contactNo) { // Validate input parameters // Return null if one of the parameters is invalid - if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo)) return null; + if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo) || contactNo == "0") return null; // Input parameters are validated // Get previous contact Facts - try { - // Prepare to get data from SQLite database - Facts previousContactFacts = new Facts(); - SQLiteDatabase db = getReadableDatabase(); + // Prepare to get data from SQLite database + Facts previousContactFacts = null; + SQLiteDatabase db = getReadableDatabase(); + + // Database query components + String selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; + String[] selectionArgs = new String[]{ baseEntityId, contactNo }; + String orderBy = "MAX(" + ID + ") DESC"; - // Database query components - String selection = BASE_ENTITY_ID + " = ? AND " + CONTACT_NO + " = ?"; - String[] selectionArgs = new String[]{ baseEntityId, contactNo }; - String orderBy = "MAX(" + ID + ") DESC"; + try { // Database cursor object Cursor cursor = db.query(TABLE_NAME, projectionArgs, selection, selectionArgs, KEY, null, orderBy, null); // If the cursor found data, process it as Facts object - if (cursor != null & Objects.requireNonNull(cursor).getCount() > 0) { - - previousContactFacts.put(CONTACT_NO, contactNo); - - // Process the retrieved data - while (cursor.moveToNext()) { + Map processedData = new HashMap<>(); - String key; - String value; + // Process the retrieved data + while (cursor.moveToNext()) { - // -- Process key - - int keyColumnIndex = cursor.getColumnIndex(KEY); - // If data doesn't have "key" column, break the while-loop process - if (keyColumnIndex == -1) break; + // Process key and value + String key = ""; + String value = ""; + int keyColumnIndex = cursor.getColumnIndex(KEY); + int valueColumnIndex = cursor.getColumnIndex(VALUE); + if (keyColumnIndex >= 0 && valueColumnIndex >= 0) { key = cursor.getString(keyColumnIndex); - // If key is empty, break the while-loop process - if (StringUtils.isBlank(key)) break; - - // -- Process value - - // Get and validate the "value" column - int valueColumnIndex = cursor.getColumnIndex(VALUE); - // If data doesn't have "value" column, break the while-loop process - if (valueColumnIndex == -1) break; - - // Read the value string value = cursor.getString(valueColumnIndex); - // If the "value" column is empty, break the while-loop process - if (StringUtils.isBlank(value)) break; - - // Check if value is a JSON, then process it accordingly - try { - JSONObject valueObject = new JSONObject(value); - if (valueObject.has(JsonFormConstants.KEY) && valueObject.has(JsonFormConstants.TEXT)) { - String text = valueObject.optString(JsonFormConstants.TEXT).trim(); - String translatedText = text; - if (StringUtils.isNotBlank(text)) { - translatedText = NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()); - } - previousContactFacts.put(key, translatedText); - } - } + } - // Value is not a JSON, process it as is - catch (JSONException exp) { - previousContactFacts.put(key, value); - } + // Check if value is a JSON, then process it accordingly + try { + JSONObject valueObject = new JSONObject(value); + String text = valueObject.optString(JsonFormConstants.TEXT).trim(); + String translatedText = (StringUtils.isBlank(text)) ? text : NativeFormLangUtils.translateDatabaseString(text, AncLibrary.getInstance().getApplicationContext()); + value = (StringUtils.isBlank(translatedText)) ? value : translatedText; + } catch (JSONException exp) { + // Value is not JSON string, do not modify value + } + if (StringUtils.isNotBlank(key) && StringUtils.isNotBlank(value)) { + processedData.put(key, value); } - // Return the result - return previousContactFacts; + } + // Assign Facts with processedData + if (processedData.size() > 0) { + previousContactFacts = new Facts(); + previousContactFacts.put(CONTACT_NO, contactNo); + for (Map.Entry entry : processedData.entrySet()) { + previousContactFacts.put(entry.getKey(), entry.getValue()); + } } - // Data is not found, return null - return null; } - // Cannot get previous contact Facts, return null + // Cannot get previous contact Facts catch(Exception error) { Timber.d(error); - return null; } + + return previousContactFacts; } @@ -414,75 +400,33 @@ public Facts getPreviousContactFacts (String baseEntityId, String contactNo) { * @param baseEntityId {@link String} * @param contactNo {@link String} * @param checkNegative {@link Boolean} - * @return Previous contact Facts object if found, otherwise returns empty Facts object {@link Facts} + * @return Previous contact Facts if found, otherwise empty Facts object {@link Facts} */ public Facts getPreviousContactFacts(String baseEntityId, String contactNo, boolean checkNegative) { - final int negativeContactsLimit = 10; // Maximum contactNo of negative contact to search for - - // Validate input parameters - // Return empty Facts object if one of the parameters is invalid - if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo)) return new Facts(); - - // Input parameters are validated - // Continue the process - try { - - Facts previousContactFacts = null; - - // If the checkNegative parameter is true, search for negative contacts - if (checkNegative) { - - Facts negativeContact = null; - int currentNegativeContactNo = (-1) * negativeContactsLimit; + // Maximum contactNo of negative contact to search for + final int maxNegativeContactNo = -10; - // Search for a negative contact numbered -10 to -1 (-10, -9, -8, ..., -1) + // Facts object that holds the return value + Facts previousContactFacts = null; - while ((currentNegativeContactNo < 0) && (negativeContact == null)) { - - negativeContact = getPreviousContactFacts(baseEntityId, String.valueOf(currentNegativeContactNo)); - - // Contact found - if (negativeContact != null) { - previousContactFacts = negativeContact; - } - // Negative contact not found, update the current number - else { - currentNegativeContactNo++; - } - } + // Search for current contactNo + previousContactFacts = getPreviousContactFacts(baseEntityId, contactNo); - // Return if the previousContactFacts has been set by negativeContact - if (previousContactFacts != null) return previousContactFacts; - - } - - // There is no negative contact or the checkNegative is false - // Search for current contactNo - int contactNumber = Integer.parseInt(contactNo); - - // If contactNumber is zero, return empty Facts object - if (contactNumber == 0) return new Facts(); - - // contactNumber is greater than zero - if (contactNumber > 0) { - previousContactFacts = getPreviousContactFacts(baseEntityId, contactNo); + // If the checkNegative parameter is true, search for negative (referral) contacts + if (checkNegative) { + Facts negativeContact = null; + int currentContactNo = maxNegativeContactNo; + while ((currentContactNo < 0) && (negativeContact == null)) { + negativeContact = getPreviousContactFacts(baseEntityId, String.valueOf(currentContactNo)); + currentContactNo++; } - - // Previous contact found, return the value - if (previousContactFacts != null) return previousContactFacts; - - // Catch all if no previous contact found, return empty Facts object - return new Facts(); - + previousContactFacts = (negativeContact == null) ? previousContactFacts : negativeContact; } - // Something happens when processing the previous contact - // Return empty Facts object - catch (Exception error) { - Timber.d(error); - return new Facts(); - } + // Return previous contact Facts + // Return empty Facts object if previousContactFacts is null + return (previousContactFacts == null) ? new Facts() : previousContactFacts; } From fa0a6da2ec5da970ee99f998139fd014ec947422 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 9 Dec 2022 11:56:05 +0700 Subject: [PATCH 220/302] Change boolean check to use .equals() --- .../anc/library/repository/PreviousContactRepository.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java index c76336036..5a3a5cec4 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/repository/PreviousContactRepository.java @@ -322,7 +322,7 @@ public Facts getPreviousContactFacts (String baseEntityId, String contactNo) { // Validate input parameters // Return null if one of the parameters is invalid - if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo) || contactNo == "0") return null; + if (StringUtils.isBlank(baseEntityId) || StringUtils.isBlank(contactNo) || contactNo.equals("0")) return null; // Input parameters are validated // Get previous contact Facts From 8ab200f6ae2c3c99b01afc3253f16034cdf69200 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 9 Dec 2022 15:41:13 +0700 Subject: [PATCH 221/302] Started profile contact form customization --- .../main/assets/json.form/anc_profile.json | 6935 +++++++++-------- .../src/main/resources/anc_profile.properties | 98 +- 2 files changed, 3544 insertions(+), 3489 deletions(-) diff --git a/opensrp-anc/src/main/assets/json.form/anc_profile.json b/opensrp-anc/src/main/assets/json.form/anc_profile.json index 430a714f0..3a21c4b10 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_profile.json +++ b/opensrp-anc/src/main/assets/json.form/anc_profile.json @@ -1,3462 +1,3477 @@ { - "validate_on_submit": true, - "display_scroll_bars": true, - "count": "8", - "encounter_type": "Profile", - "entity_id": "", - "relational_id": "", - "form_version": "0.0.15", - "metadata": { - "start": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "start", - "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "end": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "end", - "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "today": { - "openmrs_entity_parent": "", - "openmrs_entity": "encounter", - "openmrs_entity_id": "encounter_date" - }, - "deviceid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "deviceid", - "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "subscriberid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "subscriberid", - "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "simserial": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "simserial", - "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "phonenumber": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "phonenumber", - "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", - "look_up": { - "entity_id": "", - "value": "" - } - }, - "editable_fields": [ - "educ_level", - "marital_status", - "occupation", - "occupation_other", - "lmp_known", - "lmp_known_date", - "ultrasound_done", - "ultrasound_done_date", - "ultrasound_gest_age_wks", - "sfh_gest_age", - "select_gest_age_edd", - "gravida", - "previous_pregnancies", - "miscarriages_abortions", - "live_births", - "stillbirths", - "parity", - "c_sections", - "prev_preg_comps", - "allergies", - "allergies_other", - "surgeries", - "surgeries_other_gyn_proced", - "surgeries_other", - "health_conditions", - "health_conditions_other", - "hiv_diagnosis_date", - "tt_immun_status", - "flu_immun_status", - "medications", - "medications_other", - "caffeine_intake", - "tobacco_user", - "shs_exposure", - "condom_use", - "alcohol_substance_enquiry", - "alcohol_substance_use", - "other_substance_use", - "partner_hiv_status" - ], - "default_values": [ - "educ_level", - "marital_status", - "occupation", - "occupation_other", - "lmp_known", - "lmp_known_date", - "ultrasound_done", - "ultrasound_done_date", - "ultrasound_gest_age_wks", - "sfh_gest_age", - "select_gest_age_edd", - "gravida", - "previous_pregnancies", - "miscarriages_abortions", - "live_births", - "stillbirths", - "parity", - "c_sections", - "prev_preg_comps", - "allergies", - "allergies_other", - "surgeries", - "surgeries_other_gyn_proced", - "surgeries_other", - "health_conditions", - "health_conditions_other", - "hiv_diagnosis_date", - "tt_immun_status", - "flu_immun_status", - "medications", - "medications_other", - "caffeine_intake", - "tobacco_user", - "shs_exposure", - "condom_use", - "alcohol_substance_enquiry", - "alcohol_substance_use", - "other_substance_use", - "partner_hiv_status", - "lmp_gest_age_selection", - "ultrasound_gest_age_selection", - "sfh_gest_age_selection", - "lmp_ultrasound_gest_age_selection", - "sfh_ultrasound_gest_age_selection" - ], - "global_previous": [ - "age" - ], - "step1": { - "title": "{{anc_profile.step1.title}}", - "next": "step2", - "fields": [ - { - "key": "headss_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "toaster_notes", - "type": "toaster_notes", - "text": "{{anc_profile.step1.headss_toaster.text}}", - "text_color": "#1199F9", - "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "educ_level", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1712AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step1.educ_level.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "none", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "{{anc_profile.step1.educ_level.options.none.text}}" - }, - { - "key": "dont_know", - "text": "{{anc_profile.step1.educ_level.options.dont_know.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "primary", - "text": "{{anc_profile.step1.educ_level.options.primary.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1713AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "secondary", - "text": "{{anc_profile.step1.educ_level.options.secondary.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "higher", - "text": "{{anc_profile.step1.educ_level.options.higher.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160292AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step1.educ_level.v_required.err}}" - } - }, - { - "key": "marital_status", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step1.marital_status.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "married", - "text": "{{anc_profile.step1.marital_status.options.married.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "divorced", - "text": "{{anc_profile.step1.marital_status.options.divorced.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1058AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "single", - "text": "{{anc_profile.step1.marital_status.options.single.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5615AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "widowed", - "text": "{{anc_profile.step1.marital_status.options.widowed.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step1.marital_status.v_required.err}}" - } - }, - { - "key": "occupation", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1542AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step1.occupation.label}}", - "hint": "{{anc_profile.step1.occupation.hint}}", - "label_text_style": "bold", - "options": [ - { - "key": "student", - "text": "{{anc_profile.step1.occupation.options.student.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159465AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "unemployed", - "text": "{{anc_profile.step1.occupation.options.unemployed.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "123801AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "formal_employment", - "text": "{{anc_profile.step1.occupation.options.formal_employment.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165219AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "informal_employment_sex_worker", - "text": "{{anc_profile.step1.occupation.options.informal_employment_sex_worker.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160579AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "informal_employment_other", - "text": "{{anc_profile.step1.occupation.options.informal_employment_other.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other", - "text": "{{anc_profile.step1.occupation.options.other.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step1.occupation.v_required.err}}" - } - }, - { - "key": "occupation_other", - "openmrs_entity_parent": "1542AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step1.occupation_other.hint}}", - "edit_type": "name", - "relevance": { - "step1:occupation": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step1.occupation_other.v_required.err}}" - }, - "v_regex": { - "value": "[A-Za-z\\s\\.\\-]*", - "err": "{{anc_profile.step1.occupation_other.v_regex.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165257AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hiv_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "hiv_risk_counseling_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "Counselling (Human immunodeficiency virus [HIV] counselling)", - "openmrs_entity_id": "2047", - "type": "toaster_notes", - "text": "{{anc_profile.step1.hiv_risk_counseling_toaster.text}}", - "toaster_info_text": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title}}", - "toaster_type": "problem", - "text_color": "#CF0800", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - } - ] - }, - "step2": { - "title": "{{anc_profile.step2.title}}", - "next": "step3", - "fields": [ - { - "key": "lmp_known", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165258AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step2.lmp_known.label}}", - "label_info_text": "{{anc_profile.step2.lmp_known.label_info_text}}", - "label_info_title": "{{anc_profile.step2.lmp_known.label_info_title}}", - "label_text_style": "bold", - "max_date": "today", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step2.lmp_known.options.yes.text}}", - "translation_text": "anc_profile.step2.lmp_known.options.yes.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "specify_info": "specify date", - "specify_widget": "date_picker", - "max_date": "today-14d", - "min_date": "today-280d", - "default": "today" - }, - { - "key": "no", - "text": "{{anc_profile.step2.lmp_known.options.no.text}}", - "translation_text": "anc_profile.step2.lmp_known.options.no.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.lmp_known.v_required.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "lmp_known_date", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "lmp_edd", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "lmp_gest_age", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "ultrasound_done", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step2.ultrasound_done.label}}", - "label_info_text": "{{anc_profile.step2.ultrasound_done.label_info_text}}", - "label_info_title": "{{anc_profile.step2.ultrasound_done.label_info_title}}", - "label_text_style": "bold", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step2.ultrasound_done.options.yes.text}}", - "translation_text": "anc_profile.step2.ultrasound_done.options.yes.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "specify_info": "ultrasound date", - "specify_widget": "date_picker", - "max_date": "today", - "min_date": "today-9m", - "default": "today" - }, - { - "key": "no", - "text": "{{anc_profile.step2.ultrasound_done.options.no.text}}", - "translation_text": "anc_profile.step2.ultrasound_done.options.no.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.ultrasound_done.v_required.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163165AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "ultrasound_done_date", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "ultrasound_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "toaster_notes", - "type": "toaster_notes", - "text": "{{anc_profile.step2.ultrasound_toaster.text}}", - "text_color": "#1199F9", - "toaster_info_text": "{{anc_profile.step2.ultrasound_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step2.ultrasound_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "facility_in_us_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "toaster_notes", - "type": "toaster_notes", - "text": "{{anc_profile.step2.facility_in_us_toaster.text}}", - "text_color": "#1199F9", - "toaster_info_text": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "ultrasound_gest_age_wks", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "type": "edit_text", - "hint": "{{anc_profile.step2.ultrasound_gest_age_wks.hint}}", - "relevance": { - "step2:ultrasound_done": { - "type": "string", - "ex": "equalTo(., \"yes\")" - } - }, - "v_required": { - "value": true, - "err": "{{anc_profile.step2.ultrasound_gest_age_wks.v_required.err}}" - }, - "v_numeric_integer": { - "value": true, - "err": "Enter a Valid GA from ultrasound - weeks value" - }, - "v_min": { - "value": "4", - "err": "GA from ultrasound - weeks should be equal to or greater than 4" - }, - "v_max": { - "value": "40", - "err": "GA from ultrasound - weeks should be less than or equal to 40" - } - }, - { - "key": "ultrasound_gest_age_days", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "type": "edit_text", - "hint": "{{anc_profile.step2.ultrasound_gest_age_days.hint}}", - "relevance": { - "step2:ultrasound_done": { - "type": "string", - "ex": "equalTo(., \"yes\")" - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step2.ultrasound_gest_age_days.v_required.err}}" - }, - "v_numeric_integer": { - "value": true, - "err": "Enter a Valid GA from ultrasound - days value" - }, - "v_min": { - "value": "1", - "err": "GA from ultrasound - days should be equal to or greater than 1" - }, - "v_max": { - "value": "6", - "err": "GA from ultrasound - days should be less than or equal to 6" - } - }, - { - "key": "ultrasound_gest_age_concept", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "165220AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "ultrasound_edd", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "ultrasound_ga_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "text_color": "#000000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "ultrasound_gest_age", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "sfh_gest_age", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", - "label_info_title": "GA from SFH or abdominal palpation - weeks", - "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", - "v_required": { - "value": true, - "err": "{{anc_profile.step2.sfh_gest_age.v_required.err}}" - }, - "v_numeric_integer": { - "value": true, - "err": "Enter a Valid GA from SFH or abdominal palpation - weeks value" - }, - "v_min": { - "value": "4", - "err": "GA from SFH or abdominal palpation - weeks should 4 or greater" - }, - "v_max": { - "value": "40", - "err": "GA from SFH or abdominal palpation - weeks should be 40 or less" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "sfh_edd", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "sfh_ga_hidden", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "text_color": "#000000", - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "select_gest_age_edd_label", - "type": "label", - "text": "{{anc_profile.step2.select_gest_age_edd_label.text}}", - "label_info_text": "If the difference between GA from LMP and early ultrasound is one week or less, then use GA from LMP. If the difference is more than 7 days, use the early ultrasound GA. If ultrasound was done late, use GA from LMP. Between late ultrasound and SFH or abdominal palpation, use your best judgment to select GA.", - "label_text_style": "bold", - "text_color": "#000000", - "v_required": { - "value": true, - "err": "{{anc_profile.step2.select_gest_age_edd_label.v_required.err}}" - } - }, - { - "key": "lmp_gest_age_selection", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "options": [ - { - "key": "lmp", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.lmp_gest_age_selection.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "ultrasound_gest_age_selection", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "options": [ - { - "key": "ultrasound", - "text": "{{anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.ultrasound_gest_age_selection.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "sfh_gest_age_selection", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "options": [ - { - "key": "sfh", - "text": "{{anc_profile.step2.sfh_gest_age_selection.options.sfh.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.sfh_gest_age_selection.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "lmp_ultrasound_gest_age_selection", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "options": [ - { - "key": "lmp", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1427AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", - "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" - }, - { - "key": "ultrasound", - "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "sfh_ultrasound_gest_age_selection", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160697AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "options": [ - { - "key": "ultrasound", - "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159618AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" - }, - { - "key": "sfh", - "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "select_gest_age_edd_all_values", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "select_gest_age_edd_lmp_ultrasound", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "select_gest_age_edd_sfh_ultrasound", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "select_gest_age_edd", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "gest_age", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1438AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "gest_age_openmrs", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "edd", - "openmrs_entity_parent": "", - "openmrs_entity": "person_attribute", - "openmrs_entity_id": "5596AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - } - ] - }, - "step3": { - "title": "{{anc_profile.step3.title}}", - "next": "step4", - "fields": [ - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "20dp" - }, - { - "key": "gravida_label", - "type": "label", - "label_text_style": "bold", - "text": "{{anc_profile.step3.gravida_label.text}}", - "text_color": "#000000", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.gravida_label.v_required.err}}" - } - }, - { - "key": "gravida", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5624AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "numbers_selector", - "number_of_selectors": "5", - "start_number": "1", - "max_value": "15", - "text_size": "16px", - "text_color": "#000000", - "selected_text_color": "#ffffff", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.gravida.v_required.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "previous_pregnancies", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.previous_pregnancies.v_required.err}}" - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "24dp" - }, - { - "key": "miscarriages_abortions_label", - "type": "label", - "label_text_style": "bold", - "text": "{{anc_profile.step3.miscarriages_abortions_label.text}}", - "text_color": "#000000", - "v_required": { - "value": true - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "miscarriages_abortions", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1823AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "numbers_selector", - "number_of_selectors": "5", - "start_number": "0", - "max_value": "15", - "text_size": "16px", - "text_color": "#000000", - "selected_text_color": "#ffffff", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.miscarriages_abortions.v_required.err}}" - }, - "constraints": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_constraint_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "24dp" - }, - { - "key": "live_births_label", - "type": "label", - "label_text_style": "bold", - "text": "{{anc_profile.step3.live_births_label.text}}", - "text_color": "#000000", - "v_required": { - "value": true - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "live_births", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160601AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "numbers_selector", - "number_of_selectors": "5", - "start_number": "0", - "max_value": "15", - "text_size": "16px", - "text_color": "#000000", - "selected_text_color": "#ffffff", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.live_births.v_required.err}}" - }, - "constraints": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_constraint_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "24dp" - }, - { - "key": "last_live_birth_preterm", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "type": "native_radio", - "label": "{{anc_profile.step3.last_live_birth_preterm.label}}", - "text_color": "#000000", - "label_text_style": "bold", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step3.last_live_birth_preterm.options.yes.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no", - "text": "{{anc_profile.step3.last_live_birth_preterm.options.no.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "dont_know", - "text": "{{anc_profile.step3.last_live_birth_preterm.options.dont_know.text}}", - "openmrs_entity": "", - "openmrs_entity_id": "" - } - ], - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step3.last_live_birth_preterm.v_required.err}}" - } - }, - { - "key": "stillbirths_label", - "type": "label", - "label_text_style": "bold", - "text": "{{anc_profile.step3.stillbirths_label.text}}", - "text_color": "#000000", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.stillbirths_label.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "stillbirths", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160077AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "numbers_selector", - "number_of_selectors": "5", - "start_number": "0", - "max_value": "15", - "text_size": "16px", - "text_color": "#000000", - "selected_text_color": "#ffffff", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.stillbirths.v_required.err}}" - }, - "constraints": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_constraint_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1053AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "parity", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "24dp" - }, - { - "key": "c_sections_label", - "type": "label", - "label_text_style": "bold", - "text": "{{anc_profile.step3.c_sections_label.text}}", - "text_color": "#000000", - "v_required": { - "value": true - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "c_sections", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "numbers_selector", - "number_of_selectors": "5", - "start_number": "0", - "max_value": "15", - "text_size": "16px", - "text_color": "#000000", - "selected_text_color": "#ffffff", - "v_required": { - "value": true, - "err": "{{anc_profile.step3.c_sections.v_required.err}}" - }, - "constraints": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_constraint_rules.yml" - } - } - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "spacer", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "spacer", - "type": "spacer", - "spacer_height": "24dp" - }, - { - "key": "prev_preg_comps", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step3.prev_preg_comps.label}}", - "label_text_style": "bold", - "exclusive": [ - "none", - "dont_know" - ], - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "none", - "text": "{{anc_profile.step3.prev_preg_comps.options.none.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "dont_know", - "text": "{{anc_profile.step3.prev_preg_comps.options.dont_know.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "pre_eclampsia", - "text": "{{anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "118744AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "eclampsia", - "text": "{{anc_profile.step3.prev_preg_comps.options.eclampsia.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "113054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "convulsions", - "text": "{{anc_profile.step3.prev_preg_comps.options.convulsions.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1449AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "gestational_diabetes", - "text": "{{anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "tobacco_use", - "text": "{{anc_profile.step3.prev_preg_comps.options.tobacco_use.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "alcohol_use", - "text": "{{anc_profile.step3.prev_preg_comps.options.alcohol_use.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "illicit_substance", - "text": "{{anc_profile.step3.prev_preg_comps.options.illicit_substance.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "heavy_bleeding", - "text": "{{anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "baby_died_in_24_hrs", - "text": "{{anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "140951AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "macrosomia", - "text": "{{anc_profile.step3.prev_preg_comps.options.macrosomia.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "118159AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "vacuum_delivery", - "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "vacuum", - "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "124858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "3rd_degree_tear", - "text": "{{anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other", - "text": "{{anc_profile.step3.prev_preg_comps.options.other.text}}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step3.prev_preg_comps.v_required.err}}" - }, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "prev_preg_comps_other", - "openmrs_entity_parent": "1430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step3.prev_preg_comps_other.hint}}", - "relevance": { - "step3:prev_preg_comps": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step3.prev_preg_comps_other.v_required.err}}" - }, - "v_regex": { - "value": "[A-Za-z\\s\\.\\-]*", - "err": "{{anc_profile.step3.prev_preg_comps_other.v_regex.err}}" - } - }, - { - "key": "substances_used", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step3.substances_used.label}}", - "label_text_style": "bold", - "relevance": { - "step3:prev_preg_comps": { - "ex-checkbox": [ - { - "or": [ - "illicit_substance" - ] - } - ] - } - }, - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "marijuana", - "text": "{{anc_profile.step3.substances_used.options.marijuana.text}}", - "translation_text": "anc_profile.step3.substances_used.options.marijuana.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "cocaine", - "text": "{{anc_profile.step3.substances_used.options.cocaine.text}}", - "translation_text": "anc_profile.step3.substances_used.options.cocaine.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "injectable_drugs", - "text": "{{anc_profile.step3.substances_used.options.injectable_drugs.text}}", - "translation_text": "anc_profile.step3.substances_used.options.injectable_drugs.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other", - "text": "{{anc_profile.step3.substances_used.options.other.text}}", - "translation_text": "anc_profile.step3.substances_used.options.other.text" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step3.substances_used.v_required.err}}" - } - }, - { - "key": "substances_used_other", - "openmrs_entity_parent": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step3.substances_used_other.hint}}", - "relevance": { - "step3:substances_used": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step3.substances_used_other.v_required.err}}" - }, - "v_regex": { - "value": "[A-Za-z\\s\\.\\-]*", - "err": "{{anc_profile.step3.substances_used_other.v_regex.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "preeclampsia_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "pre_eclampsia_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step3.pre_eclampsia_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_title}}", - "toaster_type": "warning", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "gdm_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "gestational_diabetes_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step3.gestational_diabetes_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_title}}", - "toaster_type": "warning", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - } - ] - }, - "step4": { - "title": "{{anc_profile.step4.title}}", - "next": "step5", - "fields": [ - { - "key": "allergies", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step4.allergies.label}}", - "label_text_style": "bold", - "hint": "{{anc_profile.step4.allergies.hint}}", - "exclusive": [ - "none", - "dont_know" - ], - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "none", - "text": "{{anc_profile.step4.allergies.options.none.text}}", - "translation_text": "anc_profile.step4.allergies.options.none.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "dont_know", - "text": "{{anc_profile.step4.allergies.options.dont_know.text}}", - "translation_text": "anc_profile.step4.allergies.options.dont_know.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "70439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "albendazole", - "text": "{{anc_profile.step4.allergies.options.albendazole.text}}", - "translation_text": "anc_profile.step4.allergies.options.albendazole.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "70991AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "aluminium_hydroxide", - "text": "{{anc_profile.step4.allergies.options.aluminium_hydroxide.text}}", - "translation_text": "anc_profile.step4.allergies.options.aluminium_hydroxide.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "calcium", - "text": "{{anc_profile.step4.allergies.options.calcium.text}}", - "translation_text": "anc_profile.step4.allergies.options.calcium.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "73154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "chamomile", - "text": "{{anc_profile.step4.allergies.options.chamomile.text}}", - "translation_text": "anc_profile.step4.allergies.options.chamomile.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "folic_acid", - "text": "{{anc_profile.step4.allergies.options.folic_acid.text}}", - "translation_text": "anc_profile.step4.allergies.options.folic_acid.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "77001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "ginger", - "text": "{{anc_profile.step4.allergies.options.ginger.text}}", - "translation_text": "anc_profile.step4.allergies.options.ginger.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "iron", - "text": "{{anc_profile.step4.allergies.options.iron.text}}", - "translation_text": "anc_profile.step4.allergies.options.iron.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "79229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "magnesium_carbonate", - "text": "{{anc_profile.step4.allergies.options.magnesium_carbonate.text}}", - "translation_text": "anc_profile.step4.allergies.options.magnesium_carbonate.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "924AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "malaria_medication", - "text": "{{anc_profile.step4.allergies.options.malaria_medication.text}}", - "translation_text": "anc_profile.step4.allergies.options.malaria_medication.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "79413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "mebendazole", - "text": "{{anc_profile.step4.allergies.options.mebendazole.text}}", - "translation_text": "anc_profile.step4.allergies.options.mebendazole.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "81724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "penicillin", - "text": "{{anc_profile.step4.allergies.options.penicillin.text}}", - "translation_text": "anc_profile.step4.allergies.options.penicillin.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "84797AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "prep_tenofovir_disoproxil_fumarate", - "text": "{{anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text}}", - "translation_text": "anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other", - "text": "{{anc_profile.step4.allergies.options.other.text}}", - "translation_text": "anc_profile.step4.allergies.options.other.text" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step4.allergies.v_required.err}}" - } - }, - { - "key": "allergies_other", - "openmrs_entity_parent": "160643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step4.allergies_other.hint}}", - "edit_type": "edit_text", - "relevance": { - "step4:allergies": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - }, - { - "key": "surgeries", - "openmrs_entity_parent": "160714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "1651AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step4.surgeries.label}}", - "label_text_style": "bold", - "hint": "{{anc_profile.step4.surgeries.hint}}", - "exclusive": [ - "none", - "dont_know" - ], - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "none", - "text": "{{anc_profile.step4.surgeries.options.none.text}}", - "translation_text": "anc_profile.step4.surgeries.options.none.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "dont_know", - "text": "{{anc_profile.step4.surgeries.options.dont_know.text}}", - "translation_text": "anc_profile.step4.surgeries.options.dont_know.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1637AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "dilation_and_curettage", - "text": "{{anc_profile.step4.surgeries.options.dilation_and_curettage.text}}", - "translation_text": "anc_profile.step4.surgeries.options.dilation_and_curettage.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "161829AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "removal_of_fibroid", - "text": "{{anc_profile.step4.surgeries.options.removal_of_fibroid.text}}", - "translation_text": "anc_profile.step4.surgeries.options.removal_of_fibroid.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165262AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "removal_of_ovarian_cysts", - "text": "{{anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text}}", - "translation_text": "anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "161844AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "removal_of_ovary", - "text": "{{anc_profile.step4.surgeries.options.removal_of_ovary.text}}", - "translation_text": "anc_profile.step4.surgeries.options.removal_of_ovary.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "161835AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "removal_of_the_tube", - "text": "{{anc_profile.step4.surgeries.options.removal_of_the_tube.text}}", - "translation_text": "anc_profile.step4.surgeries.options.removal_of_the_tube.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "162811AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "cervical_cone", - "text": "{{anc_profile.step4.surgeries.options.cervical_cone.text}}", - "translation_text": "anc_profile.step4.surgeries.options.cervical_cone.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165263AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other_gynecological_procedures", - "text": "{{anc_profile.step4.surgeries.options.other_gynecological_procedures.text}}", - "translation_text": "anc_profile.step4.surgeries.options.other_gynecological_procedures.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other", - "text": "{{anc_profile.step4.surgeries.options.other.text}}", - "translation_text": "anc_profile.step4.surgeries.options.other.text" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step4.surgeries.v_required.err}}" - } - }, - { - "key": "surgeries_other_gyn_proced", - "openmrs_entity_parent": "165263AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "165264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step4.surgeries_other_gyn_proced.hint}}", - "edit_type": "edit_text", - "other_for": { - "parent_key": "surgeries", - "label": "Other gynecological procedures (specify)" - }, - "relevance": { - "step4:surgeries": { - "ex-checkbox": [ - { - "or": [ - "other_gynecological_procedures" - ] - } - ] - } - }, - "v_required": { - "value": false, - "err": "{{anc_profile.step4.surgeries_other_gyn_proced.v_required.err}}" - } - }, - { - "key": "surgeries_other", - "openmrs_entity_parent": "160714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step4.surgeries_other.hint}}", - "edit_type": "edit_text", - "v_required": { - "value": false, - "err": "{{anc_profile.step4.surgeries_other.v_required.err}}" - }, - "relevance": { - "step4:surgeries": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - }, - { - "key": "health_conditions", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step4.health_conditions.label}}", - "label_text_style": "bold", - "hint": "{{anc_profile.step4.health_conditions.hint}}", - "exclusive": [ - "none", - "dont_know" - ], - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "none", - "text": "{{anc_profile.step4.health_conditions.options.none.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.none.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "dont_know", - "text": "{{anc_profile.step4.health_conditions.options.dont_know.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.dont_know.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "148117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "autoimmune_disease", - "text": "{{anc_profile.step4.health_conditions.options.autoimmune_disease.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.autoimmune_disease.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165223AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "blood_disorder", - "text": "{{anc_profile.step4.health_conditions.options.blood_disorder.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.blood_disorder.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "151286AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "cancer", - "text": "{{anc_profile.step4.health_conditions.options.cancer.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.cancer.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "cancer_other", - "text": "{{anc_profile.step4.health_conditions.options.cancer_other.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.cancer_other.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "gest_diabetes", - "text": "{{anc_profile.step4.health_conditions.options.gest_diabetes.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.gest_diabetes.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "diabetes_other", - "text": "{{anc_profile.step4.health_conditions.options.diabetes_other.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.diabetes_other.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "119481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "diabetes", - "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.diabetes.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "diabetes_type2", - "text": "{{anc_profile.step4.health_conditions.options.diabetes_type2.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.diabetes_type2.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "155AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "epilepsy", - "text": "{{anc_profile.step4.health_conditions.options.epilepsy.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.epilepsy.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "138571AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hiv", - "text": "{{anc_profile.step4.health_conditions.options.hiv.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.hiv.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "117399AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hypertension", - "text": "{{anc_profile.step4.health_conditions.options.hypertension.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.hypertension.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "6033AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "kidney_disease", - "text": "{{anc_profile.step4.health_conditions.options.kidney_disease.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.kidney_disease.text" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "other", - "text": "{{anc_profile.step4.health_conditions.options.other.text}}", - "translation_text": "anc_profile.step4.health_conditions.options.other.text" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step4.health_conditions.v_required.err}}" - } - }, - { - "key": "health_conditions_cancer_other", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "type": "edit_text", - "hint": "{{anc_profile.step4.health_conditions_cancer_other.hint}}", - "edit_type": "edit_text", - "v_required": { - "value": false, - "err": "{{anc_profile.step4.health_conditions_cancer_other.v_required.err}}" - }, - "relevance": { - "step4:health_conditions": { - "ex-checkbox": [ - { - "or": [ - "cancer_other" - ] - } - ] - } - } - }, - { - "key": "health_conditions_other", - "openmrs_entity_parent": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step4.health_conditions_other.hint}}", - "edit_type": "edit_text", - "v_required": { - "value": false, - "err": "{{anc_profile.step4.health_conditions_other.v_required.err}}" - }, - "relevance": { - "step4:health_conditions": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "preeclampsia_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "pre_eclampsia_two_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step4.pre_eclampsia_two_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title}}", - "toaster_type": "warning", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - }, - { - "key": "hiv_diagnosis_date", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "160554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "date_picker", - "hint": "{{anc_profile.step4.hiv_diagnosis_date.hint}}", - "expanded": false, - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - }, - "max_date": "today", - "v_required": { - "value": true, - "err": "{{anc_profile.step4.hiv_diagnosis_date.v_required.err}}" - } - }, - { - "key": "hiv_diagnosis_date_unknown", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select one", - "type": "check_box", - "label_text_style": "bold", - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "yes", - "text": "{{anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text}}", - "value": false - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err}}" - }, - "relevance": { - "step4:health_conditions": { - "ex-checkbox": [ - { - "or": [ - "hiv" - ] - } - ] - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "138571AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hiv_positive", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - } - ] - }, - "step5": { - "title": "{{anc_profile.step5.title}}", - "next": "step6", - "fields": [ - { - "key": "tt_immun_status", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step5.tt_immun_status.label}}", - "label_text_style": "bold", - "label_info_text": "{{anc_profile.step6.tt_immun_status.label_info_text}}", - "multi_relevance": true, - "options": [ - { - "key": "3_doses", - "text": "{{anc_profile.step5.tt_immun_status.options.3_doses.text}}", - "translation_text": "anc_profile.step5.tt_immun_status.options.3_doses.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "164134AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "1-4_doses", - "text": "{{anc_profile.step5.tt_immun_status.options.1-4_doses.text}}", - "translation_text": "anc_profile.step5.tt_immun_status.options.1-4_doses.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "ttcv_not_received", - "text": "{{anc_profile.step5.tt_immun_status.options.ttcv_not_received.text}}", - "translation_text": "anc_profile.step5.tt_immun_status.options.ttcv_not_received.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "unknown", - "text": "{{anc_profile.step5.tt_immun_status.options.unknown.text}}", - "translation_text": "anc_profile.step5.tt_immun_status.options.unknown.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step5.tt_immun_status.v_required.err}}" - } - }, - { - "key": "tt_immunisation_toaster", - "openers_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.tt_immunisation_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "step5:tt_immun_status": { - "ex-checkbox": [ - { - "or": [ - "1-4_doses", - "ttcv_not_received", - "unknown" - ] - } - ] - } - } - }, - { - "key": "fully_immunised_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.fully_immunised_toaster.text}}", - "text_color": "#000000", - "toaster_type": "positive", - "relevance": { - "step5:tt_immun_status": { - "ex-checkbox": [ - { - "or": [ - "3_doses" - ] - } - ] - } - } - }, - { - "key": "flu_immun_status", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step5.flu_immun_status.label}}", - "label_text_style": "bold", - "multi_relevance": true, - "options": [ - { - "key": "seasonal_flu_dose_given", - "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}", - "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "seasonal_flu_dose_missing", - "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text}}", - "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "unknown", - "text": "{{anc_profile.step5.flu_immun_status.options.unknown.text}}", - "translation_text": "anc_profile.step5.flu_immun_status.options.unknown.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step5.flu_immun_status.v_required.err}}" - } - }, - { - "key": "flu_immunisation_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.flu_immunisation_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "step5:flu_immun_status": { - "ex-checkbox": [ - { - "or": [ - "seasonal_flu_dose_missing", - "unknown" - ] - } - ] - } - } - }, - { - "key": "immunised_against_flu_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step5.immunised_against_flu_toaster.text}}", - "text_color": "#000000", - "toaster_type": "positive", - "relevance": { - "step5:flu_immun_status": { - "ex-checkbox": [ - { - "or": [ - "seasonal_flu_dose_given" - ] - } - ] - } - } - } - ] - }, - "step6": { - "title": "{{anc_profile.step6.title}}", - "next": "step7", - "fields": [ - { - "key": "medications", - "openmrs_entity_parent": "160741AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "check_box", - "label": "{{anc_profile.step6.medications.label}}", - "label_text_style": "bold", - "text_color": "#000000", - "exclusive": [ - "dont_know", - "none" - ], - "options": [ - { - "key": "none", - "text": "{{anc_profile.step6.medications.options.none.text}}", - "translation_text": "anc_profile.step6.medications.options.none.text", - "value": false, - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "", - "openmrs_entity": "concept" - }, - { - "key": "dont_know", - "text": "{{anc_profile.step6.medications.options.dont_know.text}}", - "translation_text": "anc_profile.step6.medications.options.dont_know.text", - "value": false, - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "", - "openmrs_entity": "concept" - }, - { - "key": "antacids", - "text": "{{anc_profile.step6.medications.options.antacids.text}}", - "translation_text": "anc_profile.step6.medications.options.antacids.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "944AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "aspirin", - "text": "{{anc_profile.step6.medications.options.aspirin.text}}", - "translation_text": "anc_profile.step6.medications.options.aspirin.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "calcium", - "text": "{{anc_profile.step6.medications.options.calcium.text}}", - "translation_text": "anc_profile.step6.medications.options.calcium.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "doxylamine", - "text": "{{anc_profile.step6.medications.options.doxylamine.text}}", - "translation_text": "anc_profile.step6.medications.options.doxylamine.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "75229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "folic_acid", - "text": "{{anc_profile.step6.medications.options.folic_acid.text}}", - "translation_text": "anc_profile.step6.medications.options.folic_acid.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "iron", - "text": "{{anc_profile.step6.medications.options.iron.text}}", - "translation_text": "anc_profile.step6.medications.options.iron.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "magnesium", - "text": "{{anc_profile.step6.medications.options.magnesium.text}}", - "translation_text": "anc_profile.step6.medications.options.magnesium.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "79224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "metoclopramide", - "text": "{{anc_profile.step6.medications.options.metoclopramide.text}}", - "translation_text": "anc_profile.step6.medications.options.metoclopramide.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "79755AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "vitamina", - "text": "{{anc_profile.step6.medications.options.vitamina.text}}", - "translation_text": "anc_profile.step6.medications.options.vitamina.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "86339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "analgesic", - "text": "{{anc_profile.step6.medications.options.analgesic.text}}", - "translation_text": "anc_profile.step6.medications.options.analgesic.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165231AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "anti_convulsive", - "text": "{{anc_profile.step6.medications.options.anti_convulsive.text}}", - "translation_text": "anc_profile.step6.medications.options.anti_convulsive.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "anti_diabetic", - "text": "{{anc_profile.step6.medications.options.anti_diabetic.text}}", - "translation_text": "anc_profile.step6.medications.options.anti_diabetic.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "159460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "anthelmintic", - "text": "{{anc_profile.step6.medications.options.anthelmintic.text}}", - "translation_text": "anc_profile.step6.medications.options.anthelmintic.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "anti_hypertensive", - "text": "{{anc_profile.step6.medications.options.anti_hypertensive.text}}", - "translation_text": "anc_profile.step6.medications.options.anti_hypertensive.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165237AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "anti_malarials", - "text": "{{anc_profile.step6.medications.options.anti_malarials.text}}", - "translation_text": "anc_profile.step6.medications.options.anti_malarials.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "5839AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "antivirals", - "text": "{{anc_profile.step6.medications.options.antivirals.text}}", - "translation_text": "anc_profile.step6.medications.options.antivirals.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165236AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "arvs", - "text": "{{anc_profile.step6.medications.options.arvs.text}}", - "translation_text": "anc_profile.step6.medications.options.arvs.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "prep_hiv", - "text": "{{anc_profile.step6.medications.options.prep_hiv.text}}", - "translation_text": "anc_profile.step6.medications.options.prep_hiv.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "openmrs_entity_parent": "" - }, - { - "key": "antitussive", - "text": "{{anc_profile.step6.medications.options.antitussive.text}}", - "translation_text": "anc_profile.step6.medications.options.antitussive.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165235AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "asthma", - "text": "{{anc_profile.step6.medications.options.asthma.text}}", - "translation_text": "anc_profile.step6.medications.options.asthma.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165234AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "cotrimoxazole", - "text": "{{anc_profile.step6.medications.options.cotrimoxazole.text}}", - "translation_text": "anc_profile.step6.medications.options.cotrimoxazole.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "antibiotics", - "text": "{{anc_profile.step6.medications.options.antibiotics.text}}", - "translation_text": "anc_profile.step6.medications.options.antibiotics.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "1195AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "hematinic", - "text": "{{anc_profile.step6.medications.options.hematinic.text}}", - "translation_text": "anc_profile.step6.medications.options.hematinic.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165233AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "hemorrhoidal", - "text": "{{anc_profile.step6.medications.options.hemorrhoidal.text}}", - "translation_text": "anc_profile.step6.medications.options.hemorrhoidal.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165255AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "multivitamin", - "text": "{{anc_profile.step6.medications.options.multivitamin.text}}", - "translation_text": "anc_profile.step6.medications.options.multivitamin.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "461AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "thyroid", - "text": "{{anc_profile.step6.medications.options.thyroid.text}}", - "translation_text": "anc_profile.step6.medications.options.thyroid.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "165232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - }, - { - "key": "other", - "text": "{{anc_profile.step6.medications.options.other.text}}", - "translation_text": "anc_profile.step6.medications.options.other.text", - "value": false, - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity_parent": "" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step6.medications.v_required.err}}" - } - }, - { - "key": "medications_other", - "openmrs_entity_parent": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step6.medications_other.hint}}", - "edit_type": "edit_text", - "v_required": { - "value": false, - "err": "{{anc_profile.step6.medications_other.v_required.err}}" - }, - "relevance": { - "step6:medications": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - } - ] - }, - "step7": { - "title": "{{anc_profile.step7.title}}", - "next": "step8", - "fields": [ - { - "key": "caffeine_intake", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165243AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_data_type": "select multiple", - "type": "check_box", - "label": "{{anc_profile.step7.caffeine_intake.label}}", - "label_text_style": "bold", - "hint": "{{anc_profile.step7.caffeine_intake.hint}}", - "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", - "exclusive": [ - "none" - ], - "options": [ - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165239AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "commercially_brewed_coffee", - "text": "{{anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "tea", - "text": "{{anc_profile.step7.caffeine_intake.options.tea.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "more_than_48_pieces_squares_of_chocolate", - "text": "{{anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "", - "key": "soda", - "text": "{{anc_profile.step7.caffeine_intake.options.soda.text}}" - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "none", - "text": "{{anc_profile.step7.caffeine_intake.options.none.text}}" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step7.caffeine_intake.v_required.err}}" - } - }, - { - "key": "caffeine_reduction_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.caffeine_reduction_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_title}}", - "toaster_type": "warning", - "relevance": { - "step7:caffeine_intake": { - "ex-checkbox": [ - { - "or": [ - "commercially_brewed_coffee", - "tea", - "soda", - "more_than_48_pieces_squares_of_chocolate" - ] - } - ] - } - } - }, - { - "key": "tobacco_user", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "163731AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step7.tobacco_user.label}}", - "label_text_style": "bold", - "multi_relevance": true, - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step7.tobacco_user.options.yes.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "159450AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no", - "text": "{{anc_profile.step7.tobacco_user.options.no.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "recently_quit", - "text": "{{anc_profile.step7.tobacco_user.options.recently_quit.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step7.tobacco_user.v_required.err}}" - } - }, - { - "key": "tobacco_cessation_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.tobacco_cessation_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_title}}", - "toaster_type": "problem", - "relevance": { - "step7:tobacco_user": { - "ex-checkbox": [ - { - "or": [ - "yes", - "recently_quit" - ] - } - ] - } - } - }, - { - "key": "shs_exposure", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "152721AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step7.shs_exposure.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step7.shs_exposure.options.yes.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no", - "text": "{{anc_profile.step7.shs_exposure.options.no.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step7.shs_exposure.v_required.err}}" - } - }, - { - "key": "second_hand_smoke_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.second_hand_smoke_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_title}}", - "toaster_type": "warning", - "relevance": { - "step7:shs_exposure": { - "type": "string", - "ex": "equalTo(., \"yes\")" - } - } - }, - { - "key": "condom_use", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1357AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step7.condom_use.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step7.condom_use.options.yes.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no", - "text": "{{anc_profile.step7.condom_use.options.no.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step7.condom_use.v_required.err}}" - } - }, - { - "key": "condom_counseling_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.condom_counseling_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_title}}", - "toaster_type": "problem", - "relevance": { - "step7:condom_use": { - "type": "string", - "ex": "equalTo(., \"no\")" - } - } - }, - { - "key": "alcohol_substance_enquiry", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165268AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step7.alcohol_substance_enquiry.label}}", - "label_text_style": "bold", - "label_info_text": "{{anc_profile.step7.alcohol_substance_enquiry.label_info_text}}", - "options": [ - { - "key": "yes", - "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.yes.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "no", - "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.no.text}}", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step7.alcohol_substance_enquiry.v_required.err}}" - } - }, - { - "key": "alcohol_substance_use", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "check_box", - "label": "{{anc_profile.step7.alcohol_substance_use.label}}", - "label_text_style": "bold", - "exclusive": [ - "none" - ], - "options": [ - { - "key": "none", - "text": "{{anc_profile.step7.alcohol_substance_use.options.none.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.none.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "alcohol", - "text": "{{anc_profile.step7.alcohol_substance_use.options.alcohol.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.alcohol.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "marijuana", - "text": "{{anc_profile.step7.alcohol_substance_use.options.marijuana.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.marijuana.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "cocaine", - "text": "{{anc_profile.step7.alcohol_substance_use.options.cocaine.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.cocaine.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "injectable_drugs", - "text": "{{anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "other", - "text": "{{anc_profile.step7.alcohol_substance_use.options.other.text}}", - "translation_text": "anc_profile.step7.alcohol_substance_use.options.other.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": true, - "err": "{{anc_profile.step7.alcohol_substance_use.v_required.err}}" - } - }, - { - "key": "other_substance_use", - "openmrs_entity_parent": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "openmrs_entity": "concept", - "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "edit_text", - "hint": "{{anc_profile.step7.other_substance_use.hint}}", - "edit_type": "edit_text", - "v_required": { - "value": false, - "err": "{{anc_profile.step7.other_substance_use.v_required.err}}" - }, - "relevance": { - "step7:alcohol_substance_use": { - "ex-checkbox": [ - { - "or": [ - "other" - ] - } - ] - } - } - }, - { - "key": "substance_use_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.substance_use_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.substance_use_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.substance_use_toaster.toaster_info_title}}", - "toaster_type": "problem", - "relevance": { - "step7:alcohol_substance_use": { - "ex-checkbox": [ - { - "or": [ - "alcohol", - "marijuana", - "cocaine", - "injectable_drugs", - "other" - ] - } - ] - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165257AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hiv_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "hiv_counselling_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step7.hiv_counselling_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_title}}", - "toaster_type": "problem", - "relevance": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_relevance_rules.yml" - } - } - } - } - ] - }, - "step8": { - "title": "{{anc_profile.step8.title}}", - "fields": [ - { - "key": "partner_hiv_status", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1436AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "type": "native_radio", - "label": "{{anc_profile.step8.partner_hiv_status.label}}", - "label_text_style": "bold", - "options": [ - { - "key": "dont_know", - "text": "{{anc_profile.step8.partner_hiv_status.options.dont_know.text}}", - "translation_text": "anc_profile.step8.partner_hiv_status.options.dont_know.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "positive", - "text": "{{anc_profile.step8.partner_hiv_status.options.positive.text}}", - "translation_text": "anc_profile.step8.partner_hiv_status.options.positive.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - { - "key": "negative", - "text": "{{anc_profile.step8.partner_hiv_status.options.negative.text}}", - "translation_text": "anc_profile.step8.partner_hiv_status.options.negative.text", - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - } - ], - "v_required": { - "value": false, - "err": "{{anc_profile.step8.partner_hiv_status.v_required.err}}" - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "key": "partner_hiv_positive", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "bring_partners_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step8.bring_partners_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step8.bring_partners_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step8.bring_partners_toaster.toaster_info_title}}", - "toaster_type": "info", - "relevance": { - "step8:partner_hiv_status": { - "type": "string", - "ex": "equalTo(., \"dont_know\")" - } - } - }, - { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_entity_id": "165257AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", - "key": "hiv_risk", - "type": "hidden", - "label_text_style": "bold", - "text_color": "#FF0000", - "v_required": { - "value": false - }, - "calculation": { - "rules-engine": { - "ex-rules": { - "rules-file": "profile_calculation_rules.yml" - } - } - } - }, - { - "key": "hiv_risk_counselling_toaster", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "type": "toaster_notes", - "text": "{{anc_profile.step8.hiv_risk_counselling_toaster.text}}", - "text_color": "#000000", - "toaster_info_text": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text}}", - "toaster_info_title": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title}}", - "toaster_type": "problem", - "relevance": { - "step8:partner_hiv_status": { - "type": "string", - "ex": "equalTo(., \"positive\")" - } - } - } - ] - }, - "properties_file_name": "anc_profile" + "validate_on_submit": true, + "display_scroll_bars": true, + "count": "8", + "encounter_type": "Profile", + "entity_id": "", + "relational_id": "", + "form_version": "0.0.15", + "metadata": { + "start": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "start", + "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "end": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "end", + "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "today": { + "openmrs_entity_parent": "", + "openmrs_entity": "encounter", + "openmrs_entity_id": "encounter_date" + }, + "deviceid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "deviceid", + "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "subscriberid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "subscriberid", + "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "simserial": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "simserial", + "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "phonenumber": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "phonenumber", + "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "encounter_location": "44de66fb-e6c6-4bae-92bb-386dfe626eba", + "look_up": { + "entity_id": "", + "value": "" + } + }, + "editable_fields": [ + "educ_level", + "marital_status", + "occupation", + "occupation_other", + "lmp_known", + "lmp_known_date", + "ultrasound_done", + "ultrasound_done_date", + "ultrasound_gest_age_wks", + "sfh_gest_age", + "select_gest_age_edd", + "gravida", + "previous_pregnancies", + "miscarriages_abortions", + "live_births", + "stillbirths", + "parity", + "c_sections", + "prev_preg_comps", + "allergies", + "allergies_other", + "surgeries", + "surgeries_other_gyn_proced", + "surgeries_other", + "health_conditions", + "health_conditions_other", + "hiv_diagnosis_date", + "tt_immun_status", + "flu_immun_status", + "medications", + "medications_other", + "caffeine_intake", + "tobacco_user", + "shs_exposure", + "condom_use", + "alcohol_substance_enquiry", + "alcohol_substance_use", + "other_substance_use", + "partner_hiv_status" + ], + "default_values": [ + "educ_level", + "marital_status", + "occupation", + "occupation_other", + "lmp_known", + "lmp_known_date", + "ultrasound_done", + "ultrasound_done_date", + "ultrasound_gest_age_wks", + "sfh_gest_age", + "select_gest_age_edd", + "gravida", + "previous_pregnancies", + "miscarriages_abortions", + "live_births", + "stillbirths", + "parity", + "c_sections", + "prev_preg_comps", + "allergies", + "allergies_other", + "surgeries", + "surgeries_other_gyn_proced", + "surgeries_other", + "health_conditions", + "health_conditions_other", + "hiv_diagnosis_date", + "tt_immun_status", + "flu_immun_status", + "medications", + "medications_other", + "caffeine_intake", + "tobacco_user", + "shs_exposure", + "condom_use", + "alcohol_substance_enquiry", + "alcohol_substance_use", + "other_substance_use", + "partner_hiv_status", + "lmp_gest_age_selection", + "ultrasound_gest_age_selection", + "sfh_gest_age_selection", + "lmp_ultrasound_gest_age_selection", + "sfh_ultrasound_gest_age_selection" + ], + "global_previous": [ + "age" + ], + "step1": { + "title": "{{anc_profile.step1.title}}", + "next": "step2", + "fields": [ + + { + "key": "headss_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "toaster_notes", + "type": "toaster_notes", + "text": "{{anc_profile.step1.headss_toaster.text}}", + "text_color": "#1199F9", + "toaster_info_text": "{{anc_profile.step1.headss_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step1.headss_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + + { + "key": "educ_level", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "educ_level", + "type": "native_radio", + "label": "{{anc_profile.step1.educ_level.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "none", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "none", + "text": "{{anc_profile.step1.educ_level.options.none.text}}" + }, + { + "key": "dont_know", + "text": "{{anc_profile.step1.educ_level.options.dont_know.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "dont_know" + }, + { + "key": "primary", + "text": "{{anc_profile.step1.educ_level.options.primary.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "primary" + }, + { + "key": "secondary", + "text": "{{anc_profile.step1.educ_level.options.secondary.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "secondary" + }, + { + "key": "higher", + "text": "{{anc_profile.step1.educ_level.options.higher.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "higher" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step1.educ_level.v_required.err}}" + } + }, + { + "key": "marital_status", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "marital_status", + "type": "native_radio", + "label": "{{anc_profile.step1.marital_status.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "married", + "text": "{{anc_profile.step1.marital_status.options.married.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "married" + }, + { + "key": "divorced", + "text": "{{anc_profile.step1.marital_status.options.divorced.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "divorced" + }, + { + "key": "single", + "text": "{{anc_profile.step1.marital_status.options.single.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "single" + }, + { + "key": "widowed", + "text": "{{anc_profile.step1.marital_status.options.widowed.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "widowed" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step1.marital_status.v_required.err}}" + } + }, + { + "key": "occupation", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "occupation", + "type": "check_box", + "label": "{{anc_profile.step1.occupation.label}}", + "hint": "{{anc_profile.step1.occupation.hint}}", + "label_text_style": "bold", + "options": [ + { + "key": "unemployed", + "text": "{{anc_profile.step1.occupation.options.unemployed.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "unemployed" + }, + { + "key": "student", + "text": "{{anc_profile.step1.occupation.options.student.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "student" + }, + { + "key": "government_officer", + "text": "{{anc_profile.step1.occupation.options.government_officer.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "government_officer" + }, + { + "key": "employee", + "text": "{{anc_profile.step1.occupation.options.employee.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "employee" + }, + { + "key": "entrepreneur", + "text": "{{anc_profile.step1.occupation.options.entrepreneur.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "entrepreneur" + }, + { + "key": "housewife", + "text": "{{anc_profile.step1.occupation.options.housewife.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "housewife" + }, + { + "key": "informal_employment_sex_worker", + "text": "{{anc_profile.step1.occupation.options.informal_employment_sex_worker.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "informal_employment_sex_worker" + }, + { + "key": "other", + "text": "{{anc_profile.step1.occupation.options.other.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "other" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step1.occupation.v_required.err}}" + } + }, + { + "key": "occupation_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "occupation_other", + "type": "edit_text", + "hint": "{{anc_profile.step1.occupation_other.hint}}", + "edit_type": "name", + "relevance": { + "step1:occupation": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step1.occupation_other.v_required.err}}" + }, + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_profile.step1.occupation_other.v_regex.err}}" + } + }, + { + "key": "hiv_risk", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "hiv_risk_counseling_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step1.hiv_risk_counseling_toaster.text}}", + "toaster_info_text": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title}}", + "toaster_type": "problem", + "text_color": "#CF0800", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + } + ] + }, + "step2": { + "title": "{{anc_profile.step2.title}}", + "next": "step3", + "fields": [ + { + "key": "lmp_known", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp_known", + "type": "native_radio", + "label": "{{anc_profile.step2.lmp_known.label}}", + "label_info_text": "{{anc_profile.step2.lmp_known.label_info_text}}", + "label_info_title": "{{anc_profile.step2.lmp_known.label_info_title}}", + "label_text_style": "bold", + "max_date": "today", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step2.lmp_known.options.yes.text}}", + "translation_text": "anc_profile.step2.lmp_known.options.yes.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "yes", + "specify_info": "specify date", + "specify_widget": "date_picker", + "max_date": "today-14d", + "min_date": "today-280d", + "default": "today" + }, + { + "key": "no", + "text": "{{anc_profile.step2.lmp_known.options.no.text}}", + "translation_text": "anc_profile.step2.lmp_known.options.no.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "no" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.lmp_known.v_required.err}}" + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp_known_date", + "key": "lmp_known_date", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "lmp_edd", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp_gest_age", + "key": "lmp_gest_age", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "ultrasound_done", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "159617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step2.ultrasound_done.label}}", + "label_info_text": "{{anc_profile.step2.ultrasound_done.label_info_text}}", + "label_info_title": "{{anc_profile.step2.ultrasound_done.label_info_title}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step2.ultrasound_done.options.yes.text}}", + "translation_text": "anc_profile.step2.ultrasound_done.options.yes.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "yes", + "specify_info": "ultrasound date", + "specify_widget": "date_picker", + "max_date": "today", + "min_date": "today-9m", + "default": "today" + }, + { + "key": "no", + "text": "{{anc_profile.step2.ultrasound_done.options.no.text}}", + "translation_text": "anc_profile.step2.ultrasound_done.options.no.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "no" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.ultrasound_done.v_required.err}}" + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound_done_date", + "key": "ultrasound_done_date", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "ultrasound_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "toaster_notes", + "type": "toaster_notes", + "text": "{{anc_profile.step2.ultrasound_toaster.text}}", + "text_color": "#1199F9", + "toaster_info_text": "{{anc_profile.step2.ultrasound_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step2.ultrasound_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "facility_in_us_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "toaster_notes", + "type": "toaster_notes", + "text": "{{anc_profile.step2.facility_in_us_toaster.text}}", + "text_color": "#1199F9", + "toaster_info_text": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step2.facility_in_us_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "ultrasound_gest_age_wks", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound_gest_age_wks", + "type": "edit_text", + "hint": "{{anc_profile.step2.ultrasound_gest_age_wks.hint}}", + "relevance": { + "step2:ultrasound_done": { + "type": "string", + "ex": "equalTo(., \"yes\")" + } + }, + "v_required": { + "value": true, + "err": "{{anc_profile.step2.ultrasound_gest_age_wks.v_required.err}}" + }, + "v_numeric_integer": { + "value": true, + "err": "Enter a Valid GA from ultrasound - weeks value" + }, + "v_min": { + "value": "4", + "err": "GA from ultrasound - weeks should be equal to or greater than 4" + }, + "v_max": { + "value": "40", + "err": "GA from ultrasound - weeks should be less than or equal to 40" + } + }, + { + "key": "ultrasound_gest_age_days", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound_gest_age_days", + "type": "edit_text", + "hint": "{{anc_profile.step2.ultrasound_gest_age_days.hint}}", + "relevance": { + "step2:ultrasound_done": { + "type": "string", + "ex": "equalTo(., \"yes\")" + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step2.ultrasound_gest_age_days.v_required.err}}" + }, + "v_numeric_integer": { + "value": true, + "err": "Enter a Valid GA from ultrasound - days value" + }, + "v_min": { + "value": "1", + "err": "GA from ultrasound - days should be equal to or greater than 1" + }, + "v_max": { + "value": "6", + "err": "GA from ultrasound - days should be less than or equal to 6" + } + }, + { + "key": "ultrasound_gest_age_concept", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "ultrasound_gest_age_concept", + "type": "hidden", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "ultrasound_edd", + "key": "ultrasound_edd", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "ultrasound_ga_hidden", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "text_color": "#000000", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "ultrasound_gest_age", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "sfh_gest_age", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "sfh_gest_age", + "type": "edit_text", + "label_info_text": "If LMP is unknown and ultrasound wasn\u0027t done or it wasn\u0027t done early (before 24 weeks), then assess GA based on Symphysis Fundal Height (SFH) or abdominal palpation. Compare this GA against ultrasound GA (if done).", + "label_info_title": "GA from SFH or abdominal palpation - weeks", + "hint": "{{anc_profile.step2.sfh_gest_age.hint}}", + "v_required": { + "value": true, + "err": "{{anc_profile.step2.sfh_gest_age.v_required.err}}" + }, + "v_numeric_integer": { + "value": true, + "err": "Enter a Valid GA from SFH or abdominal palpation - weeks value" + }, + "v_min": { + "value": "4", + "err": "GA from SFH or abdominal palpation - weeks should 4 or greater" + }, + "v_max": { + "value": "40", + "err": "GA from SFH or abdominal palpation - weeks should be 40 or less" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "sfh_edd", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "sfh_ga_hidden", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "text_color": "#000000", + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "select_gest_age_edd_label", + "type": "label", + "text": "{{anc_profile.step2.select_gest_age_edd_label.text}}", + "label_info_text": "If the difference between GA from LMP and early ultrasound is one week or less, then use GA from LMP. If the difference is more than 7 days, use the early ultrasound GA. If ultrasound was done late, use GA from LMP. Between late ultrasound and SFH or abdominal palpation, use your best judgment to select GA.", + "label_text_style": "bold", + "text_color": "#000000", + "v_required": { + "value": true, + "err": "{{anc_profile.step2.select_gest_age_edd_label.v_required.err}}" + } + }, + { + "key": "lmp_gest_age_selection", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp_gest_age_selection", + "type": "native_radio", + "options": [ + { + "key": "lmp", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp", + "text": "{{anc_profile.step2.lmp_gest_age_selection.options.lmp.text}}", + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.lmp_gest_age_selection.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "ultrasound_gest_age_selection", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound_gest_age_selection", + "type": "native_radio", + "options": [ + { + "key": "ultrasound", + "text": "{{anc_profile.step2.ultrasound_gest_age_selection.options.ultrasound.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound", + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.ultrasound_gest_age_selection.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "sfh_gest_age_selection", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "sfh_gest_age_selection", + "type": "native_radio", + "options": [ + { + "key": "sfh", + "text": "{{anc_profile.step2.sfh_gest_age_selection.options.sfh.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "sfh", + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.sfh_gest_age_selection.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "lmp_ultrasound_gest_age_selection", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp_ultrasound_gest_age_selection", + "type": "native_radio", + "options": [ + { + "key": "lmp", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "lmp", + "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.lmp.text}}", + "extra_info": "GA: {lmp_gest_age}\u003cbr/\u003eEDD: {lmp_edd}" + }, + { + "key": "ultrasound", + "text": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.options.ultrasound.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound", + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.lmp_ultrasound_gest_age_selection.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "sfh_ultrasound_gest_age_selection", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "sfh_ultrasound_gest_age_selection", + "type": "native_radio", + "options": [ + { + "key": "ultrasound", + "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.ultrasound.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "ultrasound", + "extra_info": "GA: {ultrasound_gest_age} \u003cbr/\u003e EDD: {ultrasound_edd}" + }, + { + "key": "sfh", + "text": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "sfh", + "extra_info": "GA: {sfh_gest_age} \u003cbr/\u003e EDD: {sfh_edd}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step2.sfh_ultrasound_gest_age_selection.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "select_gest_age_edd_all_values", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "select_gest_age_edd_lmp_ultrasound", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "select_gest_age_edd_sfh_ultrasound", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "select_gest_age_edd", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "gest_age", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "gest_age_openmrs", + "key": "gest_age_openmrs", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "edd", + "openmrs_entity_parent": "", + "openmrs_entity": "person_attribute", + "openmrs_entity_id": "edd", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + } + ] + }, + "step3": { + "title": "{{anc_profile.step3.title}}", + "next": "step4", + "fields": [ + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "20dp" + }, + { + "key": "gravida_label", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_profile.step3.gravida_label.text}}", + "text_color": "#000000", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.gravida_label.v_required.err}}" + } + }, + { + "key": "gravida", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5624AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "numbers_selector", + "number_of_selectors": "5", + "start_number": "1", + "max_value": "15", + "text_size": "16px", + "text_color": "#000000", + "selected_text_color": "#ffffff", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.gravida.v_required.err}}" + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "previous_pregnancies", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.previous_pregnancies.v_required.err}}" + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "24dp" + }, + { + "key": "miscarriages_abortions_label", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_profile.step3.miscarriages_abortions_label.text}}", + "text_color": "#000000", + "v_required": { + "value": true + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "miscarriages_abortions", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1823AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "numbers_selector", + "number_of_selectors": "5", + "start_number": "0", + "max_value": "15", + "text_size": "16px", + "text_color": "#000000", + "selected_text_color": "#ffffff", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.miscarriages_abortions.v_required.err}}" + }, + "constraints": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_constraint_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "24dp" + }, + { + "key": "live_births_label", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_profile.step3.live_births_label.text}}", + "text_color": "#000000", + "v_required": { + "value": true + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "live_births", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160601AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "numbers_selector", + "number_of_selectors": "5", + "start_number": "0", + "max_value": "15", + "text_size": "16px", + "text_color": "#000000", + "selected_text_color": "#ffffff", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.live_births.v_required.err}}" + }, + "constraints": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_constraint_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "24dp" + }, + { + "key": "last_live_birth_preterm", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "native_radio", + "label": "{{anc_profile.step3.last_live_birth_preterm.label}}", + "text_color": "#000000", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.yes.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "no", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.no.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "dont_know", + "text": "{{anc_profile.step3.last_live_birth_preterm.options.dont_know.text}}", + "openmrs_entity": "", + "openmrs_entity_id": "" + } + ], + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step3.last_live_birth_preterm.v_required.err}}" + } + }, + { + "key": "stillbirths_label", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_profile.step3.stillbirths_label.text}}", + "text_color": "#000000", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.stillbirths_label.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "stillbirths", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160077AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "numbers_selector", + "number_of_selectors": "5", + "start_number": "0", + "max_value": "15", + "text_size": "16px", + "text_color": "#000000", + "selected_text_color": "#ffffff", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.stillbirths.v_required.err}}" + }, + "constraints": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_constraint_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1053AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "parity", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "24dp" + }, + { + "key": "c_sections_label", + "type": "label", + "label_text_style": "bold", + "text": "{{anc_profile.step3.c_sections_label.text}}", + "text_color": "#000000", + "v_required": { + "value": true + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "c_sections", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "numbers_selector", + "number_of_selectors": "5", + "start_number": "0", + "max_value": "15", + "text_size": "16px", + "text_color": "#000000", + "selected_text_color": "#ffffff", + "v_required": { + "value": true, + "err": "{{anc_profile.step3.c_sections.v_required.err}}" + }, + "constraints": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_constraint_rules.yml" + } + } + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "spacer", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "spacer", + "type": "spacer", + "spacer_height": "24dp" + }, + { + "key": "prev_preg_comps", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step3.prev_preg_comps.label}}", + "label_text_style": "bold", + "exclusive": [ + "none", + "dont_know" + ], + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "none", + "text": "{{anc_profile.step3.prev_preg_comps.options.none.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "dont_know", + "text": "{{anc_profile.step3.prev_preg_comps.options.dont_know.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "129251AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "pre_eclampsia", + "text": "{{anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "118744AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "eclampsia", + "text": "{{anc_profile.step3.prev_preg_comps.options.eclampsia.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "113054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "convulsions", + "text": "{{anc_profile.step3.prev_preg_comps.options.convulsions.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1449AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "gestational_diabetes", + "text": "{{anc_profile.step3.prev_preg_comps.options.gestational_diabetes.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "159084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "tobacco_use", + "text": "{{anc_profile.step3.prev_preg_comps.options.tobacco_use.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "alcohol_use", + "text": "{{anc_profile.step3.prev_preg_comps.options.alcohol_use.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160246AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "illicit_substance", + "text": "{{anc_profile.step3.prev_preg_comps.options.illicit_substance.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "heavy_bleeding", + "text": "{{anc_profile.step3.prev_preg_comps.options.heavy_bleeding.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165259AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "baby_died_in_24_hrs", + "text": "{{anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "140951AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "macrosomia", + "text": "{{anc_profile.step3.prev_preg_comps.options.macrosomia.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "118159AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "vacuum_delivery", + "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum_delivery.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "vacuum", + "text": "{{anc_profile.step3.prev_preg_comps.options.vacuum.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "124858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "3rd_degree_tear", + "text": "{{anc_profile.step3.prev_preg_comps.options.3rd_degree_tear.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other", + "text": "{{anc_profile.step3.prev_preg_comps.options.other.text}}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step3.prev_preg_comps.v_required.err}}" + }, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "prev_preg_comps_other", + "openmrs_entity_parent": "1430AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step3.prev_preg_comps_other.hint}}", + "relevance": { + "step3:prev_preg_comps": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step3.prev_preg_comps_other.v_required.err}}" + }, + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_profile.step3.prev_preg_comps_other.v_regex.err}}" + } + }, + { + "key": "substances_used", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step3.substances_used.label}}", + "label_text_style": "bold", + "relevance": { + "step3:prev_preg_comps": { + "ex-checkbox": [ + { + "or": [ + "illicit_substance" + ] + } + ] + } + }, + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "marijuana", + "text": "{{anc_profile.step3.substances_used.options.marijuana.text}}", + "translation_text": "anc_profile.step3.substances_used.options.marijuana.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "cocaine", + "text": "{{anc_profile.step3.substances_used.options.cocaine.text}}", + "translation_text": "anc_profile.step3.substances_used.options.cocaine.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "injectable_drugs", + "text": "{{anc_profile.step3.substances_used.options.injectable_drugs.text}}", + "translation_text": "anc_profile.step3.substances_used.options.injectable_drugs.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other", + "text": "{{anc_profile.step3.substances_used.options.other.text}}", + "translation_text": "anc_profile.step3.substances_used.options.other.text" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step3.substances_used.v_required.err}}" + } + }, + { + "key": "substances_used_other", + "openmrs_entity_parent": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step3.substances_used_other.hint}}", + "relevance": { + "step3:substances_used": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step3.substances_used_other.v_required.err}}" + }, + "v_regex": { + "value": "[A-Za-z\\s\\.\\-]*", + "err": "{{anc_profile.step3.substances_used_other.v_regex.err}}" + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "preeclampsia_risk", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "pre_eclampsia_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step3.pre_eclampsia_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step3.pre_eclampsia_toaster.toaster_info_title}}", + "toaster_type": "warning", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165261AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "gdm_risk", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "gestational_diabetes_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step3.gestational_diabetes_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step3.gestational_diabetes_toaster.toaster_info_title}}", + "toaster_type": "warning", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + } + ] + }, + "step4": { + "title": "{{anc_profile.step4.title}}", + "next": "step5", + "fields": [ + { + "key": "allergies", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step4.allergies.label}}", + "label_text_style": "bold", + "hint": "{{anc_profile.step4.allergies.hint}}", + "exclusive": [ + "none", + "dont_know" + ], + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "none", + "text": "{{anc_profile.step4.allergies.options.none.text}}", + "translation_text": "anc_profile.step4.allergies.options.none.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "dont_know", + "text": "{{anc_profile.step4.allergies.options.dont_know.text}}", + "translation_text": "anc_profile.step4.allergies.options.dont_know.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "70439AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "albendazole", + "text": "{{anc_profile.step4.allergies.options.albendazole.text}}", + "translation_text": "anc_profile.step4.allergies.options.albendazole.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "70991AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "aluminium_hydroxide", + "text": "{{anc_profile.step4.allergies.options.aluminium_hydroxide.text}}", + "translation_text": "anc_profile.step4.allergies.options.aluminium_hydroxide.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "calcium", + "text": "{{anc_profile.step4.allergies.options.calcium.text}}", + "translation_text": "anc_profile.step4.allergies.options.calcium.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "73154AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "chamomile", + "text": "{{anc_profile.step4.allergies.options.chamomile.text}}", + "translation_text": "anc_profile.step4.allergies.options.chamomile.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "folic_acid", + "text": "{{anc_profile.step4.allergies.options.folic_acid.text}}", + "translation_text": "anc_profile.step4.allergies.options.folic_acid.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "77001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "ginger", + "text": "{{anc_profile.step4.allergies.options.ginger.text}}", + "translation_text": "anc_profile.step4.allergies.options.ginger.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "iron", + "text": "{{anc_profile.step4.allergies.options.iron.text}}", + "translation_text": "anc_profile.step4.allergies.options.iron.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "79229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "magnesium_carbonate", + "text": "{{anc_profile.step4.allergies.options.magnesium_carbonate.text}}", + "translation_text": "anc_profile.step4.allergies.options.magnesium_carbonate.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "924AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "malaria_medication", + "text": "{{anc_profile.step4.allergies.options.malaria_medication.text}}", + "translation_text": "anc_profile.step4.allergies.options.malaria_medication.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "79413AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "mebendazole", + "text": "{{anc_profile.step4.allergies.options.mebendazole.text}}", + "translation_text": "anc_profile.step4.allergies.options.mebendazole.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "81724AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "penicillin", + "text": "{{anc_profile.step4.allergies.options.penicillin.text}}", + "translation_text": "anc_profile.step4.allergies.options.penicillin.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "84797AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "prep_tenofovir_disoproxil_fumarate", + "text": "{{anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text}}", + "translation_text": "anc_profile.step4.allergies.options.prep_tenofovir_disoproxil_fumarate.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other", + "text": "{{anc_profile.step4.allergies.options.other.text}}", + "translation_text": "anc_profile.step4.allergies.options.other.text" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step4.allergies.v_required.err}}" + } + }, + { + "key": "allergies_other", + "openmrs_entity_parent": "160643AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step4.allergies_other.hint}}", + "edit_type": "edit_text", + "relevance": { + "step4:allergies": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "key": "surgeries", + "openmrs_entity_parent": "160714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "1651AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step4.surgeries.label}}", + "label_text_style": "bold", + "hint": "{{anc_profile.step4.surgeries.hint}}", + "exclusive": [ + "none", + "dont_know" + ], + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "none", + "text": "{{anc_profile.step4.surgeries.options.none.text}}", + "translation_text": "anc_profile.step4.surgeries.options.none.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "dont_know", + "text": "{{anc_profile.step4.surgeries.options.dont_know.text}}", + "translation_text": "anc_profile.step4.surgeries.options.dont_know.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1637AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "dilation_and_curettage", + "text": "{{anc_profile.step4.surgeries.options.dilation_and_curettage.text}}", + "translation_text": "anc_profile.step4.surgeries.options.dilation_and_curettage.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "161829AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "removal_of_fibroid", + "text": "{{anc_profile.step4.surgeries.options.removal_of_fibroid.text}}", + "translation_text": "anc_profile.step4.surgeries.options.removal_of_fibroid.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165262AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "removal_of_ovarian_cysts", + "text": "{{anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text}}", + "translation_text": "anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "161844AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "removal_of_ovary", + "text": "{{anc_profile.step4.surgeries.options.removal_of_ovary.text}}", + "translation_text": "anc_profile.step4.surgeries.options.removal_of_ovary.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "161835AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "removal_of_the_tube", + "text": "{{anc_profile.step4.surgeries.options.removal_of_the_tube.text}}", + "translation_text": "anc_profile.step4.surgeries.options.removal_of_the_tube.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "162811AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "cervical_cone", + "text": "{{anc_profile.step4.surgeries.options.cervical_cone.text}}", + "translation_text": "anc_profile.step4.surgeries.options.cervical_cone.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165263AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other_gynecological_procedures", + "text": "{{anc_profile.step4.surgeries.options.other_gynecological_procedures.text}}", + "translation_text": "anc_profile.step4.surgeries.options.other_gynecological_procedures.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other", + "text": "{{anc_profile.step4.surgeries.options.other.text}}", + "translation_text": "anc_profile.step4.surgeries.options.other.text" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step4.surgeries.v_required.err}}" + } + }, + { + "key": "surgeries_other_gyn_proced", + "openmrs_entity_parent": "165263AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "165264AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step4.surgeries_other_gyn_proced.hint}}", + "edit_type": "edit_text", + "other_for": { + "parent_key": "surgeries", + "label": "Other gynecological procedures (specify)" + }, + "relevance": { + "step4:surgeries": { + "ex-checkbox": [ + { + "or": [ + "other_gynecological_procedures" + ] + } + ] + } + }, + "v_required": { + "value": false, + "err": "{{anc_profile.step4.surgeries_other_gyn_proced.v_required.err}}" + } + }, + { + "key": "surgeries_other", + "openmrs_entity_parent": "160714AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step4.surgeries_other.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step4.surgeries_other.v_required.err}}" + }, + "relevance": { + "step4:surgeries": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "key": "health_conditions", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step4.health_conditions.label}}", + "label_text_style": "bold", + "hint": "{{anc_profile.step4.health_conditions.hint}}", + "exclusive": [ + "none", + "dont_know" + ], + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "none", + "text": "{{anc_profile.step4.health_conditions.options.none.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.none.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "dont_know", + "text": "{{anc_profile.step4.health_conditions.options.dont_know.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.dont_know.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "148117AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "autoimmune_disease", + "text": "{{anc_profile.step4.health_conditions.options.autoimmune_disease.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.autoimmune_disease.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165223AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "blood_disorder", + "text": "{{anc_profile.step4.health_conditions.options.blood_disorder.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.blood_disorder.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "151286AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "cancer", + "text": "{{anc_profile.step4.health_conditions.options.cancer.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.cancer.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "cancer_other", + "text": "{{anc_profile.step4.health_conditions.options.cancer_other.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.cancer_other.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "gest_diabetes", + "text": "{{anc_profile.step4.health_conditions.options.gest_diabetes.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.gest_diabetes.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "diabetes_other", + "text": "{{anc_profile.step4.health_conditions.options.diabetes_other.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.diabetes_other.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "119481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "diabetes", + "text": "{{anc_profile.step4.health_conditions.options.diabetes.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.diabetes.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "diabetes_type2", + "text": "{{anc_profile.step4.health_conditions.options.diabetes_type2.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.diabetes_type2.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "155AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "epilepsy", + "text": "{{anc_profile.step4.health_conditions.options.epilepsy.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.epilepsy.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "138571AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "hiv", + "text": "{{anc_profile.step4.health_conditions.options.hiv.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.hiv.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "117399AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "hypertension", + "text": "{{anc_profile.step4.health_conditions.options.hypertension.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.hypertension.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "6033AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "kidney_disease", + "text": "{{anc_profile.step4.health_conditions.options.kidney_disease.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.kidney_disease.text" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "other", + "text": "{{anc_profile.step4.health_conditions.options.other.text}}", + "translation_text": "anc_profile.step4.health_conditions.options.other.text" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step4.health_conditions.v_required.err}}" + } + }, + { + "key": "health_conditions_cancer_other", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "type": "edit_text", + "hint": "{{anc_profile.step4.health_conditions_cancer_other.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step4.health_conditions_cancer_other.v_required.err}}" + }, + "relevance": { + "step4:health_conditions": { + "ex-checkbox": [ + { + "or": [ + "cancer_other" + ] + } + ] + } + } + }, + { + "key": "health_conditions_other", + "openmrs_entity_parent": "1628AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step4.health_conditions_other.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step4.health_conditions_other.v_required.err}}" + }, + "relevance": { + "step4:health_conditions": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165260AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "preeclampsia_risk", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "pre_eclampsia_two_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step4.pre_eclampsia_two_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_title}}", + "toaster_type": "warning", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + }, + { + "key": "hiv_diagnosis_date", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "160554AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "date_picker", + "hint": "{{anc_profile.step4.hiv_diagnosis_date.hint}}", + "expanded": false, + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + }, + "max_date": "today", + "v_required": { + "value": true, + "err": "{{anc_profile.step4.hiv_diagnosis_date.v_required.err}}" + } + }, + { + "key": "hiv_diagnosis_date_unknown", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select one", + "type": "check_box", + "label_text_style": "bold", + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "yes", + "text": "{{anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text}}", + "value": false + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step4.hiv_diagnosis_date_unknown.v_required.err}}" + }, + "relevance": { + "step4:health_conditions": { + "ex-checkbox": [ + { + "or": [ + "hiv" + ] + } + ] + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "138571AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "hiv_positive", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + } + ] + }, + "step5": { + "title": "{{anc_profile.step5.title}}", + "next": "step6", + "fields": [ + { + "key": "tt_immun_status", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165225AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step5.tt_immun_status.label}}", + "label_text_style": "bold", + "label_info_text": "{{anc_profile.step6.tt_immun_status.label_info_text}}", + "multi_relevance": true, + "options": [ + { + "key": "3_doses", + "text": "{{anc_profile.step5.tt_immun_status.options.3_doses.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.3_doses.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "164134AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "1-4_doses", + "text": "{{anc_profile.step5.tt_immun_status.options.1-4_doses.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.1-4_doses.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165226AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "ttcv_not_received", + "text": "{{anc_profile.step5.tt_immun_status.options.ttcv_not_received.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.ttcv_not_received.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "unknown", + "text": "{{anc_profile.step5.tt_immun_status.options.unknown.text}}", + "translation_text": "anc_profile.step5.tt_immun_status.options.unknown.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step5.tt_immun_status.v_required.err}}" + } + }, + { + "key": "tt_immunisation_toaster", + "openers_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step5.tt_immunisation_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step5.tt_immunisation_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "step5:tt_immun_status": { + "ex-checkbox": [ + { + "or": [ + "1-4_doses", + "ttcv_not_received", + "unknown" + ] + } + ] + } + } + }, + { + "key": "fully_immunised_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step5.fully_immunised_toaster.text}}", + "text_color": "#000000", + "toaster_type": "positive", + "relevance": { + "step5:tt_immun_status": { + "ex-checkbox": [ + { + "or": [ + "3_doses" + ] + } + ] + } + } + }, + { + "key": "flu_immun_status", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165227AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step5.flu_immun_status.label}}", + "label_text_style": "bold", + "multi_relevance": true, + "options": [ + { + "key": "seasonal_flu_dose_given", + "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_given.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "seasonal_flu_dose_missing", + "text": "{{anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.seasonal_flu_dose_missing.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165228AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "unknown", + "text": "{{anc_profile.step5.flu_immun_status.options.unknown.text}}", + "translation_text": "anc_profile.step5.flu_immun_status.options.unknown.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step5.flu_immun_status.v_required.err}}" + } + }, + { + "key": "flu_immunisation_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step5.flu_immunisation_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step5.flu_immunisation_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "step5:flu_immun_status": { + "ex-checkbox": [ + { + "or": [ + "seasonal_flu_dose_missing", + "unknown" + ] + } + ] + } + } + }, + { + "key": "immunised_against_flu_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step5.immunised_against_flu_toaster.text}}", + "text_color": "#000000", + "toaster_type": "positive", + "relevance": { + "step5:flu_immun_status": { + "ex-checkbox": [ + { + "or": [ + "seasonal_flu_dose_given" + ] + } + ] + } + } + } + ] + }, + "step6": { + "title": "{{anc_profile.step6.title}}", + "next": "step7", + "fields": [ + { + "key": "medications", + "openmrs_entity_parent": "160741AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "check_box", + "label": "{{anc_profile.step6.medications.label}}", + "label_text_style": "bold", + "text_color": "#000000", + "exclusive": [ + "dont_know", + "none" + ], + "options": [ + { + "key": "none", + "text": "{{anc_profile.step6.medications.options.none.text}}", + "translation_text": "anc_profile.step6.medications.options.none.text", + "value": false, + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "", + "openmrs_entity": "concept" + }, + { + "key": "dont_know", + "text": "{{anc_profile.step6.medications.options.dont_know.text}}", + "translation_text": "anc_profile.step6.medications.options.dont_know.text", + "value": false, + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "", + "openmrs_entity": "concept" + }, + { + "key": "antacids", + "text": "{{anc_profile.step6.medications.options.antacids.text}}", + "translation_text": "anc_profile.step6.medications.options.antacids.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "944AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "aspirin", + "text": "{{anc_profile.step6.medications.options.aspirin.text}}", + "translation_text": "anc_profile.step6.medications.options.aspirin.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "71617AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "calcium", + "text": "{{anc_profile.step6.medications.options.calcium.text}}", + "translation_text": "anc_profile.step6.medications.options.calcium.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "72650AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "doxylamine", + "text": "{{anc_profile.step6.medications.options.doxylamine.text}}", + "translation_text": "anc_profile.step6.medications.options.doxylamine.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "75229AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "folic_acid", + "text": "{{anc_profile.step6.medications.options.folic_acid.text}}", + "translation_text": "anc_profile.step6.medications.options.folic_acid.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "76613AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "iron", + "text": "{{anc_profile.step6.medications.options.iron.text}}", + "translation_text": "anc_profile.step6.medications.options.iron.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "78218AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "magnesium", + "text": "{{anc_profile.step6.medications.options.magnesium.text}}", + "translation_text": "anc_profile.step6.medications.options.magnesium.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "79224AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "metoclopramide", + "text": "{{anc_profile.step6.medications.options.metoclopramide.text}}", + "translation_text": "anc_profile.step6.medications.options.metoclopramide.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "79755AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "vitamina", + "text": "{{anc_profile.step6.medications.options.vitamina.text}}", + "translation_text": "anc_profile.step6.medications.options.vitamina.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "86339AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "analgesic", + "text": "{{anc_profile.step6.medications.options.analgesic.text}}", + "translation_text": "anc_profile.step6.medications.options.analgesic.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165231AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "anti_convulsive", + "text": "{{anc_profile.step6.medications.options.anti_convulsive.text}}", + "translation_text": "anc_profile.step6.medications.options.anti_convulsive.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165230AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "anti_diabetic", + "text": "{{anc_profile.step6.medications.options.anti_diabetic.text}}", + "translation_text": "anc_profile.step6.medications.options.anti_diabetic.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "159460AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "anthelmintic", + "text": "{{anc_profile.step6.medications.options.anthelmintic.text}}", + "translation_text": "anc_profile.step6.medications.options.anthelmintic.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165238AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "anti_hypertensive", + "text": "{{anc_profile.step6.medications.options.anti_hypertensive.text}}", + "translation_text": "anc_profile.step6.medications.options.anti_hypertensive.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165237AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "anti_malarials", + "text": "{{anc_profile.step6.medications.options.anti_malarials.text}}", + "translation_text": "anc_profile.step6.medications.options.anti_malarials.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "5839AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "antivirals", + "text": "{{anc_profile.step6.medications.options.antivirals.text}}", + "translation_text": "anc_profile.step6.medications.options.antivirals.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165236AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "arvs", + "text": "{{anc_profile.step6.medications.options.arvs.text}}", + "translation_text": "anc_profile.step6.medications.options.arvs.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "prep_hiv", + "text": "{{anc_profile.step6.medications.options.prep_hiv.text}}", + "translation_text": "anc_profile.step6.medications.options.prep_hiv.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "openmrs_entity_parent": "" + }, + { + "key": "antitussive", + "text": "{{anc_profile.step6.medications.options.antitussive.text}}", + "translation_text": "anc_profile.step6.medications.options.antitussive.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165235AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "asthma", + "text": "{{anc_profile.step6.medications.options.asthma.text}}", + "translation_text": "anc_profile.step6.medications.options.asthma.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165234AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "cotrimoxazole", + "text": "{{anc_profile.step6.medications.options.cotrimoxazole.text}}", + "translation_text": "anc_profile.step6.medications.options.cotrimoxazole.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "antibiotics", + "text": "{{anc_profile.step6.medications.options.antibiotics.text}}", + "translation_text": "anc_profile.step6.medications.options.antibiotics.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "1195AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "hematinic", + "text": "{{anc_profile.step6.medications.options.hematinic.text}}", + "translation_text": "anc_profile.step6.medications.options.hematinic.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165233AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "hemorrhoidal", + "text": "{{anc_profile.step6.medications.options.hemorrhoidal.text}}", + "translation_text": "anc_profile.step6.medications.options.hemorrhoidal.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165255AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "multivitamin", + "text": "{{anc_profile.step6.medications.options.multivitamin.text}}", + "translation_text": "anc_profile.step6.medications.options.multivitamin.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "461AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "thyroid", + "text": "{{anc_profile.step6.medications.options.thyroid.text}}", + "translation_text": "anc_profile.step6.medications.options.thyroid.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "165232AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + }, + { + "key": "other", + "text": "{{anc_profile.step6.medications.options.other.text}}", + "translation_text": "anc_profile.step6.medications.options.other.text", + "value": false, + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity_parent": "" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step6.medications.v_required.err}}" + } + }, + { + "key": "medications_other", + "openmrs_entity_parent": "159367AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step6.medications_other.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step6.medications_other.v_required.err}}" + }, + "relevance": { + "step6:medications": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + } + ] + }, + "step7": { + "title": "{{anc_profile.step7.title}}", + "next": "step8", + "fields": [ + { + "key": "caffeine_intake", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165243AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_data_type": "select multiple", + "type": "check_box", + "label": "{{anc_profile.step7.caffeine_intake.label}}", + "label_text_style": "bold", + "hint": "{{anc_profile.step7.caffeine_intake.hint}}", + "label_info_text": "{{anc_profile.step7.caffeine_intake.label_info_text}}", + "exclusive": [ + "none" + ], + "options": [ + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165239AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "commercially_brewed_coffee", + "text": "{{anc_profile.step7.caffeine_intake.options.commercially_brewed_coffee.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "tea", + "text": "{{anc_profile.step7.caffeine_intake.options.tea.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165242AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "more_than_48_pieces_squares_of_chocolate", + "text": "{{anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "", + "key": "soda", + "text": "{{anc_profile.step7.caffeine_intake.options.soda.text}}" + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "none", + "text": "{{anc_profile.step7.caffeine_intake.options.none.text}}" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step7.caffeine_intake.v_required.err}}" + } + }, + { + "key": "caffeine_reduction_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.caffeine_reduction_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.caffeine_reduction_toaster.toaster_info_title}}", + "toaster_type": "warning", + "relevance": { + "step7:caffeine_intake": { + "ex-checkbox": [ + { + "or": [ + "commercially_brewed_coffee", + "tea", + "soda", + "more_than_48_pieces_squares_of_chocolate" + ] + } + ] + } + } + }, + { + "key": "tobacco_user", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "163731AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step7.tobacco_user.label}}", + "label_text_style": "bold", + "multi_relevance": true, + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step7.tobacco_user.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "159450AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "no", + "text": "{{anc_profile.step7.tobacco_user.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "recently_quit", + "text": "{{anc_profile.step7.tobacco_user.options.recently_quit.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165267AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step7.tobacco_user.v_required.err}}" + } + }, + { + "key": "tobacco_cessation_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.tobacco_cessation_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.tobacco_cessation_toaster.toaster_info_title}}", + "toaster_type": "problem", + "relevance": { + "step7:tobacco_user": { + "ex-checkbox": [ + { + "or": [ + "yes", + "recently_quit" + ] + } + ] + } + } + }, + { + "key": "shs_exposure", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "152721AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step7.shs_exposure.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step7.shs_exposure.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "no", + "text": "{{anc_profile.step7.shs_exposure.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step7.shs_exposure.v_required.err}}" + } + }, + { + "key": "second_hand_smoke_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.second_hand_smoke_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.second_hand_smoke_toaster.toaster_info_title}}", + "toaster_type": "warning", + "relevance": { + "step7:shs_exposure": { + "type": "string", + "ex": "equalTo(., \"yes\")" + } + } + }, + { + "key": "condom_use", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1357AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step7.condom_use.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step7.condom_use.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "no", + "text": "{{anc_profile.step7.condom_use.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step7.condom_use.v_required.err}}" + } + }, + { + "key": "condom_counseling_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.condom_counseling_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.condom_counseling_toaster.toaster_info_title}}", + "toaster_type": "problem", + "relevance": { + "step7:condom_use": { + "type": "string", + "ex": "equalTo(., \"no\")" + } + } + }, + { + "key": "alcohol_substance_enquiry", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165268AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step7.alcohol_substance_enquiry.label}}", + "label_text_style": "bold", + "label_info_text": "{{anc_profile.step7.alcohol_substance_enquiry.label_info_text}}", + "options": [ + { + "key": "yes", + "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.yes.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "no", + "text": "{{anc_profile.step7.alcohol_substance_enquiry.options.no.text}}", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step7.alcohol_substance_enquiry.v_required.err}}" + } + }, + { + "key": "alcohol_substance_use", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "check_box", + "label": "{{anc_profile.step7.alcohol_substance_use.label}}", + "label_text_style": "bold", + "exclusive": [ + "none" + ], + "options": [ + { + "key": "none", + "text": "{{anc_profile.step7.alcohol_substance_use.options.none.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.none.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1107AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "alcohol", + "text": "{{anc_profile.step7.alcohol_substance_use.options.alcohol.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.alcohol.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "143098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "marijuana", + "text": "{{anc_profile.step7.alcohol_substance_use.options.marijuana.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.marijuana.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165221AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "cocaine", + "text": "{{anc_profile.step7.alcohol_substance_use.options.cocaine.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.cocaine.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "155793AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "injectable_drugs", + "text": "{{anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.injectable_drugs.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "157351AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "other", + "text": "{{anc_profile.step7.alcohol_substance_use.options.other.text}}", + "translation_text": "anc_profile.step7.alcohol_substance_use.options.other.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "5622AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": true, + "err": "{{anc_profile.step7.alcohol_substance_use.v_required.err}}" + } + }, + { + "key": "other_substance_use", + "openmrs_entity_parent": "165222AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "openmrs_entity": "concept", + "openmrs_entity_id": "160632AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "edit_text", + "hint": "{{anc_profile.step7.other_substance_use.hint}}", + "edit_type": "edit_text", + "v_required": { + "value": false, + "err": "{{anc_profile.step7.other_substance_use.v_required.err}}" + }, + "relevance": { + "step7:alcohol_substance_use": { + "ex-checkbox": [ + { + "or": [ + "other" + ] + } + ] + } + } + }, + { + "key": "substance_use_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.substance_use_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.substance_use_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.substance_use_toaster.toaster_info_title}}", + "toaster_type": "problem", + "relevance": { + "step7:alcohol_substance_use": { + "ex-checkbox": [ + { + "or": [ + "alcohol", + "marijuana", + "cocaine", + "injectable_drugs", + "other" + ] + } + ] + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165257AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "hiv_risk", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "hiv_counselling_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step7.hiv_counselling_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step7.hiv_counselling_toaster.toaster_info_title}}", + "toaster_type": "problem", + "relevance": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_relevance_rules.yml" + } + } + } + } + ] + }, + "step8": { + "title": "{{anc_profile.step8.title}}", + "fields": [ + { + "key": "partner_hiv_status", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1436AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "type": "native_radio", + "label": "{{anc_profile.step8.partner_hiv_status.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "dont_know", + "text": "{{anc_profile.step8.partner_hiv_status.options.dont_know.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.dont_know.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "1067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "positive", + "text": "{{anc_profile.step8.partner_hiv_status.options.positive.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.positive.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "703AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + { + "key": "negative", + "text": "{{anc_profile.step8.partner_hiv_status.options.negative.text}}", + "translation_text": "anc_profile.step8.partner_hiv_status.options.negative.text", + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "664AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + } + ], + "v_required": { + "value": false, + "err": "{{anc_profile.step8.partner_hiv_status.v_required.err}}" + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "key": "partner_hiv_positive", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "bring_partners_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step8.bring_partners_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step8.bring_partners_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step8.bring_partners_toaster.toaster_info_title}}", + "toaster_type": "info", + "relevance": { + "step8:partner_hiv_status": { + "type": "string", + "ex": "equalTo(., \"dont_know\")" + } + } + }, + { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_entity_id": "165257AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "key": "hiv_risk", + "type": "hidden", + "label_text_style": "bold", + "text_color": "#FF0000", + "v_required": { + "value": false + }, + "calculation": { + "rules-engine": { + "ex-rules": { + "rules-file": "profile_calculation_rules.yml" + } + } + } + }, + { + "key": "hiv_risk_counselling_toaster", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "type": "toaster_notes", + "text": "{{anc_profile.step8.hiv_risk_counselling_toaster.text}}", + "text_color": "#000000", + "toaster_info_text": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text}}", + "toaster_info_title": "{{anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title}}", + "toaster_type": "problem", + "relevance": { + "step8:partner_hiv_status": { + "type": "string", + "ex": "equalTo(., \"positive\")" + } + } + } + ] + }, + "properties_file_name": "anc_profile" } \ No newline at end of file diff --git a/opensrp-anc/src/main/resources/anc_profile.properties b/opensrp-anc/src/main/resources/anc_profile.properties index 1d8d3ec50..989d39492 100644 --- a/opensrp-anc/src/main/resources/anc_profile.properties +++ b/opensrp-anc/src/main/resources/anc_profile.properties @@ -1,4 +1,47 @@ +anc_profile.step1.title = Demographic Info + +anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. +anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment +anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? + +anc_profile.step1.educ_level.label = Highest level of school +anc_profile.step1.educ_level.v_required.err = Please specify your education level +anc_profile.step1.educ_level.options.none.text = None +anc_profile.step1.educ_level.options.dont_know.text = Don't know +anc_profile.step1.educ_level.options.primary.text = Primary +anc_profile.step1.educ_level.options.secondary.text = Secondary +anc_profile.step1.educ_level.options.higher.text = Higher + +anc_profile.step1.marital_status.label = Marital status +anc_profile.step1.marital_status.v_required.err = Please specify your marital status +anc_profile.step1.marital_status.options.married.text = Married or living together +anc_profile.step1.marital_status.options.divorced.text = Divorced / separated +anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) +anc_profile.step1.marital_status.options.widowed.text = Widowed + +anc_profile.step1.occupation.label = Occupation +anc_profile.step1.occupation.hint = Occupation +anc_profile.step1.occupation.v_required.err = Please select at least one occupation +anc_profile.step1.occupation.options.unemployed.text = Unemployed +anc_profile.step1.occupation.options.student.text = Student +anc_profile.step1.occupation.options.government_officer.text = Government Officer +anc_profile.step1.occupation.options.employee.text = Employee +anc_profile.step1.occupation.options.entrepreneur.text = Entrepreneur +anc_profile.step1.occupation.options.housewife.text = Housewife +anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) anc_profile.step1.occupation.options.other.text = Other (specify) + +anc_profile.step1.occupation_other.hint = Specify +anc_profile.step1.occupation_other.v_required.err = Please specify your occupation +anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation + +anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling +anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits + + + + anc_profile.step7.caffeine_intake.options.more_than_48_pieces_squares_of_chocolate.text = More than 12 bars (50 g) of chocolate anc_profile.step2.ultrasound_done.label_info_text = An ultrasound is recommended for all women before 24 weeks gestation or even after if deemed necessary (e.g. to identify the number of fetuses, fetal presentation, or placenta location). anc_profile.step2.ultrasound_done.options.no.text = No @@ -26,7 +69,7 @@ anc_profile.step7.other_substance_use.hint = Specify anc_profile.step3.prev_preg_comps_other.v_required.err = Please specify other past pregnancy problems anc_profile.step3.prev_preg_comps.options.macrosomia.text = Macrosomia anc_profile.step2.select_gest_age_edd_label.v_required.err = Select preferred gestational age -anc_profile.step1.educ_level.options.secondary.text = Secondary + anc_profile.step5.title = Immunisation Status anc_profile.step3.gravida.v_required.err = No of pregnancies is required anc_profile.step3.prev_preg_comps.label = Any past pregnancy problems? @@ -66,7 +109,7 @@ anc_profile.step2.facility_in_us_toaster.toaster_info_text = An ultrasound is re anc_profile.step2.ultrasound_gest_age_days.v_required.err = Please give the GA from ultrasound - days anc_profile.step2.ultrasound_done.options.yes.text = Yes anc_profile.step7.tobacco_cessation_toaster.toaster_info_title = Tobacco cessation counseling -anc_profile.step1.occupation.hint = Occupation + anc_profile.step3.live_births_label.text = No. of live births (after 22 weeks) anc_profile.step7.caffeine_intake.label = Daily caffeine intake anc_profile.step6.medications.options.metoclopramide.text = Metoclopramide @@ -74,17 +117,17 @@ anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_title = HIV risk cou anc_profile.step4.surgeries.options.cervical_cone.text = Partial removal of the cervix (cervical cone) anc_profile.step5.flu_immun_status.label = Flu immunisation status anc_profile.step7.alcohol_substance_use.label = Uses alcohol and/or other substances? -anc_profile.step1.occupation_other.v_required.err = Please specify your occupation + anc_profile.step7.alcohol_substance_use.options.other.text = Other (specify) -anc_profile.step1.educ_level.options.higher.text = Higher + anc_profile.step3.substances_used.v_required.err = Please select at least one alcohol or illicit substance use anc_profile.step6.medications.label = Current medications anc_profile.step6.medications.options.magnesium.text = Magnesium anc_profile.step6.medications.options.anthelmintic.text = Anthelmintic anc_profile.step3.stillbirths_label.text = No. of stillbirths (after 22 weeks) -anc_profile.step1.educ_level.v_required.err = Please specify your education level + anc_profile.step4.health_conditions.options.hiv.text = HIV -anc_profile.step1.hiv_risk_counseling_toaster.text = HIV risk counseling + anc_profile.step7.tobacco_user.v_required.err = Please select if woman uses any tobacco products anc_profile.step3.substances_used.options.other.text = Other (specify) anc_profile.step6.medications.options.calcium.text = Calcium @@ -93,10 +136,9 @@ anc_profile.step6.title = Medications anc_profile.step6.medications.options.hemorrhoidal.text = Hemorrhoidal medication anc_profile.step8.hiv_risk_counselling_toaster.text = HIV risk counseling anc_profile.step2.sfh_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits anc_profile.step4.surgeries.options.dont_know.text = Don't know anc_profile.step6.medications.v_required.err = Please select at least one medication -anc_profile.step1.occupation.options.student.text = Student + anc_profile.step3.gestational_diabetes_toaster.toaster_info_title = Gestational diabetes mellitus (GDM) risk counseling anc_profile.step3.substances_used.options.injectable_drugs.text = Injectable drugs anc_profile.step5.flu_immun_status.options.unknown.text = Unknown @@ -110,14 +152,14 @@ anc_profile.step5.flu_immun_status.v_required.err = Please select flu immunisati anc_profile.step3.last_live_birth_preterm.options.yes.text = Yes anc_profile.step2.ultrasound_toaster.text = Ultrasound recommended anc_profile.step7.substance_use_toaster.toaster_info_text = Healthcare providers should at the earliest opportunity advise pregnant women dependent on alcohol or drugs to cease their alcohol or drug use and offer, or refer them to, detoxification services under medical supervision, where necessary and applicable. -anc_profile.step1.marital_status.options.divorced.text = Divorced / separated + anc_profile.step5.tt_immun_status.options.3_doses.text = Fully immunized anc_profile.step8.title = Partner's HIV Status anc_profile.step4.allergies.options.iron.text = Iron anc_profile.step6.medications.options.arvs.text = Antiretrovirals (ARVs) anc_profile.step6.medications.options.multivitamin.text = Multivitamin anc_profile.step7.shs_exposure.options.no.text = No -anc_profile.step1.educ_level.options.dont_know.text = Don't know + anc_profile.step7.caffeine_reduction_toaster.toaster_info_title = Caffeine reduction counseling anc_profile.step7.caffeine_reduction_toaster.text = Caffeine reduction counseling anc_profile.step7.second_hand_smoke_toaster.toaster_info_text = Provide pregnant women, their partners and other household members with advice and information about the risks of second-hand smoke (SHS) exposure from all forms of smoked tobacco, as well as strategies to reduce SHS in the home. @@ -156,16 +198,16 @@ anc_profile.step3.live_births.v_required.err = Live births is required anc_profile.step7.condom_use.options.no.text = No anc_profile.step3.prev_preg_comps.options.baby_died_in_24_hrs.text = Baby died within 24 hours of birth anc_profile.step4.surgeries_other_gyn_proced.hint = Other gynecological procedures -anc_profile.step1.occupation_other.v_regex.err = Please specify your occupation -anc_profile.step1.marital_status.label = Marital status + + anc_profile.step7.title = Woman's Behaviour anc_profile.step4.surgeries_other.hint = Other surgeries anc_profile.step3.substances_used.options.cocaine.text = Cocaine -anc_profile.step1.educ_level.options.primary.text = Primary + anc_profile.step4.health_conditions.options.other.text = Other (specify) anc_profile.step6.medications_other.v_required.err = Please specify the Other medications anc_profile.step7.second_hand_smoke_toaster.text = Second-hand smoke counseling -anc_profile.step1.educ_level.options.none.text = None + anc_profile.step3.prev_preg_comps.options.pre_eclampsia.text = Pre-eclampsia anc_profile.step7.condom_counseling_toaster.toaster_info_text = Advise to use condoms to prevent Zika, HIV and other STIs. If necessary, re-assure it is ok to continue to have sex during pregnancy. anc_profile.step4.health_conditions.v_required.err = Please select at least one chronic or past health conditions @@ -180,14 +222,14 @@ anc_profile.step2.ultrasound_done.label = Ultrasound done? anc_profile.step4.pre_eclampsia_two_toaster.toaster_info_text = The use of aspirin after 12 weeks gestation is recommended as well as calcium if low dietary intake area. Please also provide counseling. anc_profile.step6.medications.options.iron.text = Iron anc_profile.step2.sfh_gest_age.hint = GA from SFH or palpation - weeks -anc_profile.step1.hiv_risk_counseling_toaster.toaster_info_title = HIV risk counseling + anc_profile.step4.health_conditions.options.kidney_disease.text = Kidney disease anc_profile.step7.tobacco_cessation_toaster.text = Tobacco cessation counseling anc_profile.step4.health_conditions.options.diabetes.text = Diabetes, pre-existing type 1 -anc_profile.step1.occupation_other.hint = Specify + anc_profile.step2.sfh_ultrasound_gest_age_selection.options.sfh.text = Using SFH or abdominal palpation anc_profile.step8.bring_partners_toaster.text = Advise woman to bring partner(s) in for HIV testing. -anc_profile.step1.marital_status.v_required.err = Please specify your marital status + anc_profile.step8.partner_hiv_status.v_required.err = Please select one anc_profile.step7.alcohol_substance_use.v_required.err = Please specify if woman uses alcohol/abuses substances anc_profile.step8.hiv_risk_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion\n- Risk reduction counselling\n- PrEP with emphasis on adherence\n- Emphasize importance of follow-up ANC contact visits @@ -202,7 +244,7 @@ anc_profile.step4.surgeries.hint = Any surgeries? anc_profile.step4.surgeries.options.removal_of_ovarian_cysts.text = Removal of ovarian cysts anc_profile.step4.health_conditions.hint = Any chronic or past health conditions? anc_profile.step7.tobacco_user.label = Uses tobacco products? -anc_profile.step1.occupation.label = Occupation + anc_profile.step7.alcohol_substance_enquiry.v_required.err = Please select if you use any tobacco products anc_profile.step3.prev_preg_comps.options.dont_know.text = Don't know anc_profile.step6.medications.options.hematinic.text = Hematinic @@ -212,14 +254,14 @@ anc_profile.step7.alcohol_substance_use.options.alcohol.text = Alcohol anc_profile.step7.caffeine_intake.v_required.err = Daily caffeine intake is required anc_profile.step4.allergies.options.albendazole.text = Albendazole anc_profile.step5.tt_immunisation_toaster.text = TTCV immunisation recommended -anc_profile.step1.educ_level.label = Highest level of school + anc_profile.step7.second_hand_smoke_toaster.toaster_info_title = Second-hand smoke counseling anc_profile.step7.alcohol_substance_enquiry.options.yes.text = Yes anc_profile.step4.allergies.options.penicillin.text = Penicillin -anc_profile.step1.occupation.options.unemployed.text = Unemployed + anc_profile.step2.ultrasound_done.v_required.err = Ultrasound done is required -anc_profile.step1.marital_status.options.single.text = Never married and never lived together (single) -anc_profile.step1.marital_status.options.widowed.text = Widowed + + anc_profile.step7.shs_exposure.label = Anyone in the household smokes tobacco products? anc_profile.step4.health_conditions_other.hint = Other health condition - specify anc_profile.step6.medications.options.antivirals.text = Antivirals @@ -258,17 +300,17 @@ anc_profile.step4.allergies.options.none.text = None anc_profile.step3.stillbirths.v_required.err = Still births is required anc_profile.step7.tobacco_user.options.no.text = No anc_profile.step3.prev_preg_comps_other.v_regex.err = Please specify other past pregnancy problems -anc_profile.step1.marital_status.options.married.text = Married or living together + anc_profile.step4.hiv_diagnosis_date.v_required.err = Please enter the HIV diagnosis date anc_profile.step7.shs_exposure.options.yes.text = Yes anc_profile.step8.bring_partners_toaster.toaster_info_text = Advise woman to find out the status of her partner(s) or to bring them during the next visit to get tested. anc_profile.step4.surgeries.options.removal_of_fibroid.text = Removal of fibroids (myomectomy) anc_profile.step4.hiv_diagnosis_date.hint = HIV diagnosis date anc_profile.step7.shs_exposure.v_required.err = Please select if you use any tobacco products -anc_profile.step1.occupation.options.informal_employment_sex_worker.text = Employment that puts woman at increased risk for HIV (e.g. sex worker) + anc_profile.step4.allergies.options.mebendazole.text = Mebendazole anc_profile.step7.condom_use.label = Uses (male or female) condoms during sex? -anc_profile.step1.occupation.v_required.err = Please select at least one occupation + anc_profile.step6.medications.options.analgesic.text = Analgesic anc_profile.step7.hiv_counselling_toaster.toaster_info_text = Provide comprehensive HIV prevention options:\n- STI screening and treatment (syndromic and syphilis)\n- Condom promotion \n- Risk reduction counselling \n- PrEP with emphasis on adherence \n- Emphasize importance of follow-up ANC contact visits anc_profile.step2.lmp_gest_age_selection.v_required.err = Please select preferred gestational age @@ -295,14 +337,12 @@ anc_profile.step4.health_conditions.options.hypertension.text = Hypertension anc_profile.step5.tt_immunisation_toaster.toaster_info_text = TTCV is recommended for all pregnant women who are not fully immunised against tetanus to prevent neonatal mortality from tetanus. anc_profile.step6.medications.options.cotrimoxazole.text = Cotrimoxazole anc_profile.step6.medications.options.thyroid.text = Thyroid medication -anc_profile.step1.title = Demographic Info + anc_profile.step2.ultrasound_done.label_info_title = Ultrasound done? anc_profile.step4.hiv_diagnosis_date_unknown.options.yes.text = HIV diagnosis date unknown? anc_profile.step2.lmp_known.label_info_text = LMP = first day of Last Menstrual Period. If the exact date is unknown, but the period of the month is known, use day 5 for beginning of the month, day 15 for middle of the month and day 25 for end of the month. If completely unknown, select 'No' and calculate GA from ultrasound (or SFH or abdominal palpation as a last resort). anc_profile.step2.ultrasound_toaster.toaster_info_title = Ultrasound recommended -anc_profile.step1.headss_toaster.text = Client is an adolescent. Conduct Home-Eating-Activity-Drugs-Sexuality-Safety-Suicide (HEADSS) assessment. -anc_profile.step1.headss_toaster.toaster_info_text = Questions to consider include:\n\n- Whether the adolescent studies/works?\n- How they perceive their home situation?\n- How they perceive their relation with their teachers and fellow students/employers and colleagues?\n- Whether there have been any recent changes in their situation?\n- Whether they feel safe at home, in the community, in their place of study or work; on the road, etc? -anc_profile.step1.headss_toaster.toaster_info_title = Conduct HEADSS assessment + anc_profile.step3.prev_preg_comps.options.vacuum.text = Vacuum delivery anc_profile.step4.health_conditions.options.cancer_other.text = Cancer - other site (specify) anc_profile.step4.health_conditions.options.gest_diabetes.text = Diabetes arising in pregnancy (gestational diabetes) From b0e9e120385605ec15c91ad992623da64f01e6f6 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Fri, 9 Dec 2022 16:02:53 +0700 Subject: [PATCH 222/302] Bump version to 1.6.17 --- reference-app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-app/build.gradle b/reference-app/build.gradle index 1cb65e82f..07770e281 100644 --- a/reference-app/build.gradle +++ b/reference-app/build.gradle @@ -29,7 +29,7 @@ jacoco { // This variables are used by the version code & name generators ext.versionMajor = 1 ext.versionMinor = 6 -ext.versionPatch = 16 +ext.versionPatch = 17 ext.versionClassifier = null ext.isSnapshot = false ext.minimumSdkVersion = androidMinSdkVersion From 76f0b275df9ef96613225c756ae03b7c245b94d6 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Thu, 26 Jan 2023 22:34:53 +0700 Subject: [PATCH 223/302] Update Site Characteristics form --- .../json.form/anc_site_characteristics.json | 300 +++++++++++------- .../smartregister/anc/library/AppConfig.java | 3 + .../anc_site_characteristics_in.properties | 19 ++ 3 files changed, 204 insertions(+), 118 deletions(-) create mode 100644 opensrp-anc/src/main/resources/anc_site_characteristics_in.properties diff --git a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json index 0ed89bc63..9f66332d7 100644 --- a/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json +++ b/opensrp-anc/src/main/assets/json.form/anc_site_characteristics.json @@ -1,120 +1,184 @@ { - "count": "1", - "display_scroll_bars": true, - "encounter_type": "Site Characteristics", - "entity_id": "", - "relational_id": "", - "metadata": { - "start": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "start", - "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "end": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "end", - "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "today": { - "openmrs_entity_parent": "", - "openmrs_entity": "encounter", - "openmrs_entity_id": "encounter_date" - }, - "deviceid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "deviceid", - "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "subscriberid": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "subscriberid", - "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "simserial": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "simserial", - "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "phonenumber": { - "openmrs_entity_parent": "", - "openmrs_entity": "concept", - "openmrs_data_type": "phonenumber", - "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - }, - "encounter_location": "", - "look_up": { - "entity_id": "", - "value": "" - } - }, - "step1": { - "title": "{{anc_site_characteristics.step1.title}}", - "fields": [ - { - "key": "label_site_ipv_assess", - "type": "label", - "text": "{{anc_site_characteristics.step1.label_site_ipv_assess.text}}", - "text_size": "22px", - "text_color": "black", - "v_required": { - "value": true, - "err": "{{anc_site_characteristics.step1.label_site_ipv_assess.v_required.err}}" - } - }, - { - "key": "site_ipv_assess", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "openmrs_data_type": "select one", - "label": "{{anc_site_characteristics.step1.site_ipv_assess.label}}", - "type": "native_radio", - "options": [ - { - "key": "1", - "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.1.text}}" - }, - { - "key": "0", - "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.0.text}}" - } - ], - "value": "", - "v_required": { - "value": "false", - "err": "{{anc_site_characteristics.step1.site_ipv_assess.v_required.err}}" - } - }, - { - "key": "site_ultrasound", - "openmrs_entity_parent": "", - "openmrs_entity": "", - "openmrs_entity_id": "", - "openmrs_data_type": "select one", - "type": "native_radio", - "label": "{{anc_site_characteristics.step1.site_ultrasound.label}}", - "options": [ - { - "key": "1", - "text": "{{anc_site_characteristics.step1.site_ultrasound.options.1.text}}" - }, - { - "key": "0", - "text": "{{anc_site_characteristics.step1.site_ultrasound.options.0.text}}" - } - ], - "value": "", - "v_required": { - "value": "true", - "err": "{{anc_site_characteristics.step1.site_ultrasound.v_required.err}}" - } - } - ] - }, - "properties_file_name": "anc_site_characteristics" + "count": "1", + "display_scroll_bars": true, + "encounter_type": "Site Characteristics", + "entity_id": "", + "relational_id": "", + "metadata": { + "start": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "start", + "openmrs_entity_id": "163137AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "end": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "end", + "openmrs_entity_id": "163138AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "today": { + "openmrs_entity_parent": "", + "openmrs_entity": "encounter", + "openmrs_entity_id": "encounter_date" + }, + "deviceid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "deviceid", + "openmrs_entity_id": "163149AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "subscriberid": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "subscriberid", + "openmrs_entity_id": "163150AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "simserial": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "simserial", + "openmrs_entity_id": "163151AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "phonenumber": { + "openmrs_entity_parent": "", + "openmrs_entity": "concept", + "openmrs_data_type": "phonenumber", + "openmrs_entity_id": "163152AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + }, + "encounter_location": "", + "look_up": { + "entity_id": "", + "value": "" + } + }, + "step1": { + "title": "{{anc_site_characteristics.step1.title}}", + "fields": [ + { + "key": "label_site_ipv_assess", + "type": "label", + "text": "{{anc_site_characteristics.step1.label_site_ipv_assess.text}}", + "translation_text": "anc_site_characteristics.step1.label_site_ipv_assess.text", + "text_color": "black", + "label_text_style": "bold", + "v_required": { + "value": true, + "err": "{{anc_site_characteristics.step1.label_site_ipv_assess.v_required.err}}" + } + }, + { + "key": "site_ipv_assess", + "title": "Kebutuhan minimum penilaian IPV", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "label": "{{anc_site_characteristics.step1.site_ipv_assess.label}}", + "type": "native_radio", + "options": [ + { + "key": "1", + "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.1.text}}", + "translation_text": "anc_site_characteristics.step1.site_ipv_assess.options.1.text" + }, + { + "key": "0", + "text": "{{anc_site_characteristics.step1.site_ipv_assess.options.0.text}}", + "translation_text": "anc_site_characteristics.step1.site_ipv_assess.options.0.text" + } + ], + "value": "", + "v_required": { + "value": "false", + "err": "{{anc_site_characteristics.step1.site_ipv_assess.v_required.err}}" + } + }, + { + "key": "site_anc_hiv", + "title": "Epidemi HIV umum", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "label": "{{anc_site_characteristics.step1.site_anc_hiv.label}}", + "type": "native_radio", + "label_text_style": "bold", + "options": [ + { + "key": "1", + "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.1.text}}", + "translation_text": "anc_site_characteristics.step1.site_anc_hiv.options.1.text" + }, + { + "key": "0", + "text": "{{anc_site_characteristics.step1.site_anc_hiv.options.0.text}}", + "translation_text": "anc_site_characteristics.step1.site_anc_hiv.options.0.text" + } + ], + "value": "", + "v_required": { + "value": "false", + "err": "{{anc_site_characteristics.step1.site_anc_hiv.v_required.err}}" + } + }, + { + "key": "site_ultrasound", + "title": "Ketersediaan alat USG", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "type": "native_radio", + "label": "{{anc_site_characteristics.step1.site_ultrasound.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "1", + "text": "{{anc_site_characteristics.step1.site_ultrasound.options.1.text}}", + "translation_text": "anc_site_characteristics.step1.site_ultrasound.options.1.text" + }, + { + "key": "0", + "text": "{{anc_site_characteristics.step1.site_ultrasound.options.0.text}}", + "translation_text": "anc_site_characteristics.step1.site_ultrasound.options.0.text" + } + ], + "value": "", + "v_required": { + "value": "true", + "err": "{{anc_site_characteristics.step1.site_ultrasound.v_required.err}}" + } + }, + { + "key": "site_bp_tool", + "title": "Ketersediaan pengukur tekanan darah otomatis", + "openmrs_entity_parent": "", + "openmrs_entity": "", + "openmrs_entity_id": "", + "openmrs_data_type": "", + "type": "native_radio", + "label": "{{anc_site_characteristics.step1.site_bp_tool.label}}", + "label_text_style": "bold", + "options": [ + { + "key": "1", + "text": "{{anc_site_characteristics.step1.site_bp_tool.options.1.text}}", + "translation_text": "anc_site_characteristics.step1.site_bp_tool.options.1.text" + }, + { + "key": "0", + "text": "{{anc_site_characteristics.step1.site_bp_tool.options.0.text}}", + "translation_text": "anc_site_characteristics.step1.site_bp_tool.options.0.text" + } + ], + "value": "", + "v_required": { + "value": "true", + "err": "{{anc_site_characteristics.step1.site_ultrasound.v_required.err}}" + } + } + ] + }, + "properties_file_name": "anc_site_characteristics" } \ No newline at end of file diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java index d0af60e57..94f25f3ac 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/AppConfig.java @@ -1,6 +1,8 @@ package org.smartregister.anc.library; import org.smartregister.anc.library.constants.Constants; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.util.LangUtils; import java.util.Locale; @@ -10,4 +12,5 @@ public class AppConfig { /** The default locale of the app for language translations & locale-specific resources. */ public static final Locale DefaultLocale = Constants.Locales.INDONESIAN_ID; + } diff --git a/opensrp-anc/src/main/resources/anc_site_characteristics_in.properties b/opensrp-anc/src/main/resources/anc_site_characteristics_in.properties new file mode 100644 index 000000000..8a55c1cda --- /dev/null +++ b/opensrp-anc/src/main/resources/anc_site_characteristics_in.properties @@ -0,0 +1,19 @@ +anc_site_characteristics.step1.title = Karakteristik Tempat +anc_site_characteristics.step1.site_ultrasound.options.0.text = Tidak +anc_site_characteristics.step1.label_site_ipv_assess.text = 1. Apakah semua hal berikut tersedia di fasilitas Anda\: +anc_site_characteristics.step1.site_ultrasound.label = 3. Apakah mesin ultrasound tersedia dan berfungsi di fasilitas Anda dan petugas kesehatan terlatih tersedia untuk menggunakannya? +anc_site_characteristics.step1.label_site_ipv_assess.v_required.err = Mohon pilih di mana stok dikeluarkan +anc_site_characteristics.step1.site_bp_tool.options.0.text = Tidak +anc_site_characteristics.step1.site_ultrasound.options.1.text = Ya +anc_site_characteristics.step1.site_bp_tool.v_required.err = Mohon pilih di mana stok dikeluarkan +anc_site_characteristics.step1.site_anc_hiv.options.1.text = Ya +anc_site_characteristics.step1.site_bp_tool.options.1.text = Ya +anc_site_characteristics.step1.site_ipv_assess.v_required.err = Mohon pilih di mana stok dikeluarkan +anc_site_characteristics.step1.site_ipv_assess.label = (a) Protokol atau prosedur standar operasional untuk Kekerasan terhadap Perempuan (KtP)

(b) Petugas kesehatan terlatih tentang cara bertanya terkait KtP dan cara memberikan respon minimal atau lebih

(c) Lingkungan yang tertutup

(d) Cara untuk memastikan kerahasiaan

(e) Waktu untuk memungkinkan pengungkapan yang tepat

(f) Sebuah sistem untuk rujukan di tempat +anc_site_characteristics.step1.site_anc_hiv.options.0.text = Tidak +anc_site_characteristics.step1.site_anc_hiv.label = 2. Apakah prevalensi HIV secara konsisten lebih besar dari 1% pada ibu hamil yang mengunjungi klinik antenatal di fasilitas Anda? +anc_site_characteristics.step1.site_ipv_assess.options.0.text = Tidak +anc_site_characteristics.step1.site_ipv_assess.options.1.text = Ya +anc_site_characteristics.step1.site_anc_hiv.v_required.err = Mohon pilih di mana stok dikeluarkan +anc_site_characteristics.step1.site_ultrasound.v_required.err = Mohon pilih di mana stok dikeluarkan +anc_site_characteristics.step1.site_bp_tool.label = 4. Apakah fasilitas Anda menggunakan alat pengukur tekanan darah otomatis? From 2412dd4932adffac923e79c5e15c6bacef24754c Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Thu, 26 Jan 2023 22:35:08 +0700 Subject: [PATCH 224/302] Add setDefaultLocale function --- .../smartregister/anc/library/activity/BaseActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java index ef72630a2..1f91fc89c 100644 --- a/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java +++ b/opensrp-anc/src/main/java/org/smartregister/anc/library/activity/BaseActivity.java @@ -7,10 +7,13 @@ import androidx.appcompat.app.AppCompatActivity; import org.smartregister.anc.library.AncLibrary; +import org.smartregister.anc.library.AppConfig; import org.smartregister.anc.library.R; import org.smartregister.anc.library.contract.SiteCharacteristicsContract; import org.smartregister.anc.library.util.ANCJsonFormUtils; import org.smartregister.anc.library.util.ConstantsUtils; +import org.smartregister.anc.library.util.Utils; +import org.smartregister.util.LangUtils; import java.util.Map; @@ -46,6 +49,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { @Override public void launchSiteCharacteristicsSettingsForm() { + setDefaultLocale(); ANCJsonFormUtils.launchSiteCharacteristicsForm(this); } @@ -100,4 +104,9 @@ public void launchSiteCharacteristicsSettingsFormForEdit(Map cha Timber.e(e); } } + + public void setDefaultLocale() { + LangUtils.saveLanguage(getApplication(), AppConfig.DefaultLocale.getLanguage()); + Utils.saveLanguage(AppConfig.DefaultLocale.getLanguage()); + } } From 17cff74cc8790c89012b91dd18ee0b80ed6b6a19 Mon Sep 17 00:00:00 2001 From: Aria Dhanang Date: Thu, 26 Jan 2023 23:23:40 +0700 Subject: [PATCH 225/302] Changed the app icon to SID logo --- .../src/main/ic_launcher-playstore.png | Bin 0 -> 30077 bytes .../main/res/drawable-hdpi/ic_launcher.png | Bin 7714 -> 0 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 3935 -> 0 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 ---- .../main/res/drawable-xhdpi/ic_launcher.png | Bin 11603 -> 0 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 22261 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin 36750 -> 0 bytes .../src/main/res/drawable/ic_launcher.png | Bin 36750 -> 0 bytes .../res/drawable/ic_launcher_background.xml | 185 ++---------------- .../res/drawable/ic_launcher_foreground.xml | 89 ++++++--- .../res/mipmap-anydpi-v26/ic_launcher.xml | 4 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2576 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4605 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1620 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2791 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3650 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6662 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6020 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10810 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8389 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15795 bytes reference-app/src/main/AndroidManifest.xml | 2 +- .../src/main/ic_launcher-playstore.png | Bin 0 -> 11690 bytes .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 7714 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 3935 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 11603 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 22261 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 36750 -> 0 bytes 29 files changed, 85 insertions(+), 234 deletions(-) create mode 100644 opensrp-anc/src/main/ic_launcher-playstore.png delete mode 100755 opensrp-anc/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100755 opensrp-anc/src/main/res/drawable-mdpi/ic_launcher.png delete mode 100644 opensrp-anc/src/main/res/drawable-v24/ic_launcher_foreground.xml delete mode 100755 opensrp-anc/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100755 opensrp-anc/src/main/res/drawable-xxhdpi/ic_launcher.png delete mode 100755 opensrp-anc/src/main/res/drawable-xxxhdpi/ic_launcher.png delete mode 100755 opensrp-anc/src/main/res/drawable/ic_launcher.png rename {reference-app => opensrp-anc}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (94%) create mode 100644 opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 opensrp-anc/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 opensrp-anc/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 opensrp-anc/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 opensrp-anc/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 opensrp-anc/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 opensrp-anc/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 reference-app/src/main/ic_launcher-playstore.png delete mode 100755 reference-app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100755 reference-app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100755 reference-app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100755 reference-app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100755 reference-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/opensrp-anc/src/main/ic_launcher-playstore.png b/opensrp-anc/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..03a7ad5da8907a8a1d4d87674b28664bd7ba60d4 GIT binary patch literal 30077 zcmeFZ=RaIu)Hi$#Vw5m???g$WM(+$EM2SR*DAA)wjXoIByCBg?km$YlM2Q~Vs3A)9 zUIz0Vzw3VP&+`{NudY|ehjaE`d+pWNcL~?le0-OHjsO6FyK1WNX8-^Je}n+gJK*E^ z{rDvSxWm=p3eVpgZ)f05GrTwnbwIHFexc2yX!DyCC!W{Hd#~jZ59doT!tD!tizhw| zf}e8-isXeUvLqqNp1{7S*X&;JN%eCaWqg`(`d53=GVIDExHvyE!*h1E+pwOA7U4p| z6vKWUh@eRnp{&RaKMvsb7X)lrEa3Aw3?E=c!g7OD0q~D7N;pIwd=|2h0pQDU+;{*6 zK6%4%5a3fs;eS82Oe`hf9rYf zLai0%0dhkJ)SC^R{lD&6yAn5crSBYfYU~^*UUU)Pd@IOw5nFhl=W}(?GvBn=dY_dA zt{exza`7&v+R}Yi?yi3zdgnOrZntY^QqQEj1juoB)vKF4=I%PEUuu5Zk z*$~|=X6qP;TM4fBTbE5FL_Un~@5Oos%28@v!eeVYFUsR+C`}76UBzj>I_y6cPz>W!x_xQ&XgEXaRDV4` zLv(v%g$PSvSo#9DU76ZwwS@Q_y@+un;Y4n*-QJ&~WAkXkPwKLUvH+R?dDT?j9}8jR zfAM!={YLpGD=Ylvf8-xb8V>EW`V2l5RG#h=6UJ$ubERen%2|~@)QfS8aU(aL+%6}y z+lp$S)PqW$-$dDTymqDJ0>U8WkF=qq8K8|BwS4WSW6t5k=o|0>NOc|hg99`GXNv)C z=pMP7HzYjB4ak3s#K_dHS*5aWFQLJGv;tnG1MQAYJECWGZP$ZL&!D5Yw`-|%N4?t} z*R|U{Yb$H;J9C)6SYJt^H@r}(z}!TC_n+)Iv$ljH44qmgo~DbBGW|v=?;j1zc{;UT z(-09` ziMrdRR^`AS?yn`c^LpgvvzUOgmd+uWa7r0m7#C1T5te8Djirg;nHa+10}q$9^OC%n z%?OK_@453sc8c7=TZ$F`VVj>F^xWkFwP`Tr;Hj9=phNS!!RwQy0Vuo?xq8 zj6?(_5R6CSL4Hpo)$M`GHOC#}fa{Z|v3-mB%BDYqVY%-AEv7FTaC6bOzF+Vuf30?* zac$=qkJ)c^j;{%c;;ay21EMxed=HfO#J8!$9p}V7=iR45W|e8xkYbCzRX%6)o-I7s ztZ+Nf?&T_L%Vr(691Syj3=I-hIR91~A{7kSlc~MBTc>7bxeCA*tYes=n~VPFogC3? z+A%DQxw;Z7T>XE(ZB6kC*h)>Deq|?;4_WX}yTmNFaorNo3bY53<7bN^9LBPYJZ3Bx zo+&D0A#EOlT3j7QBHOFij)z_*v2z^BR-tTnsKv*~g#Y{tM9~W0s{>dL_QJU`q1Q6s zT8@9KM?j#XW}sx)knS}nIvz3EopjXr96eqCi!!-eb!7hpe+ zXMgv^{+Mnx&FuFcd0<^sYib^^I)Xm;O5Q?(MVJYD{svH7 zRs?9-7Bh`dAYdiR;CEC9n+4Il|9yf>UECnG=eAojC8-Mtcr#0R*ypdr1?(?}GV|hV zhf)2vLw3aC{_@bEq}{ZHSk_INAm)d3;M% zr~Dac%Tdlo9`rtjl2xWiN@iwulrGf|bbC+z`Ush016qbs553RpoMwEsaJyMT^&P&*dXT7&3 z=334~YcHPu+2X!eJ*K(5!cn28i3JZ7wocMIZ!^ec!T3)Zd3vF-efK-?7XCq$?;yFE zK;J`v(2-ug$Wh8bd0DS>9vI*;SlgfZ3`yKwU&w+Ml0?lrHig8-|9}CmgOoQxdQc!; zF3;bCNaM(8$|Rtrt`8Ou!N+2axRpnSrC8aE9}Va|>lE4bkJ~jdV&4QG%Jaz!hY4Jr z)-4a;tMDKI(lI8O%c+4ySJ1OH;xYS#ws)36#VD0+(&y{Fk@aE2qDv82{^zWoCYYW3kD?7W_9@F>Li#G)c6i zm**t6H27vBgRN$aO% z&(7>h8@liFYm6&EN991te6&30YUjA%Ww%Sen7XZ+V$xb6Wdb9(+-|TI)BzYyazg*4 zqW$r1$x4T`8(7aUi4Sp8z~5!Fz;RTGj!`hq><!Y~SO?zj((HHot%3QbyzHna zAGGr^GRYS^eLLY#7T@Q&jy#9i#X#c8C z8BKYmo#1qkI9BU`G{buidbAeqOmme1+>#K)k)>Z-NJD_=O~p>tY@trxzqad0*~Jc9 zMEw0>9J<;^k;!>>0ThoU%Bwa;% z&uQ&SF#T%MaO(9)-BQ*+**-9=s`sNxbNTgI3T?kGd*yuS336DO3(HIo@C9Sg-9S7h zXidK@`{Nk5ENw?Y0F6(?DEVl7k`59mjZ*@Hu|P>s8%v>E!&HYU| zleyD>79-o3`WCSN_`-I#kBf`BZ44L43s5|w*sj>Aq*3!@h$Rh(E6DWz6-hLGs?+V% z1X_vbiu%xCaLH2AR%^IcP?mf8yY9;NdC#(wPX#?abAENMRfANHSwCCR^PihGa=ZPp zK{HH|ffI&{+g_06|BCuqYzWy=<*Y;9{Mrtb=EpF<>Jj6Vu}{e%7E%C|R~_r6_U^0q z0XYG7ZRg5^cWHm0>4PqCuC$4Y8h6?z?=!t{{=02Zd$yr~`(<$d;US$m(Tt)vv5u=aqyw`GObxEAhNrC&{lDUV?H;t}G1Bw2} zd#ES(C+2$N{bDaV35QBrJZ{zCEJkXw*?f%>uq=hJ2<{~tI^ti;6v-U?Ape$pb7Ecm zr2hI8g=WwS;{|;r@36?!_?(7t2&2_A^S-6g$7k-va2$Oy8-A6_`} z2Bbj5p?0j?@VlUHo9msr#a-RAEV#TV_AiiiMxI981@d9v!BCc$B;1z+Wf1ylJdB~Z z$#Jmd{LiZSpSr^Jwq7>yxDKI=boU{LP{fQi|6{;83Jf4cj_Zm&FxO{I!!vgia)C*reQ4jA||X4M}HTzmEhn0Jf>CHmAiKk3ok9%aY+c zvfGBb%)Q<(upQ73x+Qj-T?b1Vtj?X(9Fh$psDTF)^s>J1Hx{dAK{wfq>||l~JB}9% z$l|=u;fxo8^@__ULdAL(&TFXd5Oca-grHhFc}t_Zz#NaVnnmWiv+uE9|R!A0B;S+_!0T`fjX zf(xIeT9;wvl6KdvQ31+y^ydPzBz)KG9dS?mpW{~VRM9Acl@`!LzJUPd%s`X+Qks+K zA(1`Gg9g$LpOSh4lqa;u+?WJhyKB)**BUr1wFmme@WWq#j^ShIzzh+BBQ=&VLDe#LC;W_++jaG3WCv1JOv8Tx>*?DLF-!pMUb+qAb;IFI|~@eR>%Qave-wa#EJwJ z*EqpAS*ZP;O3O7N-v*kI;*R9$v@=SN9+JJQiypy;ATIopZ*U1QfI3FM$q8j$^IyOv z@IQMqx@ru9!Tq#>mB$Q)g~fS?DodPnyntyU;YZ0hH%D2CZD0)bZug)k62&PH>7EO;^Hh!VLq`!{ zI^ImKvA1IscsYuDiTzz?_gz-&IRy;><@ssBTDdxwb?IN8Z^MGVM~A z0YP~AOI=!9cd!v)aH97yV_I_a>psXr(17G}nYs=3Ci@wKQPu9~V=nrp2_cMQ;$l#_ zM?gE`PcpWd@bGKbP=;qmYZyOqE#A?!c^{S{Wqd#drTnl;-4069v`NwrM83XUN1aTW z>@E16&C4!Qu7a-24RhWj_it)l>FlfxoD5|bA7YCr& zu}`G2^uj+fl)YFbcS0GXWMfHh+E!wuwqJTJO~1R$Q;Bu~)20-9>G$PR3z+SiDdVl( z<|EBAxZnl0M9{9 zA{c4PbPX{Rp3&~4PL04q$kxLk43 zLY~F8!;AXDNR0>!_7P{%7OQ+rMWrr|r45~$eBq#PE^VSSJiRmHkAAgmaJjwUx#;KDh8H7U zIsFk&tyq^07`Se`Ej&DG{)o?bHq~Pm%b!dJ5EE9D$}QyuehLq%Id%Y zs#8vUESC^t3a2O(+E8L+_90$1x@ad3;eZm1mfUhCxB)Y!>AH(rB$leL_Grhdk-Y#Y zwk}S}BAGwwVmWsr`xaM}e&l?-58-|fH!xGbj|;eBVs&91@-jiWk1=8RWamL~J956~ z``V~#m0Xq!Y(=;GpipnItOO)JjhHct%>Z_O2|U53&LHYl#e}hUs`u*Wsv_HK`THdm zfY)AsKe~@n4t3s!@PrSqg5x`!G9E2vc!Hi!iA09t!VtM}2juLO!lrRD+F(6-f+p%t zVj~Y_+iJqHhgVcoKt5G&=bnaT+yfgq-4Coln2Y`^PQbaDMDD8m+S_TAoiawe-l4(44t5EI3}TgWD}S2&57q3 zFsJ|0sjT(#`!xY;BLq|ocZ!Dq4aaOFABSgIvrD~$F*`x~p%UQ>g2=f9@gW$XqdQpw z1EOwvbRtIEUE0CB;K0OhP}k_SsbaO;en`=O!Um@X{dHr^CCl&I!dZi5jo4!K;z;Tp z@zZG)PB~Ct1*h5$x|c}>uwVScojz5jham2TKd>YORL;ca-E=K*W!5$$nXaqiz~CAJi!RUVGlSDUCzSsmxydfx0@9DEytC_qe~nlSt^i-?7XMs6z~rZBW#2cgTS4AJ!@TI_IGTezgw9O7>SZ z{(>vtk98pDx8bTEUkU5$X=8EQ&kA9VVCBz^^EO5KK>q>MpDx4p~Z z`_@M^I*7dhIcaJwwmn!OHA;Z9{bWBFqMbV_9*EnaWXmdgfSSt{d79>< zA*qHuVB6vxOl@bn2uDS3c>ywU7nF^+9Vy;^z_-aUA}n8 zAunDqp;y%KEuWx{zZ3M=)NpQfV9E5`C#OV=bGx_>c$oN)%qdsYNGJ|x;0%nr1iI8b zQyumVhqaLw6u$`;NNG#0&eJlvf<8%~TC@z>p4uRupLlJpU!P315ECQSsScZ2H=Q)- z+KDXJBLpfBOx`bt$S(dY`~>qGO}jDm9OvH%-6qd~rHcAxJZ26+iNmpatyh( z53Dn3QGN{TD)bX`5W?|$4irBso3OBL9a~OpcQ^9rEs?aA1%VPrEoXePv@n!ole223 zkxRhMk;;WBNPEpQ(4oIet)<{!zG&KQygv@!O*|}(=g#|O*T{!d9)(_aLp6R#Zd9G`wVc{MpswCI zqFb~sVp61qEd47gBYt?zjurd6L3!^oH2zAA)wcg9(pTrD3J0E0XMriH$``XgKf)KD z$syIBQz{WcR`VKveNkk|4HW88F#ika;C-j?2Q#mnO;XlZAvg$b#&qE!>Vkl|cOrFt z_o6SHDz|w2l`1m0^A<2J{S$LBQe?GG_Os+Kx@##}Ue(T3rd!CDh7S%rKDT)4Y;Ofc z6mGbKbgiX1c`*C#D`f3;gjd3cYX|M%^!l@*3E*K}Bwx zsqqP(@c7rvY^=9MX09X{-6|(^lovF|Z{wC!Ml*$n3cb(^W#x+I7isQKu4y$rha~JA z2Sw~0v;1t0|1h(A(@XM`-+2q?j3^}vt5^pnEQ0$jv3#|HOcv%gmCGraeXEt0ntbK2ApDJnSA}*Sc@?Q@b*?~3^G5MB*vFq?R zXwzzfGasN!v&uhR>jgS`kr1P5z;xj%T5MtCh;ble<%Z-Y85c;$!Jhfm;h)Y0KHo)Xjd^?_su#ilKg0xF))o-gq6|;IHyq zhkcIC^!W{Xky?(oN8fUPNXoA*R)%2mRZ)De4a!;sM}9oXH68+3i-SR{cE0pbluoHb z)|9v>+4-+@^@0diR`0dF3kT$0f3G=|PSJF=H$HQEqpUO#W&j%CkoNKWuE(LwyK~Rf zLm0JYx;4G+Vbv=!Lm9p(c~k*DY*y7;>u_|->8+hqEy_Y|rI$oOP& zlnDUED~cKXKm6DC^L7IQK4K~rX_yMM#{YnAs^cH(@l!nCSVhA`1^f~`LV{s~;Fb-n z=$m9iI`#dC!r`nbnjFkwib&nrLg}tEojN9BwmkZG$AkI2e8lxavr1)NG$e|4tWZIF z{EQU{YPch-EFqe3po(B`l7Z$0@E(H!TXYRNDq%+!+kh26_9HORl{gSOX8mQ+BpOi} z-3%#ZE@H5^P!1~w&ED(g>)ImEn4$iEbwl~{-ICtPze}p04KljL9UbBpQpZ_;PrYz; zq5qY-kbO?FPMw~|^?k5g!61Pv54>Py9SDo#CiB+zMHb$h?P9=`=cgm%(*jyE#D$X{nKo>ro1R_- zJ9SD675j`fjsuQnRHkVl(#w|KN4WO$p{C)zwOV$T1OUU@ZBl6_p`iac)VyXVQXm2I zKau$qv$*EkxIu1jnD;=cpm9g8kmx<$E^beaA?&^|GOSyfW)pev!pdtA3vYaGKsYo* zLyU&~U$m&p?(rCXUvM!CyDcLnQ(gI=rPu&B$Iov&dj{=RwVWM-*A@J6LjogGjd^qd z7_YU&Yv)WlypTN0r_JEOp^>`!TyGDVcTzu_x`U?&9oNa^CThha_`;A$9Vbj0R zy4V$S7BIhcRWc~+Gw9G#<7%BT!L9e>2_)UO%HMt8be+mX+P9dkc%d!yl-JZ!ne-#{ zlT}zQ6ifd7=YJjw&@$mHM-=c&&YFF!Fe}pw~enGp>5c-Zr3e=lsmb)BWrCR>35o zcC3IU^v*0#Kzo5R&=Mc0ME51t^-s{eOQf(tt&7NAkgPj)Y$j6ljsuo{?=CI3rKkDW zM-RUjl^)tYgyCk>#Q&!`pR#QRyGW!we~^ltr7e!n-Il7NgsD0A8 z?{2(WGL2mA0n4^m4b9zrfpD7b_LxnAT*_KMy8G&Y_H6RyslwIQ0L$VO>*M}sN^QSc zF#W2jn;%~O`?tM(*`888pOeywiBk9rjtB|}kAJBI6Bi6wLxzpO@D%$we5on@YBQ+>C4r7Z2 z+9h;IhxxA2tBG38I*s5<@zp)QAnCH~OJZC9?8ggrcEOU+CT&41Yo_WYy^uv%-2>8s zvU#Yojwm|GSs#K`68F zksjH0wQl`WQWgK7EoZ0moUj9q24C@Mc^}`!G8WDC8FRPCkf#-CbF~cwM??Sv!SC zZ+t*Yur6@sz^MJ~oIwOKot)BOmkUAm9}T_nOaRMh(FDlT#mGwYn77a>mQ~K;+E=xl zfxcET61h@-4DOTed&n<4zvUQ+EL|N?xlv)t@h4{}2l&I(DeG#jAxHzE_`hP!S#bzR-M|Fg5`h#p>0TvjyEpIe$Q=!0wQXd#kMLsM$veh|O2)?U@?2kUNRH;3zQ( z3cTrD4N}-H?4eM|)b^l^dK=oqw3SBG+ak3ZXRkwv12plf1d?+#3`pkRM2+(1IUD9u zDacRH)}}laEfrJzFe>{q)Om!1-^%@RRRPA+zF8$mR>Y+LuU9ktw29QmmtQ#~fiI7u zB@{;<_YH-_m`0yUyv6xS^{_-iMHe%x|3AQj61$z@Qs=Qq!nP^{$L3Qrmf3%PHQ@EP zPB~4Nt9&y@)yl2-V~z_(hd7IXuvZbGN*$kOYAZjiaJqEZWPKx4`7?e#Okjp}pzLL; za={S$H&rc<9SX~T1{aA33R&!mbzE=jwhG7A$o+3;T7G^%09~9U&f!Gi_C_C%X+zUM zmFGZ5JUsRJ&q;%VHI>+1pF!F4Y#kcz5*xNz;j_7)_&_=>tEH6O(|b4bo{NmOCNEYb zN&ocBB>Wuy-BLY4_%P~}^c9>4X87E6AOWvKX1yx+Gst(M+(?TW!}YkyRE+VPkk3*( z)hd4_eF2@os8MyNBq0+|%o)lh#WqKDU;gn=-6|}hj;r+12@`vw8(f3(2{yQ)YoW9SZ zZiqFOw3Ca&Z_=P<WnU$SxfL9wJmA@1{@6; zrUNVn(O>-)^a=DQf44ab>AisA=4?BYx^5%SP5e$?I6ZF9{YeQy42Hl@;(!g-4eJH( zq6)B9C`SAYj>9rk7~A%XH@d-2mr|4*{=`5pjArBOEaYv}x0D>EosaK~ja5E#20{S> zQRR3&Fu+x1sao3SCa^%g>~Q{KuL;LN>UbMN_gteJ#0)yoYSBlNwg_7`tdYMgb6ePV z>uxSZ_$y*ZWsWwA*{uUEyaOoAHouMyGZzRl+-3D;5XDDwrH`cE>xJkNXgn17DPQ{g zVts1vuwN|VXnJqwg*n}7JNCO$zp}fEPAw-1kFo0cS6{(FLbT6AHI7)Kp3M-5Z@F|j zK0?Bj!+Yzw=oG_b?Wo#F*dh-5#I1JKK20T>SLq~%{D3DDRt6!EiY_!^())%zvCJl6 z?W8-8A=!~RhrE<4sa)O5ch>taoREOQY18(zt*VBBPu7xW8GA@ZIPHg#b_4QX1y7c6 zsUPLDRvyQ5(6iyBvb{f4TX)EaY`2+kdRy?Y(Pog`TcMXw{N{XBS8^^ggeszS|1AzM zv;@}I?@CC1AD{Q$D#LiIz{=ImW}F(<_S@gsHarcIQ(pPVp(epk0$xid2u`$J)^jEDLP zwK(~Yy{Ft&9dgaDgT=;x?0pyJv%TCLBz7v*G+zkx-qBD9>tyz}sdq?X1-Q)_lqp9qU0g5??H%^4_)A?2)hT^nkHovgxu&R&K0XYW3rV1=zC`{>KF?xRvu ztkhU1uq4_r=(blauJ#(_UvLHG;eovz?gXi`bN=Y=@s_E0ky6a%w0E^R9%dC|#!-XkqZ}evW5%K?ojIlkq-+^gaw#M&0n?;-v0u&dWY^iX>k1T zcdDbAvhHEb06{UWZ69wuv-~=DN?3vVQXLLTpxC-j9n-7FZH^ojqi2msE zD!;h@3`QibTuQ0=5hmB;)N`U>zu&}7g-m@DfMr-qE7+5ynSgeR9*!dn93h)iu4hRF2v{0rHCG6*wcF8QLCkMReEg&rfEoi5Qvb6TC4Q*pIu zp1V)6-MGjAqdR#mGG_yPKw$?n7Z4;MqrFGYfZw^j(eot8W3Wir^XYk-$aYbgu`7Dd z#C6JKaoUvoVOZeVf}IAbHrC00SB9b2-_x-42P&(0SiLRyoe5VvwS;wbSzk?cDb#QP zeDi@5ypD=E<%O7r?FS!REp9TT?O6;oYTsPF)}C zrAxeh{FtIE<}|POK9H&h+GR}+pfRd3wM^>Z5LX_y;4rx~g${5!*6{N_{aDxI7_$7M z&{Ljvj`C%3!@NgP!~IfI;@M1h%y~%S^g+37y*qjrm8!nyCb%DIGA?~UhTJ4R#0CLZ za|>dnjOv1U8(P4Uc;8{&n*$IP*Mly0SXArY%M~Y$iTM3f{ISPCReTf&Op&WO7SX=B z;>Od{e^RlCB495-_~P!~rM(dU!=Wh$)de(srp>uT@DaPpknH~KVaYw|6t9?@Q&g7( zpq69u<~XX$B4Vk2CH>_|tai(Fre126ysDR>oRIcjtg!MO=j>*qNCOP1)yGc?o?BwXt^6L=}-XHVhjnPb+9GlqrIG%?C%hu6OYerchX8K=V{Jcd5p;{lKKwcEPr%$NAoR7<>{l~D|LnmFP%uKKu|rg>xM=y41w zuJM7+xhVf&?K5UPRE*cIc$dVpVCMCW(DN#BE(YElH^qNZM;ERK_tPz@L{0wP zcMRKhCMi6%Mw!Ef#WCEU@qxA4Pwcgnc zp`H0^-O*6=#cpNJB48~u|vfQaiU5hrP67jc&j$k`uA z^_BoPu+O0X?EQ$sP``rBlw(NLVI8Wp!i*g{MpL{{z9WbOjK*{87chy%4sxgNd%;wC zuY6vG>LkU#84jbt`#~m_PCXkuhkK@%V7QomKuXYo&< zz*c-vIm`NlCSq3slCAz`{HcWLTFa-R+KiSxj&*5t?w#_@iKQ@@VEZd{T*8B082L4 zm0IqRBd)X7x&zmy(3*65o+R8uTah#%$+9;7?VdF%<*oQVhDYpwKp3d^#KrHSt(D^o zq8LKFe$}j+OP#iskKIn}!w^=*hY-apgM7Y2#Z}~%;xRiP8~jIzPrJxKnh(otB#u0_ zQd>`0*@9=ik;hvOM1@u6?EU~Lv$K5OFOy_NN#!6{&Pzm<%uaQ;>}k>$hXR`RRK;cQ z3jR(5>xqAPODY+GkIaBjbw8}yEt$|-toY+Y(gY2Y>R;T-8YS0Yau(myzQNS<*{Y9Yj2XG=RG*_` zf*2L;r`++Re9I9mG*5=?B^;yh_zKl!HMG~+LY?0S`+}IP{YJ*{-xuV$wZtW=>ORrZ72Is!HJ-i^>mm>)R#|>V}04K9d;csiMXv69Y zdoEJF_;IRN;k=94b|Fa{rYE;gALKBD2!|?D=s*w>#>uG$FkEq)t?5I$vAa>C-%Q0o zI4D1n;}-Fw;M%C;cb8FxGe6eBgd6lF+nzOJFd&RHpSici#_Ba;K5kgObF5@Xrq>!R zKTrHOf>Q*`!668kJ!BJpyPIMILY^22h`-$Udl}51+;qA&8amB$zftcQ%I6!n7VdGn z`#6}~+|Qruq0yEK`$|^L5&RBceKzYIRTd4&lRi`Y0~NQmt0TLGHMquTIeG4NX|c+i zeDAh7yem*D9Kv?I!3>aNrfoRS=?7VKI!vI6GS5}RD_IT z=ZsSXzUZ|cBJ~Q6r8w%;lSC+it)q|C{##CEsTR9{Mmuv=u5ybuUKnz(4I$x`?)ll$ z2buj%IyCVO#V;r=>F8VbYhJoPz?=5UX8{KH{^n8AZfI}-k~p3H=G~7NFyD(N=c>m( zNO>Eq)8s~3B0`z|%|(le?lS&)co$Aq+EltmELkWR!Bvzc;P*|jwB&If*7I0;d*K4_^Gr$w)ndHS^tbxQNy5^6UEw_2n4*n+RSuL z{7{tc0`h!|-7Bux5AFA^cE(DCpGO!P%%>-M9uf)rxJn2o1+jrI7#yBgQoH_E>%!dF z#EnWUzj49awo)A2??S^FVMI5oCd=2m!kG`*9v8E)yp(slLk2h?i9cJEjihAU+XP&lr^P?T?zck-XdjO~9rctKP zr_+=cd_{8_XA z1fdakHq9!RV)qj|=V9u)CqhB_=e?TL`+zT6ZU|q1tS^-}Zfx)AiWh6b*tP_D3Fvd~ z3Y@6nig{E-qUx0=r9LED5t>KrYnvmC(A-N&YzkFx=nZ#}3_Jee= zPN|gS%RGq29tyO~)j5YCMm^>>n0pCngsq~ehd5E0mL42O%hlIJH($zg5hvH;ekzv( zn{`d6t;HhUGFG@)mZ_YOSukRcWSuFKMcAUK8Y@rf%n+QP$F;I8_;qns5pnG)RzE3@ zuD9_5UF-S+sIDY_hI0pMjPno(-O$cd-7HYugoB~;5Q>l7{tmkz4x}%@mw8cHA;%+S z`D0BF3~Mz^U?TC+D-IB%n*Fo<6H(gA613Pg?#1wQMI0UW^CR;J#J^zV%~)64 z8Y+1ZOycqDIEAxPV%>gQUw@Ce!kAeQFYf| z*t`r44!!(T$NAz9+`ns|#?ejHh79H5+}abjMsWyM4qmU6`($7HJUfbA!SJ1Ol{+Np z@B5w`jVrO_D)w2{V&97mk|dP$@?L^X1(* zCE`tUu!&oQvMnkhs9C%@t=nA+CL#8l0*g628T}?Vhty7O+tyirlYW<*1*ga4M`Z!m z{UGo#ayQdwx6i`7C&oR?@AQ+5y`g+qg=f7?4~MAP59nUqkArbttp=aH7O~@oN_((@ zc1rQ8lPk-YOfp4iXB5P$?=>IA$lQ(PZ@Us2Z`Cm0yLh+KJu}9gF)W9f+p^ofNO}t* zanjL$BKfz!)!)uhfzt@au3e!d!}cJ+#5qeg9BUApL>eX;YFt;h;N5=>qQ>xF&+q21 zgL4$SV6avnh>h0>_Lqho8vZ8lPPN_C&)kZz`x_uSa)FJ;{_h~oecq10;(0?baIOT$)b{bstG zn7LGcA)s@&^B4a6!OY0pbG`{>Y(_ieEG{)v?Tk%>&U&XC9Ff^fg+DdCMoV_^wVs=u z#RgolJG(cfWrBV;pz|68AeTdSNJ_US_ z(iV^X`+tO!?|e&wuz#d?tnYXVqGobjdB(s$4+wM-IhM7Y9x}Mzf4})PWe%LiBbAJ; zdQ;@rdGh=+RrprtdVjM-c4f`qxpq0idk;K zp|bB@jw?6ncGng9MQ8N~6-as!+a#Hc&WpVO%$8&0<~G77FbMtlfey~w|;zS+;A-MHZwLyDYS93 zAWPPb*wU~7AFyBhWPO_d`_~7Fa}bFICU1X}ZmIZ10gg?Gr1*fE$i=7&$rjt-!IJm5 z#~To@OocyRZ(MmYX*jGd6agCL+w}#~yTEwYR;xf;Rg?pN(BJcZF*$BKg|5c3|4ETa z14#E+=Cd~fm+P&3HRI26_MAe%UP3~U7T5~VMn6&k;XLw??7U?KF7nBRYU8RItF%Gg zV>fZIll7=r7Z+gN1aD>DF!RM7hO^S9-9t$S^n6LVCIvu4O!!!zDylkG{0~%Y0vugx zZKAw~rQNCqxCuyKarDomO-9xZilW~0dr*)8cekEnA>KK<61wd%#> zHweO~Wk9IE{%pZ#I8%?coG;V*m%md{@h3nW91>948Kdb>;siiOQ>k=OM6ve$0%@!k znbc<&{iX(LvWOr`dkT`iWArT3Y%rItY(;kAK&WtqVXlr!J#hZ@IdkH(ED z42Hig$PhiwC=tR(9D;J9w2W)9Q_}LL#a5lK;Y-uSTH21~ejH$<9{@2$@6TjhI#)NQ`G-1@&8E=`-qo-hPmzrG*s zdTyOa$@tb(a`~W#*{O;Bp9L0Tx&C&((8u;uPHVfwdisk0VPY1twdf-i7obn&*G+4U zoGqx3SWE4SW|Hy#EyxLY2WOH37H7My=-nLp>R9R7v+`s*`oS zgB^t3>I2xek9i6Y)r`Z`256ZVzvjtp6=$6V)%ua!)g!7XUrRsHehOe*WWUUZDW{8x zWia{oy^u|M(ZgKrnCqA?Dj}+JisCC#!d5ZFwaq06Qadj1J<9*qVObl@}<03?R$f5hdIO5fMX|+1hVtgvlb9w297E1B;Wt!9EeM` zFLZVU$0`g|SVx*y^=R3O`(~;oKr6DYx279Ya?lW)-ky{zq&$RMet5|y1*J%C29>pOdbjp*GPKiT*pPWjEvnyL=`Fv25Mfh^ru^6Dum;wM~7*pP;LeHBr; z+Y!Sa23j}}>3MZnX7D(VW@{|3*5xTACJd>q^7gb|Et)vx1*eJs#aGXPN*rK#4IDh~ zAF)n&wO^mUBDqyeZksq>f7XFcrDFRaPVY1KrCWrnDRal$?@&7NU5pk){s$}8{>KXI z_eCCW2@gTHJrPYK$W|kB*vnqw)2|NNo)-{cw|<3~KgkL8RnSHI=F=NxVE6_c@uZeC zrpwcC)CN3*0pO6Ua@P}K%Dxzwp;RS5V}eYRaeTINQLWP~J#3M_vT}9}4$czSXql4% zE#WxrFI9r@GSnt@^to=GfF1!*Dq(5r(DbPGpqt*>`=(w6lnSSf_iu@;spk0V3~}0T zL2m!!gukfls?6Dbwh}Pvl}fJJ<|lS+M_~D>VB*$4MY;My0X-JbcWZ#=IvzOxMRRwA zc3&|OsaSHF;W68{H69Db62qx`^b#%>%z1g+PCg5IU_gFLLFfK$w6pz4FkxjE?3X`B zPp-(vNd7B)Jw_6Bv-3OO5!B;l-E~0JdLydf7~pCVzrZP z-cI;1HBxW@;25Dia+H+)PO9Cy<#F^$m-xqQox$joPsF`+>K{|{s%t0o484Mah}*>! zdr4%DT#ijc??Miy$nn_$h)#0!E)-jFynN>lowlmh5 z)ooG1;MFJ zahTrQ0XfW7&M??rH~d6wyB0-LlAthjoOta^mKSVf`|Yclorzl-u;d-LnaOqAoE(-# z4=^>7jNi>3(U>$-p|~--1O53utdX?iC;;)&#Bbs@=FGv%O(6>G z%3M(jC9aVRAOk(IT_^yk?0MqQ0Yv6#_Ad?4~S7x7h&r2j=`Z4MDmUSV(iKb92c*?;-rf!>% zhCjECL@yth2J-^*BOzxNWa80-!LINaI+0&Yvt7*BSp4(AU>?|ZRJ}r0)Ut2 z&qk$+ayd9zAyzvnR3%K`j9DRkW;W>b~ohi1u{k&~D4tfdP)? zE{DOO3mB@+be%4LwktjO{&e@18fd%h?1^EEwi zP9AkD0)X$>rC@rMGki}3PS1W~n!9j2pZ5Q>_f>IGh3&VSk`aRe=^PqGq@-I~5JfRi zB&7tTb6`j*hekpP0Tm3829@p}5R@2V$N>Zf8DMD6%lDn%`QM$Jb9=a**t6gL#(LJX z*5c?IRwi0v->y%FQ70IoHtx!5aTWYzV zsPAc%z~cTjf71J0@M%Ri#gyl_6JrhviOF;cYeCNB0VPsLmA+Nf84e?3GB$nLbI=N# zDUdd2kCx`#wlWoZz_8o=%0Z?opr7qNB21-giM!iZkPb4X#j3<6x_}lqa_c>`p${+0$JtrrX^*VV0xOP~zfmx9{d*;4ybFFJqGrik`sl`>2Vi@ zJQ~TUeHA}jqCe~LKL)@=h_yMyYbcyLOgoQZA$Uz=^oq5tSsr0eYOfab76&u9L*GVF?qI=7T+EILi%b? zH(U1_B^g9$IH^}$dKY%1L-+Y%96-^nYd}k!@r}x(hM!jO1C|O>0w~^WkPC@^-)@(o zC}fqsz-hB}yUU`V@ABz{iiT_bx0V8r^$tCXi~IvJOj|&rmC|DsM&m8{7KCBct~wnc zgh~thnbgCeQs*I-xbiWDe-G4#BVv=w41asZKo(m%ue$-0q3oIYzI`I_5BYVp?XvM) zH%5E#9CpKdg@$l8 zc6z2vb4_vM@DGd$jXt;#YJVE6N~hk{&*cl%C0?b@Z`-2~{9``v3_5*Ri+J8fT2th{-VhV!@?6F<2YwM%Cs1u&i}~-lh}*;Gkj!eX zYTIvv>bEM=iB*&Q%y|~Le?syjW4kBe5bj3>Qr|*ys{BEI%f3f|jc1ix0-0gro3Dn_ zUnKU0&L061VD#Seo8Ms2nKNiqdE9LIo1DGd3?di6ZE5m;tC@}YpVPo1drAeS7Yh&g z!nH0ObM5Eja0tQc2F@wJh1*!NP^TWz>RyieHU&Kh;wx1`Qa+Pt9+>E;*aA1^?hmin zd1S+ye{xy|BEJpYZI_CMI_yS_sJZ=UFOraHW~9by5ae5Bq_jd`PN#u`E4@_^<$YaKrnZ0G*r^#dBtZ}u&2 zMsM@SJVwrU!*5IfHqMtbwS%!?w4rQC@*pIS}Iu?$KVaRb7*ly{zC=Vn?-loC&z(@V7=(A zts+(~f3f-F+ZPJUQkrb8Y$jQ5nQp~>NhRYv&?8Psx7k)xFR~<-{Gh5>!9>Y(b%G$s zCIQxA_+}?vi|yd{hUwT!rk>@v$X_Ho$>466IN{o-A_ho@)601AzR`b15FnIyHRaxm z^+xWg%o{-Kx})$0thn#j6_?*9*XC&qQ+7&Wj$WA`Hh(d;wY-?MXO6AE**q)R`OleEAEl18z_npe*+XL zlfV{lE2hs4Oxn&>V}g>KNoO7?F>q2@9H)z4$Br%LKBR*5pGA|y1xh>mt({U^Dh#s+ zRRPcOqGl%Il$5!zc{X?|-;NUM8SXT$rqvL`lApVZW894jQzq+_D9QQj#W(2KazS=g z);LoKD!JwI$AExvdYC2sSFt;WexT6^4)FZa+EXE#RxgSNKnFmN z-8y~t?s^eDKMo#Nv-0R<9)KF&QLK$$7;@iRNPBpNM$Jy?G-?HU4Co`l&0js_!K6@OwLeZs$FFgFfMiQSf+Y)sk_=6rJ7EhX_Te(R zj#Tte(do^U)IR^YR@HM~Gw%s{ax%(ys{=>{R{;%)ZPv)nvX?WWNxd^Je>MvN;Q(WO z`MvHf;L2LEA%o^SU9)#~O}-X_K?1jd^8y=<v$)$sD7HEDF-Z#z+vjAmrH@rOOhTi z;WQIsk4uINw7mrFI*TCGRdA7DP9CCxIS(R+4Lpf+kcA1ND{n{f7t4K-q1snRMiGz& zT#f2B*fIcu6Ffz50m0NWc%Yb_>GPvwG8 z)VYL~i;BJal(#g50P!UQa4|Xtgl%Pu;E-~wH$}qT zaL5%zf}9Q)m{aeCsDf$5b^-Fq{BFI*Z~fx!1@{==lFRA_v5>cVFEOtYy9hF5Fg&%O z9@-HS%uA+(?oUD%}E8n>`zAP6rQ(^$;AN~V^= zds{PwgYk6o769FsOqS&n<0>kfxhy5xM_y!8dKsJClx2l-!#2vyc}3&}tqjN_&YsGiyOa#>z*`_ih5?(>vG+x2?g-J%^?E!K+zsUezSe4R?JC_srI%5+ODkgQ=ILF;;PHs(QW_rtFirxa)mUn z=^&$xSz<|>m*-dJkM56HwG-J60@bORNxaqM=2zXWH96jE-!2(J*w^pQn0D82)$ev$ z*<>Z37#+UnsN=nP(&$0TpBRPstMBD~rXszw9c7Ii z{+n9~9OeJ-xs{$0z#|v(P$aWR<*Ak!{l5PKxcjO;!Jq15V9;~5^0#bQvoo=MJTVh0758wm zrR-zCBDkLV)Z4_xgGWZ%YUq3-m&`XypT_$SOxm!b?w>z>d{gmr^pqw~HS>3HNlrD4 z=rbFAZwnUwdbh~8ElvH*EP(uzr|4wxGv#Yj_ueI2d@=XdIM2o&R{2~hJ)x>H!hRe|dtnv3gl>ce~w)r_^ zsMv??ir3ZsodNn=8W^B@7F#`gmB;@jU^l`W++ub<*qATp$0>Bn5bRwyKzHN~67ajc z)tNRG{sZdNFHwI%%F|!(DL*@G0KMlb2MHK?H+Tit!ig5h+unzcvY-W6_0}fU#41bm zlnMTX;Al`Lz26DrK5PViugB}*mkc+mCT)Z|K~TvZXO;aWJ_09;vcD(xpj$E#T7svW z*PnX5?Ay3cc6F+Osr36P+L2s61j%@!ccB0Ra@qql9){j~JK+z&&>$1(;(EMrHD8LV zKtf4T_2ViVL9B26{>qmZz{CyQz1KX1vVHSpXP@npCl2*9qaE@=wfPHaxVqhHo9$=o z(t66G`vl-~9zwej2@_7`eG{jdG^dFP2hy)WXXCLr+)_;vB;EM{mfZJ9gwO~maqJKw zm{KjWQ8;Be=Cm#Nq8l{7JdZ(DU+=u4a~W%gSTUod{ODBJLF z^JUhsM(lwi6#n^FyE8BDqmZ7j&02PTK^omGKpW+U%!O593_<`+=GJ!vQ^s>RUoD z;-l#p?eFh$QisAz@xhf(AUNIG`i=U;^SXA^pB;@U-N>Pk7Ge{}2}qw@jeQ=~__eg1 zZE9G%{1fdsg6Ze70z(L;TBXI~-%~Dt%G57>11bP2SWyEw4c38wvm|Io@@Iy2Nk=Q7 zS`r{;Y2Ny!yjMS7nAl`O>8HTQ1EV}rAj*0IqA50~GEPq=*Bz- z19`A}5)HK2=7vV6NHh<5U(1{qT8zk04cZyAt2?nd5_3*g!*|!x8D?OpV+pN1n^~FX z^iYS`i;AnbzPfRu>O#sr!7Pz>!ZX7xkF&>$?Sxt6*)`&c$(5)Q@Y5cNHo9!8_Tc4Q z`bB*MLr1!1tE-*&ZdKrw_D-Tw0L7~4d67k)%(MXKxA9&0aN3|gJV+UMC6D))#AC1oOsU?21CU+%^vUJ|0f1KlvH(dQS3anR}!Gzf*%!?Q^rYBgpQY!u+3qnjG=w)n@P9foWDl zIAudVf+Ejjj%elT29s5K@HG*`w{Rdv;VWbH#^wa*Y3EkiWqGCgpgbiHPfkNTib|Sk zay=Shx01J(f>Pz}u<{-pf6SAo8@DxvcSk^$sn7Nbx9jo5lfO<^C-@$y?@sH$4&QUy8O$OXHHY}J3CAfMZsjkdfpDaREe2`M(4%8g18IuxTpUG6@3zomFTjh} z01gfH%L`{RD?8BMaHdxE@C4`bap2;bZ@u5ed=A>s*LIC&V(UQz5=3P=t(a#|0Yx?y zIDaTFv@UYehx7rxd*8J@T@lFF)=yiP*ZNJH8Fhc6M}Z3>T9&3*4D;sXXK~FejjZnm zPA~9MbJ}a+3d_oPfZC5u0n=pm$KSY_?P9N)6iSu%A%%TP{2Mu9WTO+2(Z1!TtKo-IjpqQ39(|jV4{oChNB4Om&WN|G=Wh8d% z?^hc{eb@Xyu^2B<0vWiSXVs2NxSLy?9Q>gA7(IO}vIKDAnr7UR)}n>Sg##*Gwwc^~ z6sNDn_0h@#6W2#iO&BZvm=kh(sf5k}WIaAxnxdRhnekl1za2Z3heWI5Mh{;o*edJ@ z>&&nxz9geKlx1pnXc>hsEg!QiH?o17(;~@3siYmp8Lm;kbt^7TUn6YP6uTvU?9$I43Gxs z8pRsPS_4%gk>ieWosdnBa(shuCaX{B&G?4!}4XK^;pYEW6_A8+>P# zgsPqfF$K{6$m%`|add-JqoX^DNm;(GvkC&!u4U-0P#a65N{-X6j?2pX(1`pGEve9w zqdJ+IP!}Qk@7C8q($DGb#qzx)w*gD3D-}7;wsQB^8C};{-DXCef6C?GD;SzZu8sSD zM660xgGMqktL~{p$m`2cFr7euD;Gs>sKvG(k`u1+>S|fk!w(7lX{6UNuc|n`M=c|@ z480O+SzZfi@U8-F(?YDRTgufjw8!C}njNJUxju_wo@hv|6Y-|zp%K9#lg`EjY#FtQ zKJaX;Fj-?~rn;7?r=Wc%pFS$gO6ul+6eLrfSw8K@edDK;YTXI!Wg+n#+epY#a9xlR z36=YqzoDi2RJ{=ovtWBkEM0>a>h;GT`+=z1?R}M^#WwtAXPzihV{%T0tWv zUzJ%?H#^~tbEL!%>lcjYQqu&w&>P8=YUUvMb%-UL<&!h~P?40}|B8SMV(p?jF^sHQ z{`l5^hA0eoL|3emWTea?*POGA+E2OHrATRnYJB(}pP_cOI*@*2G&3ngoVHa8PhRq+Hd!%*5T@B^zIKDWy z_=)E|^W>_WzhwQHSGYe32BD}i_9+%C1iy_Q{p4vn{+0T$Q=2=Xv&e`CK z)I|>8DH!3vm23E*aSvO?k!(j*s^53vzz2=InS)cMl|y0$V+U{ln&!C+I&I&4zwTUZm1!y`$g@1Z~@KuiiB+GhK$FVqCe`J(|!jgY!Hh}f4dw{lfIA_sHft2OV4nbJ_KngVyVm1j?Cd9I-!eK}9@Ja~+mzH`P)o zuDk}jeSk3tB8SLY%GnsRn*R}di4zGAo60%2m0XKWzv1ka*8{iX^{3lP~@8SA?H)h|h1^6Wb0l#X0n0)I6*$MICi+q<~^(*flq&u2|B)Ef$IsaLU41Lm! zRBxL{R+#g5bI*O)8(~+g-UG?Js3&K1Q=p~Vs2Uu{Qm?b3f~11z1IJxb%6pMTw)~G_ zOO#x49%yK6D{KEdOTncYdpJA9#U2>V|7dUmgCDQLamN;0f0b zh{le!&{Ear4!y%8aUp%Zad0D3XVR`e%z-XPj;v9tTk2LEo!-|8$0;wAhw+K#Ke41u zgdwyM;3ig+!{6!Vgt8v?vpQ6ym6stRM#j#Aao?h z)(c{}>>3!#;fo8&bw!LMxpH0GxZ-4o>dsk#q7V*0J{+2!U2v{KPKK9kE= zIQl%A>{|#1aA`NrYjNp&#*3BtJK-e^JWx75o{h&E{mYesLu{8ICz>ZY(SfU*IpOnO ztFxSsYFW%ew2Y%@nN~OGp3AW-#w^N(uhU(cpg^9#a(njbnpBJN!(mVIk$y}b;WmWW z&Epk_x{iAL(rLfYND#v{1XBSui8@;D+zy|T$5&XC0&O@S-}9(Tkf~}Oi+ZQSyM|XW zF?4=v!3X$860vymX_crSt3l$fyzGPXM6_GhYF$&*uTi@Q6?VFdATHZJArSuw*Y&Qy zYC-m{T%S%E^>t7OhM_fxAvCa6^O-BTL5{g zp)~7MrAd0}ghUgF@$pOOl`WHo-tx2vUeFJIF7i=a`x(FYzW}YL->$dgzptyHhx4a6 zIi!2`qi&9VBIkfGSMvQnrssWRD`T1Q&$N{y3%VUcGZYsE0FI+ECbcH*3o{jD`51dfL?24v0G*d(;Tw=Rw^K_c z%S9F)b|21PAPV^FyXcru+^Fyy4gL;8eeqDD#+qDBVdacTZ;%*pA7--MW7r{RdPixu zsn32pGPq0DXg6oEKDDT70isjK4atJv#l-YKlQ4&_|INRuq-vyvaykJO}oV9Kx2!(I{%(z&RgR%0XgqWDgEMC0bsB+FRhBi#% z=w1R{7dWFyNfV6NKRc)XFGCY@D39SiBcvjym_%VR=csBOD}O)80c^BVyR>56H!PvkGFs)+K4gMZ|JyF1nQ1~T!U7(~>$`qxQoR&dVJ|5sm+}L{Ipbn`lYyqGNS~RXm^7ct0E++qUbnOPE(cI5TZ| zUJ+=vSfd;t@}bEHb4TbL^f9ILLg`3DMyY>Tr-LasqX2{haE-PSjF&*N+ZS_SH4X;O z|3s}}{RiO?vl2$#m85IYx=89BDrz!g(ST6iTy;!>DrDJjCTwm*1$o*Ut{V3su zt=^eV>!$b!ZzUU>(0#3_NPtN^z= z_-zvj$b0@b?XO*RaHLs!wZivMlnCSF6lh~6vxsfTDL4XpO<1~W6CSeXi2Mg8s*sWMS)LH zV+L09`uPGzQ`L2i0=m~(x8h)b#{y>+u)I_dJ6D_5W#2O_zsq+Nu9UM`SFBC*@sd?> zsphnhmCs)jk(1^4sZ6c?Z)bYdLyi7g)^}x>)PmAM^d!}_vwf71AuN|;A$-(7Bakc< z;r-|eN2O^Tl6y4=>|bn=Qw-={twmnS2( z5?@BCHgTPPn|$?PQpET!B>p_szpqbD`#D2gu`p4W++v)kg@KB{*Mgugq6!Gyx? z%hzfml(@qk@}Dzp^wO(uru9E|{cQZr(fe9`DfWF(QHT#ZsGR%_GA!TXjo{}1k%njo z(PDPT)v)|p;R3d=6lzUx3bSPVZo@TDsL-Ig%l_6c&ucqVWES4egw$X~p!1*Xt^an>mP@YWjX^)s4BhS@eM#sy{0hs-bI-Vj=w z?g=SJLyiCLb~IL+?VabS-r4h=?G* zxP!!nY)3||kcz7lTSMsZ+N{ce_wIOx$(PB{k z=M1;HC4*2-T~oU!?;#xWd%fqbsZcQ;r@e8fvi;Y(4!1Mstp82BNz?hN$Xz2v5NOz@ zdytLWuU=^*-1D`&)aS-pOUD>5!!Aw9VzWuqgKc}`9?ibCzSZ!trs=U92tf|Q$v5=L z%9FXQqEF)d+vUXSW#u^Og&^^`rY*L>^Z334_TQ<;p@B??_ySJy;AXAkVU{?h&$J6u zltK4~>t?=R(7u^_o-Fu8EqL6U1tU$6#lYK#?Y<$%;3XhPCykkkJ)mjNP~l;(t=K`k z@Y}QwZZ8}nKjy57ei>^5Z5BTt2fJasWRMg>lfrW7Six%ASAMm!LX3HURV#L-XfNx0 z9t}0a@20)>>6&`)v#f>@bdTvl@rf|);_w|-@KccL=UWL72cOrzuKu4Dtj5ImcRJO6 zhi5O@CdO!_NOf*pB8#3XU#VL`C)Pf&#d2Jj-8EZ|WD_lviIt2odS$abGh2nJ6?_up|#s^VHQC7*GF# zL5&WH8BW;8pg`t#t3M`5j8|ek#?#I%na+6|oPRUjHIUsZr4TC|Io`{1i?U_4PZuyT z10p2lZuM5yk;FTq($i~qi@|Q?vEdeNpm#w?C*z4sN{st)u=NZnUa$A*y^<2Pz0-H2jX|Cgdu%dsHQw@AHu*u%=4$#UnB+@PBbu{vG_3PUV3Pmk~++ z&QBbH@mLoK8D=IL4j04{w`=mzu1uDGN#C5nokL?pBP8u^>H}!Qg7}M`9_{}r(7G}t zC%&;~#RYe1gmuVIoJ~+_+E#Xmj!Non$aFVhPO7h;Z?tQpSt^NVzPD368g8)_RlY5| zzZ73V9{jg!i`)ivmelc-8%-2gX{tDrzx)n&nkb7yvmA|CZ`*~Nu(tg>7N5oh*qe4e z=jJsJx9RGzPz|#kX_D1$HlWz;axmIBa=T}nGXLTMoElEn`#b6I=F%h=Uq8&GAQpmh z)ESZvf_G!O4>n>C46-T7MV|9r12BE-oE)acft^Nxr?b!Z3itI46L4TL|- z62DtTy@XbL zFAMH<@FY-n+P|KcR^Td23DbU{n8QQ%d90HL_KjClmsi7tI=tj6sR|hE4b=-FeR%&u)-R!%P2q^(73U z9!G3ED~`9tgdr~(z-B*a%H0V+liRi=vCBH0UiHrU!-XzeJr5|oo=4L1o6YduVuYN> zM`spiw_9QO(9zlSl(M$V9$yRlxuU8xm0!VfaK~GEI25jRt+KS;i_{Q#FfWwmK3OEZ zMyt{y)#nk75KMa35FcdCDv~}AY%sxBVT3nvp;TT$MG!&`}+}^L=bu!+ zy@xz=;OR8hV9>=nx;H{+UZEO&cvl7lURnOC9M?}^o7;wd3tyfK8-P> zv#^VgnP}c>VB<*T|JE*~V$=Gu6B4ssf3SXI&hf-)xAKREJ91_J2sMFm4hKCx@uCe) z=9i$iwTiy0V?Ez9xn~~n5I!6b-AQSE>)s`*Vn5FYHB7B#BE=_~oG}B09zooYoY@%v z6vaZez{EGZ5cgY+1qVM4w#Ia_cfL9+66EXe9}VrDwdE1~$vv^&c1==CHikavco=OK2sEO6Gr zd}1eXoGWKc#^h?&-$m2nBexzOQr9;p)iM83c4G_{OQ@<-#R{!^KfV3;nRQ^Li_%zF z-*()dhryGoEHmf7eFWl;>~TTQRMx@LpKa9CcA(Ib8CBypzwJl^?0ejWC)L=++q8#i z1$*DOk@a_7#{vT$pI~!x{+ytK%)CjYL!Xh!V!P^-=PE8^Zi~w`71PSGgx_mNY1RvI z=kWg=dX9JQ_nv46-GZP)Z*wZ>P>&qK-2%*A5(N2PA`i~thoC7S7zB!tU|Ak$_dhQO z1Oyx+%RXc^%+xDo0W-T88MGnjJ)0T${a1bMVtuAL>-nHi2nt4!L6AB*1cg#U5an42 vg3&_|9DE@{7lPCh{{I{P|2X{L=ED(%a@*84@x1C~2>j`38EO{aun7HMk4#Ce literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/drawable-hdpi/ic_launcher.png b/opensrp-anc/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100755 index 4bc4d0ba3eaa5c604fbbb4c5146cda16ad846cec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7714 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 diff --git a/opensrp-anc/src/main/res/drawable-mdpi/ic_launcher.png b/opensrp-anc/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100755 index dc930107bb8e44489ed085e70d0bd02f60727734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 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 t7zZ7GDscb+002ovPDHLkV1nyug8~2m diff --git a/opensrp-anc/src/main/res/drawable-v24/ic_launcher_foreground.xml b/opensrp-anc/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index c7bd21dbd..000000000 --- a/opensrp-anc/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - diff --git a/opensrp-anc/src/main/res/drawable-xhdpi/ic_launcher.png b/opensrp-anc/src/main/res/drawable-xhdpi/ic_launcher.png deleted file mode 100755 index f4b88c5ea0796ab0814efbfd172993336bf3fde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11603 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 RmLUKD002ovPDHLkV1m3jr1}5= diff --git a/opensrp-anc/src/main/res/drawable-xxhdpi/ic_launcher.png b/opensrp-anc/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100755 index 4c4321cc65dfb0a7c5f7d134886577130cc46665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22261 zcmV*iKuy1iP)_uea^BO)LOs1!jE6tQ9N-CbRKSM0s-T6WjE_JW`Yb_5$DqJXG?)IbX9 zz1R7FzUR(OZYDFy1On>+<-Tv$Fu8Nf^ZcGuf9E_l*>~(4f!!DZ+irY!-&gmIfb0X% zJ`n8I2WU#QOUm_I!WjMCrZzA9=Z7_@oH|etyv*O<`e?z5xM!Y&P#yZ*T9|mR7r8 zcO%m(B3_P@_??4)o4@n#)>aWO$4UBocjtGwW~+EPzR@Zje>bn>{CV5?j+^oCR(^N+ zbltrn?_#g9w@87vy?J|Mb@2{+eSJ+~?e^-TMQa;m)pN~`EBqmV+S>p!?sw8jzT?MV zoZyp?GP%j_GrFPGp5AD;4Q;YZdP}R_yV-8nNp~I*mm_57JlA9A_I&fLolfX(2JCK5 zaQD3~KX3aZPj7u7<9F*j@rk$1Cf;5mJ~ppDStSx<_U&oUyk6#C>!e#y`K}0N;q%hwEA;rKG+&v9?7*TJ5d2=2nqb$Dno?c*{TB zPl$`ZD6m`~Za;T@8J8E)Q#(9c4?xUUdkRL&`2a})WwW)0`PxdO1HFrU?5#_yHm$yY z<6Wl}iAc-d0@9uakOHUwov(+)#HJ?u#wNd5*J>M+Q{Cj**vpNfZ-A zU8^DUueP44(H=@5XKCmD+3XVL=WP%1wG{;0TINb=_EYPxnX%nr5?al|UQk}fCH4e> zRO;-1-914hj$Z1g&{qM@j)rjija>p_H|(E|>eX3&cQ(M|1AH2y ze41YP-N7#h-Ou;J_K@pIvG9xu&GCwSPm4z30ZF8v~^C zm>ZvT`rPq>N7BvueWx#Y^!*M1cl`~QpZ2PHb)!ZtHxBXhZi(@e#esEY5B_@TAg z>J^pNTLAKsgHQ4w|Bu@*DroV)yRxx0yv5X4JzZ`40Mtn`bZrB54 z%~iLqx#*zz4iMq3?bgv70P>PivjRq6aLd%1(3tm%>zlouy(d>s*rh6Q>2Y)~uB{H) zp7O%lp1YIh<-!wmGc|kW*(_?^qRJVQc8H0@2l*66)aReN?y|#>LF2Ael)k#;oQH-3z$UN*&gx zCogYZOK#&WJq1Kh&;N@9$aK9E0=+i{6>UCq)6K`Mb%1D>Y@%HSkj8jMJ^0b!y2So- ziyB)8@0Qx~$nLR-=-vz-b`zj;3;taQ9`?S6*io&wd4e8zqh2FVCcS`@01Bcr_;2YaiTl>F9?l&nI#pfI2UrT?Y`8AK~v+l~|s6`foSPTw(!{$DUbF0R&il zMnARe@S@F|LAyyJYipt4iFcFb~AF+ZEnX1GGJMw-P~T(fN5gkGZE3!R7t% zo_ahcokgD~?~)wg^=sX{`==Lw_IgQA?V+9kNL5$=^KOpxopAb7C9S?EwYJ*ZrH|A2 zc_ei_vVGc5>NUf;oBR5DiA+igmO+vJ(%8}}%kt`EeHod6-N?ZA5<9@11oBi}c98mx zfB4v>F~MGQf7az=9}^K?6!*TnDb#QG1VDhrH~pp;_OlNd|4nVHJ*2B!ba!`mFYMCB zXyBU0I`?^?8nDS2yoEh2u{QAhFr(5#BB9 zLN_isdB;Dm&J>X*Pvb+L0*Lc`L?mGJo9h?vsIiT8H)&k~pu@a*q(0oJt&T(-&+=+6 zw7R=@$UbkNg!y@i&1O?g1&A*DDo@_nRNhYhvO5#Otdi1&I&-t4c2B*!QKOcNdZNM@ zKwocLOJw2ir{>=^`_rCCAx{B>^zj>Y-vp@-Gsv_ zB5?t-wfdoB52@a|waQb2+EW1eNL2rzVNWbvnAc#Nr7GDlR2+YUz=o~H%PpkB+vst70W}bilo)y8hOM# zvJ9MU0R@OLdp)P}qo=70nmH*JEzdorr zAnxhrRta$nM^|=67rM^9CULXM+du9xO{8r=J+MWJFB~L(-l#Cc214qb{Asp)wxgzv zdFYXCVbP-=pYM3kuE}@Zj89iIVK}b@m*4CTKx#aP zrwt1Ux#qvOHUvjsW4E_OCp^N@?x?L!cE%n65HHAOt)K+r~ET=zo{O6toki9y&GVAIcx6XXWVNBzZxn1j?0LU+T%1JSS zv#)=u&NuXUPf+759=m5G?pd|f!JxK_N|#_CFA4Io$)HF-IV?FuhDG}+!|?KN^5xT6 zX_6Z1>ySWpDQ{?zsS9?iAvv5~$-?^(6o030M)jp^a59RNOWFCQsB@cK||t`9+^Kr%%wtQ$MP;duMb7 zAa{dj{Z5b7mLph|6znU*WBg@RVZG$nx|XW$uWb;jQbT-XRD7Tu6c;G_NBc{pzqiyj z+hub_gJf1TNq%jUEZ9~p|DKc}Gc!Wf4nlopRyN5oA7;tO*Z@fn^_AohU&#pdm81|K zp+8h%mc&+ z`N);SqhxYQhe~Bz*(AizOQl%2zn2`H5h}-Igi5%d zmlV~t$P4SrWZsrascvrd*jD3RCnN>QKPM!}*2+e?XJwK6R@xvf4lKHZ)1Cm3e`EFc zKA%2wLG>4}Wn0u(k8Pl~;9>eLugt3MGv*C<_ORL!uCtMtSA;a(V8zGS#Tgc8~dF0O*PX zqU6r8acuzlv7k=Q{5(e*TkYcS?Il6JHfd;XmE4*Zp}vjlG0z9a2FmRR#mLa;015W< zl1rEFl<)KFq_D2JgT2(%^Pe#=T%MYgs6c=Aw^Dg{b%_+#S_MG+KzAxA@K9aqX_onN zmXiLh4O_jwfA_T7cOKj*B6VG*HoB8Qz9JIT=kECzS0(I6%HO>;)rJ1(soEMC?k`u2 zh?3I>hU@)utD9ujhgq_tvdQKBt=C6Y9g!9+N2G?x^z>l)WJisBm0KepZ?6_grq!$J zLJxb{L{1+NCeKVxYExlLvuosnrMWUWIauNXeIz>2TdJB`Rnj26+GVG4?Y?1ta#H^= zIXpF3BK*DOjg1xZ@`f@gZ!pA3R{#p~@sj@?o+QWg4b^kM&8?Mx|5_^VZzHy69>x`V zB7I!l*PVLxk(M&=A3r$0{#8vsfS@{w1k zCCl)b0P*p%NmHv`F8Ok&EZADrt>g*u@sgWH$H=Jz!enJZz5Mg%68WX1Uh18yL%ISG z12R1=MCKlus_F_A_VM;Ax$>KQxnpdctSfDhrP zx#1@fsdc#Xy96M*V+8lPXVGny@%^uK7JY7rfnBU{*Lu#(DzUof9hoZoMfL9wadwjiYGAP1No;fU0LVUgCu9ZcykQEC6T%g`M;Yb|5!=(LvSd{$xmr{uc z@RE;@>0`XE-7X6=tK|Cc3S`5X{o6!;W<{gCyQM;2-&i3#Ynt1QUMJN6ATz@K#P@SRvIGL%U6`I3A2=x@ts}+&wl<7ZEQ~Qs1m<^vfJ#QEq~(y`;kQy?^@f zD0%g!A4P9KiY8(Qb0OAm472S>~6x307R$fYOd z34lVy{Nr9j!ZD z9DzPId2D>59FiC)H!m-cFLP_#&UGbuxCF-O(S1VI#!3nHm2iJ=3BYpJ!zQPEnk~h3 z&GN zedUSqiINiPqpF#(MBCe05WuaEN)M6erzA;qAVdg58sg&fjKrc2hz^j+DZ%p8FQwAb z>Mps`h0Wy#ar$vD0mvT-lydjNIkhe%P)Fm@wR*Ce`-ZBrNm8(ne0pq}P73w~lHk3g z(j+>-Nb+-~%@s{DW&SpG*`42$f5!%T%ZrC6Yi#G{?+ew%?{0Nrpk97Jq}((*Ru?sK z9`j&wxb7*R=15j$qkMN_U-8C`7bB5+I~%=tyR{?n5Z<=nv$ zn&{-9VDtHPWpe$p0zs-hJ2^?--dv$l(iI-uN~NyA!;OA;f0n#)8xn|tMTPB>1Zo3N zjRz{MeFRKLxn13u6NR1g;^9dOqC?-!lqS2#N3+soOnjiOY*x~mqB>p8JF1#A)&hta zINq6Y#JK#|!~{Wo-S=a$Mugimmh-^aMEZsKN^yOQ+;&i`T)1DPgQn3=*WkO&Ev@oH zL7iOwb)F#bemu3G_&EUdzx8Eu?Xm(j=-~;?NDq;N6N2QF0pWDR=s^4Uxu{Mq{VGrX zIU!L-#0JP$IW;Ot=Wed-Fu|ls{yr>Ht{5JzV3@bHLK-boM6{fD<*n}-7cUnNjg$Z% z1Mt{`$9$Nr<8ekzui)|Yjd;N$v+%KxS&Nkv1eocu|){D?YpEC3|zu^FLiaC4kG zFiajiBwoV;jMTg>6>`Ssxf;Dj3T-KG)KCX8rw)?X6?!~rFVm|4x_jZAb_wLUsxk(( z{rvbqFL`TvsvHm#pvEyP6SXitDNsu4Tjl$Z^+>@90f>n8!;UV7hWe=U_8mKSy~HP#d2o#YfneoAP*;GzQMPy=9ko;$IlKfm;CtJ%K<;=m6a_GC;6u=y) zIRKC9x_w2Vls2@={!#w&^0Z{>7v`rbum39>CD_kfKAn{=iNQW{%Zftz&#z^jp0mRW zb7<|oD}g!y$hyp}s>(e>k8g11*@GkG(ed#*DMMb{B7MXC)YHH)eB$R4A>unGAxJJ7 z8X<}Khb0HeonzuO zcXsbjMXDJ%R;Hzg$W`Cu%Qv|-Qqydgl_zJ&;7I>A3BmPB>Y5dti?eFSfibeO2P2Ql4B}A}?($hWyQs-8+4TH0jm*0TpnT#%1SAtVr9YoFQ@fak)B=M zBqQG1BDnHQ7`d+d502MlB9e;u&)JK2Y6^lQIoMZzJUK(2`L$GF23nnZL@_Gy)oDo* zALJ_qwM}yBXSuQwcUo|pePs2i+}9XVVTmPaMW2=)DwiJ+CH_7(DXVXhmp5SW zmdlT)^izYG^vC0CN;H`G+~g#+cf$O=<;(19^@hG71AlsdNeK3B0}yHv03`)^%X>4^ zI;c0U_fclGobg$X!54MRFz=lf<|9jw?<04vERxqY7zFH7lp z42hi~eIK8YD6{(+sgHBN$ko4@!07-Wi}kVBRakX=|84_`uB0_FQdnn*@t3A1$q9YK)ByfuN3|@@u2!isH6>Vsbc-^pRN~;t{aS3KJpk;AlQZ<* zBugJzU81T645o+q%7mm~^&;^QpZ%>&emUJRxJ?^~;OJrRZI`^7CV6FQirQS}-vBV7 z0wkX+Pa4DekwfD(*0ZVzTC!-o>fe(S^?7-Qx|UXXWqr9C_9S?(9~mQekBif>#pu59 zi(Coy^U`RyGjX9?;Fy!x+bV2V0EA=pzp2Ucw=Z|ft)pY*(gUK^&Uk!vi9E2nNRCVk zktZi5>O^srH@3)$A7{&&!uqzL11k&ZG;`4o*-~K`pep?wqtC=)8=W&GLeBdlS8g~k zM%Bgak8||ACC8_027X&5xhqkdX;6f}(mCGSRw-M`n=~43UX;ti_xbL`3D0Y+39cGeLe?2xS$jdJdg2>Iv41kK`e@NC;Fo8-!G z^5pX@L&91Q?5=laq)51*w{nme6YdFM=N_3NqhbRUC@hFYnbmUk;#@f(+F$J;K)O7y zMkc?vL(UlzF5lH7sc(SZ1td$L=jT+loS5mJ8F~yZp|whzb6HIYakI<8UQ`C zx>!}G_3*WcOi2xqXQw1-hQ9sT?DEm}YPsy|JT>Yub{{+>&hW-8LB|cH4RY4!xtg49 z`>x|@2qP>zDMRjESuD@5Z}+NjBpy37K~5VKuAVCD@ISwl$sH>TW#@T=R1IVQ9Ps8A zRm(UFb5;<3=s0fOf`=3KD1c13c8nKx5Xr!DlLmNggThs^u*!09Z=IIOfw2Md+7Zd}?_bMQl`z=` z0DNRha*#v@_{h?n8aZV^n2LYmNr-r*V6=H7ofQeT#j+DK)G#J5Msk+xb0(8WQWQh@ zw1MGzFEe+?y{j8rbvl$RY7E;;pTk z_He$w6-2I7=^qXtax~;|YMWbSm1pC@F zvP)iv1NE?Mc81K~TA`#WT}75R#cO$MdWx3WU@xHWtpkDdx@7+-Ib~p&#&fPlWn|ZM zN*TDyAVmlGsMPqaq(Q#Ut&yziW}(~%036>pRE9?TOKhNzN);=3$lraIRjpps{G(EJ zLP;~+^J9_tdwFRHgM_M?LIFfbNYplI5bN_N1bOTGVZeX5on$ihVwhxBHmmg9FUn6| zKO#lz_c8wY=^Npv0mc2^FaY$}q4DzerV0gVC%(1?L3h(FyTiIxJF-|0vsNY+!jyw85zZ z!sXU6u`=boOev`CIQZOzTouMSHV7;I%*DA%fHw*QJF6}8223veFdK5`1#a+a`Dog0?j2Z$Xn(emD*+(@jX=7us648 ztcdW&&gv!^GdEMEn8yb6o={;`ah`i&=;wb;Oq3J)g|-3czC+^VlA%#LI8{w8a^vy> zd23^Z#%FFD6Dt{EzH-vXIg(S;qz2^sGgH;}Asg@f;v`*PKO$La9?z{~kCDy?JZeCO zt9{1c2q~;>l7D=iuOKqPV%5ZeV{Ag8X17y9@U(&?J%q{(GacM9cV?;tjN*o7yV7Oh z`V0v7llu>eS5K1w;pn&k#}2{JUwPa~}a z)^Iyv@!_^knx83K%RACo8KjH%kC2o4hpT-+l-Bt;A~jgQPokC7$bbkxjYN~EJ?|z7s2Aoc_0=Oy+!F zsM77r6Z&W@>g${unf}2Jx%R+l^Xj#D$eWug zo&PV5&d4J{%Mt}c>?SCt5rCrgg+BcEl}$T^F1NZz2%KDN9wWr`JQEUkKk!+}8(gt9f7yV{iiSyM8DXe;+TESW}V%Wm#UmEZAl|BY>Ei8Z4^|>tsljzg`E! zoD>Y|`r%bYQqyGD-%W>)kOC5yCC0W&SJ+u->oXD&!z+NJI zk4iVIatRTvJh`vo&Dm_Sy`n)TzPDXtPsFNLpGGdvTk4uyw4&pmKO5l@>v(oroz@R} z(}>0fs`k(ZA{38GfQti-g5%W<^jhn69CYPlQOh^>e1E3$||&4jl@e>wX~|kEx%?&bO*^puyXW{;Ea$kKvSO<84-|eh5%A2}GjpdJj6o6)?hiJg=x{=Wu z2jYO215oe^h|6%~R5w{X597gEIhp4UQ2xz5KNfd*Spb4-4u^;uEps4DPwJr90C{Uh zik$RmwyZ8R(*wp?g!SPcvsw>)XPd@o@bpa81(*SBMMI0+dvLsrpO>jL+d)wPs8w!Q zmai^8Hpkkc2Kn2tNF#seP<>m=8$1FBnUNN%tO6v|z2oAvV361h z638lFN5>j2`-FMhC8ySr^K-l;hWCfF(lo+NWZgWdzP(cN011oowiSg6M2v9md+o>=x%HqJ;XDXRIyq;CW4}m zO-PWhch;)y#DNsguW1rLFE3d%3sz^aeuuOVK!^E2Y#xg6X`kiD&7)%Fv#culsi@v< zK(Pag_7;GwlS~lpjp@l6ny+kVm4&kmHL$6yL4GQ%SLz12uv@+_kk@{%kON};wJ`zl z8m&AM7Rfly>4WT#0Gh* z$Hn{cUV|h2<)KxmtN@KjvluDEUR6{l*B@v||6y-z(O~WeN2e-q&77XQXK(v_Zv%+6 zj2M3Hh!lB!W4V&Zscpx|q`U>jM2MeF-q}G(&iM zYX_H;zYPfYm9J)F2W*#hPVPHK>gUJyQPuWcp24%BY63e33aC+dV>F5y_}Uh^b##pK zn5_VURL{!4{D5eg^FyJ$GBrtEYpAZ*ew(KSfg0_#xcgmALR-ef!9&WbYSiu?w~UU_ zIM{!GD|JZNb^!fzVxsb_ulOdvL!B451i(k6g{Zy7`yt`qoSq`*evzY{)2Q2@cNDon zQN|=i1oIuldpuqOyDzOPm)jf*><CXE!-{zwXL$@%zkag=FXZX zIqlP2`L(28PV65l&rVL3`^f{XqCvXIc|#(U{xD|lwodN{^%Z{b2_I)`lLhN`ll1#} zYeuRZ{(hz-9U$`jltev+lAyB(hpS=Fz+bpzrv~%x85=7;X0ers+CQv(lA$fFt@6sW z6rCgtd}yRskBE|CJphoY8o$Y{)y52Y)y*Fcg>}!!^P_G*T(QBx9ZX z16?{SN_kKHU)`+d({bec6EjquQvy}j)G7}i8n0e1AcUDPe%^LjTU;kMjf#;uV`9}2 zxM*o!x7g7WdRqcjdB8}7|HCAs1|C~eB9E>qmLthHcr;9srC)bv0*NV9_QngC- zZ(rtV5R3u5{=jJE`W`$l(;+jAcja%SJ?d@ zCofD%RE`kA#G(rasqMuCrFO0v4^eE;I5xpL#^7#Rtf z%Q5`jNg`AbZCMB!a!ouS-sAnFQ-wI0xk&Ua9G(CMH}nsZrSvVb9_I{>kh{jkNyf{Y z)YC&VyVZ?;VvYNg=*^Pbx!T5qxz*hB7GuP`mBb4UYZ@01@Ya1fCG= zBikyQ9KkKSygMUBKRfX4trF-Bc|1i|5C>j^rZ7b0frI0;+~({ravdCI2jR#rGA1EV z!38w}*BW^ODDiq`^a+tGhR4YC54P*p1ZND4kaPEol*d;W%Xj&;^3gHrZ8h!nO)YZk zib4g_m&a!)h^-(}b@}RM&13^i010TfS2oI(BVvS!L~vP+XjfAKfF4>+G`+F|p$qki z?RVlQIVvd})zf+jjC9CicmGhRQrvnQD@U$9pC8)HH!15#a^7v@+)@T2^^MPi=+ zUE@nUFC>3Tr5Gz}%aCfrVgmH@F>|*{Qm~)=dPYCJA8Tf_f7`1QOk;Fzdrm zhVt<&N_PTuDgXk-a)}|nQd-}v5nBRZBuY7mKocJ_Th`q-E>@0A4^^FR)TI-MGq&<( zb&@r|;k$gT+OQ@aXY~owcnIDf{2f?-FRVjVhG?c6jxm!6u*_9W;1KU`Q+b0ngQAw5 z+#K`O_mxdrPJG6oa4D&4kqejRD*XbY841sKw^Zu8k$a-t$k$>^Sywh`9D<72RYZuH z#@oikX@$kvpXV42tQ`7_|6U1=#?r@6INhQGB{LnnV)05SMPpwAu>p(~z2p*H-aPqK9aiM>!E$|@#r z!vxZu!+as4!%XJ5dF=P$IP7*^VGJ$=G2$H7UO@~V%?BQx5HG{t*eU}fd}U)f9*$B7OW9#K!}fb(O^FZ;hv-G^7Ys*}j0Wg0T)I=$>)PRl zzO#P)zez?_-uPIjWeUMqH-XhXt{QS&L5oZ<%j7N$Pu$im}#gaE3 z7$X_4Zf^S?tOw#ugi1IY$}Ry+R)N{sgLDSRhO!1Z;Ek=G@37mO5(pKB1ahK4cN#JN zjve&TF=;A}nOsQh00`Ieh6AIOk;i%T$eH+Frj*vVQ&I7jt{xsOBj0g&VHTHfNTjd4 zb7Y#@RnQvD)tMY@)Luc?pob#H^6KI`tw*1b7^GSB|4vTSPGxtlC>Bx*q#|G((qD&? zqZYeOy+)V=%v)1StCFz@ECQelmgH)}l-!p|`GC@alkonwN?CD|p(fgFDHS$`Y~gwY zFpvKzOX;R0nZL-Yk!!zmMAIEO0f2XpiPOqj+<24UZAwh~Hl95sQd1qKT1TD|?Z0bm zoC26CjM>ca9o}wdsJr;2HvxnStL(-G(%o3Rkt}xk_hAWIb!yf^ z(Nq8z*{rez7vzcv*wMX9D=F>7HiG1t!;<8Xx!c;xSxh$SvJRd0=vO5WTJ)871coam1Azz`-W@ct@4iu>qVUfCWc*S?ee}Py9e(G?R1H|7mZvYs zl5l^UEIlDZb7UMu!igVYbDDG1Er|9ufJhAyiH0ka66_;yADOBvoP*L8?2~s?-21By zv)>zA)$nB!uhYn@NWXB1Xc=B2#f4Q~qdW*&(CE#(dROiPc?klY%>b0kl9FD+H}kJQo}c-a{God5c? zWUbaPS2pZFY#r*dOq+(bz^D?uBBOHI5Hr|!6iE(zZL=~FtOxdE-i3qZkyXX&X<82) zh}*}+sNDrsg>PQEf2342w#wYi74q4!*gAw9T2wV+E5RuzSW6I>rWLsQBxM;V=RmAW zF!d&Y67O6vrz(D6mzAlkl5>ZI%j)8K`K72q+qkH=MTZN!UF`}Y&*<$J*OzO00K@gU z$;q<+o13Mw(XKt0$p_uJqDae_t+``VBHU?sMHB^c@NYu=MjyfU1KR^*n@$y)*6^_@ z!3v58+$3}A_!guvl9h4ZNzDX7expEo0=jo zt}D~{j+d9n=g0NYs+JQz%2t9I)K`PVpCw-$m)_=8QpQby6(B!5B~fntu0ZlSv<-G6 zi+UG89lbDDRy>mdXrMdbMX|z&fHL4};B73|N>nC$#=;%4uB1`Vr-jM%1v|8~n1T6j zc7}YHS0^_tFECodh4^X{OH>mpYessg9P{B0y(X)St`^P!0)*M7PBr0qHq=xmoko)P{%5~{G zjk;QTe7ZIvKj@upO66F4T0fOAfb8O7QF=`>_s~}WHMSCF1xaHw#^eS%#>aabK-`nu z*W(l7W!{!5t;3?Y?v8_E<>LLLv^~?UfbPvBQnZQzVtToQ zlf-*qIgmEMji0;4Xc2?)ef@#4%0wg{#ep3)Y5sOiKm2EMqD~s>?2Z*h^5ic@dd39M zxcETr?L%iVlFL>J#JGHVTpx9{;rv+t#_u#RhbJ{-;da?t*(5_E{nh&-VNAaOJUwhA zYS~b85apeWKGt*zFoEB^L&8?*6ezp8d5< zLVaxV{M2NbmP+?k(bb1R&4eJb@jCAPu}~gfWw`UhWBlaVDMm(r$#Lmwc$y&r?r9q4 z`n%)bt_Gx_rb+W=Yl_?H3wT_Mj!x4WDH<_AyeG78-P^*v7AXMKFZLV-krxk*kWkv$ zIg%^{3E$sZsZE_wUjzsNGTzzUD~sgOHP|YKf;~WGns4&8 zTE!rvv>#^;43{I)L*$aBdAblO6?*^ZG>HrFRstE7v!phVLP5S>>N#Ha)lQkewMt`7 z^Nvi>JRZ))1xrmDNjEU+T>v?GVQoE0%tp+{!_bj*(X2FGAy64^`Myxz*;F9|BK+lr z!;{q2W^kWcTcW=smYEP*`lGVAEHzo5AD6C!b~klx}aHS zV{&qkd~kG{el+@>ZR#OevrgDCG%J8jIW8ecb8tv6>x7dtqi-VHU|z6aq+BpGvJK2Q z2pG`tlFfteAaI#z{(v;Ka($3?d>_esz?)k;H6bU}vi!shwTmdv!6hG`M0Pz@Yxilt zcg45)xU-#r1l=3`>9wVrz~nGe1+h}yWS7#qX5}&O7ZsrC2y-60OJs5# zGU`wKT&kol^I(-On3<+(3(pI%;MEWj#{fk_0rU~k0V?^-`vEp44(USnn;aAGHfKzX zG8@+x*DHO5=s7Mk2K>*(4H|I7UU`3JnykpLRmqEOXq7Gm`e;o9YmsqqZiPyE=-U%A z)Ry@S+I4DUF7b!hxNK@oo`*U5lXJ1W^2) z3+7bEnO<1O5W6*{fTZB%kV0l4Q8~Gv=E%yzI*l@OAe9yzovJ(V0EXLF6le`N2Upk3 z^Vm3h7RUojQB^M|1QI_f?|*#_|Rwba5Xt*GL(!Vq;l@G9g(k zLvY<)?7Tzu=^N8iO^_ ziDS{hjDzmqB z)DY%+gzoXu%$132O=g~3hU3YQvt3j>-i6-=x- zk=VjhQbIKDLxvnG3U&YH4ifCA=#hib?< zZ;%?L$Q+Z>!K54V&88fpf#H7IXNL$XtC~3@^2(r7Ypz^FH^PX4MO_eR8y*{=9WAgS ztlpNnAowqRoiEzokUk5yRm#0T7R!{>U?rnNczb_liu89RTlITx3K7i}|Lx8iJs-E4 zARb`|X8@7()V`1(W@)O&`R^z957VATl!jw?^LK*FNFMCO{^7Lo78y5ptE?=nSMTtt ziHS;}!^`9u&6EqKgNyAs+~cV?0fY*x>Y&1`_cdp*{qW$fH-T84usLp+Ep67|JnqTL;K2eehXa4>JUrAQQ3JL;_~n+ThMSPso6 z0ivrI7H>nI4z&r>Xx75*(m&E)9z8TcUGCFA&r!oW9d5M;OPG5$wYF-Tz0q%P)si0q zi1e#AnFnm{vS?Pi_N=~hWyhjFZV~F^rS<*!wJk~k=DA@~PD>5e6v;OyWXO={0L{5k zb%B&VZ@&mtt=9h6)Z|Zne@9zuKo1_@IHflMWR*akJOG1?I7gJ41~rom*$Z2O)j$uz zK4C_xWAJO6HFiN`f>S=rG1}DHMfubi&sThtr%`LVd7xgfuP{zAumMtg9Ei+)=P9NO zE0l`6R~E`IB}NRU4M+xCL@Q$F9+j#+m{0s9OOk?oHP5!GtWnNdoTJ7!($87?IFAPl z1uu;#_>A;mEr&+^&h8(sJ3qrtfEz`O3qYRwX?BOETITgomAo4Zj$9#<2fjH5KY>nq zCyk5?RPOZHxdu@Ws*L%JydT?d(wT!ye2UX-P_ z0fr}&pY+o2+KY#Bn-vAMa?awNI>SU(srAC8|E;w1zF&~9=yZ0;uqYi!Ob8?%7*bnJ zQDQ&^!xHsLg(hl+DrL)`m1PLy5jqOq5(S3zHY6ZN>GjySKzVa|vT}{Ad&;{45IquS zf1IVyLl=2sF-T>uOS_q4`_gqjPQgK$jq`zuC%1-FA+bs$&7=E-XdsfHE7cWCPUxdt zAE+%z7^-1R(mx=Ejezrl_lKnBncVCY>Ka?U3845p$c1&iTaVQ@qs9s2l-e$mgmkT- ze8&;M)i%Er57I{mi4pt!2HoXv{!wXaAE9obdtf5nGCEd{NDYgMv z$gh!yR+Y%xGg4)2yg_IKz^F^4)*BmX^Wrb?wxK=DSz&CaK;+nZu#3*HD1V6$_Em|9 zZF1a4St?P<_TO``K{PWHxUNRu0H$5LbYQ?@oKr_n`(FC=kglQA{@p8!J8Yi-q5=P$ zgW|M>4HS?c3+h$+(3pZn2Y@KeS$tfY?lw(G0vDdxkSTjH=mG1zt(BV4rX?Q{^&TC) z3ZOd|%&ByEVV*n$D&~p2L+_I3-*i9 zrkgZbSeaid-_p%g_xdu@7(j}|@V_P`Y74sSzsuLa9qQ+W^<_#_!)12Ii$(&Vw&E;^E!?j$Dt6c7+}r9U-Aj(q<4v1!`mlPXu# zKeixF1Et+$-$`MRJ|Q%58aog6B}>ezJc zRAz)#Y*O3YqErwTAH1ev(f*oNA{KSd7dt!E*>ww~UX?(1kPGX6!#V3iv4;ed1ERk) z6!`CNWtwFsRl(p-NeR+6B^+>&>8^$AkBi#S(kjzF*rDVq4nRaEJtNdl>7}&6GYeSms6HXuYmn9apI=KQtGY>dPiAX_Ss!N0 zh!}sh=Sb6By)0i=5hpq!LtW>NF1^tUdhV7AZQ~0Wo*W@OpmnA7Y7Y??J9lxe5mInG z8+B`^4+xbz#>VTeJDkJ8!drKGKlS7|_1=|5^1x3;^3CiFO;KRmQ78BJuXf7PoLV&j zSR6bnU2OM%b88zjpj*&bPxwOsWYsI=c!or1i#IawxZ=kJQ|XkWWphN8AXZ4VcpBj${ytR6Z?f}+T@#^H5x%TU4Fhx z_yIQ`Nd#fe89?BKm={!%vp>(3Ol_WNIqagXfM1-FB%3N4)RX+ZyiqRr!k}8vje}Ny zaGJ>C!^I}DjAUka9*l8pJTm_Ep`gPytYq(;Uj@|}PRS&!{>jNW& z*uMg=g#tjc>jW!=;2!0+7^c_?kfaz`lk=1D@@94Ap@O0U);fZKTA?~FR&A&OuWeT8 z;%b~2(1YRwl!=E*V&(FK_l24=VPyQbJ6-8*Z9})Qw3jz&B?~=( z*b|M!Gp$}s@G!nO1JvGQF6{Ern*bsXWah$l<$;I`u|X~YMKhCbwm@NDuurpU)HqbT z!?C{>e`m)VQX4P_86?P9cv%>V5Y!3V(=Zbip$Sqqs|^t2l|YGQHyk7phW5+r%LHj? zz^8q~JT5caA%RH9vNeE=p>2@SkRI-7J}bI}oFqXNT>xbMn*>34b)K&Y@? zl|beTP_IS9gBg879XlSkryN+hP#Lf*pl-sdV^VOR|MOd!b~U5HHn}vi>)KD*W^CC+ zkPf$-4OHMxyE?44eV;HNt@mQ$@wh0z(UqQ4rH!tzKTxYjq=x7O6MrI`4sVB!s?bT; zS@5{NVOp<`u?`^N2z{DW)hVOi_B;;t$~aK3_UzdqNExJLHH)u$e5jVEDPHzC*6b-Fc#?$s8#E2dmyyIeY7SCA_ajr!)>SwszZ4rA?d|r_ zn*iDs73S_GU>veD-<1bMtKr9_8Ppo>d|)UO$FDSHn)KdwH5PNvA1DFd-fCcfx}!?F z)DvjqT#Qh1OQcU&y>P568oL_CcA3PzgM4l3qGMBG9P=2s+iWBC=B9GFYh|&RtKpchGlNlj1s4-`}pb8fuE3jn-tbIXIlh z{Rv;t+J%&hGgW1`K-8N6vZ^qPqtiBM?dE6KkBlFN3gAUaezM&Y(PNqf00In1E8CDx z9CWb9=zVTVqMSZ3LI<<9sYUMip-9st*805T`-aGahb9gsT3z%wqymDuKdcK=Y_g^{vl>>cx9Z!p+}aF#fzE~Vi(3`1Od zEg`ZTcwqF_=H2MG^qs>^XI#xr`nv@j^UJ*rpq`{M+`Rw*qV*aZgwW#6BsdXBBZq|% z%_^iyflM>;4Dv>_>4)e}qa-s0LRSq+WUMSZQ%#V^!t?qezgFgNsZ#N7?)mP{BXWLb znqWaSeQb4!svB2FSHPjGE4(FACBK%|%LiMlbn7R}=Foac_|O=|TGi@^f6;UcHU7!5 zY1)+Gm*RSjlRPDjy*7VXEzZ?0 z`)?ePtWE)ys8DJlr1 zWu1lqY=vDZ3%6CNSjN6U6q9TOBveX}Z-R|T`h%R3+2@B4= zHz7Gl18^T@8j^sml~9FDiben^*KA(%%RhN=$gY8=e^jlt@Zk z_$Sx0&wH8B%E%SaNCV4v{9QVI+uJ7%X^78SM=akL0OFWr3+h9g@U z5Kp5jgHTAX9)ARYtnPA$L38>812!TyKqU&UD&iZ1kQE1@GAkPtOt|*A*+g=&hZsca z?f*s{mP6!|3!<@-af^<@K=TvS9)x_h!0Ki-b6-3?jUe0Gn~L+i#9qkAAQ^G1aph?mwYIoXDjJ&AMlln&U3q1|{E87q z%!gbVnSbIws4#j}6Jug`BRoSx0-LQp+eZlr4OySMHpZz}4_J8`Y8|QmhX#{g3&p*<#;JquA@Uo5=!_{h-;5Fn8DfXhr!qyk-u8XRFI}w>=fCm3)6;{s2|Cip z+5@R8h9lRZM2Fr2#Jbozs+Z+X+bh}{YYXj5UOi1ddHT2A1rWL=IOM#?4sRSa{q6R3 z);mzL4lX+e5}h6!A0*d|G&*!xC7xl=7_AN3#G1nnBAuWFw8FY}iRS==0W?GHn1@>c zSp=r5b2>>GHvqDp=X@QEb2_K$_6ttD0MmxE0utb^U^`S(=J?M^YJ%kwFieA?cp}K2LfdQm;nW~knQc-2?I5T*M~iVYfr5?;HJA8aVk2I-~bR+W@1TmtShNkE;aERI6(S0 zhhcukpfDw+F)q3lx7}bc@(gsF=R6Ez?hkK#Nlvxqwt6kT&gaF2SfpM&{1jrC*1V1Jv4fFSNHG6+;Q>MuJw&`hMb2b@nHbR_#twQ zXGGu)vKN%oAyIxZAlzTQB?6PI;;vrQlxaK-U;qSAAt2?`^P2vNctdzUrt0jL!f|SqBlX1ePP582H9W z7()4!N<)G0=}=tgy8M|*);;9;e|Ar7wo7GGi*7k?8uJt+k{dGtMy(an2y&dM8ruQY zaby%kmdGLhM%BXGCL{r%NNw4}v1HgT!r)4?aL&fzOtu4)xwf?{I z_-T*Q>e~V!m-3;jg=qpPKmr59{jPfL3VYI^YsF@5jp3}ItlEFqem6ZSnkW%8q@D_9 zUZX>uB!~EEkj?aLQ3G8S`Wf@s{_d=FR0=LP?Sjd?v;TZnb)!s5GAc>o1*>_pn2p!SNtr5% zT-6za!{yE~vD%&m9uAGk)nl`GSSGzBI>1ZYrd%~5N>=38D?`#Gv2i-aJvI|f5ZE`K zTpaN&a|w0#yco^w>ik1Nz1DN}s1$iOFw^0yzpr>*{(a$HH1hAx1JecF&3!SX4LgXc zmMdPmPX>-T!?Iad2SS*uNMd`#7AF$BbMncZ#&bNNsVpJcQ{YF&o>FD{1j6Uhj%M{O zT9HaOE_(iuKWl95Xj_=88Lx_@C#`(hpZ;%4cS^m(*LPPSz@soArw*cOH9^4!L(;6_ zvW_L^aWB*xk#1VuP`*vGh{ymofibpB;5q5-lUdQ!^9~xl1sd}@%}uR7&t5gPdE?h? z6@dEc(t!2^KuoKt#zK7uj7zm&`1n^69H#oj>Lu;cyLcd*olkLAj)q=qN15~au5Lkr z;{AujYSXAUH&)7x%L{Zn0uLUi?KO|i2+_(_Vl-?+`B`>#hgg%V@o=?TdvecR8e@;Y zWVcK9`Y+^>Q?7DIpKk3RPXNR@Z7B^A3HQGAxod4h4!#6K?B-Kj8BYMW{-L`Ki(=RNz@w{4+OafSozq+?72qZ^fE9cK5z#-2@vCzE&gm{>V~ zXrvmyBi`B~JA1&PalSq_&w``Vl$TB1h+;wo<6rH-O)bj$QeM9P7Rg!9o|vZk!g%g7 zW8w*bI0q?&+6tDC=qT^=AO44}@2HE#$H%9qORnqCVb4e26VT{Y9Vf!IVM|Q5RUih_ zmAzwK8}6QrBrMm1zl~St@$>ZjRrlOC>T7Cb)yKEXJ9jN|fXDQ{SPfmik|zK%rH~Po z773Bz)BAa!c*D!K$atgSau1F_8bJD}W_xQ7pWVaLdN2xqqEp!kZ`raG- z9zBY^Riq?0PoBEuBq__Hp*G+_`T!oc!9(jkJOz+d3b9*mu=s^UcwhL)wbF0YS>hLD zY>T%CjvlXm%NKh3-JYJm2VQsYU6NH*U0NhRF1$w;JZ46nP3Z%8x|Kc-VeauWo3@aV zp%)320SBdcAAkMrl05Km@iIDa^!Cx?N!EPdoon36G-(iDwVLyDHCFM>=lni9!5-QdM<$Y4{_} zcFA1(gS>m!4U(5hD}U4$Zo8TH@|dgE(;4S{GdgXkGC*|PwNt%D&bZwc86Vv-+1eRT zJ(ei$AnCZ!u3T?dzOzd!$gvc@KRGJ1Q$ zE9}Yr|L}8>JPl-%*RPVf56qE*O;*Wc=DPro$Es_00px5C0U`|RU>S4F5Zl<<7ub^f zPnIBvzdaOkmJGW!@3kwF&|~oK%1!?4-)U(UsVpv)%r)=If+ydU@@x!d)E2-o>8iT~ z9#b9d>JXUrkW~^HAW9w@=XLm5$4S2f&zFdVVCA5Cdh7#`rz6$;oB!< z@vFGHic<+A9XqVskuLTFspBCUWH`=A9 zqFxF!zm@H4m&n(zEtje?GdKu2%Q;(6d|j27pWunduG_M5cj_R0@Zqg7R0ls-c3p6@lF0JC)QOFRc@8?!WFXSvsYyE%574x4XHz1 zhaZ5$e@&HTdRx1_4tongR__cS-gNT;5kG*4AAbo54V1C7hRCp~m)e5ElO-fFNP;5* zHGbr%)N~M^J4|11Ct?38*wE)x9q%Y2Gk0$Bw|JYi2nj8KM`L)={qb&294WK;`+dHnFeop|%SsEdc&{g~ZAoIuk%tyr6S7PFVBseNif+K>&H#k57 z{C&l4^HL^~-EPx0V>)xrzwhF_{Q19TGX$@_rA6xN8l|D8PO3`lq^hJ&s*6!cfC6xs zKY+;mF+VdUjz`JSo{q_$1d!D>0tTjPGl9c@kx=~C{2TuTCgzWM4fDPB^z-&~{PxuO zR@=nLvHqgqZHW2@HT^1(o@4{?6y-`TTcpJ>#AN z!|q^BQcm5++w=+nbrH=L4{>bOtD-+ShO{^-+SsFQmYp*}+pJifPfn^_n3^=&6 zhn)Ym*TLg#p#C8bu68t>xmoowoM@i4i%L|MAJ z&E!HvT}1e|yNk$d@U#3q|4T&OB;JRg})(G4!%|h{!a+R&shL)Z|eUiPhRTUzVMbzS0C@8u5O+ekehi* zSGOs?quWAlUEO4{5OsEA2k<}fK~)vWUnnOV?=_i-KV$TAro#AhHeX=<+1Y3L`?Q}| z?!(#r=)X>T-}bj-`@mQc6Pc{*p<5yGJh}x@e%3z^MA6l3A~!RUn~RCuOy*YV?%dPe z(fx5pTkURBdDV&i_slHS2!viRepVLk=OzF)hknol|Mm$pQ_jNaupPQL{ z+|A@+Hj^7!4z@Mc+}BxOvhVQk?k*=fqO}lOf%vZr!_P$kvoJ= zOMAD4YTCM}qNP)4>>f0?Tup~s*vaRO6uYgawF;N^u*e&;YFgtvu=}m<3mx6J!~4=c zkD-ZB4!imgwx&m`EHr0ZHJ#4aLwA0a4|utlDB8!3yjsui-Toz)%w_mZY(-q-B*d;dp&@22-_U-mWH!_jT{~aIw@+KvNd*lZ-u3N>M1?zJ^_i`z|4cQLc9ZOUco`oU1_g?nrJ5M& zkI37z3XS#SR+VgbzXqDWPceY4i*M&PS%VDg{b}7XZ4kmM>>vhUh2KzCDNdvo1G`XGO?>pZ2TX1rw-nU3`!#i1s7q=* ztux$%2DWuSza!0L4P+g}5WS26Y%G9Q(<-00jY%B%>be*}E1cFCKx+Ck)cm^0 zyH7EIMj2@>t8px4jbV&pEH@XTXm7XfAU8VLRB&wm(Lc>9QZPGQT3UsEvj+Vs09vi@ zGVaB%M|uQDJy+gh8CKcaLERQj0BdvjtZ+_mG=C4Suz{wuU1z7)*9oN>lxPmSJv?L! z`q+HqPae}~Et6as>%Yb^fUTwN=_IQ5!8Ww8i6ILrHgo?7L=#Q=D?-~8k zxGxe-Q6NJ8T(|Ofd8iFy0B85-9R0Dn9YPa3hyn06`Te>Wz$%LdF@Us02I$zC#57vB z&hUOUvSqa_)|g7HhsJVgEM_qVkiwobP85Q><@7LznafBH8D zaFqBETG~iOpIwY)m}fB#+3XIle!qNNO_bp8)@Z7$Sn|Wo=Wo>r!B6fI{nP>=55LRk z$2KH*r;PlxxT!Otwyj%-*W3HXJ)u5UVX$?ZcvI}~a(katXk3l&?;wxR6Ix<;e_Hg% zCLiI*_qWyjhWNj#`8CNm2YG-V(Vw3rrcsiKHWomGrt!KOYkqAEg8Rl!CI@(sZ)eM+ zdzTIUvmyjQLu735lURYDQUEy61tDS76Yr;aCk)-4UEAu@4w=>mWQM6x>)RA0Q+-DvGSm_x?=#QGWP&BK2 z9@Qf1Et$g%ZeQ119y?7QfQ7F&XqzK<(l)86wFm(oE|lbB{t}6EVXtB?Z5~FisU2~x&M*eB`mI)X$;aKr zlIlxe?z?^7rBrbQ8RVbD68zW#Aboz<%-f%h3Lk&*;jEfg9~^$|qRR}eKEv84bVb8$ zk-ooH#_SPG103DxzWSp1^_f&Vu8cEHYtQ|WXU#5b{fRTcy^Cr3g0|VBKt}uTY`^{7 zT`0+;{n`CXhy9+2UG4lCs2xD3&UlR#B zMRyEHnObGl8`fu!KDHhG;73G%B=l+TdaIA%)H*nH#-$H$jQ(idJ0n_bZ`R$$C>X_B z1}59-bv2N)w8`OKZWPho@cRQdock;hX)S@X<>^(p@M8&pdicY_2DuM>`rTKvo4RHr z;Qi5ke&+5NYa&<_fpcp$t8EN$HryZU^>u7YjU`cWb^{d1iYhrke{@12ESo{z!Wk>o zfctZHF->1$0E3uI=2>j=8X^YhOPG@U4`B>e=tz>j#p1yz>413a(~prS#iHGaKQ z^u{Qk+|%cEF-tG_|MmfF-?&!J@&Jz1uNt#xyK<_Kw8jC{W;4k`83FF)jXPdHzi`z9 zr!+!<%bk@F{8$3Ohkx|nH=f%ZHDp^^bC<`D;qzXA+BfNQ07Q^j-H=UE(ctsJ|HR+g^SR6F7($=|!0h%$WW zor6mUEhnOOO+0W`@aWkJfEx5tXomaPXEuMG)6hNCwkFGf<70&O^uj0B28f0lMx*(4 z3dG^tdqkJcko)8CK6Os8Gu37H_g+4qBlO44a`E--6A_N?%VEf&y)P#*P0x7^T^3W9 z9}4m`Q%puleD@9E<1gjJQ30MSHaG7e2dz&#&YA zJJ&?|jHKdb$V2{Pqdzv>re1P?e##iYNoAWMt5wOfa6N@)y|vt>-p5?_d7oZq+BFs} z!N=uv?()n`B5KnF#b@jaovi?{>yt2jaggsd_nkQ1(&a0CU#t1l@XdST_xGaG%c*Al zv2lM~kJaIspg#sNfTCJipf%5{*NRTSonG<(oz(!_ajSIbThBhcablpS8f#~oU)+yT z44@G{vT!}}V4v=H_AMQvb%i8lqF2a|_DyFh04nN3MDCN;XT5W*(Q*;v{Z1;Vdc*PQ zk?YfI&9AZUHmpzM+Fxh)?X>dCCNI%5_h)X3KmF;PQ1bI|q4v&h+ELm}w|;TTHdXjz z)c~JKO>+-5zz*0THbSY!EDrK4+8Cf$>#n;_u)9lZ_iMjSum19rnzMC<&Qt)9?ZyAy z5~g1f=(6D9oQ4jImu-eogZ~@h{C)KKd(t3A?vIfwaEe3g(UY^~{^+t=CJWJ`%s~3b z_z3cJ5hxR$3sKzn<*hXB-F*IpLm%A8Mbn~~-1OQl~AEM0$BYV%%ob6V;5U)JhSA!pcvjewkq06_D@ z_jijMF)h&T_Gj|y+q>O=YMpJVt+B2Z4bdy-L z)7NK`E9k$vmGA7f(8GHx>F@h0sY}0wnlq*P$qp987H8M0Xvh42u^M_!Yh9yWp+9|M zwQ3$nn;g@|0Ga{^H2~MxMx3`HKJ9NGSU%!LT|nF?ShTMKV59vftlsnctPY=h_0haD zj)%i83wAzZ-)ekqt>>BZ{q6D(j%t$o!2N+xMfIio zeDGBNh(A47cB)wufNODOO$cBE{`4Vr=hSC+;uGs!aHlCl>!CBoqYZk_*|3p%(v(<^ z1b;XBVL=K<=lX?*1$gR*D*E$x6@;oxV_(@>Wt*+Wx8q=)A^+bQ`gZ2^8d6C)sQR&~ zx3FIkJnev*ql=E-cjXq173fp#Kwkv_hadlU&s_QBkgDM`cIppJPf@**=C{N7WyZ1B zXiq=z{eL9ZXNaena+ai%*?|jm$Jgbw`e-$EGn)2a=>Fgo{W0SI8*_gYuS(O`$hfIk zueww85VIxwm~yh04;({8t%?i&6@CEh?wFe)RuVYKrG4esRY@Hr)d$e!VBwVWz1DNe&033v= z@8;8<@>aXjCqq`N=6QS5`%^X^aJXN6$>5#=`ePfi$i@R=<873vL5n)Ef5tJFyNikZ zKYeca=}k`qLPK&)B0{|ihWjD_YVaGGn(7mD|3`%tt(~5I(fH2V30l1-+sdP!I=fj9 zhof!}I?dBV#@DHjs;T+yiCyXVIz(kFG6<~$^(YWrpoFz2r~xEGM>WfiI=MNhx9D}I z)xh_+eZJn*T05z?I9v2bM~l#&yQI=Ri*p}Yieh?L0WD?PsTJsp0C3h9?$4lG9vOCe z#H_FMHMUw!=k%L3Z*b=8YvID)aC{v4tag^B=U$(^V|{9Hd*wlZ_nTyEbQ?`gRJ1Ie z0^Dt3P`H70ZQT^N=7bs>2sFyt$=t52!e;%P`2G$u@V#Fr<(&?`#!&{?+4XG-;|(eX zd)sXz*|qh9?3>R;W>~sGz2*q@Rsd|=pJ9(~Tu>Y|;8{m#j$Ix=K3q?IeEy3*za96; z0o&6sL#-rnB;^n8Q;??%jgIi7bHaUSK#&_n`nXYcT|3?Q`6)WOFoj}#-E3e`9E803 z4jQ&Tht^Gtp?H6HI@Q!pS+yOsx4eb+o^GL{#tx1hw5(P~U9p{^a1Ogi*tMQlMa@1=z$iv*)^631GmfRzCx?tF;8`Kv8fcA&~?>Y2^ z@1H3(`7O{Ut#L?6^A3n@l4f$PJ3&#L2O^K$_ z5ndGL<;rcx@j{ZZprM1lEo-6AOPc75l13_RL|-MDNp{}<-x>FZHJn0vlNw!~9=lUy z5Cb@}_=YD?lV=fs?+JC2SGI1r-eZ8pjr#WWDJ8G}?T5a)LA@0Ko{IqY2Lh0~Hfw)P zn}1_XN0%p^a$AjX@n*jh}D?OkWp?HSj_ z;q~W3?@d>v`q7L8fAVrQQAc+-<d8(PdJKaJ@tJ_Hj99)y;Hczs>kM6aKyqwPga zRNUA}=(Oa#8%59jdtWy*y*WLW_E)yirkpzZp|Xt-o5&c zW{zSSoWr<+o!1ro{d#ns*1JJHdgHwj0O|ff06ZclP7Ecq>7d<8oEA*+PeS|8&!Jg4v%h_gqEF?5$H}U1_sfR%s}#TGgEDQ z7iCqq(VHjhXk&H*)u6MrI5X;bl&MLeKi3Zmq=&~w@IA^GH2kxNYUu87%hfC}{wlA* zw++qXYNAUM{b)&M01XN8q%cT{$wVLK)zjnqs_2KxR_aiuFH&(MHB>L?5{B}O3^@28&VO$i=yk=Sq zYiHo;%^h8o^2$l-?6Q!>QASr&LZ(Nx@SM=xiGFVM`t(@J2=ZX9SlrY>Pwua#wa02$ zV~a6l4t!>1IUoSnWCYNY6C&*d;GYMo=)vzR_}X}0HxrSoi-|hAx~Ws?r-X$xlSOSL zJU!lz?j03M1A{%t)74DXZC!ND$Hnx`sTQ_IdUmcu4XQ$*Y9vFY%QFc5dGLKdRJGEq z4~pn?OD91X^)=VV+#g-NMPFE{+8Cf$y;_MPS}Qk{{eCiFc{JITwE|8%Nc7eMaP}8U zXwaXYzq~AI;+mesO6S5mkz-BiuyRpnxVQeh<@YVj2%u*sMKQ4q!hnAle^Nr97Bq;% zX=hqAUbw~&gJ*A6HX+8xjkeE8pa>r~cFT5@G|{qcB~;Va%|0`}L;rw|&@c$V<%zzu zYFZ56pVk8Wac3F5c%+urT@*{cu4cL*&PVzAuRGY z^kjjp%2ZlnBdS(Vck_|z+s~V>2!Iw2?a@`~tpKP2aN3{N&aX}${hZNQAR8RtpoUam ztJ||r**Bm6of)w-KE{VoJ1Q;H_Tna*yQQc{pWmoHLHhV>FN&dYk=_Ki8!pb>-=3!G z7R+DlW3NwTVQ}cjMtIVeS&23%P`{g9sX}?sn=W>LszBytLPI#8N?nJZ!YXT z|6fOS?p5a3h?C@`&cu^Ca$9a2KADJ``Vt8DMgU|23<0oL`hy#8sfrwg=B0KoBbc~H z2h7N)l!~esuo6BFUj3)D6KFuNhnTvdR2DUMbkXoPa;T=Yn=`9?IbAYF-``(u|F4Gy z(QihCGG4#6ppow0b(#tq+ExGDYDsK;Vr^Z5_PL>{VaXv_gM&Tj>-kAGTp+{%i#{%< zFH4*0y-VZiWL-P$JKaK`6*bbyx(>cgaSfd&)jQ<~{7ohb^K_x#pA$+q4i2K0P7A$# zvW{-vaZ0&{#)s~4bBKIg&2)HC3PpIkszQJ}I8@n6<2K|ICUo|sUhUB%EB8kWnfA^C z7~Hq!{CK*UyINKbOjaxa;s6xR%l0V_pR~6EAQ2$1)O+8!wI*)Zed4=~`TBaF->T{L zKC*3w(U$M7=`3d8^JCGxU0rCyj95A^(u==BW>;}g{=Tn@9@$%I*muSVjle03@^Pb= zrbN-$C~wNGYp36ST~1#VH}Q3aM{Qj3X3bPvpHK215T`EA45WD}{xs`@LW=QorTtf@ z+H42}VBXdu+H<;<@|UKmZi~rmqJp}1`lhUzo;y^{ZV*GS+F>G6s5KdG0kK+WXs8!G zF+PIMi}0en`gXcu`za1+?ejDSF`Gqz2`h&L(WB!cRM=K}e1|GqXv(_Z0cxYNRPe_A#$h(bLPLJvhJx|r$ebbop! ztB!*_9FUbmgBj-39)5Y)uiaKkn{(@}^Mf7q&%tMrYx?W?5wv_jAQd!p(skQPXm3TU z{qPP4lVY$AQsV+4njY^%Gn4%3oG?#Lyz#+MPBUDx&hBnHyeLiGQv3&EfXhB8q=Qv$ zYyqSIXoUouF8p|+myg!cJv++@Gu0$TTkBivGscJ|;(T4{l?!8ORD>sOEoh=8pB7Vd zhegdF81?;83<-^n^rG!^5;-Q(9vIxuzYkW^@4hKl(YSdje)QF;W;)%}siJN@;rBMN zjZr_N9=Kb2OHRKU49x-o01_m72f;+0u?4Wn0k8nvw|-?^?C^Vgx~TfM9(?@XaC-3N z{vKx9cU20F-H=D8n_*TH{{gQO`oHAm;;|*`C@FPpSy`xT^LJK zV!atLne$;GwRK5f+xmps#}F5``u@0FW{?LxG$x!bjPv0G0+qv*XU!tvBO})5aAx?J zt|$ia!37)hDW|TT3YG~M$f#&WUJi%mP*p2kwz-fhTg9*uiOAzy2L`+IT;xkwdxlBEYwa>2&*xGS2U>N+u)% zwL*Y(u5Ih0^jA+(L%VPoe>WnO{yaLIqE{cMT0mHiI?u^ot`4|Az2*){;N(|>5nM?N zpruCth!)_U^(*V*hTm(a-ZVR}#%0Ra_7&I1$KXBy5rMWJxGtMcw+L+lU-q_P!J42< z7;j{G;bN4dLQRGIG^$MXiB071j?GMA4$o6RRMX$~R5;|Divwy~k05_WQVSYYBz5gM z{?ZEZv9J&gU!OzeEuB=bG@ac#>F47R;TcOBJ5`N|MBc;ahtuE?Pe!-&?gy?7i}!6= zGfjW5fJQ|KHwCXvIrVh^cNNSh+I0%vfOtu5jI|vZCf<)^+d1oV=y+|L!?*wz0Q(*2 zZl;`T)5*g{@Tw%}044G2@jANhGbkyda8EOptjJ`GHt4l%zE2?pDjcUE9NN3G@BW~V zQmiqB?RKe`?GFKv7QhHm?Agb6RJoBB8W_)$=p(R<^nC?sxl^Z>rxQ3g9IT>*smnqMYfexd`pN6yH2mo9 zLhMr9IyA&i2(S)SEnSrK%1Ig-=1E^%>!c6>001BWNklC$VYUmGND~0x& zXT)`HA09&YpBKg&9p622eGZj@?jRpr0XQ~Y5=Zy%u3)YaUPuf+dcKGW@KzagZ_aC= zd0UJ59^al3OEVMv`0r!h%H;sx#x1oYC+Xc!`wemA`>PhNKLo(u0-U*zFYt5QzCAd^ z;L0q{2;_}?bWa66d7z3qEfzYwFpZ*o07{t{fBwx^Wo+(U%x3E9?qK;9s;^Stbm#4;XfQ!7qnxi%J z){Hp1DBg!%fSW%rWo9U_a&46tG~PddsG|G7J*~_^wkG3BS7dN}qZNSI)yD;@V^le% z#6BNgo=E3}dm09!fBdGLR%g{w<#idF?tGjz;D%ef%9MUX3Rmk_K+(oTP)=PN-TUon zT0cFOs@l3K^VO5AxtZ&z2;<_+0Q%>INQO|+wng4I=-;nSi(zYkw<7k6Tb0Gi=#m6q z+At%I1z>AoBhC4sP~8uQ^#~f)XK!$SYiywe#{D4xN%yQ@SsOR}UKPbr#83ZoUp2oB zA!2=9Y4?@FEMxN~zLQ7CYuadXj4!=8BbFERyE3#AEaM^)XznO)7kX-96itcsq5Af2 zItLkGF`a{V(ZyupLpv$PhaT8{nw~jW&2G=lg9GWIu@Q8%x|JrrQ=o>xLaPxC3-P3v zFN~%Xe|K7cLIld;-biF6v)06GcUcRa7wOG=DwQ`h9dZc|?5;4x+KZQ^lfS!F0ANvK zRvlOIbbZhvxk-RBk6n|d9&lCjSuFHjc`Hrclt;VfCDG7O4Q6j4dSZVi-Sh2fHI%tw za3FJsvTNIE<_87LmYovgLz^#)r^8ikH0sS<8%uFI-2%&84KKcT{O5eSb1>&&=PA4B=&J?Y2sUC}UkVU+%;; zsf^aFJ%*|`3k?nNq<>G2Vk)pSg~g2>H1_R$ra;TU_S^_B`uOq$Ds1ea^Ec#CONUGz zS?}_AUh4KKam`DS_@ZG{l3g&xiR9jF%TKO`||ijTHfaI~Tk91iLr44-XZ^G-b_nqOP55 zg;g2`S?Ji}G>Y?eQ;;X|45FsEi=tPZpeb=a^!}ysHn9lKQfpT?y_Z{0^HT%3x@_Er zToMDzwL(hFMn&`9g`X7DrtEsPi#7cIudYa<;o$<6!VA|~@mVQ-RSJ3q(TsRsdU0wr z#jHBP*DYC=&NU18@4|)-%6Ro8bvc+BXEiyxAV_n6+Wd?5jH$6&e+U3#fO<6#AQoR{ zI*ojKtB-H3AJA8ZVfCOPL%m$-@WNDbgL`2i%5UhP5$m%V&KnfsL0^|Pa{#t-Xb9bN zZYUpeF5|OUxM1V_4M--nsrd<@L0OAaSeVdpp|w-^#M;G{KK~y^hR`3+4W-sj3wLce zSk+3GY%Zdf4zNGPE`)lyP}br!rZdR%kLO3w_+efHE!|ea6pge%54w41FdsHlior58 zws+HC_f*oq4^}ah2y{mV^EGW<6uOo)3OR`I(aVD88RNB}{gI~+0HpR);YErBvfQP(m zg@B@n=wwZs3Rx!jxp6K4?whFd6~Mzkf2gKE?=I&gB52eo<=j)=!l)GT23RYs6Og7u z6|K~*feUTU$C<_eQb_tu0FVdh;U$ll>Z3ZU3{u{JhEdQ)SETr}KZ!&OHtgH-X1e5k zP;W(fBM#0J?97tPVdLNYN z^EruJX$5VWzV0Noc8J4`PeCSMzA%Qbr^qM&4X(uet;L-6yfW3F9zH*Uyxq*4@rBk~ zcf5|?I$294P1cP3u|=XVUJ5`(a~CDQa#FpuNN*Qfm>xh2GXe=Q5!{Hqr(0>traaCe zK(O^LP*tlCBD_wm$WUVpbq_2Swy3i6ga+ub%X0uDtGXeR@1IdG1tP0hSWy0>-*&!^v{=Qz`zhsI#Sij*~t|Hk>nDECa-1H(XYQeCD@o23msXUMmQX@ zm;}EAZk_&WHr2PIE>`%0I9M0O`Oup);^^B`%{2Y}Li?f%O{N$c{l+0dOlPQU?xHYn z7q06a^;VuHsb-7;8uEn)M2%aCBE3dlknz@GouSIHV2=LE`D3jrQw zH%3s5@%ysoE=qmnglf6)dtL*jym5S#4;`**<@XmaPqzz#agF@?4jS}&4vT-Vhbwc6 zuufV*!Tr5;vYwW0D^;#xJo5_{__iUz%#pftXBqwLhia9I4fh9x!PD1el8YJ7CtN{X zyQ#gK;atQTc-_Gn;V_}lh-m$ZI$H8cF$+J|rKmyFGWR|Mudiv=-G6^u0B1hEvp4~p zoO5j&4Se+^7k!}QaC*EiZyI34TXvkHjk)!VyMsR?dFj&cMTy?|Z|6}Bb55*<*kE_U zmGZzek@eY}Ofz~(wCB8VZ~A0*0(1V)eKVJ?9~eY`9uv+GsmK$E%Bza&GU)OTiYU9T zjo`M72=nA*n7^CwbFcZNn6{TRu{&l|GA+>z^aoAyw^{(WB_h@lD{8%4@w3?^D9~?S z978h_g+|p{dm$q5H2&rsM#3=JkLc zZVl)K=Lg>rjs~?#eKQ0RC|t_glPm-yLOtlKc}Z%lgZc*WkC4bLS&>0O&mZHMz_zNu z-ZDGn{^&i6{uBVlDjf80*Y<%?qkg%$YRq7vi7`G*cZhiDI8zz6&Pt%s5#Fjb1V09( zt-V*LP>hdKl%bg1PYWCA<{f2J-P&oxZ-?*nYbC*hFb*xVK;)fQda7``T zkg8^|7>PSKJUT9tJ}GFR>k-&qnL_8il}q*QU3|EoniNS3(*s#E-uLZkdNr$#nma`% zS55KSpkLPdh94HDGM7nOfRd(84iJsj6VC%e+g;~|&|Ra#)c{m0&`=gActMv4SyP;| zB$cAP;VRj(ldvBU<`<6C&~LwzsEpM>%G<}M1_XJ~cUL9Td$|ovcoSottQs4+jHf0< z5%L6#Bq_c=T)LRm$JrG;y&{8AE1Z}86>T*7EkOydxiOP&+>U#$RqGpA_zf$+B%*Cx zbFGR@e+dA%K=!e^J}$S>J$7UoFIN!Vga!$FF^f0llUWHgGTf6d1YZ*Tm@StlZ~!c8 ze4&l++F4G|AF1UUZC?n8~gLB~Cn{yl3AK!3EEOTiPl%t(_UPC)8Z%4#)Jr@djgw#NH762Sx_}YVC z&*A5mIJxXQ6zJ(fe;*e?SEdFS@`2ceYU-o`ujNoikQVk5NWbu^8C+ z@zLJ&-pn}OobZ>j*v;8~MG_4Q6=wTrbsO{E5f?~2y|Sg7uKl!_smst5Ktlkqr8Xm{NG)b!Wn5P=v(p|Y58X*Tn7N382=^*xN#7?Y(OAGiTb(+ zx%UtN)zie5VJwg;3XFiAAMtbEO$tQ{}}e- zF>d{_ZB{&u2>0RxUEI)4v3~CSgjl@eHSIKaOCg;Cnqsoh*hp_iU2caNSM(ivf2J(xuZ6z>8ABX}`U2@|Yo8x$_1L&@79zawKxL~! zohEug+(>tsDk!5;e-fnb!v2{>H*h|N$v#Xmvnw?1Ju>e>f z3+MtC@xpiW6{>)R#zcB^i$Mgad39}!{vc4i``mEOB47VmDZQ0l=dgwsLig^>I65c7 zo5sAEO@-*Jrs2O^VQP^f1;Os%f>hSdC#u_M>U*e#H7K`q;PXq3B@YFBdi4DP8Zt1* zo#vzlFn0zu3V0b6)admM4u4T&Crx+af$sBmdIC&M;o*YOA3 z%tRkv9?ya-gJXUsi-kMQje0YO-K4sk28cm{77Jyp%c0ylalbv)U+B3%*5Vpvb^1>L zhTUsJ{FQc7YFu3rhx$;;->1g(LFlH% zgA)`-`zu=5Z@0co%vS+4H)vh9nsF4#8fypwvkuDv_U5XiwM?kf`n=kMhHr#bIetwl z*A9GA*u+IACu-Wbk0+95hWL_3a|x|0Y#)NgqyRTsJ|Ku|nQ=|5BU308=(8uoDxO6I zv0$=J-Gr=nHy7RiXL1zhBJdpuIzbNyN_I)2AN_G;DCZC$vmhBhe}SlBkO49d=Wo9* zqvsFSu<+@h3G1->!f2YE>`yVPPgrZMiRiQ02{bO+n{NL66sNyowC}qE{2QA3oCq&^dO{Qp3ljl84m`A|raNL!=U#Q=a4l%n-+x`kgg*Gv3(|xz zgSL_ON;W6JPOV61VL%-PXxK>3-Th5D>nt3|F;U)J4JY*$4kw6l2wJT%fVJ2g!Z|L= zi$0r^M9&_qrrWiBb-#{XlS(Q69%|FwtpyEq`Q}2d zDS!o#6q1*Y)Y3|&;?LLuI6;5p>h-4p2*s)!I;}!j`pO^8Vwz3d0vve1)IyOjXE9CT z$?*|%?Z6vPp!moH9wlup#P)9APJtnR&{ z`K18=VPq)%eq;#y_iPE2FVRDjJ)M3Wdf5REsLf;hs<=1^R^X-~!OY7?*(357IF$G< zXnjz)*Pp1R`nGO*;QQ0GdTI>K|EQS13UrO@1_g1!ku2y3gt~lNsY4Pko(XU<@c;NV z)~q$236?j>-<_=o*rL-m!7`i3)nuU~i&7b7!!y5|T~AkjR7}3^CaSr?DgfYG;r_KQ zzq&EHjBk(VW4{Q%UF%oYCG^b#X!+kzF(`IP53 zOIqm7i{rTUIAA?!2-F9F5vs+F!IA{)aUt+(yUuOW4KmT5`AHPu>7wvq6kJ|eKjwc^6T1Z^jo>=;g=c;eEL6+ji4iyEi~?(d>hR= znpdm?-Y13Si;^a;Z$SHW)c(pZS~)b39vmIX+$Zq;QP46m+M9#W%ylREz)y_z5fqKB z#T4h~LbYuc+E&=e&w|tThjT)iJqnizFSt!mE^2pI9qxbQ;9zFRj(j7Rj#XJXJ$H-@ zrN531S7;H$U9l%@$m2sFq41}?-Awetky^TSM=3+!sEObl5t;Zqp#)_QRBa3-o)!Hbzeh~oF1H=xyR~EJlm0{3dUo8+&WLEhZrvKogWJ1qPd5u|{3usq)3wJ&K z`}jyPEpc}xA*1`;WVl8CO6j4AlTE|cXA>Y%=E<9gaq9nE5Y6UwM`@ECw*{MRHWN*V zLgFosE42Qxze=DU1~1(42Dm=a-Zb{@JRWW#LkaEML5l|7j!G%ub6-GKHbtrwWB zM;E2?{mtD9MI&B5u86-z zoye10P@E3#jHEbgi+QktDDFT>AMy|glKJr4&2SLE`1P=0B}OQuS;+z1Sq^T9BR2<| zD6*;I1>bu|X)|}AJ5bfi5T?u!%YWhbKXQIJO^WfQLBSq^7gg0tmw#Bq!#CvfK6gPh z-Mg!tS)<4^d^tCXc{?D|-MGDkmJSN02X~+5B%^G)jORkh<@Z;nkcX>@GGEPBaeO_u z3lEapFB{_Tp|?Sqq)|G>;`&be+4Zc6im-d6dkg$ z9uNSq0Z@CPij$c4F(gNK%20_blM;Tsd=HHGCp>YeD%wc{5VmU?C(y`OpfB`LH=O&hlMK733-jDCPvUj z?-ua=;=K?6SO8r8g+n#8Caad~bRXGU!ETTW-dTuoehAr+*Rv@X{YW*-BmWzU2rW+@ z8XZRQYfgwhO-fAzED-9EQI{;+rr=r8oEUWwVERUSyVA3VYd9x?pCQ-~6x1?Au0k@@ ze&6(#sE2LqCjq!?{mR+|^aZj-J&aHgJ8p}@`+sA49M{-N4S*a#^y(Ar8=`Lxx<7n> zCHmtClPWdvC7TO4BdJA~GK1V`_mwGh-Df4VA*X>mELdeuXb#j6T$boZuUr(%l~G#? z8kO5sGK|W1V1q}5deY}}ljzC)C}})x!|f5WZFTo9OZKB{GW_YPk4osxi(|PLkGAc( z+$z6=z-HK)V~${izx zYa_4 zL)@8l3GR#|3xEy?!201PVKAK$s}q{v&%;ay7o^aQpO@0UiWbUUlFs+8*Zw&CpjM-I z4|*Hn_4LFDS~4Jr{cl_!bq~|tm6UCvnUS;tV-!iaWIynRM1t(9t;O^~ego}akV5GJ z?!0Eu>?ppMmP(>25Lj5glh>rN5TRZG#V)8mlSMvS?VhzbmERYq)D`gFh#gX@c8M)? z`E?nbhZ+4=9{)uu1=t$QC_v9vElqm;@j6=m8A?%+JTp_(^_l8AK>(0HxOqn@)4v_< zUytaIl!Sf}0L23I#M!XJ|CP)k=*%#iQ{sHN##bH|Tnh)Tu%VL^MM&vulQi%Rlh>T! zM2_}*p)q#PM}dqdMZT0p&6omXkkN&C#(2`4TDVZQ1>aie4OmG2(sbtdFaEe#jS;kg zK4K1VUsg|zri&B(C}Guc8Xe_BA6$x7jW+2)-tdBYL3Bf)_`=j^W>tQ4c>>Qekem8t z38>8ZTyS5hxE1eT8b_03eE5Qr{)~H_@m@Y9__?#IfqaAvP^WInqwi0*@*1H>gW%Q( zVY+Kn7~MN6j0=O%`kiZ^JGJPFNM0e6e#giV3Vc4xhNo|}EMh`U(eezo)`8C-<9I^N z$il)~EOcODDq9qJ-?*2_@8r|B}6sgp8a6J}kzN>aO_yf6RSG`e^9Y5F&cI}992XxPiyO^Tr_w-(XX zLUh>Ey>OV$4W%0f2XVbHY4m=lo=vvax`6l{E{v)aE7T4HQ zcN0}AI6w9gS{`#25VN3$;=3!Y3XZ7|uV!<5#^nP8>5Y?h)W{9atS_hNPrnKPEI_=% z2G!RCsB>n8tZIb>{d@q0E&H^D5BJ(>(KItrz?;a7qMHNS>m6N`!s&dWlZd9jmq*{1 zi>68m{%%xQ-@$<{+>m%bH#)Q^m0mekOTYT^lxA{^6*q=Pnwu6tFHec4F&lCjTD0+! zWb%%Pw#`YPF%jOBv{s-=D*v4|o5=WHk?cp0j*p;lPgkD2GJJhDy@VuFstD?AHqK(< z{+xd9E=;_`bNfGcl%AgwLsz8*s2S3YIrX$+TM1QMpUDS|kq`&%5cx1Dg0B5Gtl@`w zf>jD@hmug_QO3TNOFr&q(T>s8MElBHY5c}K+l(*o6mh{(;j(mY0kd>lk>Kg;SiM-! z%ai>XCPuj=hGj@)1#T073b0wDeO=h~5|nH)L38-}TyA)Pybc#VSu9M3LtX(w^5n!Q zF4oyo(W1;E)8YR5DNlO&>=zeEu>kf4NpGO6KjS!K=mfasgI`09sfETxd2@$nEFPfH zRmWK*5W>V&?-;ur!TXr|{RcR>IS4qTh`SWxB@hP|FkPfv=V zC7D460zfqQ^^@!_e11g|w+$TlS`IxqA%Zipvcc3FCm_J(Ts(r8u7<_HUKtoCl!sb~ zeRJF+Q%-iC=H^`Jih;w1Wa8`(iwMO;lGm@j62JnG+aQEdtBz}GDKw^+h$6jQs9;$- zw@!KUM1w%BOeVT%07r$Sm;tt@8001BWNkl0PFF3 z2;cE*(kR5!MQuK%kCR#3l7%(!{ohv5GlxVCtYojgHa(7JCIaCAyg)<0;p3@RJ^><4 zT781^6`0GVw*a`tm0OBvUu7G&b%6k)mKc?0w+yig!0X5B==QHpX#~L5k~rOXLbS6DJBUPVi&@9yD!f0kp9f2!a*Y zWzutpYv_)zh2@21xMl#7fMHx&CvqJo-XAbs@m2dPTj`_xM*8D9p#mzkSSa{~EXM!Q z`xG4~kf4O%+Gc>2iZEvj(Jum^S^#-BPD2wu(CD-C`;npazS2GfpN882Xb%UizO9Q9 z2xuX6FPOA3k4`mqGA95FcIU`2x^q_wXb^S&I7PZd&|t31wZA%JgMuVOUYM z|EK0dIFq19ps`le%g4Fhyw0cNbpS+Ld3`2*T+qne9+Ay9(Pc@#v}tBMtvOc1Wu*AE zubT@UT$oI;zHZE1#TcjwF|bfX4}Eu<{<23D6(RP6l6?6H>Xl37@;f{7wtw#z0k~`Z z${O?qQXEk$)mb+~OE**N>4}kaO=bX_X%wJ<9V6JU6zp^aQI>8=h%3qp68&1~JitVSYxV6gH6RgHx4Gp1( z#)i|#_1Qd_P7JjJWEn~4NBhwB;s#3g_uwKP72P1B<)4-?OBBx`1i<$2a{cfRRdmm; zatiTurJA-*`t#@rx_!84@s7W*&8lUFCyMTkuF&2-t zw7sa2E>WgD3X5rt)nEajl-5m;4b`&=W z=+8vV!?`vykU8o`FMJ046u3a>)#*_4S%{vwAd08Ir>;H8=nlRRzW#eNV`<5@5}w3@ zFD_ppIy=k257uJZy9KPl7NiH*#{mjX4mtvOI_M|?uF!8rgs1}W%ny}x|96#Cd3}am z$A?~TzQzs0Y_w~)m2k5zMvgGy+-#zv<>{QUj$3`wF4HT;_MC7p+BH9k`-7tTOQ>S2 zyCeVz3kTIuX6OJR^FAZOJ!toQjOh|?B1&ClZfDaa@ia3D3}8|J@b<}iTJ%XVUs`H^ ztSQKP7rlo*t@d>ZPS>Je1VFI>eaZuvO!UNr2(E9H2M3wIJdEe*w$SP8GkAmWLhAgp z;%4^A|2;XH=BN3qEYR`qA{z8=obOFXZ^}*&I350q#E2Uc=*3NCzS4z!4CngXr)Q-3s0? zOi-yX;9J8Le0XdG3j|z@hrX+%NB4r>O^kG*nH1t7{H-^PQn}>N^k@aMyR6x6hA&*L ze~gP@7;^Hae7?RusfhIo^>k&36WuNjRDgD3T~}@W$G;{-aoUXbdLC5GQG z<0Q~mJ}GSE{X*9dlu9B9pRu`sx9ii{iHuGOREX%MBh}oq=!{|uU-nky}K*uUk55_c&HbBf4YUOA%gO?7sc|#7ru{Po(S26j_*^4 zoAWv-a49Zl2V5(^!21{_(zzkp>p^*-+6?8aNZvv?@I22?j%EQDL^lhQ^+3G<$T26? zpR30b)*Pp*mTqo0Q@AXRDIt>W``Erpx*I5vqq4`I)}cQH0L^i$W55R0+=+1zV8c64 z4|b>T=G#&nM9E_gA1V~d0M7>>er}4WXkr0Ue9&cFcwMjhuGmX-mcT46aD-T+X>Lhw zE($Vk9}!BA?X6@@#9JkWQ+~o?qUWbXbFZGeccRIwg?)4|O_zLH!Zom%4ukJme{rnZ z1WGP}5NKl73?FxLPsjqGEDF|0f1rKq_KtPQLQayl5Kv29i&CkG)+ z==PVUREyzGu@-Z;7SRWJ4TdO{QytJB0ssquOt2%~zbz|NlaVD0y9c3O%3uhkU*=U? zi|DhGW;!?AgCQ~`vp$owS~asw3WjbSyNLySX-YIrixV+`dKfk64t!el;5@P@jjq^I z$PIFhW>vw>_Wv!GF;KoHXlF|XCgr>xplYls; z$LZFNB%wb9z{Ub-xi?1HB^@^hMJDL#ApKfs2bf4`5iAb0IyQTcLWYy>4<;SL&(|_D z@m~1Ri!%b4N^SIF6v*3^PAo}dSnz4d15)lwf*aV#Z?8<^Aa20AY-;Q5qD2`&^v?sL zSr#}v@QcB<0iuNB71YqqPV%F9ss4oSZCYX<@b0G$R?`cIs(COTT9E(&!+VhkM3Ft> z7byT3G`%ISfxAzz&Q|CU`0tMko4DsF?g8J8dvz8YS`pSbNY4iILA%wm{s;p@sJKP5*v6QaJ zWcO+5XC)d7VC{SJ^0ZjOgmWAKbb7#4$9ZY~+&>dSibHqLs8G6lR|RdpERLH{0srpo z7W0Nd47>B(P@cmDmL|CVpk`xs*_gL-mNfte?f`q%!*Z z{%XE=jC6&|t3|r7&**RZ;$ckfJi}Li2tdMJ>sMCAp(fZGA!!3H)ez_cF!_66%$Vw8 zm3-m=DfQKpTr~2;gh*O3C`dsOEIhRkWqR;fp)ui~a~^<*kt4K8iFoliwJX7~UP_R( z!A!3DjxI`DE6e>9zKw-wP>4H^3YGB&(~*g&tfhi<~9&ov!Juv zxVLk;(UbI|kz~4WS2?$9#DtbBPziNe0->lK+?L12N6=FTs_EH7RWv2mmm7OY3-If& z%IM>Q22KWvwX_X-Aq3z`p;i2mg{e#mv_qLBFCSAUyNUaiqBT6?3rvw573sy9?q7d# zik?4$l2Q%Mt|$#y)wR=N=<2ip4sPWH83oZ$_y{KQbR~9kP@4?$ov_Tv5DUS?{bG_0 z#;{7L_pOt4wCLj!20Ty?3?-s%bB`Ix7`Bag;*4MYApkN45YlbSy)n}K*wIKISE^9P zZ_Z5cTrP6@acMxmmyE8Ha1!lKkAr_qk(g{e`}^8tVqy#)IEg(8GJtTvwoPQ{#Q9slAJ1IncQeEKFfVh3CiE zD732_80^mNE43C3pGDmCYE~`3AFNUoBlY>!9|C|Fpen|i2XJJz>oooI zV3oC^NVzE}HfS91kp6UT7^S~@f=ZiU)&({KN;asyvWv3*S)j>geOO3emNaoMQIQ!% z?P~%TuV4zgzJ}M=-Gv(4yEqpxJk*m*5E0maQQE|H26$G~JEJYU6aW;eyqk-0ufoFZ zo-ZanYI7hsBuQ(~cfXrTmy79(GNA{h388y*Z>3=d73+rykfXxAC|q$D_0Nj+z;N-( z>j&`E8?aV6S*G#*CB+?;bIPq4hG1IAU*gdp{mlMMf& zpOK6YupS^j!uQ7uq&QfIce3mIjs*3G0L0z(+REDa5%(H#HLL-Xvb>7l1MU6k>;yVb z>7)i9IcG^a&jORK5f*#kYuQ{a1)e{y59sW!Z^~J-zdR+1u1F1}*wtCo*kNIQeyFz# zQzgDeMb-NS3LDf`BjZ9N!n`=JLjnlx`EYW8-@Guzn8z;<2ec&U*m6P&&m%;-cptz4v`#_YMxT+O{t;Vo0rlSK7e&YlV z4AC%VUkX#s!7a?-rzMP^;{X61LSYIhxp<-b7=o(_8}fNv5Eci?-@GM)n-l(WmO9Id z&90=d5T-Q}l`PNXLC;9E$P6puhvfsTXodcXa8H0vVFk3B5GV+$nxMrnNX{ndXCfLB z>d9G8$!bO8Cv?Ghb9x;26b*8Bp?wQe)aOQzQw+&KO)g+XZx<6+%-On$L>Fw#Mq5^6%E`TOesB%JW?}Cqt=|k@7ATp1z4D-_hDSDN#3>-IP1~MH0Cp5<`P*`zgAQRU$SXt0!@zbX5rGt2KxKjcxeJniuR)57Zt9MCdd=q z96@)$a0|FRDBuQJ3oEfSGmwWfV-a|`AfDSq z^!snh>7~Opyr)2Wo_bLnqK8{MW;Sxymct z+l3;%-FUhTUego&xJedTuxOLo_Ev!Cf=ziG*lCkTxJfj@!c1LQ2=w}a=HGf*0%2k! z+7+TLIa@c~MNtHV>N6zGHs>{R$BQ;tJbyQy;ErdKBZu%&d@tgmgf%DW>hu7vtkZT~ z$gOSX0eMC*^f$sJp07%qn0jLK(m=-0(kO?_u5IH?t)pTmtRd>KU(c$gYgGhD^cqDM zKin(wEq9>J3kmcLMKO2*o#OVEgy9)g^rxLr9O8};D~*Zt;#eUK6zem2^^X9&wz4K} z#JyVFUHWr|xiH1NuDb|mH@5+=n|(}x*1i%5bcE-0R&e?tgCgp zBhxIpiEjA3ggdK2`y+jS)h{RK42x#B<+k|{UZSDS5_krpt-}I62f>JHvH-|fBMg4EB^&WAb|f^ z;aiB_o*BoZP4R*jVBeaEJFS&0Pv>C@FpI#RZ$!0`;^QMjiUn@$?4p!4*__dZu=M6| z_hylCVE(YPoL)FwOP$~rOO>v;2l%etS0=N22CD|ag&!=yRC})+>xO3n^?Gr704>M} zVB#FEtZk|#17G0ckMFIdzwWK1n~vXS3sgYi51$`Se>f+Me?a`^_xv#x zZ9}Q!@GwvQ{;x`!=>qN^EzSi-)1u-}<_qrowu1h)r{c_#Vf`fl2!ibny{5Z@#Obwp z0tBLYOEY-DGAB!vB59Px$@#ut&rPNwp&r~~`%*@AM0a6sp`!G<0bB@ToaFT2n4v2J zx-6i#(EaCy@*oGH<%A{g$;ELd1kg|?YDM=48(zHfyn}+=X(s|=`1(`}7oMo^ zSG-;b$@F+1dTLTM7nbuR7_GKfETTN9m;keETQTiC)k2e_y*aj!hg*UN5CF_Ld+__y zwi#Kn(0elz*f)np1ua6Zv-UY~N)!CunTNEaq>(P%B-Y&~zo7`Tx2u`y&Rh$<>I6@G zmoX8>DE($csG=Y&H0JF*E{?}Op=T1h+##Efu5@sBWg-(uoP6O-;O{_^e%3JnEP%6v zWAt|fM1uP*S)N39e_PJIda$w3@>xq#X=iB*UH!3ekx(c4_i=(cj0HjgIi``wLxOXM z793fN!S^}M7&b~9H{~=i{x5szu%&TEqA|E>Y%plQfiGk!0wp4TY$CK8va6W$JMF!E z`g&dx1$(&ACq<2P?I$Ioutv#RBmVheK`I{@{+;GtWmr z7~X!rH95uI9)qOZ@|~!PzJqlOhu0%j6kctD2pp|R^a6-$W8-l>%p61K>*o(wEB%PXfDQlz(uP6! zmw$#K7a+!^QoOGl7x{oNckO^cMqi}n2JGzRW~PW2v#3q!sAs3ym04w|L_;0|_&xjd zx|l`8Bo=yRQZy~f2%v!Hv+Oe9zZ((E-7Xl>Q${!q0oC1NVQe3hJ%LssKadgVK}Qw~ zWuUcWw|!B@H0+@ zFo;t`2Non#N`Q6D&R;m=2_MlaL=X-1qXa1p9ima!3d#iPQE_X5?q>SS*a!}^q~`3c zMBx75hXWdf=7-`P8sbUY<|Hz`W7J!@)`5A-QN;*YG=G};egRdsb(DK;(B<1@sz4egXyTa9^-cHLd8dEMQXP zOu(~;uMI0Am4&(;nn^zJ-O*fN{?=l8FSkxJ2iO|J;2u!WkIXKJd6?#+-C8X2%|nA& zKqL^-*<~T`XOFT4_|5PTdgfpi=V<`-?!P*PgJbRCM;$gQ{&-~YnZEkd0%*|?Bh6yt zLrV0+Y@#cY{Tas7y8ytI;j12~5Sdzu^PgOtMq%EV5-)A_#|n>ZSsl z{`^{2B)$(xJT!}f7T3}mQ276cou{}gv=v!x6LHrDbWQ+ufZa9Wv)RQj!dh4K0BL7&b}-))tz#wTM0{Xkv|u z0t#{H#DPI;L-3A9uFs*=Ko9PV)7~Y@_3%EV>-Suh!YC0wAqjBK)?E7N@8>o!CkdE5 zT8)Fj$gZ`63*ep}JwK8sw~IW7g^7KOKPlmRK!p|{&~w)3(gkt0lQW&&lm72e4v2qH z1C8>`%RVTiR^X=w1VO1h&@m72D-a~~FOqW#Y|$&!PFv{k!c@+DYcYC!C)zE7#fwJ1 zpUh5Bii5=0N&&#VqB{p-By9}W*znCP~lLG;*o zt8aYemO}ctsF8vA7pHHL?J(3kU)xe^U!oLnDZfcsjOhrg7X}duHl|fY*78SVtzb8f0 z;!i~2DA|mcC;8HWiZ=S-@_6Q~8x6H^v>6bBZAFc=;?B2?u&b-y+_;^D8v|w0ru(@TZ+Z-?BStY4$5u|r(MN5 zAfW~U#28vZJ=W(f#QU&Ua9dC7ww!USeaGo_}!>OkcVI2@*eAgImBzH#nNB*RL}#vk%1TM zBQo&m3`wJ_x0frLhGi=4X^1UOz;nk~(SiDHOY9TFzEN?va>p6AKrzx#{UHF-0ys2R zdN07{jTQ>>aHSDp9_(|%GXbp@+E2E|kU;xWpB@`MGS^dgk9|90_=W8o# z5|9V5S^zD#MBgn!23(T*2t$hzNKBSed`bKaAFiP_7sk?6 z>1g99UK-{A|6JAD$u+u|B^K@N%8XO=1OkIqP_b<%)o?c2LX;8WL1V%_X-!rgXI^7` zTse?NIVi4EiUWY58pA?(h_$3`_f`mSzjuC9PX9PiMK4_tO^Y){HwtuR9`jZ%B?r3G z@kOHU7>PZgR5rN3f&$5Pe0+QqSF~aF0)~pq{Q_|g8DXq82yK7gFB;rpR&$t_8($L$ z6s!;Gf91YnPvQ2wm)pQ#hJ3v;Er$74+NKA+d1kx!^oszXHDc`0du>CtUM2z*J&gf* zcb*$YQ#R!*hs;8kCi*dx6IT-MjxdwZE||!|ZVHAtyad{FH_xKNKn1*ysl*ukCiMr3 zX{JQ;{NSrUE}~Bh8mUuc<*aL_30iVjEVK#SOdDBaE^Ooa}49FG(6m>?h{pbaDa4@BtUvEj6ATPatE zp+yUPZ-HL*?l=HtLeC!@RuIh|A0I)t4hbeS6~h$x{R>ctP9&_T=zgbJ5Y@ur>kuED zT9M8Pvhy&7USt1u&Q0PPW4sTY=$N}>0rx+h!o2}3Sm@zBl|1rR<}sw80mg>wBVSuD zkLNwc0Kv0<^^X83Y|tJ$!`Yz;I&{I$&4mvDC~L`i7g(9#96^HvEvjf1lx7T^ zMz2ob{?_5FRviBSwRaw1Qr6f0KRerZfrVX`4uX17QB>?8wy0QRjWKFs?$!L&8?RRl z@gGZKqDB)-nkH(D8WX+78!@p2u{SKS$Bqcndxu>XwlMekoZow9e)I18&dydqcbA10#=V7bN@`4u@?60%nd$P0yTHXrXEVQ zc#e0LxeYxW2iPnUcpfMPW0+UIzDzAU-Dea4FYH%?crS|yVWnmxq*?kK#`V`VvqSHm zu7t$x3V%4Du2BHDBg|=QrsYp#M=T<@i=6p8?_*&6yQ3@R;aThC>}TdHjDhES7v;+j z_pVkLfZ}*U=8uX=O+%A*i>btXH5P(_fItq5#v^ z)XVPo&s2y3UWdcuynpuAG9~7^X?%ZSw^}wOK)2adK>uULnuZjX2iU)Ti8 z%q(P9;SQ$dD9|zf;jqEFrI6-MMPa^N`NmTDwGH36qX>@AR6lc%t#zxBE=E3yfe#r{ zCj0d-mELfPKnU>hDmnKB=uNg0`XL{$NJ9(0GPGRoKGc!)@>#H9FQ}=P>EBAvPe+9b zoIe1xKYYAO{`*B{gPjpzY!O=e^1?igyHPSc5{)kaepaor%oZgZU0Eb=p1PfUuwtVe z_|R-MHl{6jMh2TmS`D0d+xx5J;;Dfm84iHSCU%cV%f!mP+A5OPPoY^>bbfi zN)%Q>UuWx40I)zqb`7>frtPD3WX&^#e-BR>5mvnPwc#?lszj|XZWf@|jMZ!@ckqSM z!aSWaI)2-psTo)%zlclE*}0Dn(xekrw~%fI4JtJ=P6)u-vs0IN8?+-^=^a`>UH1k) z&A<*FUP_4-Mfr07kwavM-bGr9y=bbNZi=n)M5I96Tw|{w^uZ(S*t=LhTeDH8%ZSIp zL~$iFtC#C*>^}f|=b?H64 zv3P@AywFHA`4sTA)>zhNh(KeE$r`)E30R;N=ZRT4jhXU&ua`$u{gS_n!!j35W z@31r!0-!wXQIMys(##Zpy1HJDdu)!(TIZ@u7!^XQ{~TSZlULt(Vu4;~KA870(+hvn z5f9Iie=ep>o!%13@sA%|CNG?rCNe+)u6=WvT=T{mwBD|{^lf(Z$Tj#(##QJwx2o!jLxS7$`JP*d?-P5*LN^zSJ;6^Q|Y0#k;Vt1n= zAvbvX#No=ahSg!X`mbImnGgVO`H3&5=S)pp5IES_{`aUMibp?i(k!hc!BYxB6-2az zPsS$Uf*mJ{G_fw-qe`1fRCp%MSfjmyR9nCk`c#0M*72y6L!W#3Yr~bUg`|*@DsS-} z3E%hWH@DXvT&4Ly3DSZWRs$4(xn~LrOka^`KQ?EbeCx^iiiPr1!47}9w0;O(O$g-y~-tKlrp+dtQ z<8|ll)NJuHm-vH~^~xeq=Z0}r87|wSO0Iu*g)o~6D${qz(^l5YUjNH%tm{--Rmj+f zpgg~F?`pk4SG}=RZw!qn`0JhUH;?g2Bw5i4!!!*t!lVh0%$Av}-PDqKE|cE$`G&Dj z-tWu}oHShf6_9N)1mbgba!y#>b4OPyW{Jd>j&-)~Fy4(&i*Vw&$MBN1k=P!qhM@$& z#~+!sRv{haRDWXLK=(Miyoz#krCvuS9Yh{t&C&24DN-vwi+tkgd9^ZeOqJIDgE<`? zZi2NB`g#}M1xkarCmi}CBxM~?`SBH^D->XG8$3X!Qdncj#o$~p;!*_DUu0on5f|_A zIqT%xPcM{)CWk}e0S6~MI=(gHJJ^HPvVd&Orzdy-qq{XR`92*Wb^%+7c~ z%F6 z>iNgNI#doAlnIg6dlBRZ>sV6p{z{EGHC#$2<-Idp_+(%$cWhsL|07=QHoQh9nV z7B?No_@2PUL4ijM5`38Q#tkgffprkBhOr6vD|jE{gU>TQ7)k>y86sRi{!1n;nN}j2~_~t89Q{AAHl$o$NsiQnboQuVY zs&;Vk5Fus-E`DjTg1vCzHy@OyQb%}>`^P+adR~p*Bs!_k{V^Q!yZ6&Ieg5`?J*&0u z53+Rpq**G=0aa1jGDTE(4AwBJs#ukX{RF%WCJPpMGt>b;k-gQg9{D#51)$PHUtq$+ z9%DoBBJH3Cz`+Z5>mxVpZ`;+==$)4qtXCRAc=g>RRa(ii)%khV$ETB(-)M?tfNr0~L*7Rnz#SsPeLCn|JrfgrD`Z;}%x&(n=4?!3G(O)aKx*;5r( zwQ_^X^X01}Dzr1r#1rR4wFt{Tby1zXvam*3B^chJ3S$#$PaeOG95A?Co|(H&C(Zop zi2)#KMChOkqy!2lzfvLAH7OV9U#72?Y2+b6mnya|RM+ChoVQJOCfD__mQklc9*{@o+CGzP}ieU4x&}`6MJ$(n_O~*@5 zXAx8+@0~CdD6Sha;dh>AcdqLLxX0m4VjVq9<5z`Xf3!-NXVu2EJeC7~!$DzDc{kY`%YD?mGF^zgEgqCk&GV2bODobJFB_a=~tW<&eRpn%fNP zStLL?96~jz40m`umPl*aFc4~kiKK%&KdR330h}>A%i#XxTrYWLamL0REdTxk$}~B* zt8@BO^W?A7-Cj0!r~yE9BbXvj&0VL+PewV_TSe4pF;+Z)cF;?qG1lR6zppV}p#a%( zfGEozMu*z(aUR6}e#FpnxpDjejqx2cIn9=4=WMlnyY}1|;!>73W7QyRWuL9#Qn>mw zx{Uh6AkPRLQ(|CW9-XyLSXi;RrZL6N&{A$-R?&om-@z8`JHT~;SyM!#2v{)Q2;d$h zu!jxnp&MJi`Sg6p2CYcbCPjsQxO{_dT7P*_ZE8~so!H13-9E-*x;T-1!r~giUTnE@1TgGVN%b-?I1CPS`*vnp9 zs=E@xDR{dqecYS7LIKDD@Bq!4KXy>fV*HHqMkE#|%FtRx;euVOwCjtIYGTEUv#br} zri`C7Ti#ni$S&5QZdGLb22FjO!f0OdTq zJ7Dzre#J!v2iCJ7p{reYX7EV4JKeERr>9;IRGXDYmH>z4Pp@N;qjBtuY8!RXh7n4_ zpH4}5qm-a46aWtZ7AS1VTlzg~&Jg0Ep^89U&do;%0LqOUP%77s>n}T37AakbmFo05 zWNb?jWl1ABBYe8!D+85l$V#jz!IU{HtC*XjQ1@l)sA1)D&*4L~>&!xr6DQA+l^ZrW z;$CmVJl~&=hl6-2gPXH?A;8Dp+&^KkZjXe%g)KPQu8&`yGVD^em>(goC``zmhYi*V zIcQz3g-!-sQ=rZMa1i(-%9a+!5dXtBG;Y#teLa7>OX1;G%eSC1-3MV*^7FL~@}t+5 z%44(FWi%DxLB+Fm`lD+Ufc*e?fcO~SVp5x+ivHc7ugdHnW33>w0@`5q%wb6;JVgTQ9@ux$jq_UQgOgih8ZvEnUu=@8+7$RTWzNg-Fgp|SY zxQb4cMa=5*S!!|EV5M<~22Vd)|m$gH$__NWR?4ELY(x!VYnN2S6g-i}Mc zCCpgrovMoE?45cmRXNoNF7!!L=E^g3YZc4SN>B1pvv4R0)d&`Fc;L~DJ^E#EXFSW+rp&F;J-@8@aXEmC%gu1}6fu4Y<->|16)a-ky&m{n>)I^Se)t%-nZ$}a zie-Oqh5P{Yq+i|fj+fV>IMlg+fAApLp-+(t*3?Dob>fNAo_QAkcv`yIbe6xrXQf;> zc7XiX3yT6eMDwWeSJsS!?^#LouiCd-aZQya1#T+snFSh#)X~|B`B=W?g54^0E2m$+ zBxa}2Lf-@rO39RDmR-Z(jR1t15|{Qy3X zOdyP5UKwxGyOUchow}Qxj*0E^q_H@>0-k>+r(9Ad^8SjA^31$-GI>^wvLJ9>-K0{w zgKLx>5JYjaNXUROKod@AWjCAmffd^3k8C4xl?{vOU4No^j1MxDjWUN0D_2DVQ^bPn z`#)Qws7}AxXToZh*Uyn$Jw74NowThS{ixd|5Z4LT#5m}_Dc}LPM_Ga9HD4cDA!GWM zsC8y_63emwHgk=zATpyP9MjkM?97oeqE{xg0o)IZ^mqV^rh0|oXB1dHs5jSsOm&G8 z_F`x#1>4fWUH)fA1~9JEm7r@B0B+E<2k6X`B1UDaI(v76yf^iAaA7j+O{ws$W$QK8 z#Zqyj*zJJjH>=F&fJJ}%)a{faF$JL8loZg9zaTlx!Bd&{AQ3-phd#Po8;^sqfroiv zL9N#5-&nj}76ki-9jek93$yJRFo_^2&kMBJ!YVTt{F$|+AV$*VrtBW3+P~mIn$!SOotn z$HC8jz*U0>FJmPY+wCVY2-BGY68`M2QGm1uXbtq)#_-%RM@))Y2i81=*O6t31TiyV zQ40JPpbD{$_SsA78s*K!8}tU!Aj2vyUGJ8-@ql^a#&P{U9w3LKhm|3X!Lfwc1z1rN zZr0H)%*&I#`j^Pb+x3spb&}L zLu^78$M}G7;pKn~GdTbJf?DlM%vuW{sSEqURTY2kKQ<{Nv?)%=qO*69;)F9Od>1RA zPMI=Kb1ryWSvUd|LyHF<@mCz&0Rw^ux#rDf^7FU4DCzYD3WIXdu5iBK3fIGk$*KZK zJ+e6=^XhT0;qOEc477rDD((OMyU$uZV&CghmOQWm;onoGx;V=oVd>KrtT`5k#Btw& zrOJ{(NWej5!^d+xD&Q7FOH$FF7rwYqhwjG>ELZDA()ZlF^>WN(-kxEPa5opgpWgv@ zTjtZ%pUUEd?h6=Do-aFBmZ$<#siHcCx8V31S;EoCegRRy7_f=Am%w}4q@-RtND|~s zyjIWKgF}QZe_Hr6C)ao#pTqDAoSuYHd_Ub@xPO?~BD~>z?7BrD95Q4@VJXR^76;gy zj3RB8M}6Ho`TpKxI$Z$ zLkKP$xj-gzCcd+fvizazm6^FZi-7X2I%mgFIO&GiIjdZGQeA%KKy>g9v4e~duhVP& zG1`@1vtm}$#;+NF#-u3JWNw(5G@3H}`Yhf43`h}f8CT6# z!{I$)B6D$QOV-K>r&H0C0t9SjH@>q>u6|>=TH}m5zE`dC(W_yMQ!eP(W_A6TU0mU6 zSw?j!hyDxS6Lo*MZg7x7YMZf}EObq>S#VyeEY$Q@>Kf&!N9X8NTY#qCEXJQNEnYVJ zg^kx7dv>4z)TcWn1o9OCQvK3Chn(?mwI^TpvL#P(RqLFtL^e~~LZd+~c^-;TEED&r zl+#D{)-ELCYsr}%gH`{nhtTZU0=!E9yFS(CPFybFyp5}h1g1XFW~+ck(?tSEQ?zO@ z6qAYD&rGzf$(LiP zoI7C-vjFTPNXHq)6MS=mvq13Y|q2G~$CS<8iIgjST9lNx6FdA1MuiPN7Enctm?bB9oR2ViTRRo)am7ge+ z39>3Je5{+?WSo9<=-i@mxz4lct^4Gvsee9m#e+Azde_A9bss$sg2Nky^SLuOsnIP81N0_g0d!HxlofvIO<#1MG@b)dwF8CDsO zL8AHo+zoE<7ej9C`%n-6c7lGF-7wdTr*xz z?!fK>DsN1x0X5&E9xLY0maC3D(yIXZ3J|B$kzOw9yi5ULHli0$)@$FRhHd!9PhXRw zl8Aw?I7^*{C#QuN-|S#^{JkhKEgfT+;ON9ITHhp1EYeGelqM1~yrNidAThf+d5iIL zr6Bh&kW(xt@HYO(x*-PbAD>mDu!zssZq#|+vqtrn8}=WdrA;g{!|)GGU#pOAr~<($ z@kt05L{qg5O}Ya0z(Hj?W(l<-dx4EUQ8gpWU{Fhn>O4{URfIhZ3w^$}UULESRIEPQ zu2+$AuU9sDp@T1x_CGEeJdZ1A6Tk02rTYn z^9)-kr!H8pWm%(C?_HQsq$~Rp29y;lcdGLcX)n@>%a-xdRQMFs_W2{nhGMgf@TAA* zNgZ|mwthh;zOTpRU!Gd?S{UC_eRvMf?CWBX} z^`0ODke@@zFcOEaWLtT<9Q(c_h6*ePsStqH0ZtCF@qZg`gb4?qV^|-mI@i3hTsby1 z2k|=3d_M^#n-z~A(NhV!z~QVu$n@pH9=3LjpylRj$K2HS%MQM&sFYzGjwhE*v@^+x)oCRtJC&uSiTV6 z8;k#QssM3dxyl3gHzN<|x%=V6Hk|phm-C8ByWAyaD<=6@8|zOj%`_7{K%@H>2Pf>r zEv}TuMbQ#zVD0(7Pgm9}{Wvt^%jz0r12Ul&Je|EL)1BnW@QOmk(F0p%66&yrp&9ok zvSLJnucNG5nx9Z!o`VLJ=`hf-kIm8bOHmIFlUxA+9U&kd0#e=7jSUj-I5U_cunNwV zGUxSgFH{V;*5~Q&=0oF7N*;ZV~*2m^3b3uS@sVpr}#<*>I7Rip4 zMKZ9gP{8W+Dh6pON(4n53^W27^My5yx`%jK-6mNT>@7A+oMFK|)abW&tdQRv zov~KVdv>AJdK2imbd1%~OHwZ1r=R?AufAG~X8?!%z?yu{^V(*27wBT42ztTsqkQZc z7~G>kn}yKCljwssB^+DV(4=#^gm2)FC>)TR@Z1(z>50;jO-)k#r%R9C`0f<8Bx3!s z5-31U@qcR-AOjRf9#C}1>7$b;UiLRh(1&dMBd%?bR*E$6+Mdg7c((8fL7Zk*(Uc-> z71QCG^Yw0(tLB-3^Y@pah5_~}e0h0tAdUN7@eXzGI{GPVo%`SZB;+d-p ze{=f54Yjo(@Js>x@TbLmJ=YM3voZys8sr*cJ$m$Ny6AzI69Yz6q{sC#EqfH6J}!38 z`g{ZirdiI=0!lItFP{zL6KUx~lW)a|gpL8S=#E2xb>fuAA*l^m)LNR2w#m7OMhPB+ zeaP@`aMIH zg(qKntQ>gSO_Cqbpk?{AsMtMR|8Lh#4WTl#Lxw|4xH)w7qLi6ImFolH=hWc{Ws41P zfw1|>irS26gzz*2Gb{|>xvE$}Y|tY9zvmX}p#GQkv1Il#x%Suzf#nZ}KgwL6%e85Z z2hiNmLxz$IXh}5x%EzC|>$lAybLttEyqz(8m@V02=xoB>lBI8spAX^d7g+b(6gh43WL(MtOb7daV$BDIW`G%$1*?a6(Y^u?a9g`OV4tXG@LZ zuB&+g6d(nT!wV!P-v40!h~0Kfg$X(0)+1WUDS%f?lTYoj^pPHx|3Sr^!*u)dVyU$;&QUwz=hhDUz$T#WT^vHR-_cWXUB zI2jH~qEcSG+hN0-PW{mn(u<8F9rW;n<_u_bb0N#tM9cI^aal(uEd4rO7ai<$v;!y`^SQ#nZJ_w3xB_V&yT^Kp|~sc#GMDt$4e zxE*J)bk3TBJ13sdxOm#KKmn-y__2ShtbbcVAbSt@2n8^JoR&okdkyK+^quSPObj1A zS`r@2w*z8$8-j6{FJg!|OHA+H;|Z~iIeK-P^cbSups?kS|GhOcxvAUleO$NY&p|0_ zR!QQGM=sy=@J&;^n!m9>(D-V#^>3>J*!#%KEElj)sH|w*38R`0J^NniH=?wqSh&4^ zZ*?D_Eqjdv>CUx->%Xq~3~*-kr&-y*HNHCsnfb!Jq<(|Qr>{LEf4JahfyMXBo>uv3 zwe@e00$46!6(K-!sZgl!xQoA%-1oR&Cwo=LB!tmJEs+Uv4)yuC7(X+du~%i%Gq%)Y z_JycbF@8kqkSm7i3nRE4aUxBPB6C0dq~M-Q&TU+^h?SpMeQSEr^)=W-&Xu3`<^X<- z;CF{pNKwL}#J6uaH!=F4^OD8Tm*loDINXtq>d;2^0a{VFPvs;T+@#H8{MK0fC?1~Z z>P{whCzr9xj*y|P_A~Il3#P5epK|NjO&>fzCnWq<_Oz~Vn~Gv>sRH@e69q6Ou#rj4 z2WVjCUvSqgGJLmj49-Ny@SaVKjp1AFEVQO>A79-`o9wuhC3S_Pg7z#aLwAhd1{LHc zEc|R^{^VOuZ~E~0*@5tr@LJW!Z+f-K`nNX(@)KeUg))_(u&^}o-8=414BL5^WKo$T z?uq2755W?0^%$+G+s6zkx5m=9Ty4rN#?QU5+6KY-BD_U~e|m#Fbi*k!k$4GGWpi?}Z^Cbu-@={_5&n+M0sJcyr3B;zrUVum6(>%*^k^Br>-o}u zc%_s=V`8XEuk@L!NrtdE9T3x}`wY!v{EV5~(2lJ*tWNH#*};OewS8P;y~wJ?2>;76 z>Bj41+00de@Dt-(xZ?{yg5Tl7-&qRaSBA_JP#v=5*m(i>PoK*>=hmO(Ra74!)kBM= zqQ&Vs!OPZPvJgG?}5Shu)hlGiJGaVXzj!8qFqoj5@S7r7$m4f;J1p!8 zhbx_V$t*E8ULiw}`ifx6z;lIC(Z4+J)GIE@>oaIVvbaq0`V5d{L6IxMc$Pln_iPqE z+(^z6r*wC0J6IIftq`eMDN?^-jlBEhPvp6K-U$RB!S;pU7koe7w(NJ&B|Wr{kcql9gmjveHjKq- z4K^n(#_wS9_~LyWv3>1okqtE>4I4$4&UsK?f8=j6>&->7VS`n15O5QIKh)uQ1GZVb z-)4wIt{1l>%b+cNr=J{K)67}@G_2bHzjc-i6W^;KkWeyOJgr*53Y^@cTc*f^RkcPP6)583Ki`svi>hVUh0JdW{Ju3%q>d|-Gys}=~CiC)2@`_3ZCnZmJOT=@QM(ikS511rJx%tApY*S;c zG}f<_jT`1m-P-xGcIoG`YUv`G{q7u@{Q>-(2(TrtVc|Dnx1aWR<4J!b@ zTbN_7@hyI*hdf(~0{B&;sL;p+->OIaZvQtWFa_`xAxa6lD%a^MVeHE935OxR@S6ho z!XKvqSa{#sM_K$X33;|81&B(LO_$|1hGZSJ12$^6<{j}$N<>?N2I`@u-g*Yk~2tVfw{ALMt;x5US0N(F8l3GlacG zcLLnGLT{h$djOt`QU?Dy|2186gsuFREnNZp(+LZC-0xemcWdSC+2URvR}C^jkNUaA zokWySZP5pr<>0~!yfrEG)_Tpu-XQMxt>XN;1!k+bP2C6CSy!N20Xpl-c7N_xaRs^+ zV5_)I-3QrOSD;$~I_t`If9_Us1-cbrtGG?w2iaLy;Qs)HP_A(5$g7S3000068t>xmoowoM@i4i%L|MAJ z&E!HvT}1e|yNk$d@U#3q|4T&OB;JRg})(G4!%|h{!a+R&shL)Z|eUiPhRTUzVMbzS0C@8u5O+ekehi* zSGOs?quWAlUEO4{5OsEA2k<}fK~)vWUnnOV?=_i-KV$TAro#AhHeX=<+1Y3L`?Q}| z?!(#r=)X>T-}bj-`@mQc6Pc{*p<5yGJh}x@e%3z^MA6l3A~!RUn~RCuOy*YV?%dPe z(fx5pTkURBdDV&i_slHS2!viRepVLk=OzF)hknol|Mm$pQ_jNaupPQL{ z+|A@+Hj^7!4z@Mc+}BxOvhVQk?k*=fqO}lOf%vZr!_P$kvoJ= zOMAD4YTCM}qNP)4>>f0?Tup~s*vaRO6uYgawF;N^u*e&;YFgtvu=}m<3mx6J!~4=c zkD-ZB4!imgwx&m`EHr0ZHJ#4aLwA0a4|utlDB8!3yjsui-Toz)%w_mZY(-q-B*d;dp&@22-_U-mWH!_jT{~aIw@+KvNd*lZ-u3N>M1?zJ^_i`z|4cQLc9ZOUco`oU1_g?nrJ5M& zkI37z3XS#SR+VgbzXqDWPceY4i*M&PS%VDg{b}7XZ4kmM>>vhUh2KzCDNdvo1G`XGO?>pZ2TX1rw-nU3`!#i1s7q=* ztux$%2DWuSza!0L4P+g}5WS26Y%G9Q(<-00jY%B%>be*}E1cFCKx+Ck)cm^0 zyH7EIMj2@>t8px4jbV&pEH@XTXm7XfAU8VLRB&wm(Lc>9QZPGQT3UsEvj+Vs09vi@ zGVaB%M|uQDJy+gh8CKcaLERQj0BdvjtZ+_mG=C4Suz{wuU1z7)*9oN>lxPmSJv?L! z`q+HqPae}~Et6as>%Yb^fUTwN=_IQ5!8Ww8i6ILrHgo?7L=#Q=D?-~8k zxGxe-Q6NJ8T(|Ofd8iFy0B85-9R0Dn9YPa3hyn06`Te>Wz$%LdF@Us02I$zC#57vB z&hUOUvSqa_)|g7HhsJVgEM_qVkiwobP85Q><@7LznafBH8D zaFqBETG~iOpIwY)m}fB#+3XIle!qNNO_bp8)@Z7$Sn|Wo=Wo>r!B6fI{nP>=55LRk z$2KH*r;PlxxT!Otwyj%-*W3HXJ)u5UVX$?ZcvI}~a(katXk3l&?;wxR6Ix<;e_Hg% zCLiI*_qWyjhWNj#`8CNm2YG-V(Vw3rrcsiKHWomGrt!KOYkqAEg8Rl!CI@(sZ)eM+ zdzTIUvmyjQLu735lURYDQUEy61tDS76Yr;aCk)-4UEAu@4w=>mWQM6x>)RA0Q+-DvGSm_x?=#QGWP&BK2 z9@Qf1Et$g%ZeQ119y?7QfQ7F&XqzK<(l)86wFm(oE|lbB{t}6EVXtB?Z5~FisU2~x&M*eB`mI)X$;aKr zlIlxe?z?^7rBrbQ8RVbD68zW#Aboz<%-f%h3Lk&*;jEfg9~^$|qRR}eKEv84bVb8$ zk-ooH#_SPG103DxzWSp1^_f&Vu8cEHYtQ|WXU#5b{fRTcy^Cr3g0|VBKt}uTY`^{7 zT`0+;{n`CXhy9+2UG4lCs2xD3&UlR#B zMRyEHnObGl8`fu!KDHhG;73G%B=l+TdaIA%)H*nH#-$H$jQ(idJ0n_bZ`R$$C>X_B z1}59-bv2N)w8`OKZWPho@cRQdock;hX)S@X<>^(p@M8&pdicY_2DuM>`rTKvo4RHr z;Qi5ke&+5NYa&<_fpcp$t8EN$HryZU^>u7YjU`cWb^{d1iYhrke{@12ESo{z!Wk>o zfctZHF->1$0E3uI=2>j=8X^YhOPG@U4`B>e=tz>j#p1yz>413a(~prS#iHGaKQ z^u{Qk+|%cEF-tG_|MmfF-?&!J@&Jz1uNt#xyK<_Kw8jC{W;4k`83FF)jXPdHzi`z9 zr!+!<%bk@F{8$3Ohkx|nH=f%ZHDp^^bC<`D;qzXA+BfNQ07Q^j-H=UE(ctsJ|HR+g^SR6F7($=|!0h%$WW zor6mUEhnOOO+0W`@aWkJfEx5tXomaPXEuMG)6hNCwkFGf<70&O^uj0B28f0lMx*(4 z3dG^tdqkJcko)8CK6Os8Gu37H_g+4qBlO44a`E--6A_N?%VEf&y)P#*P0x7^T^3W9 z9}4m`Q%puleD@9E<1gjJQ30MSHaG7e2dz&#&YA zJJ&?|jHKdb$V2{Pqdzv>re1P?e##iYNoAWMt5wOfa6N@)y|vt>-p5?_d7oZq+BFs} z!N=uv?()n`B5KnF#b@jaovi?{>yt2jaggsd_nkQ1(&a0CU#t1l@XdST_xGaG%c*Al zv2lM~kJaIspg#sNfTCJipf%5{*NRTSonG<(oz(!_ajSIbThBhcablpS8f#~oU)+yT z44@G{vT!}}V4v=H_AMQvb%i8lqF2a|_DyFh04nN3MDCN;XT5W*(Q*;v{Z1;Vdc*PQ zk?YfI&9AZUHmpzM+Fxh)?X>dCCNI%5_h)X3KmF;PQ1bI|q4v&h+ELm}w|;TTHdXjz z)c~JKO>+-5zz*0THbSY!EDrK4+8Cf$>#n;_u)9lZ_iMjSum19rnzMC<&Qt)9?ZyAy z5~g1f=(6D9oQ4jImu-eogZ~@h{C)KKd(t3A?vIfwaEe3g(UY^~{^+t=CJWJ`%s~3b z_z3cJ5hxR$3sKzn<*hXB-F*IpLm%A8Mbn~~-1OQl~AEM0$BYV%%ob6V;5U)JhSA!pcvjewkq06_D@ z_jijMF)h&T_Gj|y+q>O=YMpJVt+B2Z4bdy-L z)7NK`E9k$vmGA7f(8GHx>F@h0sY}0wnlq*P$qp987H8M0Xvh42u^M_!Yh9yWp+9|M zwQ3$nn;g@|0Ga{^H2~MxMx3`HKJ9NGSU%!LT|nF?ShTMKV59vftlsnctPY=h_0haD zj)%i83wAzZ-)ekqt>>BZ{q6D(j%t$o!2N+xMfIio zeDGBNh(A47cB)wufNODOO$cBE{`4Vr=hSC+;uGs!aHlCl>!CBoqYZk_*|3p%(v(<^ z1b;XBVL=K<=lX?*1$gR*D*E$x6@;oxV_(@>Wt*+Wx8q=)A^+bQ`gZ2^8d6C)sQR&~ zx3FIkJnev*ql=E-cjXq173fp#Kwkv_hadlU&s_QBkgDM`cIppJPf@**=C{N7WyZ1B zXiq=z{eL9ZXNaena+ai%*?|jm$Jgbw`e-$EGn)2a=>Fgo{W0SI8*_gYuS(O`$hfIk zueww85VIxwm~yh04;({8t%?i&6@CEh?wFe)RuVYKrG4esRY@Hr)d$e!VBwVWz1DNe&033v= z@8;8<@>aXjCqq`N=6QS5`%^X^aJXN6$>5#=`ePfi$i@R=<873vL5n)Ef5tJFyNikZ zKYeca=}k`qLPK&)B0{|ihWjD_YVaGGn(7mD|3`%tt(~5I(fH2V30l1-+sdP!I=fj9 zhof!}I?dBV#@DHjs;T+yiCyXVIz(kFG6<~$^(YWrpoFz2r~xEGM>WfiI=MNhx9D}I z)xh_+eZJn*T05z?I9v2bM~l#&yQI=Ri*p}Yieh?L0WD?PsTJsp0C3h9?$4lG9vOCe z#H_FMHMUw!=k%L3Z*b=8YvID)aC{v4tag^B=U$(^V|{9Hd*wlZ_nTyEbQ?`gRJ1Ie z0^Dt3P`H70ZQT^N=7bs>2sFyt$=t52!e;%P`2G$u@V#Fr<(&?`#!&{?+4XG-;|(eX zd)sXz*|qh9?3>R;W>~sGz2*q@Rsd|=pJ9(~Tu>Y|;8{m#j$Ix=K3q?IeEy3*za96; z0o&6sL#-rnB;^n8Q;??%jgIi7bHaUSK#&_n`nXYcT|3?Q`6)WOFoj}#-E3e`9E803 z4jQ&Tht^Gtp?H6HI@Q!pS+yOsx4eb+o^GL{#tx1hw5(P~U9p{^a1Ogi*tMQlMa@1=z$iv*)^631GmfRzCx?tF;8`Kv8fcA&~?>Y2^ z@1H3(`7O{Ut#L?6^A3n@l4f$PJ3&#L2O^K$_ z5ndGL<;rcx@j{ZZprM1lEo-6AOPc75l13_RL|-MDNp{}<-x>FZHJn0vlNw!~9=lUy z5Cb@}_=YD?lV=fs?+JC2SGI1r-eZ8pjr#WWDJ8G}?T5a)LA@0Ko{IqY2Lh0~Hfw)P zn}1_XN0%p^a$AjX@n*jh}D?OkWp?HSj_ z;q~W3?@d>v`q7L8fAVrQQAc+-<d8(PdJKaJ@tJ_Hj99)y;Hczs>kM6aKyqwPga zRNUA}=(Oa#8%59jdtWy*y*WLW_E)yirkpzZp|Xt-o5&c zW{zSSoWr<+o!1ro{d#ns*1JJHdgHwj0O|ff06ZclP7Ecq>7d<8oEA*+PeS|8&!Jg4v%h_gqEF?5$H}U1_sfR%s}#TGgEDQ z7iCqq(VHjhXk&H*)u6MrI5X;bl&MLeKi3Zmq=&~w@IA^GH2kxNYUu87%hfC}{wlA* zw++qXYNAUM{b)&M01XN8q%cT{$wVLK)zjnqs_2KxR_aiuFH&(MHB>L?5{B}O3^@28&VO$i=yk=Sq zYiHo;%^h8o^2$l-?6Q!>QASr&LZ(Nx@SM=xiGFVM`t(@J2=ZX9SlrY>Pwua#wa02$ zV~a6l4t!>1IUoSnWCYNY6C&*d;GYMo=)vzR_}X}0HxrSoi-|hAx~Ws?r-X$xlSOSL zJU!lz?j03M1A{%t)74DXZC!ND$Hnx`sTQ_IdUmcu4XQ$*Y9vFY%QFc5dGLKdRJGEq z4~pn?OD91X^)=VV+#g-NMPFE{+8Cf$y;_MPS}Qk{{eCiFc{JITwE|8%Nc7eMaP}8U zXwaXYzq~AI;+mesO6S5mkz-BiuyRpnxVQeh<@YVj2%u*sMKQ4q!hnAle^Nr97Bq;% zX=hqAUbw~&gJ*A6HX+8xjkeE8pa>r~cFT5@G|{qcB~;Va%|0`}L;rw|&@c$V<%zzu zYFZ56pVk8Wac3F5c%+urT@*{cu4cL*&PVzAuRGY z^kjjp%2ZlnBdS(Vck_|z+s~V>2!Iw2?a@`~tpKP2aN3{N&aX}${hZNQAR8RtpoUam ztJ||r**Bm6of)w-KE{VoJ1Q;H_Tna*yQQc{pWmoHLHhV>FN&dYk=_Ki8!pb>-=3!G z7R+DlW3NwTVQ}cjMtIVeS&23%P`{g9sX}?sn=W>LszBytLPI#8N?nJZ!YXT z|6fOS?p5a3h?C@`&cu^Ca$9a2KADJ``Vt8DMgU|23<0oL`hy#8sfrwg=B0KoBbc~H z2h7N)l!~esuo6BFUj3)D6KFuNhnTvdR2DUMbkXoPa;T=Yn=`9?IbAYF-``(u|F4Gy z(QihCGG4#6ppow0b(#tq+ExGDYDsK;Vr^Z5_PL>{VaXv_gM&Tj>-kAGTp+{%i#{%< zFH4*0y-VZiWL-P$JKaK`6*bbyx(>cgaSfd&)jQ<~{7ohb^K_x#pA$+q4i2K0P7A$# zvW{-vaZ0&{#)s~4bBKIg&2)HC3PpIkszQJ}I8@n6<2K|ICUo|sUhUB%EB8kWnfA^C z7~Hq!{CK*UyINKbOjaxa;s6xR%l0V_pR~6EAQ2$1)O+8!wI*)Zed4=~`TBaF->T{L zKC*3w(U$M7=`3d8^JCGxU0rCyj95A^(u==BW>;}g{=Tn@9@$%I*muSVjle03@^Pb= zrbN-$C~wNGYp36ST~1#VH}Q3aM{Qj3X3bPvpHK215T`EA45WD}{xs`@LW=QorTtf@ z+H42}VBXdu+H<;<@|UKmZi~rmqJp}1`lhUzo;y^{ZV*GS+F>G6s5KdG0kK+WXs8!G zF+PIMi}0en`gXcu`za1+?ejDSF`Gqz2`h&L(WB!cRM=K}e1|GqXv(_Z0cxYNRPe_A#$h(bLPLJvhJx|r$ebbop! ztB!*_9FUbmgBj-39)5Y)uiaKkn{(@}^Mf7q&%tMrYx?W?5wv_jAQd!p(skQPXm3TU z{qPP4lVY$AQsV+4njY^%Gn4%3oG?#Lyz#+MPBUDx&hBnHyeLiGQv3&EfXhB8q=Qv$ zYyqSIXoUouF8p|+myg!cJv++@Gu0$TTkBivGscJ|;(T4{l?!8ORD>sOEoh=8pB7Vd zhegdF81?;83<-^n^rG!^5;-Q(9vIxuzYkW^@4hKl(YSdje)QF;W;)%}siJN@;rBMN zjZr_N9=Kb2OHRKU49x-o01_m72f;+0u?4Wn0k8nvw|-?^?C^Vgx~TfM9(?@XaC-3N z{vKx9cU20F-H=D8n_*TH{{gQO`oHAm;;|*`C@FPpSy`xT^LJK zV!atLne$;GwRK5f+xmps#}F5``u@0FW{?LxG$x!bjPv0G0+qv*XU!tvBO})5aAx?J zt|$ia!37)hDW|TT3YG~M$f#&WUJi%mP*p2kwz-fhTg9*uiOAzy2L`+IT;xkwdxlBEYwa>2&*xGS2U>N+u)% zwL*Y(u5Ih0^jA+(L%VPoe>WnO{yaLIqE{cMT0mHiI?u^ot`4|Az2*){;N(|>5nM?N zpruCth!)_U^(*V*hTm(a-ZVR}#%0Ra_7&I1$KXBy5rMWJxGtMcw+L+lU-q_P!J42< z7;j{G;bN4dLQRGIG^$MXiB071j?GMA4$o6RRMX$~R5;|Divwy~k05_WQVSYYBz5gM z{?ZEZv9J&gU!OzeEuB=bG@ac#>F47R;TcOBJ5`N|MBc;ahtuE?Pe!-&?gy?7i}!6= zGfjW5fJQ|KHwCXvIrVh^cNNSh+I0%vfOtu5jI|vZCf<)^+d1oV=y+|L!?*wz0Q(*2 zZl;`T)5*g{@Tw%}044G2@jANhGbkyda8EOptjJ`GHt4l%zE2?pDjcUE9NN3G@BW~V zQmiqB?RKe`?GFKv7QhHm?Agb6RJoBB8W_)$=p(R<^nC?sxl^Z>rxQ3g9IT>*smnqMYfexd`pN6yH2mo9 zLhMr9IyA&i2(S)SEnSrK%1Ig-=1E^%>!c6>001BWNklC$VYUmGND~0x& zXT)`HA09&YpBKg&9p622eGZj@?jRpr0XQ~Y5=Zy%u3)YaUPuf+dcKGW@KzagZ_aC= zd0UJ59^al3OEVMv`0r!h%H;sx#x1oYC+Xc!`wemA`>PhNKLo(u0-U*zFYt5QzCAd^ z;L0q{2;_}?bWa66d7z3qEfzYwFpZ*o07{t{fBwx^Wo+(U%x3E9?qK;9s;^Stbm#4;XfQ!7qnxi%J z){Hp1DBg!%fSW%rWo9U_a&46tG~PddsG|G7J*~_^wkG3BS7dN}qZNSI)yD;@V^le% z#6BNgo=E3}dm09!fBdGLR%g{w<#idF?tGjz;D%ef%9MUX3Rmk_K+(oTP)=PN-TUon zT0cFOs@l3K^VO5AxtZ&z2;<_+0Q%>INQO|+wng4I=-;nSi(zYkw<7k6Tb0Gi=#m6q z+At%I1z>AoBhC4sP~8uQ^#~f)XK!$SYiywe#{D4xN%yQ@SsOR}UKPbr#83ZoUp2oB zA!2=9Y4?@FEMxN~zLQ7CYuadXj4!=8BbFERyE3#AEaM^)XznO)7kX-96itcsq5Af2 zItLkGF`a{V(ZyupLpv$PhaT8{nw~jW&2G=lg9GWIu@Q8%x|JrrQ=o>xLaPxC3-P3v zFN~%Xe|K7cLIld;-biF6v)06GcUcRa7wOG=DwQ`h9dZc|?5;4x+KZQ^lfS!F0ANvK zRvlOIbbZhvxk-RBk6n|d9&lCjSuFHjc`Hrclt;VfCDG7O4Q6j4dSZVi-Sh2fHI%tw za3FJsvTNIE<_87LmYovgLz^#)r^8ikH0sS<8%uFI-2%&84KKcT{O5eSb1>&&=PA4B=&J?Y2sUC}UkVU+%;; zsf^aFJ%*|`3k?nNq<>G2Vk)pSg~g2>H1_R$ra;TU_S^_B`uOq$Ds1ea^Ec#CONUGz zS?}_AUh4KKam`DS_@ZG{l3g&xiR9jF%TKO`||ijTHfaI~Tk91iLr44-XZ^G-b_nqOP55 zg;g2`S?Ji}G>Y?eQ;;X|45FsEi=tPZpeb=a^!}ysHn9lKQfpT?y_Z{0^HT%3x@_Er zToMDzwL(hFMn&`9g`X7DrtEsPi#7cIudYa<;o$<6!VA|~@mVQ-RSJ3q(TsRsdU0wr z#jHBP*DYC=&NU18@4|)-%6Ro8bvc+BXEiyxAV_n6+Wd?5jH$6&e+U3#fO<6#AQoR{ zI*ojKtB-H3AJA8ZVfCOPL%m$-@WNDbgL`2i%5UhP5$m%V&KnfsL0^|Pa{#t-Xb9bN zZYUpeF5|OUxM1V_4M--nsrd<@L0OAaSeVdpp|w-^#M;G{KK~y^hR`3+4W-sj3wLce zSk+3GY%Zdf4zNGPE`)lyP}br!rZdR%kLO3w_+efHE!|ea6pge%54w41FdsHlior58 zws+HC_f*oq4^}ah2y{mV^EGW<6uOo)3OR`I(aVD88RNB}{gI~+0HpR);YErBvfQP(m zg@B@n=wwZs3Rx!jxp6K4?whFd6~Mzkf2gKE?=I&gB52eo<=j)=!l)GT23RYs6Og7u z6|K~*feUTU$C<_eQb_tu0FVdh;U$ll>Z3ZU3{u{JhEdQ)SETr}KZ!&OHtgH-X1e5k zP;W(fBM#0J?97tPVdLNYN z^EruJX$5VWzV0Noc8J4`PeCSMzA%Qbr^qM&4X(uet;L-6yfW3F9zH*Uyxq*4@rBk~ zcf5|?I$294P1cP3u|=XVUJ5`(a~CDQa#FpuNN*Qfm>xh2GXe=Q5!{Hqr(0>traaCe zK(O^LP*tlCBD_wm$WUVpbq_2Swy3i6ga+ub%X0uDtGXeR@1IdG1tP0hSWy0>-*&!^v{=Qz`zhsI#Sij*~t|Hk>nDECa-1H(XYQeCD@o23msXUMmQX@ zm;}EAZk_&WHr2PIE>`%0I9M0O`Oup);^^B`%{2Y}Li?f%O{N$c{l+0dOlPQU?xHYn z7q06a^;VuHsb-7;8uEn)M2%aCBE3dlknz@GouSIHV2=LE`D3jrQw zH%3s5@%ysoE=qmnglf6)dtL*jym5S#4;`**<@XmaPqzz#agF@?4jS}&4vT-Vhbwc6 zuufV*!Tr5;vYwW0D^;#xJo5_{__iUz%#pftXBqwLhia9I4fh9x!PD1el8YJ7CtN{X zyQ#gK;atQTc-_Gn;V_}lh-m$ZI$H8cF$+J|rKmyFGWR|Mudiv=-G6^u0B1hEvp4~p zoO5j&4Se+^7k!}QaC*EiZyI34TXvkHjk)!VyMsR?dFj&cMTy?|Z|6}Bb55*<*kE_U zmGZzek@eY}Ofz~(wCB8VZ~A0*0(1V)eKVJ?9~eY`9uv+GsmK$E%Bza&GU)OTiYU9T zjo`M72=nA*n7^CwbFcZNn6{TRu{&l|GA+>z^aoAyw^{(WB_h@lD{8%4@w3?^D9~?S z978h_g+|p{dm$q5H2&rsM#3=JkLc zZVl)K=Lg>rjs~?#eKQ0RC|t_glPm-yLOtlKc}Z%lgZc*WkC4bLS&>0O&mZHMz_zNu z-ZDGn{^&i6{uBVlDjf80*Y<%?qkg%$YRq7vi7`G*cZhiDI8zz6&Pt%s5#Fjb1V09( zt-V*LP>hdKl%bg1PYWCA<{f2J-P&oxZ-?*nYbC*hFb*xVK;)fQda7``T zkg8^|7>PSKJUT9tJ}GFR>k-&qnL_8il}q*QU3|EoniNS3(*s#E-uLZkdNr$#nma`% zS55KSpkLPdh94HDGM7nOfRd(84iJsj6VC%e+g;~|&|Ra#)c{m0&`=gActMv4SyP;| zB$cAP;VRj(ldvBU<`<6C&~LwzsEpM>%G<}M1_XJ~cUL9Td$|ovcoSottQs4+jHf0< z5%L6#Bq_c=T)LRm$JrG;y&{8AE1Z}86>T*7EkOydxiOP&+>U#$RqGpA_zf$+B%*Cx zbFGR@e+dA%K=!e^J}$S>J$7UoFIN!Vga!$FF^f0llUWHgGTf6d1YZ*Tm@StlZ~!c8 ze4&l++F4G|AF1UUZC?n8~gLB~Cn{yl3AK!3EEOTiPl%t(_UPC)8Z%4#)Jr@djgw#NH762Sx_}YVC z&*A5mIJxXQ6zJ(fe;*e?SEdFS@`2ceYU-o`ujNoikQVk5NWbu^8C+ z@zLJ&-pn}OobZ>j*v;8~MG_4Q6=wTrbsO{E5f?~2y|Sg7uKl!_smst5Ktlkqr8Xm{NG)b!Wn5P=v(p|Y58X*Tn7N382=^*xN#7?Y(OAGiTb(+ zx%UtN)zie5VJwg;3XFiAAMtbEO$tQ{}}e- zF>d{_ZB{&u2>0RxUEI)4v3~CSgjl@eHSIKaOCg;Cnqsoh*hp_iU2caNSM(ivf2J(xuZ6z>8ABX}`U2@|Yo8x$_1L&@79zawKxL~! zohEug+(>tsDk!5;e-fnb!v2{>H*h|N$v#Xmvnw?1Ju>e>f z3+MtC@xpiW6{>)R#zcB^i$Mgad39}!{vc4i``mEOB47VmDZQ0l=dgwsLig^>I65c7 zo5sAEO@-*Jrs2O^VQP^f1;Os%f>hSdC#u_M>U*e#H7K`q;PXq3B@YFBdi4DP8Zt1* zo#vzlFn0zu3V0b6)admM4u4T&Crx+af$sBmdIC&M;o*YOA3 z%tRkv9?ya-gJXUsi-kMQje0YO-K4sk28cm{77Jyp%c0ylalbv)U+B3%*5Vpvb^1>L zhTUsJ{FQc7YFu3rhx$;;->1g(LFlH% zgA)`-`zu=5Z@0co%vS+4H)vh9nsF4#8fypwvkuDv_U5XiwM?kf`n=kMhHr#bIetwl z*A9GA*u+IACu-Wbk0+95hWL_3a|x|0Y#)NgqyRTsJ|Ku|nQ=|5BU308=(8uoDxO6I zv0$=J-Gr=nHy7RiXL1zhBJdpuIzbNyN_I)2AN_G;DCZC$vmhBhe}SlBkO49d=Wo9* zqvsFSu<+@h3G1->!f2YE>`yVPPgrZMiRiQ02{bO+n{NL66sNyowC}qE{2QA3oCq&^dO{Qp3ljl84m`A|raNL!=U#Q=a4l%n-+x`kgg*Gv3(|xz zgSL_ON;W6JPOV61VL%-PXxK>3-Th5D>nt3|F;U)J4JY*$4kw6l2wJT%fVJ2g!Z|L= zi$0r^M9&_qrrWiBb-#{XlS(Q69%|FwtpyEq`Q}2d zDS!o#6q1*Y)Y3|&;?LLuI6;5p>h-4p2*s)!I;}!j`pO^8Vwz3d0vve1)IyOjXE9CT z$?*|%?Z6vPp!moH9wlup#P)9APJtnR&{ z`K18=VPq)%eq;#y_iPE2FVRDjJ)M3Wdf5REsLf;hs<=1^R^X-~!OY7?*(357IF$G< zXnjz)*Pp1R`nGO*;QQ0GdTI>K|EQS13UrO@1_g1!ku2y3gt~lNsY4Pko(XU<@c;NV z)~q$236?j>-<_=o*rL-m!7`i3)nuU~i&7b7!!y5|T~AkjR7}3^CaSr?DgfYG;r_KQ zzq&EHjBk(VW4{Q%UF%oYCG^b#X!+kzF(`IP53 zOIqm7i{rTUIAA?!2-F9F5vs+F!IA{)aUt+(yUuOW4KmT5`AHPu>7wvq6kJ|eKjwc^6T1Z^jo>=;g=c;eEL6+ji4iyEi~?(d>hR= znpdm?-Y13Si;^a;Z$SHW)c(pZS~)b39vmIX+$Zq;QP46m+M9#W%ylREz)y_z5fqKB z#T4h~LbYuc+E&=e&w|tThjT)iJqnizFSt!mE^2pI9qxbQ;9zFRj(j7Rj#XJXJ$H-@ zrN531S7;H$U9l%@$m2sFq41}?-Awetky^TSM=3+!sEObl5t;Zqp#)_QRBa3-o)!Hbzeh~oF1H=xyR~EJlm0{3dUo8+&WLEhZrvKogWJ1qPd5u|{3usq)3wJ&K z`}jyPEpc}xA*1`;WVl8CO6j4AlTE|cXA>Y%=E<9gaq9nE5Y6UwM`@ECw*{MRHWN*V zLgFosE42Qxze=DU1~1(42Dm=a-Zb{@JRWW#LkaEML5l|7j!G%ub6-GKHbtrwWB zM;E2?{mtD9MI&B5u86-z zoye10P@E3#jHEbgi+QktDDFT>AMy|glKJr4&2SLE`1P=0B}OQuS;+z1Sq^T9BR2<| zD6*;I1>bu|X)|}AJ5bfi5T?u!%YWhbKXQIJO^WfQLBSq^7gg0tmw#Bq!#CvfK6gPh z-Mg!tS)<4^d^tCXc{?D|-MGDkmJSN02X~+5B%^G)jORkh<@Z;nkcX>@GGEPBaeO_u z3lEapFB{_Tp|?Sqq)|G>;`&be+4Zc6im-d6dkg$ z9uNSq0Z@CPij$c4F(gNK%20_blM;Tsd=HHGCp>YeD%wc{5VmU?C(y`OpfB`LH=O&hlMK733-jDCPvUj z?-ua=;=K?6SO8r8g+n#8Caad~bRXGU!ETTW-dTuoehAr+*Rv@X{YW*-BmWzU2rW+@ z8XZRQYfgwhO-fAzED-9EQI{;+rr=r8oEUWwVERUSyVA3VYd9x?pCQ-~6x1?Au0k@@ ze&6(#sE2LqCjq!?{mR+|^aZj-J&aHgJ8p}@`+sA49M{-N4S*a#^y(Ar8=`Lxx<7n> zCHmtClPWdvC7TO4BdJA~GK1V`_mwGh-Df4VA*X>mELdeuXb#j6T$boZuUr(%l~G#? z8kO5sGK|W1V1q}5deY}}ljzC)C}})x!|f5WZFTo9OZKB{GW_YPk4osxi(|PLkGAc( z+$z6=z-HK)V~${izx zYa_4 zL)@8l3GR#|3xEy?!201PVKAK$s}q{v&%;ay7o^aQpO@0UiWbUUlFs+8*Zw&CpjM-I z4|*Hn_4LFDS~4Jr{cl_!bq~|tm6UCvnUS;tV-!iaWIynRM1t(9t;O^~ego}akV5GJ z?!0Eu>?ppMmP(>25Lj5glh>rN5TRZG#V)8mlSMvS?VhzbmERYq)D`gFh#gX@c8M)? z`E?nbhZ+4=9{)uu1=t$QC_v9vElqm;@j6=m8A?%+JTp_(^_l8AK>(0HxOqn@)4v_< zUytaIl!Sf}0L23I#M!XJ|CP)k=*%#iQ{sHN##bH|Tnh)Tu%VL^MM&vulQi%Rlh>T! zM2_}*p)q#PM}dqdMZT0p&6omXkkN&C#(2`4TDVZQ1>aie4OmG2(sbtdFaEe#jS;kg zK4K1VUsg|zri&B(C}Guc8Xe_BA6$x7jW+2)-tdBYL3Bf)_`=j^W>tQ4c>>Qekem8t z38>8ZTyS5hxE1eT8b_03eE5Qr{)~H_@m@Y9__?#IfqaAvP^WInqwi0*@*1H>gW%Q( zVY+Kn7~MN6j0=O%`kiZ^JGJPFNM0e6e#giV3Vc4xhNo|}EMh`U(eezo)`8C-<9I^N z$il)~EOcODDq9qJ-?*2_@8r|B}6sgp8a6J}kzN>aO_yf6RSG`e^9Y5F&cI}992XxPiyO^Tr_w-(XX zLUh>Ey>OV$4W%0f2XVbHY4m=lo=vvax`6l{E{v)aE7T4HQ zcN0}AI6w9gS{`#25VN3$;=3!Y3XZ7|uV!<5#^nP8>5Y?h)W{9atS_hNPrnKPEI_=% z2G!RCsB>n8tZIb>{d@q0E&H^D5BJ(>(KItrz?;a7qMHNS>m6N`!s&dWlZd9jmq*{1 zi>68m{%%xQ-@$<{+>m%bH#)Q^m0mekOTYT^lxA{^6*q=Pnwu6tFHec4F&lCjTD0+! zWb%%Pw#`YPF%jOBv{s-=D*v4|o5=WHk?cp0j*p;lPgkD2GJJhDy@VuFstD?AHqK(< z{+xd9E=;_`bNfGcl%AgwLsz8*s2S3YIrX$+TM1QMpUDS|kq`&%5cx1Dg0B5Gtl@`w zf>jD@hmug_QO3TNOFr&q(T>s8MElBHY5c}K+l(*o6mh{(;j(mY0kd>lk>Kg;SiM-! z%ai>XCPuj=hGj@)1#T073b0wDeO=h~5|nH)L38-}TyA)Pybc#VSu9M3LtX(w^5n!Q zF4oyo(W1;E)8YR5DNlO&>=zeEu>kf4NpGO6KjS!K=mfasgI`09sfETxd2@$nEFPfH zRmWK*5W>V&?-;ur!TXr|{RcR>IS4qTh`SWxB@hP|FkPfv=V zC7D460zfqQ^^@!_e11g|w+$TlS`IxqA%Zipvcc3FCm_J(Ts(r8u7<_HUKtoCl!sb~ zeRJF+Q%-iC=H^`Jih;w1Wa8`(iwMO;lGm@j62JnG+aQEdtBz}GDKw^+h$6jQs9;$- zw@!KUM1w%BOeVT%07r$Sm;tt@8001BWNkl0PFF3 z2;cE*(kR5!MQuK%kCR#3l7%(!{ohv5GlxVCtYojgHa(7JCIaCAyg)<0;p3@RJ^><4 zT781^6`0GVw*a`tm0OBvUu7G&b%6k)mKc?0w+yig!0X5B==QHpX#~L5k~rOXLbS6DJBUPVi&@9yD!f0kp9f2!a*Y zWzutpYv_)zh2@21xMl#7fMHx&CvqJo-XAbs@m2dPTj`_xM*8D9p#mzkSSa{~EXM!Q z`xG4~kf4O%+Gc>2iZEvj(Jum^S^#-BPD2wu(CD-C`;npazS2GfpN882Xb%UizO9Q9 z2xuX6FPOA3k4`mqGA95FcIU`2x^q_wXb^S&I7PZd&|t31wZA%JgMuVOUYM z|EK0dIFq19ps`le%g4Fhyw0cNbpS+Ld3`2*T+qne9+Ay9(Pc@#v}tBMtvOc1Wu*AE zubT@UT$oI;zHZE1#TcjwF|bfX4}Eu<{<23D6(RP6l6?6H>Xl37@;f{7wtw#z0k~`Z z${O?qQXEk$)mb+~OE**N>4}kaO=bX_X%wJ<9V6JU6zp^aQI>8=h%3qp68&1~JitVSYxV6gH6RgHx4Gp1( z#)i|#_1Qd_P7JjJWEn~4NBhwB;s#3g_uwKP72P1B<)4-?OBBx`1i<$2a{cfRRdmm; zatiTurJA-*`t#@rx_!84@s7W*&8lUFCyMTkuF&2-t zw7sa2E>WgD3X5rt)nEajl-5m;4b`&=W z=+8vV!?`vykU8o`FMJ046u3a>)#*_4S%{vwAd08Ir>;H8=nlRRzW#eNV`<5@5}w3@ zFD_ppIy=k257uJZy9KPl7NiH*#{mjX4mtvOI_M|?uF!8rgs1}W%ny}x|96#Cd3}am z$A?~TzQzs0Y_w~)m2k5zMvgGy+-#zv<>{QUj$3`wF4HT;_MC7p+BH9k`-7tTOQ>S2 zyCeVz3kTIuX6OJR^FAZOJ!toQjOh|?B1&ClZfDaa@ia3D3}8|J@b<}iTJ%XVUs`H^ ztSQKP7rlo*t@d>ZPS>Je1VFI>eaZuvO!UNr2(E9H2M3wIJdEe*w$SP8GkAmWLhAgp z;%4^A|2;XH=BN3qEYR`qA{z8=obOFXZ^}*&I350q#E2Uc=*3NCzS4z!4CngXr)Q-3s0? zOi-yX;9J8Le0XdG3j|z@hrX+%NB4r>O^kG*nH1t7{H-^PQn}>N^k@aMyR6x6hA&*L ze~gP@7;^Hae7?RusfhIo^>k&36WuNjRDgD3T~}@W$G;{-aoUXbdLC5GQG z<0Q~mJ}GSE{X*9dlu9B9pRu`sx9ii{iHuGOREX%MBh}oq=!{|uU-nky}K*uUk55_c&HbBf4YUOA%gO?7sc|#7ru{Po(S26j_*^4 zoAWv-a49Zl2V5(^!21{_(zzkp>p^*-+6?8aNZvv?@I22?j%EQDL^lhQ^+3G<$T26? zpR30b)*Pp*mTqo0Q@AXRDIt>W``Erpx*I5vqq4`I)}cQH0L^i$W55R0+=+1zV8c64 z4|b>T=G#&nM9E_gA1V~d0M7>>er}4WXkr0Ue9&cFcwMjhuGmX-mcT46aD-T+X>Lhw zE($Vk9}!BA?X6@@#9JkWQ+~o?qUWbXbFZGeccRIwg?)4|O_zLH!Zom%4ukJme{rnZ z1WGP}5NKl73?FxLPsjqGEDF|0f1rKq_KtPQLQayl5Kv29i&CkG)+ z==PVUREyzGu@-Z;7SRWJ4TdO{QytJB0ssquOt2%~zbz|NlaVD0y9c3O%3uhkU*=U? zi|DhGW;!?AgCQ~`vp$owS~asw3WjbSyNLySX-YIrixV+`dKfk64t!el;5@P@jjq^I z$PIFhW>vw>_Wv!GF;KoHXlF|XCgr>xplYls; z$LZFNB%wb9z{Ub-xi?1HB^@^hMJDL#ApKfs2bf4`5iAb0IyQTcLWYy>4<;SL&(|_D z@m~1Ri!%b4N^SIF6v*3^PAo}dSnz4d15)lwf*aV#Z?8<^Aa20AY-;Q5qD2`&^v?sL zSr#}v@QcB<0iuNB71YqqPV%F9ss4oSZCYX<@b0G$R?`cIs(COTT9E(&!+VhkM3Ft> z7byT3G`%ISfxAzz&Q|CU`0tMko4DsF?g8J8dvz8YS`pSbNY4iILA%wm{s;p@sJKP5*v6QaJ zWcO+5XC)d7VC{SJ^0ZjOgmWAKbb7#4$9ZY~+&>dSibHqLs8G6lR|RdpERLH{0srpo z7W0Nd47>B(P@cmDmL|CVpk`xs*_gL-mNfte?f`q%!*Z z{%XE=jC6&|t3|r7&**RZ;$ckfJi}Li2tdMJ>sMCAp(fZGA!!3H)ez_cF!_66%$Vw8 zm3-m=DfQKpTr~2;gh*O3C`dsOEIhRkWqR;fp)ui~a~^<*kt4K8iFoliwJX7~UP_R( z!A!3DjxI`DE6e>9zKw-wP>4H^3YGB&(~*g&tfhi<~9&ov!Juv zxVLk;(UbI|kz~4WS2?$9#DtbBPziNe0->lK+?L12N6=FTs_EH7RWv2mmm7OY3-If& z%IM>Q22KWvwX_X-Aq3z`p;i2mg{e#mv_qLBFCSAUyNUaiqBT6?3rvw573sy9?q7d# zik?4$l2Q%Mt|$#y)wR=N=<2ip4sPWH83oZ$_y{KQbR~9kP@4?$ov_Tv5DUS?{bG_0 z#;{7L_pOt4wCLj!20Ty?3?-s%bB`Ix7`Bag;*4MYApkN45YlbSy)n}K*wIKISE^9P zZ_Z5cTrP6@acMxmmyE8Ha1!lKkAr_qk(g{e`}^8tVqy#)IEg(8GJtTvwoPQ{#Q9slAJ1IncQeEKFfVh3CiE zD732_80^mNE43C3pGDmCYE~`3AFNUoBlY>!9|C|Fpen|i2XJJz>oooI zV3oC^NVzE}HfS91kp6UT7^S~@f=ZiU)&({KN;asyvWv3*S)j>geOO3emNaoMQIQ!% z?P~%TuV4zgzJ}M=-Gv(4yEqpxJk*m*5E0maQQE|H26$G~JEJYU6aW;eyqk-0ufoFZ zo-ZanYI7hsBuQ(~cfXrTmy79(GNA{h388y*Z>3=d73+rykfXxAC|q$D_0Nj+z;N-( z>j&`E8?aV6S*G#*CB+?;bIPq4hG1IAU*gdp{mlMMf& zpOK6YupS^j!uQ7uq&QfIce3mIjs*3G0L0z(+REDa5%(H#HLL-Xvb>7l1MU6k>;yVb z>7)i9IcG^a&jORK5f*#kYuQ{a1)e{y59sW!Z^~J-zdR+1u1F1}*wtCo*kNIQeyFz# zQzgDeMb-NS3LDf`BjZ9N!n`=JLjnlx`EYW8-@Guzn8z;<2ec&U*m6P&&m%;-cptz4v`#_YMxT+O{t;Vo0rlSK7e&YlV z4AC%VUkX#s!7a?-rzMP^;{X61LSYIhxp<-b7=o(_8}fNv5Eci?-@GM)n-l(WmO9Id z&90=d5T-Q}l`PNXLC;9E$P6puhvfsTXodcXa8H0vVFk3B5GV+$nxMrnNX{ndXCfLB z>d9G8$!bO8Cv?Ghb9x;26b*8Bp?wQe)aOQzQw+&KO)g+XZx<6+%-On$L>Fw#Mq5^6%E`TOesB%JW?}Cqt=|k@7ATp1z4D-_hDSDN#3>-IP1~MH0Cp5<`P*`zgAQRU$SXt0!@zbX5rGt2KxKjcxeJniuR)57Zt9MCdd=q z96@)$a0|FRDBuQJ3oEfSGmwWfV-a|`AfDSq z^!snh>7~Opyr)2Wo_bLnqK8{MW;Sxymct z+l3;%-FUhTUego&xJedTuxOLo_Ev!Cf=ziG*lCkTxJfj@!c1LQ2=w}a=HGf*0%2k! z+7+TLIa@c~MNtHV>N6zGHs>{R$BQ;tJbyQy;ErdKBZu%&d@tgmgf%DW>hu7vtkZT~ z$gOSX0eMC*^f$sJp07%qn0jLK(m=-0(kO?_u5IH?t)pTmtRd>KU(c$gYgGhD^cqDM zKin(wEq9>J3kmcLMKO2*o#OVEgy9)g^rxLr9O8};D~*Zt;#eUK6zem2^^X9&wz4K} z#JyVFUHWr|xiH1NuDb|mH@5+=n|(}x*1i%5bcE-0R&e?tgCgp zBhxIpiEjA3ggdK2`y+jS)h{RK42x#B<+k|{UZSDS5_krpt-}I62f>JHvH-|fBMg4EB^&WAb|f^ z;aiB_o*BoZP4R*jVBeaEJFS&0Pv>C@FpI#RZ$!0`;^QMjiUn@$?4p!4*__dZu=M6| z_hylCVE(YPoL)FwOP$~rOO>v;2l%etS0=N22CD|ag&!=yRC})+>xO3n^?Gr704>M} zVB#FEtZk|#17G0ckMFIdzwWK1n~vXS3sgYi51$`Se>f+Me?a`^_xv#x zZ9}Q!@GwvQ{;x`!=>qN^EzSi-)1u-}<_qrowu1h)r{c_#Vf`fl2!ibny{5Z@#Obwp z0tBLYOEY-DGAB!vB59Px$@#ut&rPNwp&r~~`%*@AM0a6sp`!G<0bB@ToaFT2n4v2J zx-6i#(EaCy@*oGH<%A{g$;ELd1kg|?YDM=48(zHfyn}+=X(s|=`1(`}7oMo^ zSG-;b$@F+1dTLTM7nbuR7_GKfETTN9m;keETQTiC)k2e_y*aj!hg*UN5CF_Ld+__y zwi#Kn(0elz*f)np1ua6Zv-UY~N)!CunTNEaq>(P%B-Y&~zo7`Tx2u`y&Rh$<>I6@G zmoX8>DE($csG=Y&H0JF*E{?}Op=T1h+##Efu5@sBWg-(uoP6O-;O{_^e%3JnEP%6v zWAt|fM1uP*S)N39e_PJIda$w3@>xq#X=iB*UH!3ekx(c4_i=(cj0HjgIi``wLxOXM z793fN!S^}M7&b~9H{~=i{x5szu%&TEqA|E>Y%plQfiGk!0wp4TY$CK8va6W$JMF!E z`g&dx1$(&ACq<2P?I$Ioutv#RBmVheK`I{@{+;GtWmr z7~X!rH95uI9)qOZ@|~!PzJqlOhu0%j6kctD2pp|R^a6-$W8-l>%p61K>*o(wEB%PXfDQlz(uP6! zmw$#K7a+!^QoOGl7x{oNckO^cMqi}n2JGzRW~PW2v#3q!sAs3ym04w|L_;0|_&xjd zx|l`8Bo=yRQZy~f2%v!Hv+Oe9zZ((E-7Xl>Q${!q0oC1NVQe3hJ%LssKadgVK}Qw~ zWuUcWw|!B@H0+@ zFo;t`2Non#N`Q6D&R;m=2_MlaL=X-1qXa1p9ima!3d#iPQE_X5?q>SS*a!}^q~`3c zMBx75hXWdf=7-`P8sbUY<|Hz`W7J!@)`5A-QN;*YG=G};egRdsb(DK;(B<1@sz4egXyTa9^-cHLd8dEMQXP zOu(~;uMI0Am4&(;nn^zJ-O*fN{?=l8FSkxJ2iO|J;2u!WkIXKJd6?#+-C8X2%|nA& zKqL^-*<~T`XOFT4_|5PTdgfpi=V<`-?!P*PgJbRCM;$gQ{&-~YnZEkd0%*|?Bh6yt zLrV0+Y@#cY{Tas7y8ytI;j12~5Sdzu^PgOtMq%EV5-)A_#|n>ZSsl z{`^{2B)$(xJT!}f7T3}mQ276cou{}gv=v!x6LHrDbWQ+ufZa9Wv)RQj!dh4K0BL7&b}-))tz#wTM0{Xkv|u z0t#{H#DPI;L-3A9uFs*=Ko9PV)7~Y@_3%EV>-Suh!YC0wAqjBK)?E7N@8>o!CkdE5 zT8)Fj$gZ`63*ep}JwK8sw~IW7g^7KOKPlmRK!p|{&~w)3(gkt0lQW&&lm72e4v2qH z1C8>`%RVTiR^X=w1VO1h&@m72D-a~~FOqW#Y|$&!PFv{k!c@+DYcYC!C)zE7#fwJ1 zpUh5Bii5=0N&&#VqB{p-By9}W*znCP~lLG;*o zt8aYemO}ctsF8vA7pHHL?J(3kU)xe^U!oLnDZfcsjOhrg7X}duHl|fY*78SVtzb8f0 z;!i~2DA|mcC;8HWiZ=S-@_6Q~8x6H^v>6bBZAFc=;?B2?u&b-y+_;^D8v|w0ru(@TZ+Z-?BStY4$5u|r(MN5 zAfW~U#28vZJ=W(f#QU&Ua9dC7ww!USeaGo_}!>OkcVI2@*eAgImBzH#nNB*RL}#vk%1TM zBQo&m3`wJ_x0frLhGi=4X^1UOz;nk~(SiDHOY9TFzEN?va>p6AKrzx#{UHF-0ys2R zdN07{jTQ>>aHSDp9_(|%GXbp@+E2E|kU;xWpB@`MGS^dgk9|90_=W8o# z5|9V5S^zD#MBgn!23(T*2t$hzNKBSed`bKaAFiP_7sk?6 z>1g99UK-{A|6JAD$u+u|B^K@N%8XO=1OkIqP_b<%)o?c2LX;8WL1V%_X-!rgXI^7` zTse?NIVi4EiUWY58pA?(h_$3`_f`mSzjuC9PX9PiMK4_tO^Y){HwtuR9`jZ%B?r3G z@kOHU7>PZgR5rN3f&$5Pe0+QqSF~aF0)~pq{Q_|g8DXq82yK7gFB;rpR&$t_8($L$ z6s!;Gf91YnPvQ2wm)pQ#hJ3v;Er$74+NKA+d1kx!^oszXHDc`0du>CtUM2z*J&gf* zcb*$YQ#R!*hs;8kCi*dx6IT-MjxdwZE||!|ZVHAtyad{FH_xKNKn1*ysl*ukCiMr3 zX{JQ;{NSrUE}~Bh8mUuc<*aL_30iVjEVK#SOdDBaE^Ooa}49FG(6m>?h{pbaDa4@BtUvEj6ATPatE zp+yUPZ-HL*?l=HtLeC!@RuIh|A0I)t4hbeS6~h$x{R>ctP9&_T=zgbJ5Y@ur>kuED zT9M8Pvhy&7USt1u&Q0PPW4sTY=$N}>0rx+h!o2}3Sm@zBl|1rR<}sw80mg>wBVSuD zkLNwc0Kv0<^^X83Y|tJ$!`Yz;I&{I$&4mvDC~L`i7g(9#96^HvEvjf1lx7T^ zMz2ob{?_5FRviBSwRaw1Qr6f0KRerZfrVX`4uX17QB>?8wy0QRjWKFs?$!L&8?RRl z@gGZKqDB)-nkH(D8WX+78!@p2u{SKS$Bqcndxu>XwlMekoZow9e)I18&dydqcbA10#=V7bN@`4u@?60%nd$P0yTHXrXEVQ zc#e0LxeYxW2iPnUcpfMPW0+UIzDzAU-Dea4FYH%?crS|yVWnmxq*?kK#`V`VvqSHm zu7t$x3V%4Du2BHDBg|=QrsYp#M=T<@i=6p8?_*&6yQ3@R;aThC>}TdHjDhES7v;+j z_pVkLfZ}*U=8uX=O+%A*i>btXH5P(_fItq5#v^ z)XVPo&s2y3UWdcuynpuAG9~7^X?%ZSw^}wOK)2adK>uULnuZjX2iU)Ti8 z%q(P9;SQ$dD9|zf;jqEFrI6-MMPa^N`NmTDwGH36qX>@AR6lc%t#zxBE=E3yfe#r{ zCj0d-mELfPKnU>hDmnKB=uNg0`XL{$NJ9(0GPGRoKGc!)@>#H9FQ}=P>EBAvPe+9b zoIe1xKYYAO{`*B{gPjpzY!O=e^1?igyHPSc5{)kaepaor%oZgZU0Eb=p1PfUuwtVe z_|R-MHl{6jMh2TmS`D0d+xx5J;;Dfm84iHSCU%cV%f!mP+A5OPPoY^>bbfi zN)%Q>UuWx40I)zqb`7>frtPD3WX&^#e-BR>5mvnPwc#?lszj|XZWf@|jMZ!@ckqSM z!aSWaI)2-psTo)%zlclE*}0Dn(xekrw~%fI4JtJ=P6)u-vs0IN8?+-^=^a`>UH1k) z&A<*FUP_4-Mfr07kwavM-bGr9y=bbNZi=n)M5I96Tw|{w^uZ(S*t=LhTeDH8%ZSIp zL~$iFtC#C*>^}f|=b?H64 zv3P@AywFHA`4sTA)>zhNh(KeE$r`)E30R;N=ZRT4jhXU&ua`$u{gS_n!!j35W z@31r!0-!wXQIMys(##Zpy1HJDdu)!(TIZ@u7!^XQ{~TSZlULt(Vu4;~KA870(+hvn z5f9Iie=ep>o!%13@sA%|CNG?rCNe+)u6=WvT=T{mwBD|{^lf(Z$Tj#(##QJwx2o!jLxS7$`JP*d?-P5*LN^zSJ;6^Q|Y0#k;Vt1n= zAvbvX#No=ahSg!X`mbImnGgVO`H3&5=S)pp5IES_{`aUMibp?i(k!hc!BYxB6-2az zPsS$Uf*mJ{G_fw-qe`1fRCp%MSfjmyR9nCk`c#0M*72y6L!W#3Yr~bUg`|*@DsS-} z3E%hWH@DXvT&4Ly3DSZWRs$4(xn~LrOka^`KQ?EbeCx^iiiPr1!47}9w0;O(O$g-y~-tKlrp+dtQ z<8|ll)NJuHm-vH~^~xeq=Z0}r87|wSO0Iu*g)o~6D${qz(^l5YUjNH%tm{--Rmj+f zpgg~F?`pk4SG}=RZw!qn`0JhUH;?g2Bw5i4!!!*t!lVh0%$Av}-PDqKE|cE$`G&Dj z-tWu}oHShf6_9N)1mbgba!y#>b4OPyW{Jd>j&-)~Fy4(&i*Vw&$MBN1k=P!qhM@$& z#~+!sRv{haRDWXLK=(Miyoz#krCvuS9Yh{t&C&24DN-vwi+tkgd9^ZeOqJIDgE<`? zZi2NB`g#}M1xkarCmi}CBxM~?`SBH^D->XG8$3X!Qdncj#o$~p;!*_DUu0on5f|_A zIqT%xPcM{)CWk}e0S6~MI=(gHJJ^HPvVd&Orzdy-qq{XR`92*Wb^%+7c~ z%F6 z>iNgNI#doAlnIg6dlBRZ>sV6p{z{EGHC#$2<-Idp_+(%$cWhsL|07=QHoQh9nV z7B?No_@2PUL4ijM5`38Q#tkgffprkBhOr6vD|jE{gU>TQ7)k>y86sRi{!1n;nN}j2~_~t89Q{AAHl$o$NsiQnboQuVY zs&;Vk5Fus-E`DjTg1vCzHy@OyQb%}>`^P+adR~p*Bs!_k{V^Q!yZ6&Ieg5`?J*&0u z53+Rpq**G=0aa1jGDTE(4AwBJs#ukX{RF%WCJPpMGt>b;k-gQg9{D#51)$PHUtq$+ z9%DoBBJH3Cz`+Z5>mxVpZ`;+==$)4qtXCRAc=g>RRa(ii)%khV$ETB(-)M?tfNr0~L*7Rnz#SsPeLCn|JrfgrD`Z;}%x&(n=4?!3G(O)aKx*;5r( zwQ_^X^X01}Dzr1r#1rR4wFt{Tby1zXvam*3B^chJ3S$#$PaeOG95A?Co|(H&C(Zop zi2)#KMChOkqy!2lzfvLAH7OV9U#72?Y2+b6mnya|RM+ChoVQJOCfD__mQklc9*{@o+CGzP}ieU4x&}`6MJ$(n_O~*@5 zXAx8+@0~CdD6Sha;dh>AcdqLLxX0m4VjVq9<5z`Xf3!-NXVu2EJeC7~!$DzDc{kY`%YD?mGF^zgEgqCk&GV2bODobJFB_a=~tW<&eRpn%fNP zStLL?96~jz40m`umPl*aFc4~kiKK%&KdR330h}>A%i#XxTrYWLamL0REdTxk$}~B* zt8@BO^W?A7-Cj0!r~yE9BbXvj&0VL+PewV_TSe4pF;+Z)cF;?qG1lR6zppV}p#a%( zfGEozMu*z(aUR6}e#FpnxpDjejqx2cIn9=4=WMlnyY}1|;!>73W7QyRWuL9#Qn>mw zx{Uh6AkPRLQ(|CW9-XyLSXi;RrZL6N&{A$-R?&om-@z8`JHT~;SyM!#2v{)Q2;d$h zu!jxnp&MJi`Sg6p2CYcbCPjsQxO{_dT7P*_ZE8~so!H13-9E-*x;T-1!r~giUTnE@1TgGVN%b-?I1CPS`*vnp9 zs=E@xDR{dqecYS7LIKDD@Bq!4KXy>fV*HHqMkE#|%FtRx;euVOwCjtIYGTEUv#br} zri`C7Ti#ni$S&5QZdGLb22FjO!f0OdTq zJ7Dzre#J!v2iCJ7p{reYX7EV4JKeERr>9;IRGXDYmH>z4Pp@N;qjBtuY8!RXh7n4_ zpH4}5qm-a46aWtZ7AS1VTlzg~&Jg0Ep^89U&do;%0LqOUP%77s>n}T37AakbmFo05 zWNb?jWl1ABBYe8!D+85l$V#jz!IU{HtC*XjQ1@l)sA1)D&*4L~>&!xr6DQA+l^ZrW z;$CmVJl~&=hl6-2gPXH?A;8Dp+&^KkZjXe%g)KPQu8&`yGVD^em>(goC``zmhYi*V zIcQz3g-!-sQ=rZMa1i(-%9a+!5dXtBG;Y#teLa7>OX1;G%eSC1-3MV*^7FL~@}t+5 z%44(FWi%DxLB+Fm`lD+Ufc*e?fcO~SVp5x+ivHc7ugdHnW33>w0@`5q%wb6;JVgTQ9@ux$jq_UQgOgih8ZvEnUu=@8+7$RTWzNg-Fgp|SY zxQb4cMa=5*S!!|EV5M<~22Vd)|m$gH$__NWR?4ELY(x!VYnN2S6g-i}Mc zCCpgrovMoE?45cmRXNoNF7!!L=E^g3YZc4SN>B1pvv4R0)d&`Fc;L~DJ^E#EXFSW+rp&F;J-@8@aXEmC%gu1}6fu4Y<->|16)a-ky&m{n>)I^Se)t%-nZ$}a zie-Oqh5P{Yq+i|fj+fV>IMlg+fAApLp-+(t*3?Dob>fNAo_QAkcv`yIbe6xrXQf;> zc7XiX3yT6eMDwWeSJsS!?^#LouiCd-aZQya1#T+snFSh#)X~|B`B=W?g54^0E2m$+ zBxa}2Lf-@rO39RDmR-Z(jR1t15|{Qy3X zOdyP5UKwxGyOUchow}Qxj*0E^q_H@>0-k>+r(9Ad^8SjA^31$-GI>^wvLJ9>-K0{w zgKLx>5JYjaNXUROKod@AWjCAmffd^3k8C4xl?{vOU4No^j1MxDjWUN0D_2DVQ^bPn z`#)Qws7}AxXToZh*Uyn$Jw74NowThS{ixd|5Z4LT#5m}_Dc}LPM_Ga9HD4cDA!GWM zsC8y_63emwHgk=zATpyP9MjkM?97oeqE{xg0o)IZ^mqV^rh0|oXB1dHs5jSsOm&G8 z_F`x#1>4fWUH)fA1~9JEm7r@B0B+E<2k6X`B1UDaI(v76yf^iAaA7j+O{ws$W$QK8 z#Zqyj*zJJjH>=F&fJJ}%)a{faF$JL8loZg9zaTlx!Bd&{AQ3-phd#Po8;^sqfroiv zL9N#5-&nj}76ki-9jek93$yJRFo_^2&kMBJ!YVTt{F$|+AV$*VrtBW3+P~mIn$!SOotn z$HC8jz*U0>FJmPY+wCVY2-BGY68`M2QGm1uXbtq)#_-%RM@))Y2i81=*O6t31TiyV zQ40JPpbD{$_SsA78s*K!8}tU!Aj2vyUGJ8-@ql^a#&P{U9w3LKhm|3X!Lfwc1z1rN zZr0H)%*&I#`j^Pb+x3spb&}L zLu^78$M}G7;pKn~GdTbJf?DlM%vuW{sSEqURTY2kKQ<{Nv?)%=qO*69;)F9Od>1RA zPMI=Kb1ryWSvUd|LyHF<@mCz&0Rw^ux#rDf^7FU4DCzYD3WIXdu5iBK3fIGk$*KZK zJ+e6=^XhT0;qOEc477rDD((OMyU$uZV&CghmOQWm;onoGx;V=oVd>KrtT`5k#Btw& zrOJ{(NWej5!^d+xD&Q7FOH$FF7rwYqhwjG>ELZDA()ZlF^>WN(-kxEPa5opgpWgv@ zTjtZ%pUUEd?h6=Do-aFBmZ$<#siHcCx8V31S;EoCegRRy7_f=Am%w}4q@-RtND|~s zyjIWKgF}QZe_Hr6C)ao#pTqDAoSuYHd_Ub@xPO?~BD~>z?7BrD95Q4@VJXR^76;gy zj3RB8M}6Ho`TpKxI$Z$ zLkKP$xj-gzCcd+fvizazm6^FZi-7X2I%mgFIO&GiIjdZGQeA%KKy>g9v4e~duhVP& zG1`@1vtm}$#;+NF#-u3JWNw(5G@3H}`Yhf43`h}f8CT6# z!{I$)B6D$QOV-K>r&H0C0t9SjH@>q>u6|>=TH}m5zE`dC(W_yMQ!eP(W_A6TU0mU6 zSw?j!hyDxS6Lo*MZg7x7YMZf}EObq>S#VyeEY$Q@>Kf&!N9X8NTY#qCEXJQNEnYVJ zg^kx7dv>4z)TcWn1o9OCQvK3Chn(?mwI^TpvL#P(RqLFtL^e~~LZd+~c^-;TEED&r zl+#D{)-ELCYsr}%gH`{nhtTZU0=!E9yFS(CPFybFyp5}h1g1XFW~+ck(?tSEQ?zO@ z6qAYD&rGzf$(LiP zoI7C-vjFTPNXHq)6MS=mvq13Y|q2G~$CS<8iIgjST9lNx6FdA1MuiPN7Enctm?bB9oR2ViTRRo)am7ge+ z39>3Je5{+?WSo9<=-i@mxz4lct^4Gvsee9m#e+Azde_A9bss$sg2Nky^SLuOsnIP81N0_g0d!HxlofvIO<#1MG@b)dwF8CDsO zL8AHo+zoE<7ej9C`%n-6c7lGF-7wdTr*xz z?!fK>DsN1x0X5&E9xLY0maC3D(yIXZ3J|B$kzOw9yi5ULHli0$)@$FRhHd!9PhXRw zl8Aw?I7^*{C#QuN-|S#^{JkhKEgfT+;ON9ITHhp1EYeGelqM1~yrNidAThf+d5iIL zr6Bh&kW(xt@HYO(x*-PbAD>mDu!zssZq#|+vqtrn8}=WdrA;g{!|)GGU#pOAr~<($ z@kt05L{qg5O}Ya0z(Hj?W(l<-dx4EUQ8gpWU{Fhn>O4{URfIhZ3w^$}UULESRIEPQ zu2+$AuU9sDp@T1x_CGEeJdZ1A6Tk02rTYn z^9)-kr!H8pWm%(C?_HQsq$~Rp29y;lcdGLcX)n@>%a-xdRQMFs_W2{nhGMgf@TAA* zNgZ|mwthh;zOTpRU!Gd?S{UC_eRvMf?CWBX} z^`0ODke@@zFcOEaWLtT<9Q(c_h6*ePsStqH0ZtCF@qZg`gb4?qV^|-mI@i3hTsby1 z2k|=3d_M^#n-z~A(NhV!z~QVu$n@pH9=3LjpylRj$K2HS%MQM&sFYzGjwhE*v@^+x)oCRtJC&uSiTV6 z8;k#QssM3dxyl3gHzN<|x%=V6Hk|phm-C8ByWAyaD<=6@8|zOj%`_7{K%@H>2Pf>r zEv}TuMbQ#zVD0(7Pgm9}{Wvt^%jz0r12Ul&Je|EL)1BnW@QOmk(F0p%66&yrp&9ok zvSLJnucNG5nx9Z!o`VLJ=`hf-kIm8bOHmIFlUxA+9U&kd0#e=7jSUj-I5U_cunNwV zGUxSgFH{V;*5~Q&=0oF7N*;ZV~*2m^3b3uS@sVpr}#<*>I7Rip4 zMKZ9gP{8W+Dh6pON(4n53^W27^My5yx`%jK-6mNT>@7A+oMFK|)abW&tdQRv zov~KVdv>AJdK2imbd1%~OHwZ1r=R?AufAG~X8?!%z?yu{^V(*27wBT42ztTsqkQZc z7~G>kn}yKCljwssB^+DV(4=#^gm2)FC>)TR@Z1(z>50;jO-)k#r%R9C`0f<8Bx3!s z5-31U@qcR-AOjRf9#C}1>7$b;UiLRh(1&dMBd%?bR*E$6+Mdg7c((8fL7Zk*(Uc-> z71QCG^Yw0(tLB-3^Y@pah5_~}e0h0tAdUN7@eXzGI{GPVo%`SZB;+d-p ze{=f54Yjo(@Js>x@TbLmJ=YM3voZys8sr*cJ$m$Ny6AzI69Yz6q{sC#EqfH6J}!38 z`g{ZirdiI=0!lItFP{zL6KUx~lW)a|gpL8S=#E2xb>fuAA*l^m)LNR2w#m7OMhPB+ zeaP@`aMIH zg(qKntQ>gSO_Cqbpk?{AsMtMR|8Lh#4WTl#Lxw|4xH)w7qLi6ImFolH=hWc{Ws41P zfw1|>irS26gzz*2Gb{|>xvE$}Y|tY9zvmX}p#GQkv1Il#x%Suzf#nZ}KgwL6%e85Z z2hiNmLxz$IXh}5x%EzC|>$lAybLttEyqz(8m@V02=xoB>lBI8spAX^d7g+b(6gh43WL(MtOb7daV$BDIW`G%$1*?a6(Y^u?a9g`OV4tXG@LZ zuB&+g6d(nT!wV!P-v40!h~0Kfg$X(0)+1WUDS%f?lTYoj^pPHx|3Sr^!*u)dVyU$;&QUwz=hhDUz$T#WT^vHR-_cWXUB zI2jH~qEcSG+hN0-PW{mn(u<8F9rW;n<_u_bb0N#tM9cI^aal(uEd4rO7ai<$v;!y`^SQ#nZJ_w3xB_V&yT^Kp|~sc#GMDt$4e zxE*J)bk3TBJ13sdxOm#KKmn-y__2ShtbbcVAbSt@2n8^JoR&okdkyK+^quSPObj1A zS`r@2w*z8$8-j6{FJg!|OHA+H;|Z~iIeK-P^cbSups?kS|GhOcxvAUleO$NY&p|0_ zR!QQGM=sy=@J&;^n!m9>(D-V#^>3>J*!#%KEElj)sH|w*38R`0J^NniH=?wqSh&4^ zZ*?D_Eqjdv>CUx->%Xq~3~*-kr&-y*HNHCsnfb!Jq<(|Qr>{LEf4JahfyMXBo>uv3 zwe@e00$46!6(K-!sZgl!xQoA%-1oR&Cwo=LB!tmJEs+Uv4)yuC7(X+du~%i%Gq%)Y z_JycbF@8kqkSm7i3nRE4aUxBPB6C0dq~M-Q&TU+^h?SpMeQSEr^)=W-&Xu3`<^X<- z;CF{pNKwL}#J6uaH!=F4^OD8Tm*loDINXtq>d;2^0a{VFPvs;T+@#H8{MK0fC?1~Z z>P{whCzr9xj*y|P_A~Il3#P5epK|NjO&>fzCnWq<_Oz~Vn~Gv>sRH@e69q6Ou#rj4 z2WVjCUvSqgGJLmj49-Ny@SaVKjp1AFEVQO>A79-`o9wuhC3S_Pg7z#aLwAhd1{LHc zEc|R^{^VOuZ~E~0*@5tr@LJW!Z+f-K`nNX(@)KeUg))_(u&^}o-8=414BL5^WKo$T z?uq2755W?0^%$+G+s6zkx5m=9Ty4rN#?QU5+6KY-BD_U~e|m#Fbi*k!k$4GGWpi?}Z^Cbu-@={_5&n+M0sJcyr3B;zrUVum6(>%*^k^Br>-o}u zc%_s=V`8XEuk@L!NrtdE9T3x}`wY!v{EV5~(2lJ*tWNH#*};OewS8P;y~wJ?2>;76 z>Bj41+00de@Dt-(xZ?{yg5Tl7-&qRaSBA_JP#v=5*m(i>PoK*>=hmO(Ra74!)kBM= zqQ&Vs!OPZPvJgG?}5Shu)hlGiJGaVXzj!8qFqoj5@S7r7$m4f;J1p!8 zhbx_V$t*E8ULiw}`ifx6z;lIC(Z4+J)GIE@>oaIVvbaq0`V5d{L6IxMc$Pln_iPqE z+(^z6r*wC0J6IIftq`eMDN?^-jlBEhPvp6K-U$RB!S;pU7koe7w(NJ&B|Wr{kcql9gmjveHjKq- z4K^n(#_wS9_~LyWv3>1okqtE>4I4$4&UsK?f8=j6>&->7VS`n15O5QIKh)uQ1GZVb z-)4wIt{1l>%b+cNr=J{K)67}@G_2bHzjc-i6W^;KkWeyOJgr*53Y^@cTc*f^RkcPP6)583Ki`svi>hVUh0JdW{Ju3%q>d|-Gys}=~CiC)2@`_3ZCnZmJOT=@QM(ikS511rJx%tApY*S;c zG}f<_jT`1m-P-xGcIoG`YUv`G{q7u@{Q>-(2(TrtVc|Dnx1aWR<4J!b@ zTbN_7@hyI*hdf(~0{B&;sL;p+->OIaZvQtWFa_`xAxa6lD%a^MVeHE935OxR@S6ho z!XKvqSa{#sM_K$X33;|81&B(LO_$|1hGZSJ12$^6<{j}$N<>?N2I`@u-g*Yk~2tVfw{ALMt;x5US0N(F8l3GlacG zcLLnGLT{h$djOt`QU?Dy|2186gsuFREnNZp(+LZC-0xemcWdSC+2URvR}C^jkNUaA zokWySZP5pr<>0~!yfrEG)_Tpu-XQMxt>XN;1!k+bP2C6CSy!N20Xpl-c7N_xaRs^+ zV5_)I-3QrOSD;$~I_t`If9_Us1-cbrtGG?w2iaLy;Qs)HP_A(5$g7S30000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:viewportWidth="108" + android:viewportHeight="108"> + + + + + + + + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/drawable/ic_launcher_foreground.xml b/opensrp-anc/src/main/res/drawable/ic_launcher_foreground.xml index c7bd21dbd..51a289bb2 100644 --- a/opensrp-anc/src/main/res/drawable/ic_launcher_foreground.xml +++ b/opensrp-anc/src/main/res/drawable/ic_launcher_foreground.xml @@ -1,34 +1,63 @@ - - - - - - - - - + android:viewportWidth="108" + android:viewportHeight="108"> + + + + + + + + + + + + + + + + + + + diff --git a/reference-app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 94% rename from reference-app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index eca70cfe5..bbd3e0212 100644 --- a/reference-app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 000000000..bbd3e0212 --- /dev/null +++ b/opensrp-anc/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/opensrp-anc/src/main/res/mipmap-hdpi/ic_launcher.png b/opensrp-anc/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..59d3a484a9572ca99a3e8d246372abc984fd3b85 GIT binary patch literal 2576 zcmV+r3h(uaP)`tWwjx zD32{A57|w#VL+Vxf{{4H(&d&DN*SS*d)5CTJ1qDlOl^}`Il9Cd-ef#!G=xPo@ z_V3=kTL)pbNDy?A4Fqk4uI3O_SEJFa*9kNHfDM2N%FN8%23^f1Xaj`VI6;xn)hvQu zym+w@!fctKjEs!!&{ZYK7%D*~pb}&PDnTY-T?7fC(7SgE6&4m6-K!y34?!g*3T@e< z(4T)QbnMtMdi3a#(K9sw%O|L`RH3*yg<@h9>e5BfufHl36&1xK-Me>>a&vQy-l;}d zK0*2U3ipzppD^v559?Cb<}>n6zASxXSe*|TR4?bxw{Hg4QV$;rtwfN!D1 z#6%-GUkS@4XutqLb?OKT3KI1F_u4)Hf?{G~q(!Y~96frJ&Ye5Q{ThfzmPHU!`7gf+ z>fT*YaIix5_JVr!5Hxx6zY}!j$`#tVb0=-uw29Kv(rEYY-O@diFdifMX29|Y8Ztys z>(<(!43~0n5cJny3bkpYCCJ~uoS=RC_R)n47r2j%_Vnpf8PvD2CD{x?g@xJz(926O z=FU~<)G39EinP`QQhxkVP(XmTk2*+45MmBULLYGm+oKO2Jm7$Rv z8-BNv_;v&#g{P-0l$xrr@(9Qv0B+T`tsp-?kRhmUT|tc-3tG5PP=f~L1Vu(hG7)gC z&6_u~CB??Za^MDG$Zp7XAo10!R}3?V`Zfd|Iig4f6moYLjNgA3eE#>}3jOqxpcXB( znM)UUfYGA`4I5TY5CSu-L>G&6*uH%`-@ktSI`)#ePD0j0Fu!%{7CnCa*l0Xoz_%gD z%}vmxNkUqHLJJls9F&_i6ZFFmf@aSa(jpX^K3$NjtF{ILS%^zvVG8~Bo5FQZdU`r- z-MW=Y!STR>1MFtm+1YgY@?}0p>cv|#0X_wLQW>@HrsnD0-W zI#tG|dTg1!di9bE*={n>50lk)8@hYS}mfknYW zK}^4X{W$AkLi6(SYL6heiAV;4dxH!Ir ziW}C6F;qZI%@c&wJ8s-KTC!vb4-~N|EG$gcGb>vtLOv7!37X6Kp12pjn}VVpWOlR1+`C;CQY~yba!{B{{8#2CBm{G6V|HH zXgE+q4&2(?+nX&pH8quGBEZA_;F{lrAP9z{AVVK#&z_|ZA3o6Aw{O`}^zWgj!Cxy1 z3JN$5>9QPl3K7F#X*hrR@+Dg&vK?Ft@eahH_=8N{cE{`2uUQV(Y_K}?aSbw%Ng)Gk zHH@bMa%z?!5b*HfL&Fa;K-?Dw#YjjTOLvuDqYuA7OPBM2@w zW5x_#b))7%<+^g^N;dU*^XBmpE&{TU)<=vO!Ly7NI2M$MEr>VBNQhI|@4<}Enl+1K z4Q3uo4P+zKHaH^qFI>2g--BCX`GIS&u)~KB^H`8k@7%e=N4P2$x7fZNHEI-Rz*-{+ z?lFG+c$zqIBG(}^XU^mx9T*r$6DCaH6pV}$9v;r|2mu`=A@0C(a1FqFAY|>@wM@{i zUAt)7v}rVC$Pn`P_b+=7u>{W{7=wJ247i3#!Z*=Jum*uchYsbsC?Ft!?_(@@w*t$n zIfAgYfC3LQh?zs0#*9y&KAl#qSixjrmUZWI=g#HKgBk~GEhq>J3keC~{hk{)Zm?BC zS-giW4P8yOV8H@D;(XDfMf{!M;9!>F>+4Gq5fR+SZX>K2eLRaJEDHr{XlN+@QL6R` zvIL++FkH@55w=ZGH9#fE1XO}dKqbfoRDw)ECCCI+f=oaq$OKe^OrTl_viaX?NP;4v zt62nTG#Z<=Am{{wva+(wx1ikI+z4C$L0xik@23c=P4xE1!nQ&Lhgy}i8$LdW^@=U3jn^qZHLR|9!)k?0)} z5iut=Ha03TG4WtrT-^SIgoFe7h>wr|tZ#T;*=K4(=BML+j2${a7w81tJUu-dey(-Z znw^`QTO)aFBk^B}?h-w$9MA!}w03oMb(F`dxmHC@lH?$*shK>sltNosGoZsKT`C`x mtI)uqUz2Eyjhx`6L_vv}QcPmz`0Evh^6nkdF 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 literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-mdpi/ic_launcher_round.png b/opensrp-anc/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..c185af713108eb353e651066e830c23d192013b9 GIT binary patch literal 2791 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 literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher.png b/opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6df5f190409f20f022d9af5e25646caedd9d53c GIT binary patch literal 3650 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 U0!jjiF8}}l07*qoM6N<$f|M=~^8f$< literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/opensrp-anc/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..f295018b2d000f42395b90df7b0a910a38c3d612 GIT binary patch literal 6662 zcmV+h8u{gkP)UX>QFUn$zD)Qi%hMGGohDSMWX6fsal2M55C(?Vrm<(a92CULY16=M!30D)YEu1La z#4yKP<6e~aIZN&_RPhSQWTBbBkn=LaX9)KY9wIzZc!}_O;cdd{!Uu%^G0ZX7elcxm z%QHMnAM{nmGX_e}(F!ZF6l&sfUPJgA;W5H%h4%}q|Ni?gz>ec&o88ZuzSfw&8KZ`0 zY;6ecYbPX`i3Wg|;|jt(h2Iz6;Rf6Vrcd~Yi#dnAWUqVM1}Vji#h8p;A)I_C40$Ie z$MuAV3U3Mlx*OpC+yEXY(+6bx)z@9hKn7%~7f#+HOUn3J*Li~QtHOIM@CKm62Bh2o zJS(;eVN5-qQ3Ns}TY^j8p!if|$OC+g@G#-MF5s=Z$PduNF=Gc@l~DvTB5O>jxfFWB zVuVY(&aV|ta{(XZn+pkBgRqJ~=IdPZAbl;|t3jDc)f`tBp6UYLx*6}p3mZeois%q? zsBY$@EA7m)E+k}uH^-MMf4*)fr7f$7v3oU8UtAh$u7!e>%SVdPk0G(k>I>4x=ahAV zU^Av8M~*x$Q`BzAJ?8=?D+pF0!oFj{_xXH9(dt98oeT3ieE9IYNl8g|&IPLkWrD5z zRuJJn27D)jf+kYLS(8!1;{E|HNP;7~FD3 zR+EzV@+!{`R^Wbr_ijh+-07%&`}R>71>G+I)|*Cu|NXbxv}scxH+IKO$^?}3^z=%y z#5Nn(Q{Y?4+qOCC>Z^U~*=HS*z_wL*MdslM zvHquw>nU*X|Nh%iojUnci4s0_|NV~o=%bI6cf14U2mkx8qvp~6(pnkdH_$g?hyyhcE9JOSL zqi(#>r!K$Tr#}14kx7MD0L9P`Km4E;E?g*WKLdaQQv|Rf&&G`#p9afp#{y;cGLn*# z%1cKZ3o7&3w8;@r9d-Ndez4&_eSF#-g;RhOLh6GLKG5fHz4eybuwjE{QbTY5dCeBH z-+ucob?DHccH27ZeIo1oCBMGXSU;Svd4F1(quRIksj5|dYUWHw#l`snuU_4!=FbnW zfc5LwYv4JbIdi674V*7ovV{HnpmFk&$wxmcyh; zjw)T+4>Gy_6<1`ef}3y7ICd-Gz4zWzGiJ=t$FNLVB}t9I@uW$UbcW;|Cm;9-$$%Kb z48c@?k!|n|O?HWh--?rme=VrsJA8PCl@oa1d(TlNOZv~PV!R4)^Tdf0$w1V*@4ld+wr_@gO+qU`g}KUd3^Ez`$bLlKhE>H0wC#@7u&AwF;qSG8^1wjdeukR9TW06!jV4aUJ_-A}7ltxAjETA7~;IC#)e zS6-O`>_ZRX`!mifRq{!G@2JGYtQ9bS{(PPJ*kH^m*tBVrTC`|Upv^bmd=n%?Ua`gS z=bwLGTcbt|{ntAo-H?gU5vi%EiSoc6_rrO?SpD9;j`&Ca&L#yGR!_x?8-hN^vRLl$LL0g|^~#x6* zjCB(j8>};v_5bPV>5t%kc+km%0DSncqXrG~si>&T?u0C-Vnv@i?>wIX=&04J{j1`X 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 QdH?_b07*qoM6N<$g1u!6zyJUM literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher.png b/opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..59e3fa71358da5f301fe58f894d9a97c05f0e077 GIT binary patch literal 6020 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 literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/opensrp-anc/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a87c82d35fddb1013cc5e31e4aceb151982eedb8 GIT binary patch literal 10810 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�k{li z$v=>zPj?HUn*gkY|8RrgemC` zVfJV$dP^4i=+vli;f3#tc|HybS0h@kb#li`^~tqnMv`{|SHGg?VeF#PkK{X5nF6^i zwbZ!A?ul!x$J??z=3(uApYmjza#qf7`$S?yj{JDsfCH}JNU6ktAr5faf0=E!l9~rb zl^p5@ylm@G)N>t7%M&V|Qt zQvc|dS-)I<*iAD!GOEOq?9{KCjv5$dZ3X+Prg=VA@L(L*`R!uAuXc!cyO6C32sIuqq>gP_JNlS#Noby8!0P z3r4it+eIl20FxQsRfMft|9Rc@>*xP(+2B7D8~*RRQuF}@O#owceG4LiB;e{!JR??z z3XcXBW`v0%3JYhZMTLEP)xV@CYqkEnj4SSGC^Xj~N7-k8=ENc^%Xf3~__iw}3G^8> zL453nMdixRrjS$4!rD>7T&#G(U@sMk@zz*{gXnphSdsJ3RMFUf&Q$lbS4U^&zv_7{ z^&D$^xrfz^mOiSVK#E64GbVr3=-r&E-+F(^RASS7ajj0I-{2h;9rQ~$BQO(`A@8#$ zEtg8L=mj4MD_$eX3_V$m+n>pE87g?x9yv(Yh!Z=)fH5~JV#$2QzdQ*}_W_{&1m)T_DZqT!2T!&Ly2*8R=Z0SEFga6W z<6)qWuf}XP`tI<+NBjrfw55}+@cGV!E#0(soMs0I^9%P@IoKj4A)bh8clm2Zii`@G zkfJTM4RnaCJ8`Uk@cBAPqz7AvQjR^?k3pcOEA>>g+6M3+45?@Ge=HjOC2i_*s0#^9 z>=AAheME&yd(7S+bLcYqc|7!FtA#bodSo@pKv|MYuRvrTQzJ(kfzw1YkDV#7XsP{^ zCIXqPFh=?rGVP>o088nAyR{47qVy=}B!v7xi-Nc@5>J3R7-cDY%ai)BYEqIim zJLR^T$5^>)Z-%Uai_wW@@4Hf@P>WCp7D-*Y*ba;pOgSc!P3NZ83CI~=D&>`zm#-5Q zG|!Q&7D@)95;EmCBg7ED%crTJ>c4SD^j`GM?f0h_RLq}*j0%DkAOA?i&(g5pMHW55 zSOz#UrVJF6BN}&Yi@s|Mo+B`Ln}~akg*pDsjuI8%^G; zzp^me*Gq4gJ8VwYvK8uQR6Uz(i}s}Ekl(-8o8mA_JsGY}oNQ5p`?<%LMnKB@%B>h_ zn$M5w58n|VN2@D}AQ<R=ScNl_W7d@wh!P_JR%m)8X*`Zm zj?|A}_<_4w-xNIN_Kor^UBO*WjMBs_yo541#j6Fg0;0h|PMf9neJ<`6aSt7=xE;4 JC{?q?{1-pYuZ;iz literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/opensrp-anc/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..899b8799c1cb69c70c7c834d8268e7ddf6da38a4 GIT binary patch literal 15795 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 SlM8wlP*>4Wu2Q`J`2PVr!-#hP literal 0 HcmV?d00001 diff --git a/reference-app/src/main/res/mipmap-hdpi/ic_launcher.png b/reference-app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100755 index 4bc4d0ba3eaa5c604fbbb4c5146cda16ad846cec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7714 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 diff --git a/reference-app/src/main/res/mipmap-mdpi/ic_launcher.png b/reference-app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100755 index dc930107bb8e44489ed085e70d0bd02f60727734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 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 t7zZ7GDscb+002ovPDHLkV1nyug8~2m diff --git a/reference-app/src/main/res/mipmap-xhdpi/ic_launcher.png b/reference-app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100755 index f4b88c5ea0796ab0814efbfd172993336bf3fde1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11603 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 RmLUKD002ovPDHLkV1m3jr1}5= diff --git a/reference-app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/reference-app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100755 index 4c4321cc65dfb0a7c5f7d134886577130cc46665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22261 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 Date: Fri, 27 Jan 2023 03:17:03 +0700 Subject: [PATCH 226/302] Login screen redesign --- .../main/res/drawable/logo_lombok_barat.png | Bin 0 -> 13894 bytes .../main/res/drawable/logo_lombok_timur.png | Bin 0 -> 41987 bytes .../src/main/res/drawable/sid_logo.xml | 63 ++++++ .../src/main/res/layout/activity_login.xml | 182 ++++++++++-------- .../src/main/res/values-in-rID/strings.xml | 3 +- opensrp-anc/src/main/res/values/colors.xml | 71 +++++++ opensrp-anc/src/main/res/values/strings.xml | 1 + opensrp-anc/src/main/res/values/styles.xml | 36 +++- opensrp-anc/src/main/res/values/themes.xml | 31 +++ .../anc/activity/LoginActivity.java | 11 +- 10 files changed, 302 insertions(+), 96 deletions(-) create mode 100644 opensrp-anc/src/main/res/drawable/logo_lombok_barat.png create mode 100644 opensrp-anc/src/main/res/drawable/logo_lombok_timur.png create mode 100644 opensrp-anc/src/main/res/drawable/sid_logo.xml create mode 100644 opensrp-anc/src/main/res/values/themes.xml diff --git a/opensrp-anc/src/main/res/drawable/logo_lombok_barat.png b/opensrp-anc/src/main/res/drawable/logo_lombok_barat.png new file mode 100644 index 0000000000000000000000000000000000000000..b8389397ecfb0f20d96b3433c5ceee2399bcff17 GIT binary patch literal 13894 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�ausubv% z2%A(<*oaTQtosGbKN&^p+b^3iePJzj)RJBxG|tZ(IEZR!f)G*=>o>r&YB#37{w3D0 zTZiwy{hDI-$nGEL>FRn4JMX^YBZSUCOdi{{Y(Zs(6`MB~vWf^i3wg+Z)>!$+VQk;T z@(|+Cy1ftATxUoBJ{tCHb7J1CJVJ17qM3vqjj-pDwUee_Z~$Op z)S;Z##H!^ZCZz+$+PZHuf?)ImSR(GEef+E6T!l`052^YyQK^=#m4618vHP&mM3B| z@iMDI$Rbdz@EKH*d&s3QQl0b+%l`!7h=i7r-(`K{Mo6#YQ{^U)pXgm<9f$?40%!%wut)bFcM zRV8*tB_d5BjRibHH z7TKp-WM#&~Y$@PgvPc#Y8y`d^Zk2C?%5GJRYp;&M`0>xF`eICABTHh-GRz_iB+_RU!UYu;*Ju_H9UCl1Nh*r$;i(;%F_mA zJpm`ma_XTP>mT&&v#Gc@uMCIs{FpM;gsoeNZl>siv57+lcA-^X2)CC)?F27gdb1@G z68G?D*}ORp>$fpPP~*Jd88ccSB_W3=IdIXE#Er7+ zaDGKD!Ee4Bpf&2_*YJE|e}h;UyoePk?nvUaIET(TL@WgfV9;-Yz4{R3 zrcTuKOXfS2y;~0Bo#)?0Sy=_%eg8dj#hlMq4l8_sNad(r&WSI0ddUKYBP@VsQU~7=7_Y zywL{RLCt#!aC0xVY_nj^KqjnXCj&0KhUGDoVGx;t=Yz~gio=dwrMT|KY`Dycm^zc8 zd_D{tnuMz^Pr{xZGCugA7QZe#42$I8dz95v6@8IT`b9r1I3pb#Avk!uR_JDh5UL@A zkK(~?DR^tjI>s5pWgxpu@44uPU!3?X(wk-S5M&KGJvY4k0HjO05kg9Xwl)?!4+qe* zJxL|m$*>ZNB7=f91xMgIcP=4&>BA?Veu}Zz-GTdOO@g(5Gbj!RZhvG`ge!|aQWRSP zCldK&3k<%Y?@+@;N_v{Kc!O&nJq?}hMdTo_q(k5hmuWPXk`DTa%wApJa4y0?LLJC* z@I4AOyN}`iC*H>Izx;yj8#cgXw;&*j8S9NCC0+Pyd1`rfb_N_Qp@n>>4)vB~7P5Kv6EA?I)=UV0&jgp>q*E4Pg2C@R23tx--qyE#CyFwJyD zt(`l9tg~iF7ET~nyPEEF@);||V-NSh$n&4U^3~gs_T?nh1_G$+7X$gME@aMRT{wl0 z5@Cr2R-o#kn<6U2H4=cZEF_wzXVK@3VeyQ@Taa|0N7&A&U?O5l8uJl?Q;-lT{AAWQ zd;~dC8S4QuX)&-y8P{KSDI8`av7;frvs%+*P=@t~!a-V0$tWud@~+_q-W)R(AAe9m z_vqj_zSAke73;*)Pi?}kEq)RViT5Pt_hgfJ0WVoG3s+tG`>kdFq*!z$X)>Z_#f}<| zp2^ijn^yA#kz++E#7z@jnK%F!-El1uXLUq(IIqjESC3&VKh2XT9JlW zyBlV+o9Fg3WHGEGg`93DZ$C3D2O~$ySigQFdbR3~rIk656G>f$Mfo#!UB)d0=?Ma| zsw0JZtg8xdpSKR+bE=nL)g+yxC$1n!0S=z*uY z3tWK}kz#g(m69{E{d*y=*aAnBY-F9oO2TO0yft!;~*Bh%4-oI`;CKPy!(m|L7Iim?HqXF85gX!T%M<|$)aHt5Bj)z zF2(3E?Xc|k6`b9(uC73m%?hhxK{X+cAxnV#4;8*R8=M(&ME@EPG8%XiB!iJdhDO!8 zbX1P-R${x9iLi3+uSF+s0`~1XghY!8HCaa9&X!Tq1}P*=L0CehJ-v|x!x$7D(q&q$ zGE2%NV#Z!g-n-9)SVBM@Ruj)Yt|%!1+9zV|`qePmEIeJ5$+lV5bX>ti0xsdnXYI&p zdH~t2Gx62;W!SgB4Ns9{8%cfSTU>ZfJ1kke6Xg{wo!yTSXG<76HXiLdxXG80@%%H} zuz$BmY!$hG3jWsdXHkGy{}2t2BuVE6G+uU;hmVpN*o_4FdYWaxe^wf5&7y>hVlyDF zDuiZ4Wu8BD1X8*tq3PvK(7J64y!!rR%wDw&?Hcy{cj0!wNq#Vu5#oaD}ZH(z`FZU(_8P+H^!pQX(HMe=x{}rKqeJKh2&)Dtn8*g-z5X=Dvl_ z7xo<(LYFokUf+N-rm7j=e&-?084Io4jSd}C(WPSwUY);>Cdr6SJ;HeT6+4k^xpWOH z)~$@eFAE8U9ZX}+-!qcqsj}~Ca6{8RwoQ}}Now02FdTiSpk6!Jnc#9WF_l}uRvC{G0 zx*!U3_QGYXz<1xwpm5RvAF*-1pcN)7WBp>0l-LYs_Zx`2ZoHkKc$q@f8f@6Oj?TLW zrT!WecuL^cSZ#6z$p$C75uoc)*A;G($cv|iGxcSa5_;u-C4C|kPmnZ&C zG&k!UrsDHYGhvU-gU6qN4Xey}`PpLn-OMR?11kZ;<5ultNB>NRqMTU(Bt77dG>S3`;90_DW^$tD-%SZT6;!u)xkqoT@6A17PDlPg)RoB&O14cT8Wo_a0; zZQ3}Ao+X=Io{yJbejctE2V!CqNQg{4T{}RLM|ml&QW9uIQ3SoJ2t8}$OUKB~od`Mg z{>GZ1j2S5<=|wQvhLB4xNyd}oiOu_&sAS25s=74%__Gb~zmrQE%E<{Pdz^|s{kmh_ zstu?uSKudKWn*Cp{#aFux;iguL}L47JE?oU<`1j=Bgy~B z#ax2^eJgkd&2PVlvE+{u7@C++of$&C!-C~|4?*diNUB{y0?QW5DS@k+q&P4Dc}21K zdE0KxSmDPT_otA`JIWm~XROL`0a4CPJgX@2Dom5`Q35=cmz6p+$x@J&QG|X2O*}3R z1>LBr^}>n0 zHql)VtVtDv0C?2VH~}QYx1#e;lP7=K6|s2!IaXcdFkFt-95~yz(}4YZeY`@sk+rmK zqTsUY2IJ}H$m1{bkty+_XDjx(nx3;LC|DJuDmP2a z@bL{HGO5|5M2&t#_$uklUIZ!@)jIXuKAr&5P?REq`k}G;)4wb6O5CEpAnyVefiLu= z5H0M%;DOC>_-F;03oo8{v@6Vp6$tuLh{-F5$>1QfrJ-euG;G_s4V~IMF?w_lOn!SA zsdf`=PB+E<9dN;UG*;H5Y|j;@&+uX6mO|2WqFfD+#iU40A#P(JG{N6k)65Ax6C3zv zhpdW}s0e<;Zc3p^&TJA(OdYL$R#lt^$rzM*Xk)DnpjBZ2pTF}hTD5GA+RAD?^!oEC zZB6*ORYPKCGJaXPn^f+3;7u2*h2nkY8tefV)!d7p;p(C)DJ-0R_*u-E-o%XL0uKT*{oRlwckL#16K|P9-gw ziVr`^$7i1&C5;ioHCQn0BU9%`uRhsWINytY^sj~D)VuEJhECmzh#YN&qsM}nHKziz zrstuyhOmBF-!6v6l}I8_sr~KACr3szXe$0;4Zt-fTWPFm60f|?xkHMJ58>;#ni8E^ zg~IX*wC!U;w_X{9StpUVeSq(Yn=@xNHtpDs^6Dxc08$s;>#h{6iTf?T8fXH&|aAG-5!j4qB+hUx|b)WY~SZajaMS)4S4y5V$7UY zMa8uU-=p<%hH7&i_kAAKkAhlm7}=% z2E8~LeKnxu;K;7#bf#2XeDf99L*BhP*#-NsHc;zT_?Pd)$o50=Ov zdssFO$L*_+HCu8dVbjSy0&+5UYRX^tKSN!B8w-5^wG7(Cr{9{1&l zx)ocF34+B1q@En)=Y2p(UA|uOC6aNgFG$snCBOMmTwRWerpc)3oT{gO2VvV)jc3oj z1&==RIA5q`6#4`$3Yi3zXVivcjaakVfm8>Xh5Z|0s&_Q><7PK>q=8s3*c}_4?L?@9#xzv5i7D6Y`4+(WlP<6clbDTDTL1u(5dV zxmh%C@kFOfXqsJ$0Rv*ld>BwmXk%Wn3p+Qsuy=2To;M+?mVj?zQ%LC3@ZpCa;O)ti z2_i0yRyO1JdKw{+8qZtfm!nZY;|V@-q8riLl|z8lhc< zc;vc!P+#kYM{}U8tp%>y&bV*FUUW~gqojmFs&GEBZazGHT{^D5q7GJ5kq`n^w4UK9 z>9Uc-uxzp!DZ}%f$($M)OsuM0SOTm}jHZeDoGhx5MD`C07ZsX>=B-q``C1a;0y*^T ziI}&BOE%5nE56R%0u$e=!mix~U?tz7XY}&CT+*~@85y{D?7djGZarZbZLnhbA7WpD zbOr=ifA4gzz9D=9f2=k7mzOiw)0egAcuEYZmJV+Gf1d7Yc zI6uwm{W4SwIU3RGcxQCaexntnhKThLpLfQi$@s=bpQ@|gfQnZwZzTTsMN&3YjCB{^}Az?&BWU-enn2y>i z^56+S`S86NG>li{-UsfZn|mLMT+ZQQnHO@XN9WFUnDlf!KAgD`yZ1PeVD{shVHTV- zuoqq&UxvrWKZjNIN8#_}g2B}qa%l*cH0^`8UwMO*)94JULPXdej#qVMYM!x zxrWS+W*h1;BEx}ArM1}XVLOm)g8t=(Bg~({Lj1eamV_H`+JK$gj?zkZkzg}>Tm^^A zLdwPpqgg}Swh{&p>5EEYK*ztd06w1>F*CUl+0E^wb?m6Dp-GivNigg>zot0E9Igz_ICt=602ILaK(p9mM$*`dB zWg{_U_)v_0Er?a5Mq9Nqa~~j+fTPFSIFLl>TYf?k#y|HY5jJIn*?-OZ2Z&-8J`5h& z0Z-h!4+X@{%M4;>`}oKwu+b3NZ61s~$AT7FZLnikK0f&17t$DXU7D;ugA5oj(1_SX zJC5epVe1AB2No+RqTl^KHqsEc>Rr6uxax;8fOJw z4+Dtk+)fw2Kha`O;@iWywhfCN6s-6q+eau#C);=Ko-r~=ig3Os2m#-7r*xu6zk(M> zAS=z;EKRMUhxYNfSz@(!OoMRv$gg4#AUhc;lutgKjylgpWUp>PtnxXjRaOVTUKB@! zkD%2&q-Th3qU<{{wq%rfN@3~L0~N$>nL;vg1w4w_ zY>k$y9)gD0mj`0{ausKpvZD`xMEmr(~0Q(OThe4!Lw;m?CRsuS-Wn0zAVwU}?#v;|H6hZy(Rqjb)_q%rhPBQ(a9 zRaI!wq6I1{NF&;a>m+i*6&s7Vm^dU5bev4AV?ul!CQqJ(vhuPM=U*rnnM{DHojP!2 zDkT)EBE~Krv%fFGnl)Pxmza#i6er>mQV|yyPjg{Kkg)#)`zZY5J#KW>LEih9-~2?Y zs0OdT@+hpfrST=^K@0+O!NvRNIjy4;0t*H+OglwhHF*th=(&h0?&_07O{ zQ@_9$^M8W>tYn0fiAr8yj2(OSqIb`}WX3{hlAeYTt!UHGX1rct*kL50%t7{Tt&lb> z4uAZn;ygng+E*OF_wP)?gD<{qf8W}`_jIO^y9keaoK!&!ZjVQ{2l*TG|$HuC^V3OB&$l#r2?fgau4;H>^J z7&5dRaj|>3rjU3!+cfeS40!9!MdUA8`CbP}648c;PeNRiu}bAb2A_?)?zsmy-*Oe1 zEb=X6T@&-7)(Up+*nt~wzL^gR zNvwK=^veb9Z)xs3{6);zI3$fM=M-Z^B-ozvaJV}vD#zfJmo}5PyIN%8vOV&u*l@}2 zi^r}!CspQ{G_Ul{s&5eE*REqTy!7%_=-i1sUF}<#v`W3BwyJN45O}}Gmxz@cW$f5% zKz@M@BL;*pVnhgQ)@R|>XS~=GXF%nUB%X8Us@2eXXFVp4eF5)&^$}K7?t|1b1652b z(|O~)GMa5KK~vNbCvQX9&O!_^(Y;!nSY1(v9_O4xOkz{a`u;QYk8>b4RF9=aRTyyP z&4`Ihz^2_Bv1!XjWTrdNq)7~M_-6FzVMTF%CA#-Y!J>s;tX{Q?Lbe)m_^ilo5=X1m z##hym!!yHllJjP zAJXKP>ndCnkcv7NBOR;YKE>Q%U?OS7Ya(QFNa1=ac zRWv!et}@&@%r}-Y^5mh1Zout#vLw{wTfzF;S6d-X#}S36%Jt~yegKkvY~U58 z%jv|2@4qkbj1$8869quIzD-iMxM0;qr|KQ7bDlI%6iyimaSnkst5+1Dq_~P4I);n| z^?i6ErWSSoBdJe{F4-zitXR2bJMsuG=-1~q!XN0fVWNvQKTii|*9q&@x@DPd=_dSC z5#2_dF{IMN8CbEl2u{TWSCt3WUBwvM)``tq_o2FZ9K0!_+z4wzk-Q}b6RuV8#MmG% zzDUJIV_IS(@##*Qm>{hXA5DahoYyM4N3!OqAt81X_~X$S-2_xA7OXC+!P3opv32V) z3LC57b`w6}XH6OGGSQ{0n+Cjw{1GqDYBG>tAZzicuE?N}&yT7a zuLvuZpxBipNykk--)lk6+cno-i+k_A7q7kc8fll6ynM`whfaa$+C$eIk|;mp_XTk0 zU3a2slct#T=9_xr?#b3&(VIs%Q^KK`o`XIiA3!@Tcr50Ig@1kudG%U+ zzc2oqB=Qqf*eG(T!d-Wkk(X{HN6?Pc3>R-Jvwv?Hc2iX3@#K>*Tl9*ge*Qc>{eqEZ z`sDj*#dhw}1rI;;FjlTwgv zH+t{%G*1LOGMouUXbcN8uis?cMq~CGKK%G;JUrHdxj!wUFisRmW=NHyZ}pNQv9o>) zteuI%N~e+SFC_->iKpMk%pW^aX!AIlW^E@3c{T}3E{$@XzzvuHgvBc1W2S5TcWzGT=7MBV0#_9s{#ty85nJDE>92$L0fnPJ@D21}=1rz(rF!e(h;i{AgaZc-#9ME@g|(~K(EXWs z%9*CAe>!VI+lpn&fS?aQ`WUN7dwl)%*D#-9@*|sLqJOhTFd8&HW%1Mp+qElp??~K! zDf%uPMardDUc)_OWqk0_!xYCm(a?NRFXE{e*VN*mNt8erCnj(+4SkycJT zL)ah^J|I_6xRixHwmQ6=9K_wJMr6g<@yX|(;>TI@(KR&#U0f1wy8K!!T(ATWKl~t> zrjXcNLMM?U9=J{uYpNychfDk(Brce&J`hg~fw56dBQ>h7o406!sne$tl)E0idi5b> z?@e-W^C_H;<=(%_8$_w6o%qNe2T5lHJGAeJciw#ub7s%RH{X84Q{_*oF|d z`_GFL=-agP0fCOUvp+0m2QgZoVeA7Bp;cQ#{s`pxiOflpOc!Ad8zC82f~Px44PLJ( zx6&ZRJhIgjKqA>Z;44oPmCaO9Rim;p1JftgphIC8WUeu-B!tVxzlA<$^~dWI2uxZ( zA6L2D_-W}1SemxM=rN;_b7Vgb9@s0CK-9Sn>D-_}Oe{x5MIA(*@+OIVgD~Ia!~|8= za}C5k-I`htlG8Ggmv;>F=Py9-UcK= z3S-YZ|9nh(<4tVczLmab5a_KWomQReye3Cfdy^B`LJ0+u`i%HUW}t#lXw3OC92aNE zV#>sO4dJE`24)MTTKf4J>6zbQ=A8R*?X{zLbt{p*DR^p0Yd9Y}2P-6X&)Bh~c5{gG z+{4x4?CH}8(kw@IYnBK28OUy@Ml zGa;SmrD>I$9h+VX3A@=XzkDuqwN3-VH z7;^S-@(qLoBv!Jpb-F9epD!UP8F$=$H+uE$gGrO$LJ@_iyab;?zKSHRW39n3efqTuPFT4=rUw#SA368ZIf9Dypvc3WuDuacO%XiQs z534oa3S)#Qim3642@#$!Z?OaO=aiy%N(|-^JY3hL8}7g9b_yRiVfl(lc;VTzFnquU zd{q?0ZK+`lqS*e<%g3Nq-vQ{}y$6MW2TveY&M+8}dutTpMPF0JYbC|S*t%siJ|I4y z?Jt-%Z7Noi50IFcNRaJhUO|+-AL;hZr;HxQAMg|2&>v&QT!M8Q)?)rU?;z4%_OBj7 ztMfv8JapGY0V$QY=M<-r_1buip7YPnAF(g2jx7!oU^EFshYUsQRyX3)Pu7#FTS;M! zmwz-IlyUtv*CD%UYdrMm-TY?QPM-Pme!|9e>j;0p2#d1z~ojkyQKH!bN6Jh6=Pmz|Eh9{r8lbp?LUM2k3 zB}@2cOeO`jHC1@}nJ4k|lTYDuS}@zTZPUpdjkA7FQ)&hQ2xwC)A&eqC;i;RS_xmtO7*->6{MStEiT_&P-xP9hs9}ANX5td(w zVZ(+ZBeN4RSVwqYT-LwmuDkES-FM%?p=4%D6-j_d-g-aQtlLO*=YHPmq-l$D;dEv2 zh(YD;*#nLC^b4&dhCpkiet~EyRQkhd31Cn^l{8BUTyX@anr-AQoAAYFpX2!#tZ3eJ zKfE>R_~y$3(qvBL)rV1LG$YUL=ZPb{7SP{WVOoSvZvc4M#*$X8T4U_}_j66RkktOW zw0d(6AJWe+CWigvuBjoXFptLPZv6J!?-YsnXw2GiNAGv~n`sD!8_4qCop?kuvpDKO z@cbb10h-8~JM-eJ-!^1*>~Pq-f0bq^sE+n45_Rs`g@R{3v3O*?FQAYxN%FxcZy}qP ziwn=cl$@P$czeYu56OB*h_E7d{1{CXNtYDkuwlshZxc(@1P&VZkcga!V%K zwK)XVo{jq#ve>>=N-M9dfX*#j(UAXjy1|rAQuUG77^LfRxp*b;OE0~QYk?ns{1I!` zuH^zDH~MU((F7-)==bg0w`104k@;;P}MfXD8ULOW-=<_TD{82m_j zwUzAtWrT-6j4Q6XhoIm*P8snoJ*=KSgzv%f$Jn0y>~_tOd$bTCmMO&TK5_L;vvBE^ zXA?Wt6z$rwyto}uLu8w^GSc|@^h`Cnx2$LTLb$JN4ui5@gNW%0)sD(q8)96n_FfGS zs|t<|K)+#|U^XU^KnhbM^I%ttIzNq9wiZo}=rdzhSB1JTkQJ9H#r?SP?Y59JfR zcFh_rUi1qptE&WYL$8_4Cf*a^#G)*kE^s_oksQGbE*y{k)1aU4o6sRjc{NBuDoIrcI`jJ0TDUU%3Y7^RDJ7otlfs$3w|Q(ybd#` zO~a2fr_*Xuxx2!8?6KyJ*)7^&_^_Vn)jJ(sx+D+*lSj_pF)j>hsFp1;TtQxc3>dPRfT=_XuReq*;NA#t=MzonT{xujP%Swv6)g!k zV&qLP3g;NAcjU+s96o#)t5&W=QDFi9UWlk_E*zaY;aRfd4?XxG;T`!WlRU?bDG@`2 z30!l{wdm5hGsca3jCckEFR3R*qK{KdzW&>31%Q1fh5)XITAR^FuJPB{QZMVVFlWAj z-qf~?J?~?wI{%8g8I>tU@?}7&SOa}?04SuL1P7Evyq&TM=LXhm^>rFs0vIL3*i(tI7lE_yIBXp$cafw{8~-2 zvN&3oUr@kX%d-jp@PiL{QU+@})wA;j)sK`wJ+5r#KtE%hS{*je*D~Xmf>>Fe_}=Z^h5NSN)b9>M-l0j=?^I-aHdx^7 z<$|lXlYsO}gbbqCv*_X=MeQ%UfM{+G?#w~A7+htMtq%q^k@{{=@#{0>0e`~V%WwtF z02E2=@L{Q9DQQ`_?#7#lE6+pcPMygF1dzx(evk>s%p%a}BW&ET9^=QqK&!!oIyX(E zT8BNm_F&KMz5H`V5)`x9%&~B%%fa{YC(z1_aS^~plV~Ii*=9?mABF$U0V`tduDkvY zy?s5orr`jwef3=PuvO1~XNeX^4j;ji#lN7|T|@8r>2=mmNL1er2ZZT}A&B?E2OlTl z$j5izeupcryb4AlqL@HN6r?%1}ShfS<& zxZPooN??RC6~Ltq9;)y-6VMMVWZ|KbZ;xxe7Ti!Q|d_uq$|yLR!WlrO(Lfun#f5>A)XjxWFb z5?_7w6(S{KxpF7d@bIG#qHU}8cWj6+hY_m1RN+SOtZkBX8UUK(8CrV9NLa8WmE- z@(hH6&*Gg)ZLnm~MD*^{6&_aSkGE{0)kD(x{=1V&+Bf6H7oWtvWA8@Jv0O}>J_Cyv zFXn`YjZ`vg{rcL(*KiJ*hqmq7!ayr%*vJt)AFhDdwA7STK4E?P^x;4bJI*=pTqGpN z^J?X;SQl@k1h&nJDIuf8ug~ms9Ko?BTCu7cKzeE_VHw#xGGWaoFS>XPzNE>r*&Tey z{Qe+;IV@YJnux3i@YB3`1Z&^VO~UyE(Y7S-J)X{Y z??QWB7>yiQM`~7wt&7INo1?<=<znX0Hs((F`{Ir{y@<~E${2g5VGv-7Q~>P#c%nnvj&it zd<*Wp^A3c_e`wOQDSrKB37V6gW@g~M_dmea9Xs&VmtSDPg86v#(MPd!=T6*k!%ZZ7 zeelo&5AyBm&?{>&bFqk2`~{;fK&MU}aSw%FlZdHXxoSCBIsIQr3)R-vVdKX2czxnT zo+LYG&K#^-gcL_+BNdRP$jaj8!bDz7GYY%=#~9E%(S}SzFy!*o zx!sbo-tUZ=;juWD_Mg2cPddX6@H3Z)dGSSN=$5jdym42(UbS!Cps?G0wY;vbZ|SDW zcr8USIJ*+9IxG%K+giZv7nEisgyK;_Sa%ZH4~1W*wd8~CM0S%-nEb}sc;c~FG3EPh zm^o`P%1Wzvx>+2p*d@O%#1~(FL#ro@K7IPqq`u2*4b{2p2yHwYyGXSLh(uxo$+Bbj z?%T_?lEq>rhpjng&6&$>tkda4&z?Q`Ev2QUpoRb!l|nZ~><;B-fTd3}j$**T!MK|y z{|TD7jqBEuW-)SS&OprN!w)@%AEteexj+6y5b+^${P-`nAYA%8ET+M2@D+0ib5ho8v+PhB}j%zhM4+Jo)(J+=*o7z(^`7 z#Il4TO1z6UvU>R+K9(BdXhC(edeJYzjFwKjmgIN)6n|)MrDplrZFMf_-TcDs(x;#5 zEsf6%9R20(;Z0tjR!IL$(`L+=x&5mbI+KTefwidWl3+ny+uYyWW1$wcIwPa0-G{{h^e znEJyHgbKdRc>;#+35uT=8>AI4x{fd*2(k{Q^qz~%NIO;`JlTl$F(#JM6>$2zWmVqb zhFYs@W^!h`B|X0Vy+X{^r+;-?|9*V{>541ZEN&%%+*b1F$WM>%*xBC}3Y~4EYQpfuUJzR`oLtA3R@Xn|z zXTnfHF!C|%-nAe3c}2MKh8sxTT3{wEFq=5={k-Fr@PtcCO3;H=`6ZWJiq@^$;%HtT z0ZK>6*@}gSR@Qq2rxq6#lLtN-73Jl62+QLpem~(*m}?fMrYovS@a7wDpnxKhl`B?Y z@ZiB%vt}*9$jeDneT&!Mcn#NFeI>Owb`wUQh|;oRTz%D*bbn@w6x{rrENz|@ z!RSe0TwHt{nX&{r$4Z|4!-yag`2<`9BlT!?B^{Im6vaY3g)~WXvy83|4Lu0GYw0kA z>;Z3u?Dua8n#>Dx42dfSUU~jr=}xxV3-ON}e;-&r#X-J;yldO+j6lfU%i!@|y% z>kYwpTbg39cQL^{h~nwiZdNIg_xWM<{Uf=jks7`_h6L7(LJcL8bCyN#H$}a#9S$FH z;aILrt8Oh0l9NfB8*d;pGnh2O<9PDPC+WQp zkaHx5n;4eBVIWmrRZ_{FL6z;TB1MyyoQyPb9y@jJg8qHZf=rGkgK!u8Opaa7VKQ$e zFe?K8*Q6+mB1-W`3sVI6fW*<@bhCyqI9^73n}Jrpr(O;RbIT3(?|oL&;x`(si zk2?Gdj(>>&G(NPip0{k6{&hEka?f@8s?L=(e;37~nN3*=Vurh5=n{rGiyTqb34~P) zmm>BJQNl+Psd@B^6>1=bKAQqfNubYW)1b3{e+mlo&DgiE1lzXmL19rTdE{k$6NJYT z1}wdTS`goUACemIl}c+hOVKhvW$I*jD2E^AXMXQS|b$ znx5&Q@;bi`!pdW5)x^^0lj!wC8pI~#bfuE&mcg`pO^u68LYUNS3B}!cTqvrm-8>Wv z5qJ}%i3&0&FvKtl@T#D^dN(a&1F2h!Vj>FGLLiQbhlc6t>4ZUK@vTg`hG~r<*LjnzAJGzeF8yN4wdML`WsOO-se2G+i9BGAK4jF@K z;#(Ru%|WYO3iPio~(zET0`3dRT3d$#1rOeR~(6AS-@sqGf!i! z-AQXevatp-G+{CHoiutsi3BNzCf-0{sLCsMv--NVwdwfn_fmodVtBF&Dp6)@SF4z2g<_IsNvdam&-q1O{0|)eBLdL)(4N1^vh~p3 z7NLsLtK;g+uadPu6WCOfxe2MkK{1H$N7^7GD2hX}EL&AT#-cbiIAkk2vP2p$HF74n zEe%H>P38NnjpB#(_|a%pl;e*|9{<*)wq{M*-UOWVsqLGs%>5k$Fp%gD&Cxv;L zTv>1YplPDqyZ~oJF99W_@62WU`AF-uA!M}=srP;k2?_9pOkuTIT#C>|M0nSg~y8fJFCmCH~Op2R!!jqqf3(a zKTILs;1FFCTsS8#h+cLdrJ&K*AO3>5z>OPl1+ZXs2C)iMJB;jPvh=K<8IiEl|ob_NT+x}P1XfK z#eu`UG2)yZT6c$4ZwkXW2com z(q^AMZ~Jci2Os~@0uVWvR@nOZ)oI%9jib!o@+(cM+MNK_7%iEUeqRSt&o;o?gq%mK z41;LFyQeEI7`+!}LIPbuA5!cfht7`v4xqW})v+sIa%LyTuZ4`iZ_RJ6elOqojH@Lq0*w%iS<9s*FkbedL_&W&c~~-2de9 z{|f<#9E|JPcJq*!SSj4aU3~bma8NqOgm7hu)u>5KpH(n0qwxIu7yX|I-~Qk6Pace+ r{B2C{gmu@R=feLx{@?Nc*W>>KyRic{hB^kn00000NkvXXu0mjfGk_Qx literal 0 HcmV?d00001 diff --git a/opensrp-anc/src/main/res/drawable/sid_logo.xml b/opensrp-anc/src/main/res/drawable/sid_logo.xml new file mode 100644 index 000000000..3cd276d7c --- /dev/null +++ b/opensrp-anc/src/main/res/drawable/sid_logo.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/opensrp-anc/src/main/res/layout/activity_login.xml b/opensrp-anc/src/main/res/layout/activity_login.xml index dae688f92..dd6f47d09 100644 --- a/opensrp-anc/src/main/res/layout/activity_login.xml +++ b/opensrp-anc/src/main/res/layout/activity_login.xml @@ -1,5 +1,6 @@ + android:background="@color/login_bg" + android:paddingLeft="40dp" + android:paddingTop="40dp" + android:paddingRight="40dp" + android:paddingBottom="20dp"> @@ -20,52 +24,40 @@ android:id="@+id/top_section" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:orientation="vertical" - android:paddingTop="@dimen/login_logo_top_padding"> + android:orientation="vertical"> + + android:layout_height="52dp" + app:srcCompat="@drawable/sid_logo" /> - - + android:paddingLeft="40dp" + android:paddingRight="40dp" + android:text="@string/app_tagline" + android:textColor="@color/login_text" + android:textSize="16sp" + android:textStyle="bold" /> @@ -75,124 +67,144 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/top_section" - android:layout_marginTop="@dimen/login_middle_section_padding_top" - android:orientation="vertical" - android:paddingLeft="@dimen/login_horizontal_margin" - android:paddingRight="@dimen/login_horizontal_margin"> + android:layout_marginTop="42dp" + android:orientation="vertical"> - + android:layout_marginTop="16dp" + android:gravity="end" + android:orientation="horizontal"> + android:layout_width="32dp" + android:layout_height="32dp" + android:layout_alignParentEnd="false" /> - + android:textColor="@color/login_text" + android:textSize="16sp" /> + + +