Skip to content

Commit e184c86

Browse files
author
sagarwal
committed
Add effect to show hypertension diagnosis error
1 parent b23bc27 commit e184c86

File tree

7 files changed

+57
-1
lines changed

7 files changed

+57
-1
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.simple.clinic.medicalhistory
2+
3+
import android.app.Dialog
4+
import android.os.Bundle
5+
import androidx.appcompat.app.AppCompatDialogFragment
6+
import androidx.fragment.app.FragmentManager
7+
import com.google.android.material.dialog.MaterialAlertDialogBuilder
8+
import org.simple.clinic.R
9+
10+
class SelectHypertensionDiagnosisErrorDialog : AppCompatDialogFragment() {
11+
12+
companion object {
13+
14+
private const val FRAGMENT_TAG = "select_hypertension_diagnosis_error_alert"
15+
16+
fun show(fragmentManager: FragmentManager) {
17+
val fragment = SelectDiagnosisErrorDialog()
18+
19+
fragment.show(fragmentManager, FRAGMENT_TAG)
20+
}
21+
}
22+
23+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
24+
return MaterialAlertDialogBuilder(requireContext())
25+
.setTitle(getString(R.string.select_diagnosis_error_diagnosis_required))
26+
.setMessage(getString(R.string.select_diagnosis_error_enter_diagnosis_hypertension))
27+
.setPositiveButton(getString(R.string.select_diagnosis_error_ok), null)
28+
.create()
29+
}
30+
}

app/src/main/java/org/simple/clinic/summary/PatientSummaryEffect.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ data class ShowDiagnosisError(
113113
val diabetesManagementEnabled: Boolean
114114
) : PatientSummaryViewEffect()
115115

116+
data object ShowHypertensionDiagnosisError : PatientSummaryViewEffect()
117+
116118
data class OpenContactPatientScreen(val patientUuid: UUID) : PatientSummaryViewEffect()
117119

118120
data class NavigateToTeleconsultRecordScreen(

app/src/main/java/org/simple/clinic/summary/PatientSummaryScreen.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,12 @@ class PatientSummaryScreen :
584584
}
585585
}
586586

587+
override fun showHypertensionDiagnosisError() {
588+
summaryViewsContainer.scrollToChild(medicalHistorySummaryView) {
589+
medicalHistorySummaryView.showHypertensionDiagnosisError()
590+
}
591+
}
592+
587593
override fun openPatientContactSheet(patientUuid: UUID) {
588594
router.push(ContactPatientBottomSheet.Key(patientUuid))
589595
}

app/src/main/java/org/simple/clinic/summary/PatientSummaryUiActions.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ interface PatientSummaryUiActions {
2323
fun showAddPhoneDialog(patientUuid: UUID)
2424
fun showLinkIdWithPatientView(patientUuid: UUID, identifier: Identifier)
2525
fun showDiagnosisError(diabetesManagementEnabled: Boolean)
26+
fun showHypertensionDiagnosisError()
2627
fun openPatientContactSheet(patientUuid: UUID)
2728
fun navigateToTeleconsultRecordScreen(patientUuid: UUID, teleconsultRecordId: UUID)
2829
fun openContactDoctorSheet(patientUuid: UUID)

app/src/main/java/org/simple/clinic/summary/PatientSummaryViewEffectHandler.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class PatientSummaryViewEffectHandler(
2121
)
2222

2323
is ShowDiagnosisError -> uiActions.showDiagnosisError(viewEffect.diabetesManagementEnabled)
24+
is ShowHypertensionDiagnosisError -> uiActions.showHypertensionDiagnosisError()
2425
is OpenContactPatientScreen -> uiActions.openPatientContactSheet(viewEffect.patientUuid)
2526
is NavigateToTeleconsultRecordScreen -> uiActions.navigateToTeleconsultRecordScreen(viewEffect.patientUuid, viewEffect.teleconsultRecordId)
2627
is OpenContactDoctorSheet -> uiActions.openContactDoctorSheet(viewEffect.patientUuid)

app/src/main/java/org/simple/clinic/summary/medicalhistory/MedicalHistorySummaryView.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.simple.clinic.medicalhistory.Answer
2424
import org.simple.clinic.medicalhistory.MedicalHistory
2525
import org.simple.clinic.medicalhistory.MedicalHistoryQuestion
2626
import org.simple.clinic.medicalhistory.SelectDiagnosisErrorDialog
27+
import org.simple.clinic.medicalhistory.SelectHypertensionDiagnosisErrorDialog
2728
import org.simple.clinic.mobius.MobiusDelegate
2829
import org.simple.clinic.navigation.v2.keyprovider.ScreenKeyProvider
2930
import org.simple.clinic.summary.PatientSummaryChildView
@@ -189,6 +190,10 @@ class MedicalHistorySummaryView(
189190
SelectDiagnosisErrorDialog.show(activity.supportFragmentManager, diabetesManagementEnabled)
190191
}
191192

193+
fun showHypertensionDiagnosisError() {
194+
SelectHypertensionDiagnosisErrorDialog.show(activity.supportFragmentManager)
195+
}
196+
192197
private fun answerToggled(question: MedicalHistoryQuestion, answer: Answer) {
193198
internalEvents.onNext(SummaryMedicalHistoryAnswerToggled(question, answer))
194199
}

app/src/test/java/org/simple/clinic/summary/PatientSummaryEffectHandlerTest.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ import org.mockito.kotlin.whenever
1313
import org.simple.clinic.TestData
1414
import org.simple.clinic.bloodsugar.BloodSugarRepository
1515
import org.simple.clinic.bp.BloodPressureRepository
16-
import org.simple.clinic.cvdrisk.calculator.NonLabBasedCVDRiskCalculator
1716
import org.simple.clinic.cvdrisk.CVDRiskRange
1817
import org.simple.clinic.cvdrisk.CVDRiskRepository
1918
import org.simple.clinic.cvdrisk.calculator.LabBasedCVDRiskCalculator
19+
import org.simple.clinic.cvdrisk.calculator.NonLabBasedCVDRiskCalculator
2020
import org.simple.clinic.drugs.DiagnosisWarningPrescriptions
2121
import org.simple.clinic.drugs.PrescriptionRepository
2222
import org.simple.clinic.facility.FacilityRepository
@@ -384,6 +384,17 @@ class PatientSummaryEffectHandlerTest {
384384
testCase.assertNoOutgoingEvents()
385385
}
386386

387+
@Test
388+
fun `when show hypertension diagnosis error effect is received, then show hypertension diagnosis error`() {
389+
// when
390+
testCase.dispatch(ShowHypertensionDiagnosisError)
391+
392+
// then
393+
verify(uiActions).showHypertensionDiagnosisError()
394+
verifyNoMoreInteractions(uiActions)
395+
testCase.assertNoOutgoingEvents()
396+
}
397+
387398
@Test
388399
fun `when the fetch missing phone reminder effect is received, fetch whether reminder has been shown for the patient`() {
389400
// given

0 commit comments

Comments
 (0)