Skip to content

Commit 6279eff

Browse files
siddh1004Siddharth Agarwalmsasikanth
authored
Show statin nudge for 90 calendar days and recalculate cvd risk after 90 days (#5185)
https://app.shortcut.com/simpledotorg/story/14495/statin-nudge-v2-android-engineering-discussions?team_id=1&iteration_ids=14465 --------- Co-authored-by: Siddharth Agarwal <[email protected]> Co-authored-by: Sasikanth Miriyampalli <[email protected]>
1 parent c2852e8 commit 6279eff

File tree

18 files changed

+366
-347
lines changed

18 files changed

+366
-347
lines changed

app/src/debug/java/org/simple/clinic/FakeDataGenerationReceiver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class FakeDataGenerationReceiver : BroadcastReceiver() {
139139
patient = patient,
140140
address = address,
141141
phoneNumbers = listOf(phoneNumber),
142-
businessIds = emptyList()
142+
businessIds = emptyList(),
143143
)
144144

145145
val bloodPressureMeasurement = (1..10).map { bloodPressureMeasurement(user, facility, patient, now) }

app/src/main/java/org/simple/clinic/cvdrisk/CVDRiskCalculator.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ class CVDRiskCalculator @Inject constructor(
6262
}
6363

6464
private fun getSystolicRange(sbp: Int) = when (sbp) {
65-
in 0..119 -> "< 120"
66-
in 120..139 -> "120 - 139"
67-
in 140..159 -> "140 - 159"
65+
in 0..159 -> "140 - 159"
6866
in 160..179 -> "160 - 179"
6967
else -> ">= 180"
7068
}

app/src/main/java/org/simple/clinic/cvdrisk/CVDRiskRepository.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import org.simple.clinic.patient.SyncStatus.PENDING
88
import org.simple.clinic.storage.Timestamps
99
import org.simple.clinic.sync.SynceableRepository
1010
import org.simple.clinic.util.UtcClock
11+
import java.time.Instant
1112
import java.util.UUID
1213
import javax.inject.Inject
1314

@@ -31,6 +32,13 @@ class CVDRiskRepository @Inject constructor(
3132
dao.saveRisk(cvdRisk)
3233
}
3334

35+
fun save(cvdRisk: CVDRisk, updateAt: Instant) {
36+
val updatedCVDRisk = cvdRisk.copy(
37+
syncStatus = PENDING,
38+
timestamps = cvdRisk.timestamps.copy(updatedAt = updateAt))
39+
dao.saveRisk(updatedCVDRisk)
40+
}
41+
3442
override fun save(records: List<CVDRisk>) {
3543
dao.saveRisks(records)
3644
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.room.Query
1212
import androidx.room.RawQuery
1313
import androidx.sqlite.db.SimpleSQLiteQuery
1414
import io.reactivex.Flowable
15+
import io.reactivex.Observable
1516
import kotlinx.parcelize.Parcelize
1617
import org.simple.clinic.medicalhistory.Answer.Unanswered
1718
import org.simple.clinic.medicalhistory.MedicalHistoryQuestion.DiagnosedWithDiabetes
@@ -163,7 +164,7 @@ data class MedicalHistory(
163164
FROM MedicalHistory
164165
WHERE updatedAt > :instantToCompare AND syncStatus = :pendingStatus AND patientUuid = :patientUuid
165166
""")
166-
fun hasMedicalHistoryForPatientChangedSince(
167+
fun hasMedicalHistoryForPatientChangedSinceImmediate(
167168
patientUuid: UUID,
168169
instantToCompare: Instant,
169170
pendingStatus: SyncStatus

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import org.simple.clinic.medicalhistory.Answer.Unanswered
66
import org.simple.clinic.medicalhistory.sync.MedicalHistoryPayload
77
import org.simple.clinic.patient.PatientUuid
88
import org.simple.clinic.patient.SyncStatus
9+
import org.simple.clinic.patient.SyncStatus.PENDING
910
import org.simple.clinic.sync.SynceableRepository
1011
import org.simple.clinic.util.UtcClock
1112
import java.time.Instant

app/src/main/java/org/simple/clinic/patient/PatientProfile.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ data class PatientProfile(
3131
)
3232
val businessIds: List<BusinessId>
3333
) : Parcelable {
34+
3435
val patientUuid: UUID
3536
get() = patient.uuid
3637

app/src/main/java/org/simple/clinic/patient/PatientRepository.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class PatientRepository @Inject constructor(
167167
patient = patient,
168168
address = patientAddress,
169169
phoneNumbers = phoneNumbers,
170-
businessIds = businessIds
170+
businessIds = businessIds,
171171
)
172172
}
173173

@@ -282,7 +282,7 @@ class PatientRepository @Inject constructor(
282282
patient = patient,
283283
address = address,
284284
phoneNumbers = phoneNumbers,
285-
businessIds = businessIds
285+
businessIds = businessIds,
286286
)
287287
}
288288
}
@@ -648,7 +648,7 @@ class PatientRepository @Inject constructor(
648648
fun hasMedicalHistoryForPatientChangedSince(patientUuid: UUID, instant: Instant): Boolean {
649649
return database
650650
.medicalHistoryDao()
651-
.hasMedicalHistoryForPatientChangedSince(
651+
.hasMedicalHistoryForPatientChangedSinceImmediate(
652652
patientUuid = patientUuid,
653653
instantToCompare = instant,
654654
pendingStatus = PENDING

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package org.simple.clinic.summary
22

3+
import org.simple.clinic.cvdrisk.CVDRisk
4+
import org.simple.clinic.cvdrisk.CVDRiskRange
35
import org.simple.clinic.facility.Facility
46
import org.simple.clinic.patient.Answer
5-
import org.simple.clinic.medicalhistory.Answer as MedicalHistoryAnswer
67
import org.simple.clinic.patient.Patient
78
import org.simple.clinic.patient.businessid.Identifier
89
import org.simple.clinic.reassignpatient.ReassignPatientSheetOpenedFrom
910
import java.time.Instant
1011
import java.util.UUID
12+
import org.simple.clinic.medicalhistory.Answer as MedicalHistoryAnswer
1113

1214
sealed class PatientSummaryEffect
1315

@@ -57,12 +59,20 @@ data class MarkDiabetesDiagnosis(val patientUuid: UUID) : PatientSummaryEffect()
5759

5860
data class MarkHypertensionDiagnosis(val patientUuid: UUID) : PatientSummaryEffect()
5961

60-
data class LoadStatinPrescriptionCheckInfo(val patient: Patient) : PatientSummaryEffect()
61-
62-
data class LoadCVDRisk(val patientUuid: UUID) : PatientSummaryEffect()
62+
data class LoadStatinPrescriptionCheckInfo(val patientUuid: UUID) : PatientSummaryEffect()
6363

6464
data class CalculateCVDRisk(val patient: Patient) : PatientSummaryEffect()
6565

66+
data class SaveCVDRisk(
67+
val patientUuid: UUID,
68+
val cvdRiskRange: CVDRiskRange
69+
) : PatientSummaryEffect()
70+
71+
data class UpdateCVDRisk(
72+
val oldRisk: CVDRisk,
73+
val newRiskRange: CVDRiskRange
74+
) : PatientSummaryEffect()
75+
6676
data class LoadStatinInfo(val patientUuid: UUID) : PatientSummaryEffect()
6777

6878
data class UpdateSmokingStatus(val patientId: UUID, val isSmoker: MedicalHistoryAnswer) : PatientSummaryEffect()

0 commit comments

Comments
 (0)