Skip to content

Releases: nhsuk/manage-vaccinations-in-schools

v1.3.2

05 Feb 13:52
2c5eb79
Compare
Choose a tag to compare

Full Changelog: v1.3.1...v1.3.2

This is an emergency release planned for 2025-02-05.

Under the hood

Increase interval between PDS jobs #2937

We're still seeing the issue in production where the PDS jobs get stuck in a state where none of them can process successfully. Running some experiments by queueing the jobs manually via a Rails console suggests a 2 second interval between the jobs is handled much better, although it means that it'll take ~11 hours to process all the patients.

We are also changing the schedule for the bulk PDS lookup jobs to run at 6:00 and 18:00, instead of 0:00, 8:00, 12:00 and 18:00. This is to give the bulk jobs the time to finish before starting another one, which would likely trigger our contention issues again.

v1.3.1

03 Feb 09:52
adfbd18
Compare
Choose a tag to compare

Full Changelog: v1.3.0...v1.3.1

This is planned for release on 2025-02-03.

Under the hood

Increase wait time between PDS jobs #2922

We're seeing a problem in production where the queues for PDS jobs gets full with jobs that are not succeeding, likely related to the rate limit.

This wait time was added to artificially slow down the queues and prevent them from needing to be retried, so increasing this wait time should reduce the changes of the jobs ending up in this stuck state.

Increase wait time between PDS executions #2923

This increases the wait time between jobs that interact with the NHS API depending on the number of executions that we've already tried for that job. If the number is high, it suggests that jobs aren't succeeding and that we should throttle the number of jobs getting through.

v1.3.0

31 Jan 09:59
74bf058
Compare
Choose a tag to compare

Post-deployment tasks

New features

MAVIS-1812: Show separate activity log entries for a parent submitting consent and the consent being manually matched to a cohort record #2828

The activity log now includes an entry when a SAIS team member manually matches a consent form with a patient record in the cohort. The entry includes the name of the person who made the match.

MAVIS-1641: Patients with invalid NHS numbers should be re-traced using demographic details #2723

If Mavis traces a previously invalid patient record in the Personal Demographics Service and they're now marked as valid, it should add them to an upcoming session if appropriate.

MAVIS-1790: Make it easier to see the numbers of unresolved import issues, school moves, unmatched consent responses and/or important notices #2808 #2845 #2847

The Mavis navigation bar now displays the numbers of:

  • unresolved import issues
  • school moves
  • unmatched consent responses
  • important notices (for superusers)
image

MAVIS-1803: Make it easier to see which school a class list upload is for #2797

For class list uploads, the school name is now displayed on the upload list and on the upload details page. The upload details page also provides a link to jump to the school session.

MAVIS-1782: Archive consent consent responses from the unmatched consent responses page #2846

Mavis now allows archiving consent consent responses from the unmatched consent responses page e.g. if a parent has submitted a consent form for a sibling who isn’t eligible for the vaccine offer in this programme.

Bug fixes

MAVIS-1840: Postcode sorting issue for S-flagged records #2827

This prevents information about restricted patients being leaked inadvertently, as although the information itself was not shown, by using the sorting and filtering functionality it's possible to guess what the value might be.

Instead Mavis treats restricted patients as having no postcode for the purpose of filtering and sorting.

MAVIS-1829: Ensure session reminders are sent out when there is only one session date #2823

Fix an issue where school session reminder emails weren’t being sent when the school only had one session date.

Under the hood

  • Refactor: Raise NHS::PDS::TooManyMatches #2758
  • Refactor: Use params.expect #2801
  • Refactor: Record PDS error responses in Sentry #2757
  • Refactor: Enable strict loading globally #2771
  • Refactor: Improve email address and phone number normalisation #2831
  • Refactor: Remove parent_full_name personalisation #2829
  • Refactor: Link text delivery with GOV.UK Notify IDs #2832
  • Refactor: Fix typo in README #2842
  • Refactor: Add .cursorrules #2807
  • Performance: Increase application server node count to three in production #2909 (MAVIS-1916)

Dependency bumps

  • Upgrade Ruby to 3.4.1 #2799
  • Bump thruster from 0.1.9 to 0.1.10 #2834
  • Bump aws-sdk-s3 from 1.176.1 to 1.177.0 #2838
  • Bump activerecord-import from 1.8.1 to 2.0.0 #2837
  • Bump govuk-frontend from 5.7.1 to 5.8.0 #2839
  • Bump govuk-components from 5.7.1 to 5.8.0 #2836
  • Bump govuk_design_system_formbuilder from 5.7.1 to 5.8.0 #2835

Issues raised since the last release

MAVIS-1877: Unable to merge patients when the patient without the NHS number has been vaccinated

Merging duplicate patient records fails with a 500 error when merging a patient with a NHS number into a vaccinated patient without a NHS number.

Workaround: SAIS teams should record vaccinations as usual, and add in the missing NHS number after the report is exported.

MAVIS-1895: Duplicate resolution screen shows incorrect information for address/postcode changes

When SAIS staff upload a class list (that has no addresses) with a child with a different postcode, the duplicate resolution screen incorrectly shows the old address with the new postcode in the duplicate record.

Workaround: Users should be advised that imports of incomplete information will merge the old data with the new, and to check the source spreadsheets before importing when this occurs.

MAVIS-1873: Duplicate records in reporting spreadsheet when an outcome is changed on the same day

Mavis's reporting includes all patient-related events even when, for example, a patient has two independent vaccination outcomes in a session such as the vaccination being delayed and then being performed. These are currently included for auditing purposes.

Workaround: Unwanted items can be removed from the reporting spreadsheet or filtered out until this issue is resolved.

MAVIS-1878: Free-text search on the global children view doesn't prioritise exact matches

Currently results are ordered alphabetically, rather than by match quality, meaning that exact matches fall below inexact but higher alphabetic matches.

Workaround: Users can page through the results to the right entry.

MAVIS-1871: Some children with consent assigned to both clinic and school sessions after school move is confirmed

Children with consent given are sitting under a Community Clinic session and School session after school move has been confirmed. The school move should have moved them from the community clinic into the school.

Workaround: Users can ask the Mavis product team to manually move users from a clinic session to the relevant school session.

MAVIS-1896: Incorrect activity log entry text for when a child record is created from an unmatched consent response

When a child record is created from an unmatched consent response, the first activity log entry for the child says "Consent response manually matched with child record". It should instead be clear that the child record has been created manually from a consent response.

Workaround: Users should be advised that child records created from consenet responses will have this as their initial activity log entry until a fix is released.

MAVIS-1918: Children with consent refused being mistakenly proposed to move to community clinic when closing session

When closing a school session, Mavis will report on outcomes from the session and which children are being moved into a community clinic. Currently Mavis is proposing to move children without consent to the community clinic. This logic has been questioned by users.

Workaround: Users can keep school sessions open without impact for the time-being until this issue is resolved.

MAVIS-1922: Parents can give consent for a child of any age

Mavis does not currently validate that the date of birth of a child referenced in a consent form is within the range that would be expected for a given cohort.

Workaround: Users should be advised to ignore or archive invalid consent responses.

MAVIS-1870: Back button on reason "Not given" goes to wrong screen

In some situations on a specific page during prescreening, clicking the in-page back link will take a user back to an incorrect page.

Workaround: Users can click the back link again to get back to the correct page.

v1.2.0

20 Jan 18:05
9f4c7fb
Compare
Choose a tag to compare

Full Changelog: v1.1.2...v1.2.0

This was released on 2025-01-20.

New features

MAVIS-1773: Allow patients who are "taught up a year" (who attend year 8 in school but who would be in a lower year purely by their date of birth) to be brought into the cohort #2780 #2826 INC0261265

If a patient record is uploaded in a class list or a cohort record, their year group is derived from their date of birth by default, according to local authority rules. There are validations that prevent patients in years 7 and below from being added to the HPV cohort.

It is now possible to override this derived year group by optionally specifying a CHILD_YEAR_GROUP column. When specified, the year group will be taken from this value rather than derived from the date of birth.

Screenshot 2024-12-19 at 11 27 25 Screenshot 2024-12-19 at 11 30 05 Screenshot 2024-12-19 at 11 30 39

MAVIS-1794: Always send SMS consent requests and reminders when Mavis has the phone numbers for the child's parents or carers #2824

For non-restricted patients, if Mavis has a phone number for a parent or carer, it will always use that phone number to send them consent requests and reminders.

Parents or carers can still opt-out from receiving updates about the vaccination via text message: consent confirmation, rejected, or vaccination given/not given updates.

Bug fixes

MAVIS-1774: Error when SAIS staff add NHS numbers to patient records under certain circumstances #2777 INC0267761

This fixes a bug where Mavis was unable to merge patient records if consent or session notifications were sent for that record.

MAVIS-1777: Error when SAIS staff upload a file in ISO-8859-1 encoding with validation errors #2782

This fixes a crash that happened if a user uploads a file with validation errors, and the cell causing the error contained certain special characters.

MAVIS-1793: Nurses can't sort patients if there are missing postcodes #2789 INC0266168

This fixes a bug where if a SAIS team member tries to sort on a table by postcode and some of the rows don't have a postcode, the sorting fails.

MAVIS-1804: Fix the date filtering inconsistencies between the CarePlus and Mavis reports #2796

This change ensures the CarePlus report behaves like the Mavis report by filtering vaccination records based on their technical dates (creation or last update) rather than the actual vaccination date. Specifically, any record whose creation or last update date falls within the specified date range is returned, regardless of when the vaccination itself was administered.

This primarily impacts records that were uploaded to Mavis on a different day than the actual vaccination (where the creation date is later than the vaccination date). Records added on the same day as the vaccination should remain unaffected.

MAVIS-1822: Fix crash when filtering by status on register attendance page #2781

This fixes an errors that users were seeing when attempting to filter by status on the Register Attendance page.

Under the hood

  • Refactor: Remove consent_form_patient #2779
  • Refactor: Patient factory: randomise the date of birth logic and align more obviously with year group calculations #2806
  • Refactor: Use Rails.env.local? #2800
  • Refactor: Update erroneously added primary school URN to the correct secondary school URN #2798
  • Refactor: Update docker build step packages #2843

Dependency bumps

  • Bump rubyXL from 3.4.27 to 3.4.33 #2794
  • Bump Brakeman to 7.0.0 #2809
  • Bump rubyzip from 2.3.2 to 2.4.1 #2811
  • Bump good_job from 4.6.0 to 4.7.0 #2812
  • Bump aws-sdk-ecr from 1.88.0 to 1.91.0 #2813
  • Bump sass from 1.83.0 to 1.83.1 #2814
  • Bump hotwire-livereload from 1.4.1 to 2.0.0 #2810

New known issues

MAVIS-1824: Missing validation when uploading a vaccination record file without entering a time of vaccination (Vaccination time left blank)

When no vaccination time is entered in the uploaded spreadsheet, the system defaults the time to 12pm. This can lead to confusion if the actual vaccination time differs from the default.

Workaround: Users should be advised to enter a time of vaccination whenever possible. If left blank, it will default to 12pm.

MAVIS-1827: List of vaccinator email addresses in the offline recording spreadsheet doesn’t show all nurses in the SAIS team

Some valid email addresses are missing from the vaccinator dropdown list in the offline recording spreadsheet, preventing users from selecting the correct address.

Workaround: Users should manually copy and paste their email address into the field, which overrides the dropdown options.

MAVIS-1828: Offline recording spreadsheet doesn't handle vaccination and expiry dates in YYYYMMDD format

When the spreadsheet is populated with dates in YYYYMMDD format, the system may not recognize them correctly, causing invalid or incorrect dates to be recorded.

Workaround: Users should record dates in a format that Excel recognizes (e.g. DD/MM/YYYY).

MAVIS-1831: Error displaying patient details with non-UTF-8 characters (e.g. Jalapeño-Pérez)

Patient details containing accented or special ISO-8859-1 encoded characters can cause errors when viewing records.

Workaround: Users should ensure that all cohort and class list spreadsheets are exported from Excel in CSV UTF-8 format.

MAVIS-1845: No audit log entry indicating that one record has been merged into another

When records are merged, the audit log does not currently capture or display this action, making it difficult to trace record merges.

Workaround: Users who suspect a record merge can contact the Mavis support team for confirmation.

v1.1.2

17 Jan 15:09
v1.1.2
4019fe8
Compare
Choose a tag to compare

Full Changelog: v1.1.1...v1.1.2

This was released on 2025-01-17.

Bug fixes

MAVIS-1864: Child record showing wrong state when a refusal received after triage #2856 INC0269963

This fixes a bug where Mavis was showing safe to vaccinate status for a child who had a successful triage recorded, even though a subsequent refusal had been received for them.

MAVIS-1695: Fix vaccination status inconsistency where some children are "Ready for nurse" and others are "Safe to vaccinate" #2857

Previously, after successful triage the term “Safe to vaccinate” was used under triage outcome and was also the overall status of the child. This was different from the state shown for children who did not need triage, where the state was “ready for nurse”.
This change makes “Ready for nurse” the status used both when triage is not needed and after successful triage. “Safe to vaccinate” still appears under triage outcome (and in audit log as triage outcome).

Under the hood

  • Update docker build step packages #2858

v1.1.1

03 Jan 12:49
244b446
Compare
Choose a tag to compare

Full Changelog: v1.1...v1.1.1

This was released on 2025-01-08.

New features

MAVIS-1723: Add flags to child records #2709 #2773 #2776

This adds a number of flags to the component when viewing a ‘child record’ allowing the nurses to see clearly if there are any flags on the patient.

After:

Invalid record

Record flagged as invalid.

Sensitive record

Record flagged as sensitive.

Deceased patient

Record updated with child’s date of death.

Bug fixes

MAVIS-1754: Fix typo on school movers confirmation screen #2711

Without the fix, the screen reads ‘Cohort record record’. Before:

Screenshot of page comparing 2 records.

MAVIS-1746: Don't link to patients out of the organisation #2724

If an cohort upload into Mavis resulted in the patient being moved to another SAIS team, the SAIS staff used to be able to see a link to the patient's record but would see an error page (due to no longer having access to that patient's record), which is not a good user experience.

Instead, Mavis no longer displays the link and provides an explanation why the patient is not available:

Screenshot of a child’s name in a table with secondary text below it.

MAVIS-1768: Ensure notices are always visible #2726

We fixed a bug where notices were only visible if there was at least one deceased patient, and wouldn’t show if there were only restricted or invalidated patients.

MAVIS-1770: Fix notes error message on consents #2768

We fixed a bug where if you invalidate a consent, and don’t fill in the ‘Notes’ section, the error reads ‘can't be blank’ instead of ‘Enter notes.’ After:

Screenshot showing an error message on a form.

MAVIS-1769: Show details from consent form if available #2772 #2786

The parental consent form page used to show the child info from the cohort record, not from the actual consent form itself. In the rare cases where this didn't match (i.e. if the SAIS staff matched the consent form to the wrong patient deliberately or by mistake), the true child info on the consent form wasn't being shown.

MAVIS-1771: Prevent double-recording of HPV vaccinations by navigating back #2737

When using the vaccinate flow it’s possible to inadvertently record two vaccinations for the same patient by navigating back to the confirmation after submitting it and then submitting it again.

MAVIS-1762: Improve performance on register attendance page #2769 #2770 #2781

We found during a training session that the Register attendance page sometimes loads in ~20 seconds depending on the exact data. We found low-hanging DB fixes which reduce this to under 1 second.

MAVIS-1780: Sort attendances alphabetically by default #2788

This gives the page a default sorting order.

MAVIS-1772: Hide health answers from invalidated or outdated consent responses on the consolidated view of health answers #2775

This avoids showing health answers for consents that have been invalidated or overridden by a newer consent response from the same person. The invalidated or overridden data is still available to review by clicking through to those particular consent forms, and the fact that they are invalidated is highlighted.

MAVIS-1778: Error submitting consent response when parent adds a phone number from "check and confirm" screen #2787

If a parent adds a phone number after the consent confirmation page, Mavis now prompts them to provide a contact method otherwise they're unable to submit the consent form.

MAVIS-1800: Offline spreadsheet opens with errors when many vaccinators present in the organisation #2804

Avoid Excel displaying an alert about corrupted data when an offline spreadsheet is opened by an organisation with lots of vaccinators.

MAVIS-1786: Incorrect date shown for manually matched consent response

Fixes a bug where manually matched consent response date shown on the patient page didn't match when the response was submitted by the parent.

MAVIS-1787: Filter children in a programme by status times out

Fixes Mavis performance and avoids a time out when filtering children within the HPV programme view by status.

Under the hood

  • Data consistency: Validate presence of privacy_policy_url #2715
  • Deployment: Enable docker layer caching, speeding up deployments #2741
  • Performance: Don't use not_invalidated scope #2716
  • Refactor: Pass parent relationship to AppParentSummaryComponent #2744
  • Refactor: Don't create parents by default in tests #2743
  • Refactor: Re-enable accessibility tests on release 1B pages #2746
  • Refactor: Remove remaining explicit type from specs #2750
  • Refactor: Mark JavaScript tests with :js #2751
  • Refactor: Disable :js tests if Chrome is unavailable #2752
  • Refactor: Choose an organisation on login without CIS2 #2745
  • Refactor: Add hertfordshire onboarding ymls #2755
  • Refactor: Fix home_educated value in model office script #2767
  • Refactor: Fix flaky manage attendance feature test #2774
  • Refactor: Fix time-sensitive feature test that breaks in 2025 #2805
  • Refactor: Don't bulk queue PDS lookup jobs on staging envs #2785

Dependency bumps

  • Bump aws-sdk-s3 from 1.176.0 to 1.176.1 #2759
  • Bump caxlsx from 4.1.0 to 4.2.0 #2760
  • Bump rails from 8.0.0.1 to 8.0.1 #2761
  • Bump csv from 3.3.0 to 3.3.1 #2762
  • Bump good_job from 4.5.1 to 4.6.0 #2763
  • Bump idb from 8.0.0 to 8.0.1 #2764
  • Bump @playwright/test from 1.49.0 to 1.49.1 #2765
  • Bump sass from 1.82.0 to 1.83.0 #2766
  • Bump aws-sdk-rds from 1.262.0 to 1.264.0 #2802
  • Bump rubocop-govuk from 5.0.5 to 5.0.7 #2803
  • Bump faraday from 2.12.1 to 2.12.2 #2792
  • Bump esbuild from 0.24.0 to 0.24.2 #2795
  • Bump capybara_accessible_selectors from aed2860 to c380ba7 #2790

New known issues

MAVIS-1812: Activity log entries for "a parent submitting consent" and "the consent being manually matched to a cohort record" are being shown as one

In cases where consent responses are manually matched to cohort records after initial submission, the Activity Log displays the matching timestamp rather than the original consent submission time. This creates misleading entries showing "consent given" instead of "records manually linked." While consent information remains accurate on the Child Record tab, users should reference that location rather than the Activity Log for correct consent timestamps. This issue is scheduled for urgent fix in the next release.

Impact: No clinical safety risk, as all consent details are correctly stored and displayed on the child's record.

Workaround: Check the Child Record tab for accurate consent submission dates and times.

v1.1.0.1

17 Dec 12:14
ea4d5c4
Compare
Choose a tag to compare

Full Changelog: v1.1...v1.1.0.1

This was a hotfix release deployed on 2024-12-16 to:

  • Update our onboarding tasks
  • Update the list of DFE schools
  • Add an onboarding configuration for Coventry

There were no user-facing fixes or features in this release.

v1.1.0

17 Dec 12:09
93663b8
Compare
Choose a tag to compare

Mavis went live on 2024-12-16.

release-1b

17 Dec 12:40
Compare
Choose a tag to compare
release-1b Pre-release
Pre-release

This was the second private beta release. It was not released to production.

release-1a

17 Dec 12:39
Compare
Choose a tag to compare
release-1a Pre-release
Pre-release

This was the first private beta release since pilot. It was not released to production.