Skip to content

Commit baf67a9

Browse files
siddh1004sagarwal
andauthored
1 parent 615b7df commit baf67a9

25 files changed

+613
-130
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
- Add `hypertensionDiagnosedAt` and `diabetesDiagnosedAt` in `MedicalHistory` table
4141
- Hide schedule appointment sheet for suspected patients
4242
- Add `Suspected` flag to recent patient list item
43+
- Update diagnosis required error dialog to include referral feature
4344

4445
## 2025.09.09
4546

app/src/main/java/org/simple/clinic/medicalhistory/SelectDiagnosisErrorDialog.kt

Lines changed: 0 additions & 44 deletions
This file was deleted.
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 SelectDiagnosisOrReferralRequiredErrorDialog : AppCompatDialogFragment() {
11+
12+
companion object {
13+
14+
private const val FRAGMENT_TAG = "select_diagnosis_or_referral_required__error_alert"
15+
16+
fun show(fragmentManager: FragmentManager) {
17+
val fragment = SelectDiagnosisOrReferralRequiredErrorDialog()
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_or_referral_required_error_message))
27+
.setPositiveButton(getString(R.string.select_diagnosis_error_ok), null)
28+
.create()
29+
}
30+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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 SelectDiagnosisRequiredErrorDialog : AppCompatDialogFragment() {
11+
12+
companion object {
13+
14+
private const val FRAGMENT_TAG = "select_diagnosis_required_error_alert"
15+
fun show(fragmentManager: FragmentManager) {
16+
val fragment = SelectDiagnosisRequiredErrorDialog()
17+
18+
fragment.show(fragmentManager, FRAGMENT_TAG)
19+
}
20+
}
21+
22+
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
23+
return MaterialAlertDialogBuilder(requireContext())
24+
.setTitle(getString(R.string.select_diagnosis_error_diagnosis_required))
25+
.setMessage(getString(R.string.select_diagnosis_error_enter_diagnosis_both_hypertension_diabetes))
26+
.setPositiveButton(getString(R.string.select_diagnosis_error_ok), null)
27+
.create()
28+
}
29+
}
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 SelectHypertensionDiagnosisOrReferralRequiredErrorDialog : AppCompatDialogFragment() {
11+
12+
companion object {
13+
14+
private const val FRAGMENT_TAG = "select_hypertension_diagnosis_or_referral_required__error_alert"
15+
16+
fun show(fragmentManager: FragmentManager) {
17+
val fragment = SelectHypertensionDiagnosisOrReferralRequiredErrorDialog()
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_or_referral_hypertension_message))
27+
.setPositiveButton(getString(R.string.select_diagnosis_error_ok), null)
28+
.create()
29+
}
30+
}
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 SelectHypertensionDiagnosisRequiredErrorDialog : AppCompatDialogFragment() {
11+
12+
companion object {
13+
14+
private const val FRAGMENT_TAG = "select_hypertension_diagnosis_required__error_alert"
15+
16+
fun show(fragmentManager: FragmentManager) {
17+
val fragment = SelectHypertensionDiagnosisRequiredErrorDialog()
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/medicalhistory/newentry/NewMedicalHistoryEffect.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ data object ShowOngoingHypertensionTreatmentError : NewMedicalHistoryViewEffect(
2121

2222
data object ShowDiagnosisRequiredError : NewMedicalHistoryViewEffect()
2323

24+
data object ShowDiagnosisOrReferralRequiredError : NewMedicalHistoryViewEffect()
25+
2426
data object ShowHypertensionDiagnosisRequiredError : NewMedicalHistoryViewEffect()
2527

28+
data object ShowHypertensionDiagnosisOrReferralRequiredError : NewMedicalHistoryViewEffect()
29+
2630
data object ShowChangeDiagnosisErrorDialog : NewMedicalHistoryViewEffect()
2731

2832
data object ShowOngoingDiabetesTreatmentErrorDialog : NewMedicalHistoryViewEffect()

app/src/main/java/org/simple/clinic/medicalhistory/newentry/NewMedicalHistoryScreen.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ import org.simple.clinic.R
1818
import org.simple.clinic.appconfig.Country
1919
import org.simple.clinic.di.injector
2020
import org.simple.clinic.feature.Features
21-
import org.simple.clinic.medicalhistory.SelectDiagnosisErrorDialog
21+
import org.simple.clinic.medicalhistory.SelectDiagnosisOrReferralRequiredErrorDialog
22+
import org.simple.clinic.medicalhistory.SelectDiagnosisRequiredErrorDialog
23+
import org.simple.clinic.medicalhistory.SelectHypertensionDiagnosisOrReferralRequiredErrorDialog
24+
import org.simple.clinic.medicalhistory.SelectHypertensionDiagnosisRequiredErrorDialog
2225
import org.simple.clinic.medicalhistory.SelectOngoingDiabetesTreatmentErrorDialog
2326
import org.simple.clinic.medicalhistory.SelectOngoingHypertensionTreatmentErrorDialog
2427
import org.simple.clinic.medicalhistory.ui.NewMedicalHistoryUi
@@ -110,15 +113,19 @@ class NewMedicalHistoryScreen : Fragment(), NewMedicalHistoryUiActions, HandlesB
110113
}
111114

112115
override fun showDiagnosisRequiredErrorDialog() {
113-
SelectDiagnosisErrorDialog.show(activity.supportFragmentManager, true)
116+
SelectDiagnosisRequiredErrorDialog.show(activity.supportFragmentManager)
117+
}
118+
119+
override fun showDiagnosisOrReferralRequiredErrorDialog() {
120+
SelectDiagnosisOrReferralRequiredErrorDialog.show(activity.supportFragmentManager)
114121
}
115122

116123
override fun showHypertensionDiagnosisRequiredErrorDialog() {
117-
MaterialAlertDialogBuilder(requireContext())
118-
.setTitle(getString(R.string.select_diagnosis_error_diagnosis_required))
119-
.setMessage(getString(R.string.select_diagnosis_error_enter_diagnosis_hypertension))
120-
.setPositiveButton(getString(R.string.select_diagnosis_error_ok), null)
121-
.show()
124+
SelectHypertensionDiagnosisRequiredErrorDialog.show(activity.supportFragmentManager)
125+
}
126+
127+
override fun showHypertensionDiagnosisRequiredOrReferralErrorDialog() {
128+
SelectHypertensionDiagnosisOrReferralRequiredErrorDialog.show(activity.supportFragmentManager)
122129
}
123130

124131
override fun showChangeDiagnosisErrorDialog() {

app/src/main/java/org/simple/clinic/medicalhistory/newentry/NewMedicalHistoryUiActions.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ interface NewMedicalHistoryUiActions {
66
fun openPatientSummaryScreen(patientUuid: UUID)
77
fun showOngoingHypertensionTreatmentErrorDialog()
88
fun showDiagnosisRequiredErrorDialog()
9+
10+
fun showDiagnosisOrReferralRequiredErrorDialog()
911
fun showHypertensionDiagnosisRequiredErrorDialog()
12+
fun showHypertensionDiagnosisRequiredOrReferralErrorDialog()
1013
fun showChangeDiagnosisErrorDialog()
1114
fun showOngoingDiabetesTreatmentErrorDialog()
1215

app/src/main/java/org/simple/clinic/medicalhistory/newentry/NewMedicalHistoryUpdate.kt

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,41 @@ class NewMedicalHistoryUpdate : Update<NewMedicalHistoryModel, NewMedicalHistory
2727
}
2828

2929
private fun saveClicked(model: NewMedicalHistoryModel): Next<NewMedicalHistoryModel, NewMedicalHistoryEffect> {
30+
val screening = model.isScreeningFeatureEnabled
31+
val diabetesEnabled = model.facilityDiabetesManagementEnabled
32+
3033
return when {
34+
3135
model.showChangeDiagnosisError -> {
3236
next(model.changeDiagnosisErrorShown(), ShowChangeDiagnosisErrorDialog)
3337
}
34-
model.facilityDiabetesManagementEnabled && !model.hasAnsweredBothDiagnosisQuestions -> {
38+
39+
screening && diabetesEnabled &&
40+
!model.hasAnsweredBothDiagnosisQuestions -> {
41+
dispatch(ShowDiagnosisOrReferralRequiredError)
42+
}
43+
44+
screening && !diabetesEnabled &&
45+
!model.hasAnsweredHypertensionDiagnosis -> {
46+
dispatch(ShowHypertensionDiagnosisOrReferralRequiredError)
47+
}
48+
49+
!screening && diabetesEnabled && !model.hasAnsweredBothDiagnosisQuestions -> {
3550
dispatch(ShowDiagnosisRequiredError)
3651
}
37-
!model.facilityDiabetesManagementEnabled && !model.hasAnsweredHypertensionDiagnosis -> {
52+
53+
!screening && !diabetesEnabled && !model.hasAnsweredHypertensionDiagnosis -> {
3854
dispatch(ShowHypertensionDiagnosisRequiredError)
3955
}
56+
4057
model.showOngoingHypertensionTreatment && !model.answeredIsOnHypertensionTreatment -> {
4158
dispatch(ShowOngoingHypertensionTreatmentError)
4259
}
60+
4361
model.showOngoingDiabetesTreatment && !model.answeredIsOnDiabetesTreatment -> {
4462
dispatch(ShowOngoingDiabetesTreatmentErrorDialog)
4563
}
64+
4665
else -> registerPatient(model)
4766
}
4867
}

0 commit comments

Comments
 (0)