Releases: NHSDigital/manage-vaccinations-in-schools
Releases · NHSDigital/manage-vaccinations-in-schools
v7.6.0
Full Changelog: v7.5.0...v7.6.0
Simplify clinics and vaccination recording
- Record a new vaccination from the child record page (MAV-3187) - Added the ability to record a vaccination directly from a child's record page, replacing the need to find children through a clinic session
- Explicit school unknown and home-schooled locations (MAV-3159) - Replaced the generic clinic location with separate "school unknown" and "home-schooled" locations, with a data migration for existing records
- Download and reupload offline spreadsheet for clinic vaccinations (MAV-3900) - Added the ability to download offline spreadsheets from unknown school, home-educated school, and invited-to-clinic views, and reupload them using a new "clinic" session ID
- Send consent request from child record page (MAV-5308) - Added a "Send consent request" button on the child record page for children who have been invited to a clinic and need consent
Notifications
- Move session and clinic invitation rendering into Mavis (MAV-4114) - Moved session reminder and clinic invitation email and text rendering from GOV.UK Notify templates into the Mavis codebase, completing the comms migration
- Store subject and body of each email and SMS sent (MAV-3934) - Added storage of the full rendered content of every sent email and SMS in the database, enabling future display of message bodies in the activity log
General improvements
- Use primary source for national reporting records (MAV-5326) - Updated national reporting to use the primary source flag when selecting vaccination records for reporting
- Prevent searching per programme for vaccination records before September 2025 (MAV-5066) - Disabled per-programme Imms API search for vaccination records dated before September 2025 to avoid incorrect vaccination status during the MMR data migration period
- Accept Imms API records whose dose sequence exceeds internal limits (MAV-4848) - Changed Imms API record imports to save records with a dose sequence exceeding Mavis's maximum with a nil dose sequence instead of failing
Bug fixes
- MAV-5056: Fixed logic for sending initial clinic invitations and subsequent reminders so only the correct action appears on the child record page
- MAV-5059: Fixed child count on the Schools page not matching the Children page count for "No known school" after archiving children
- MAV-5060: Fixed wording difference for an allergic reaction health question between the MMR/MMRV online and verbal forms and the PDF form
- MAV-5564: Fixed clinic consent request emails having unpopulated placeholders for location and date
v7.5.0
Full Changelog: v7.4.0...v7.5.0
General improvements
- Enable Imms API search in production for remaining programmes (MAV-5171) - Enabled the Imms API search feature flag in production for HPV, Td/IPV, MenACWY, MMR and MMRV programmes
- Fix reporting codes for lower position arm anatomical sites (MAV-5175) - Updated anatomical site codes in CarePlus and SystmOne reports for lower arm position vaccinations to correctly reference the upper arm/deltoid instead of the forearm
- Move triage outcomes and vaccination confirmations rendering into Mavis (MAV-4112, MAV-4113) - Moved triage outcome and vaccination confirmation email and text rendering from GOV.UK Notify templates into the Mavis codebase, continuing the comms migration
- Allow editing of school year groups (MAV-5172) - Added the ability to edit year groups for schools and school sites, reducing reliance on GIAS data which can lag behind real-world changes
- Make SAIS side of Mavis more accessible (MAV-1379) - Improved accessibility across the SAIS interface including page structure, heading hierarchy, error summaries, visually hidden link context, and unique page titles
- Update label for gelatine-related refusal reason (MAV-5296) - Updated the wording of the gelatine-related refusal reason to clarify that it reflects a parent's concern about vaccine ingredients
Platform & Operations improvements
- Improve performance of reporting totals endpoint (MAV-3406) - Improved the performance of the reporting totals endpoint to prevent timeouts with large data volumes
- Improve performance of CLI tools (MAV-5182) - Improved the performance of CLI tools by restricting the scope of PatientTeamUpdater
- Fix ActiveRecord exports for web service (MAV-5297) - Fixed ActiveRecord metrics initialisation timing so metrics are correctly collected in the web service
- Tune indices for patient search (MAV-5299) - Added database indices on patient name fields to improve search and background job performance
- MAV-5317: Fixed Falcon container crashing in HTTPS mode due to directory write restrictions in ECS
Bug fixes
- MAV-5054: Fixed race condition causing 422 errors when syncing MMR vaccination records to the Imms FHIR API
- MAV-5057: Fixed MMR and MMRV PDF consent forms missing the blood/plasma transfusion health question
- MAV-5303: Fixed superfluous extra lines appearing in consent request and reminder emails for single-date sessions and Year 8 HPV cohorts
v7.4.0
Full Changelog: v7.3.0...v7.4.0
Vaccination reporting
- Code and CLI tool to generate new type of CarePlus report (MAV-4626) - Added a new automated CarePlus report format with required fields and a CLI tool for testing report generation
- Show a banner for national reporting users explaining the cut-off date (MAV-3867) - Added a banner on the national reporting uploads page to inform users about the reporting cut-off date
General improvements
- Remove review screen feature flag and redundant code (MAV-3066) - Removed the import review screen feature flag and associated redundant code, making the review screen permanently enabled
- Move consent requests and reminders rendering into Mavis (MAV-4111) - Moved consent request and reminder email and text rendering from GOV.UK Notify templates into the Mavis codebase, continuing the comms migration
- Change homepage and navigation for support team (MAV-4847) - Updated the homepage and navigation for support team users to restrict access to ops tools only
- Fix MMR status computation with mixed performed_at types (MAV-5061) - Fixed MMR vaccination status being incorrectly computed when vaccination records had mixed Date and TimeWithZone performed_at types
- Remove vaccination_record_organisation source from PatientTeam (MAV-5067) - Removed the now-obsolete vaccination_record_organisation source from patient-team relationships as a cleanup following the earlier PatientTeamUpdater change
Platform & Operations improvements
- Revert CITEXT column type (MAV-5183) - Reverted the case-insensitive column type change for patient names that was causing patient similarity searches to be significantly slower
- Export ActiveRecord metrics (MAV-5185) - Added export of ActiveRecord metrics for improved database monitoring
- Persist scaled web service in production (MAV-5187) - Persisted the scaled web service configuration in production
- MAV-5188: Fixed connection timeouts for users caused by database connection pool exhaustion
Bug fixes
- MAV-1189: Fixed error when creating a patient from a consent form where a patient with the same NHS number already exists in the service
- MAV-3896: Fixed users being able to attempt recording a 2nd dose of MMRV without first marking the child as attending
- MAV-4094: Fixed historical vaccination uploads showing in the activity log on the vaccination date instead of the upload date
Post-release tasks
PR #6219:
- Change the support team to be of type
supportinstead ofpoint_of_care.
v7.3.0
Full Changelog: v7.2.0...v7.3.0
Vaccination reporting
- Add CarePlus report model for traceability and link to vaccination records (MAV-4625) - Added a new database model to support automated CarePlus reporting, storing report details such as academic year, programme type, and reporting period
- Update CarePlus MenACWY vaccine code (MAV-4105) - Updated the vaccine code used for MenACWY in CarePlus reports
- Add LA list to regional reports (MAV-4628) - Added a list of local authorities to regional reports
General improvements
- Consent PDF form for MMRV (MAV-2847) - Added a downloadable PDF consent form for MMRV sessions, distinct from the existing MMR form
- Send clinic invitations to home-schooled and school unknown children (MAV-3428, MAV-3886) - Added a new page for manually sending clinic invitations to children with no known school or who are home-schooled, with a count of children due vaccination who have not yet been invited
- Move consent confirmation rendering into Mavis (MAV-3933) - Moved consent confirmation email and text rendering from GOV.UK Notify templates into the Mavis codebase, continuing the comms migration started in v7.1.0
- Update status colours (MAV-4422) - Updated status tag and session overview colours across the application for improved consistency
- Improve vaccination record import duplication validation error message (MAV-4827) - Improved the error message shown when duplicate rows are detected during vaccination record imports
- Add purpose column to notification log entries (MAV-4087) - Added a purpose column to notification log entries to categorise outbound emails and SMS by type, with a backfill data migration for existing records
Platform & Operations improvements
- Automate post-deployment steps (MAV-4101) - Added automation for post-deployment feature flag and data migration steps
- Improve patient lookup performance (MAV-3435) - Improved the performance of patient search and lookup queries
- Replace Thruster/Puma with Falcon (MAV-3446) - Replaced the Thruster/Puma web server with Falcon for improved performance
- Speed up deployments to test environments (MAV-3850) - Reduced deployment times for test environments
- MAV-3307: Fixed BulkRemoveParentRelationshipsJob not being throttled
Bug fixes
- MAV-3892: Fixed the "Send manual reminders" button on clinic sessions not doing anything when clicked
- MAV-3947: Fixed dose sequence not being visible or editable for vaccination records created before the dose sequence change
- MAV-3950: Fixed vaccination records without a vaccine brand breaking report downloads
- MAV-4629: Fixed the new "invited to clinic" filter being missing from the Children page
v7.2.0
Full Changelog: v7.1.0...v7.2.0
Vaccination recording
- Explicitly record dose sequence for MenACWY (MAV-3425) - Added explicit dose sequence recording for MenACWY vaccinations
Patient record management
- Build new child record designs (MAV-2854, MAV-3834, MAV-3836, MAV-3837, MAV-3838) - Redesigned child record pages with programme tabs, sessions split across programme tabs, vaccination record sections, and programme activity timeline
- Remove vaccination record organisation as source for patient-team association (MAV-3875) - Removed the vaccination record organisation as a data source for determining patient-team relationships
- MAV-3409: Fixed "Already had vaccine" not being recorded in the activity log
Schools and sites management
- Ability to edit school sites (MAV-3270) - Added the ability to edit school site details from the team schools page
- Add school to team (MAV-3271) - Added a UI for adding schools directly to a team from the team schools page
- Update hint text for school question search field (MAV-3410) - Updated the hint text on school search fields in the consent form and add school wizard
Imports and uploads
- Don't generate school moves when uploading cohort records with unknown school (MAV-3920) - Prevented school moves from being generated when a cohort upload has "school unknown" for a child already at a known school in another team
- Paginate completed and incompleted imports pages (MAV-4086) - Added pagination to the completed and incompleted imports pages for teams with large numbers of imports
- Limit display of errors to 100 when viewing imports with invalid rows (MAV-4623) - Limited the display of row validation errors to 100 on import pages to prevent timeouts on large imports
- MAV-3408: Fixed vaccination record uploads with duplicate rows not being rejected
Clinic invitations
- Display and allow filtering on whether a child has been invited to a clinic (MAV-3885) - Added a clinic invitation filter and display showing which programmes a child has been invited to
- MAV-3925: Fixed parents being able to inadvertently find out a child has been vaccinated under Gillick when invited to a clinic
Notifications
- Add purpose column to notification log entries (MAV-4087) - Added a purpose column to notification log entries to categorise outbound emails and SMS by type, with a backfill data migration for existing records
Platform & Operations improvements
- Allow db:seed in sandbox environments (MAV-3856) - Enabled database seeding in sandbox environments for testing and development
- Improve logging of jobs (MAV-4085) - Improved logging for background jobs to aid debugging and monitoring
- MAV-3307: Fixed BulkRemoveParentRelationshipsJob not being throttled
Post-release tasks
- Update CarePlus staff type value for Midlands Central and North SAIS teams (MAV-4102) - Updated CarePlus staff type values for Midlands Central and North SAIS teams to support reporting
PR #6141:
SchoolMove.where(school: nil, home_educated: false).includes(patient: :changesets).select do changeset = it.patient.changesets.last changeset.import_type == "CohortImport" && changeset.school_move_to_unknown_school_from_another_team? end
PR #6181:
- Switch on the
child_record_redesignfeature flag if https://nhsd-jira.digital.nhs.uk/browse/MAV-2854 is now complete and raise a ticket to remove that feature flag.
v7.1.0
Full Changelog: v7.0.0...v7.1.0
MMRV / MMR programme
- Outbreak consent request toggle for MMR sessions (MAV-2073) - Added ability for SAIS teams to specify whether an MMR session is routine or outbreak-related, sending the appropriate consent request to parents
- Update SMS consent requests for MMR/MMRV (MAV-3899) - Updated SMS consent request templates for MMR and MMRV programmes to reduce parent confusion
- MAV-2900: Fixed parental consent confirmation page incorrectly displaying "MMR" instead of "MMR(V)" for eligible children
Consent forms
- Display 'Nasal spray or injected vaccine' when parent consents to both flu vaccine types (MAV-2569) - Changed 'Chosen vaccine' display from 'No preference' to 'Nasal spray or injected vaccine' when a parent has consented to both flu vaccine options
- Change wording of refusals due to gelatine (MAV-3377) - Updated gelatine-related refusal reason wording for flu and MMR consent forms
- Move consent confirmation templates into Mavis (MAV-3882, MAV-3922) - Moved the consent confirmation given email and text templates from GOV.UK Notify into the Mavis codebase with no change in functionality
- MAV-3330: Fixed consent responses being updated when parent details are changed after submission
Vaccination recording
- Explicitly record dose sequence for Td/IPV (MAV-3426) - Added explicit dose sequence recording for Td/IPV vaccinations, defaulting to dose 5 with the option to edit
Clinic invitations
- Track clinic invitation status per programme (MAV-3884) - Added backend tracking of whether a patient has been invited to a clinic for a particular programme
- Stop sending automatic invitations to clinics (MAV-3887) - Disabled automatic clinic invitation emails and texts for home-schooled and unknown school children, requiring manual invitations instead
Imports and uploads
- Batch-save patients during vaccination import (MAV-3895) - Improved performance of vaccination record imports by batch-saving patient records
- MAV-3897: Fixed users being unable to access the Imported records tab on the import re-review screen
Patient record management
- Rename 'Child's details' to 'Child record' (MAV-3871) - Updated the card title from "Child's details" to "Child record" across the application
- Refactor patient secondary navigation component (MAV-3872) - Refactored the secondary navigation between child record and activity log pages with no functional changes
- Update activity log design to use timeline styles (MAV-3873) - Updated the activity log layout to use NHS App timeline styles with a blue bar and circle indicators
Schools and sites management
- Refactor Add school site wizard (MAV-3876) - Refactored the Add school site wizard with no functional changes
Bug fixes
- MAV-3431: Fixed GP practice download failing to produce a zip file
Pre-release tasks
PR #6112:
- ensure all ConsentFormProgramme have disease_types column set:
ConsentFormProgramme.where(disease_types: nil).any?
Post-release tasks
PR #6061:
- Run backfill task:
rake data_migration:backfill_consent_parent_details - Verify backfill completed successfully by checking consent records have
parent_full_namepopulated
v7.0.0
Full Changelog: v6.21.0...v7.0.0
FHIR Imms API
- Enable sync feature flags for the remaining vaccination programmes (MAV-2672) - Enabled API sync feature flags for all remaining vaccination programmes in production
National reporting
- Create teams in production for national reporting pilot (MAV-3852) - Set up teams in production for the national reporting pilot
v6.21.0
Full Changelog: v6.20.0...v6.21.0
MMRV programme
- Make the "Already vaccinated" journey work for MMR & MMRV: full journey (MAV-2848) - Implemented complete "Already vaccinated" journey for MMR and MMRV vaccinations
- Explicitly record dose sequence for MMR(V) (MAV-2937) - Added functionality to explicitly record dose sequence for MMR and MMRV vaccinations
- Give or refuse consent for MMRV if child born after 1/1/2020 (MAV-3441) - Implemented consent flow for MMRV for children born on or after 1st January 2020
- Content tweak for recording MMR(V) (MAV-3417) - Updated content and wording when recording MMR(V) vaccinations
- MAV-3404: Fixed issue where status of MMRV incorrectly stated fully vaccinated after recording 1st dose given
- MAV-3863: Fixed issue where reminder email was not received for MMRV vaccination when triggered manually
- MAV-3868: Fixed issue where consent email was not mentioned as MMRV specifically, displaying as MMR(V)
- MAV-3864: Fixed inconsistent status behaviour when "Record as vaccination given" for MMR(V) forced offline
- MAV-3869: Fixed issue where when recording as already vaccinated, incorrectly shown as historic vaccination
- MAV-3888: Fixed issue where MMRV consent reminder emails stated about the MMR vaccine
Imports and uploads
- Change 'Import' to 'Upload' in 2 places on Imports UI (MAV-3424) - Updated terminology from 'Import' to 'Upload' for consistency
- MAV-302: Fixed issue where if you finished an upload and reviewed the import issues for that upload, after you'd approved the upload the issues were still visible
- MAV-3840: Fixed issue where new patient was not attributed to the import in "Keep both records" flow
- MAV-3866: Fixed issue where imports screen showed wording "import" rather than "upload" which was inconsistent
- MAV-3405: Fixed issue where when recording already had vaccination at community clinic, incorrectly asked to select a location
Vaccination reporting
- Add gender column to CarePlus report (MAV-3439) - Added gender column to CarePlus vaccination report
- MAV-3877: Fixed issue where SystmOne and CarePlus vaccination reports could not be downloaded when already vaccinated records were present
Schools management
- MAV-3427: Fixed issue where school sites across teams were created incorrectly
National reporting
- Add new RBAC roles to Mavis nurse and admin roles (MAV-3846) - Added new role-based access control roles to Mavis nurse and admin roles
Platform & Operations improvements
- Change container health checks (MAV-1865) - Updated container health check configuration for improved monitoring
- Disable unused image processing in framework configuration (MAV-3848) - Disabled unused image processing functionality in framework configuration for improved performance
Post-release tasks
PR #6050:
- run
rake data_migration:backfill_consent_form_programme_disease_types - in the console, check number of consent form programmes with disease types set:
- Update the labels on templates in Notify to reflect which ones are now live
v6.20.0
Full Changelog: v6.19.0...v6.20.0
National reporting and Mavis Upload
- Restrict anatomical site based on vaccination product for national reporting uploads (MAV-3387) - Implemented validation to restrict anatomical site options based on the vaccination product for national reporting uploads
- Block national reporting uploads if they contain records which were performed before programme started (MAV-3320) - Added validation to prevent uploading vaccination records that were performed before the programme start date
- Align the content of validation errors between patient imports and vaccination records (MAV-3433) - Aligned validation error messages between patient imports and vaccination records for consistency
- MAV-3429: Fixed issue where field error message for local_patient fields didn't follow specification
- MAV-3389: Fixed issue where duplicate vaccination records showed IMMS synced message for both records
- MAV-2948: Fixed issue where incorrect error message content was shown during upload validation
Patient record management & schools management
- MAV-2359: Fixed issue where changesets and search results were attributed to the wrong patient in "Keep both records" flow
- MAV-1253: Fixed issue where "Keep both records" and "Keep previously uploaded record" flows mixed up parent contact details
- MAV-248: Fixed issue where there was no entry in the activity log to indicate that another record had been merged
- Revisit the technical design for ensuring the latest schools are on production (MAV-496) - Reviewed and improved technical design for ensuring the latest school data is available on production
Platform & Operations improvements
- Wait longer before giving up on import processes (MAV-3844) - Increased timeout duration for import processes to handle larger files
- Increase sidekiq resources (MAV-3459) - Increased Sidekiq resources for improved background job processing performance
Bug fixes
- MAV-3412: Fixed issue with missing template names for notify communications
- MAV-3391: Fixed issue where address for sensitive patient was displayed in session view, minus postcode
- MAV-3310: Fixed issue where important notices were not being generated on PDS updates
- MAV-3272: Fixed issue where recording "already vaccinated" flow was incorrect
- MAV-3170: Fixed error in archiving patient when reason was "duplicate"
Pre-release Tasks
PR NHSDigital/manage-vaccinations-in-schools-infrastructure#10:
- Do infrastructure release before the next release of Mavis to include this change (currently v6.20.0).
Post-release Tasks
PR #5876:
- Run data migration to unset
performed_at_timeon vaccination records:bin/rails data_migration:unset_vaccination_record_performed_at_time
PR #6046:
- Run
rake data_migration:rename_pending_changes_batch_id
v6.19.0
Full Changelog: v6.18.0...v6.19.0
Vaccination history and clinic recording
- Ignore time when matching on existing vaccination records (MAV-3184) - Updated matching logic to ignore time when matching existing vaccination records
- Update data model to allow time of vaccination to be optional (2/2) (MAV-3362) - Completed update to data model to make vaccination time optional
- Clear time on imported vaccination records where time was set to midnight (MAV-3183) - Cleared time values on imported vaccination records where time was incorrectly set to midnight
National reporting and Mavis Upload
- Reconcile the numbers displayed during upload (MAV-2869) - Reconciled and improved clarity of numbers displayed during file upload process
- Refactor
Batch.nametoBatch.number(MAV-3230) - Refactored batch name field to batch number for improved clarity - Refactor batch name and expiry to be attributes on vaccination record (MAV-3108) - Refactored batch name and expiry to be stored as attributes on vaccination records
- MAV-3370: Fixed issue where editing national reporting vaccination records required
performed_at_time, when it should be optional
Vaccination reporting
- Add consent status to Mavis reports (MAV-3282) - Added consent status information to Mavis reports for improved data visibility
Platform & Operations improvements
- Get slack notifications for AWS Health messages (MAV-3082) - Implemented Slack notifications for AWS Health messages for improved monitoring
- Update reporting service to be H2 compatible (MAV-3309) - Updated reporting service to be compatible with H2 database
- Remove
namecolumn on Batch (MAV-3151) - Under the hood: removed name column from Batch table as part of rename work - Remove batch_id column from VaccinationRecord (MAV-3148) - Under the hood: removed batch_id column from VaccinationRecord as part of denormalisation work
- Don't log Faraday::ServerError (Imms API 502) to Sentry (MAV-2960) - Prevented logging of Imms API 502 errors to Sentry to reduce noise
Bug fixes
- MAV-3373: Fixed issue where patient merges didn't work when patient to destroy had PatientProgrammeVaccinationSearches
- MAV-3294: Fixed issue where important notice was not created when child moved from unknown school in one team to another school in a different team
- MAV-3284: Fixed issue where vaccination already had notification was not sent when the vaccination was performed at another location
Pre-release tasks
PR NHSDigital/manage-vaccinations-in-schools-infrastructure#8
- Apply the account stack changes by running
./scripts/apply_account_stack.shproduction from the root directory of the repository and follow the steps - After apply the ssm parameter needs to be manually updated with the slack webhook url