Skip to content

Commit 583d672

Browse files
committed
Guard reportDescription against missing session vaccination
A patient whose programme status is Vaccinated via historical doses (e.g. MMR catch-up cohort members with prior records) would throw when viewing the current session's page, because lastVaccinationOutcome filters by session uuid and returned undefined. Fall back to patientProgramme.lastVaccinationGiven and guard against a missing createdBy user.
1 parent 80ecef9 commit 583d672

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

app/models/patient-session.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -792,8 +792,18 @@ export class PatientSession {
792792
*/
793793
get reportDescription() {
794794
switch (this.report) {
795-
case PatientStatus.Vaccinated:
796-
return `${this.patient?.firstName} was vaccinated by ${this.lastVaccinationOutcome.createdBy.fullName} on ${this.lastVaccinationOutcome.formatted.createdAt}.`
795+
case PatientStatus.Vaccinated: {
796+
const vaccination =
797+
this.lastVaccinationOutcome ||
798+
this.patientProgramme?.lastVaccinationGiven
799+
if (!vaccination) {
800+
return `${this.patient?.firstName} has been vaccinated.`
801+
}
802+
const by = vaccination.createdBy?.fullName
803+
return by
804+
? `${this.patient?.firstName} was vaccinated by ${by} on ${vaccination.formatted.createdAt}.`
805+
: `${this.patient?.firstName} was vaccinated on ${vaccination.formatted.createdAt}.`
806+
}
797807
case PatientStatus.Due:
798808
return this.vaccineCriteria
799809
? `${this.patient?.firstName} is ready to vaccinate (${this.vaccineCriteria.toLowerCase()}).`

0 commit comments

Comments
 (0)