Skip to content

Explore vaccination schedule designs#266

Draft
wrightmartin wants to merge 4 commits into
mainfrom
vaccination-record-valid-ignored-doses
Draft

Explore vaccination schedule designs#266
wrightmartin wants to merge 4 commits into
mainfrom
vaccination-record-valid-ignored-doses

Conversation

@wrightmartin
Copy link
Copy Markdown
Contributor

Introduces a Vaccination record view on the patient programme page that shows a child's progress through the MMR schedule, distinguishing doses that count toward the schedule from doses that don't (e.g. given too early, or too close to a previous dose).

For testing

@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 17, 2026 09:33 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 17, 2026 11:22 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 20, 2026 10:45 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 20, 2026 11:19 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 20, 2026 13:28 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 21, 2026 08:19 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 21, 2026 08:42 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 22, 2026 12:57 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 22, 2026 13:46 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 22, 2026 15:43 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 27, 2026 10:47 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 27, 2026 10:50 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 27, 2026 14:41 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 27, 2026 15:43 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 29, 2026 15:24 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 29, 2026 15:44 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 29, 2026 15:44 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c April 30, 2026 15:49 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 1, 2026 21:20 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 5, 2026 12:07 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 5, 2026 12:13 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 5, 2026 12:17 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 7, 2026 14:44 Inactive
@paulrobertlloyd paulrobertlloyd temporarily deployed to mavis-protot-vaccinatio-jt6c4c May 11, 2026 11:39 Inactive
Phase 1 of the rebase: brings in the vaccination record UI, dose-schedule
classifier, canonical/duplicate vaccination data model, and the new
DOB-in-header on patient pages. Patient-programme model touch-ups
(scheduleSummary, canonicalVaccinationOutcomes) land in phase 2.
Adds canonicalVaccinationOutcomes and scheduleSummary getters on
PatientProgramme, switches dosesRemaining to use the schedule summary so
ignored MMR doses no longer count, and corrects lastPatientSession to
pick the most recent session (patientSessions is sorted DESC).

PatientSession.vaccinationOutcomes now filters by patientSession_uuid as
well as programme_id so a session does not surface vaccinations recorded
at a different session.
Rebuilds the Y9/Y10 MMR catch-up scenario on top of the refactored
upstream create-data. Adds seven seeded patients (Alice through Gareth)
that exercise the schedule classifier across valid, out-of-schedule and
duplicate dose cases, ties them to a co-located MMR + Doubles session at
Grace Academy, and seeds Bilal historical Y8 HPV and Y9 Doubles refusals
plus oncology-history health-answer detail.

Dmitri carries an AlreadyVaccinated refusal on MMR; the rest get
positive consent so the cohort can be walked through end-to-end in user
research.

Spec: mmr-test-scenarios.md.
A patient whose programme status is Vaccinated via historical doses
would throw when viewing the current session page, because
lastVaccinationOutcome filters by session uuid and returned undefined.

Fall back to patientProgramme.lastVaccinationGiven and guard against a
missing createdBy user.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants