Skip to content

Version 8.1.0#6677

Merged
thomasleese merged 137 commits intomainfrom
next
Apr 23, 2026
Merged

Version 8.1.0#6677
thomasleese merged 137 commits intomainfrom
next

Conversation

@thomasleese
Copy link
Copy Markdown
Contributor

No description provided.

paulrobertlloyd and others added 30 commits April 13, 2026 16:05
- Ensure main doesn’t encompass navigation
- Fix spacing on session layout
* To be used for sending reports to the careplus service

Jira-Issue: MAV-5294
This is instigated by an `ImmunisationImport` which silently failed
because it parsed `04/02/12` as `4th Feb 0012`, which failed the
patient validation on `date_of_birth`'s academic year > 1900.

Jira-Issue: MAV-6541
Without this, it's possible to enter a date of birth which will cause
a validation error on the `Patient` model, because the `Patient`'s
`birth_academic_year` will be < 1900.

Jira-Issue: MAV-6541
The Imms API used to have a bug where they referred to
`immunization.target` instead of `-immunization.target`. They have
since fixed this, but they now include both versions in the
`bundle.link` field. We must exclude the deprecated version from the
comparison.

The unit tests should have been testing this, but the fixtures were set
up incorrectly

Jira-Issue: MAV-6065
This refactors how the options for the "who" step of the draft consent
form are determined to simplify the code, and allow for a more complex
set up around self-consent.

Jira-Issue: MAV-5915
This adds a method on the `Patient` model that can be used to determine
if a child can self-consent, following a competent Gillick assessment.

Jira-Issue: MAV-5915
Gillick assessments are only considered valid for the day that they were
recorded on. Outside of that, the child needs to be re-assessed before
they can self-consent.

Jira-Issue: MAV-5915
I've renamed this to have a prefix of `pds` as we're going to be adding
two more feature flags both related to PDS so it makes sense to group
them together.

Jira-Issue: MAV-2354
The national reporting teams uses the same vaccination table but requires more details on vaccination records like
location and source, whereas full-fat Mavis doesn't need so much information. The new `show_details` arg controls
whether to show or hide this info.
This replaces the `enqueue_bulk_updates` setting on `Settings.pds` with
a feature flag which makes it easier to be enable/disable the feature
without needing an infrastructure deploy.

Jira-Issue: MAV-2354
Shows the programme status (heading with colour, contextual detail text, vaccination outcomes table, and action link) for a patient on the session patient show page. This card  links to the respective programme tab in the child’s record. Eventually this will be the only card on the page with a coloured heading so various statuses (consent, triage, etc) do not compete for attention and the programme status for the child is reflected right at the top.

MAV-4846
This replaces `Settings.pds.enabled` with a feature flag that we can use
to quickly enable or disable any PDS related functionality without
needing to re-deploy the application.

Jira-Issue: MAV-2354
…undle-link-mismatch

Suppress warning for `immunization.target` mismatch
Only consider today’s Gillick assessments as valid
When a triage has been performed, the programme card now shows a human-readable summary of the decision (e.g. "Joy, Nurse decided that Oliver is safe to vaccinate.") using the shared triage_summary helper. The delay vaccination case is updated to include the "until" date when present.
alistair-white-horne-tng and others added 25 commits April 21, 2026 16:48
This change will make it simpler to delete patients; these foreign key
relationships will no longer need to be manually deleted.

These objects are considered to be part of the "mechanics" of how the
service works, and are only created as part of under-the-hood processes;
users don't know that these relationships exist.

Many other FK relationships have been left without cascade. These
relationships link to objects which the user has created, meaning that
they likely need some more careful handling when deleting.

`validate: false` is used so that this change doesn't cause a full
table lock. This will require a second migration in a subsequent release
to validate these foreign keys

`access_log_entries`'s FK validation is removed, but not cascaded. It
was decided that, because this is a type of audit, these objects should
be preserved, and the `patient_id` should be kept, in the same style
as the `Audited::Audit`s

Jira-Issue: MAV-7064
…vements

Patient status updater improvements
Ensure programme status is refreshed once consent requests have been sent.

Without this, patients can remain in an out-of-date status after requests go
out, which leads to inaccurate status information in the UI and incorrect
results when filtering by patient status.

Jira-Issue: MAV-7076
…nt summary

The total in the top-row red "No consent recorded" box no longer matched the
sum of the white boxes beneath it after introducing the newer consent statuses
no_contact_details, request_scheduled and request_not_scheduled.

This fixes this by including those status enums inconsent_no_response_count query.

Jira-Issue: MAV-7075
…-after-consent-request

Update patient status after sending consent requests
…-breakdown

Fix: reporting app was showing inconsistent child counts in the consent summary
Bumps [faker](https://github.com/faker-ruby/faker) from 3.6.1 to 3.7.1.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](faker-ruby/faker@v3.6.1...v3.7.1)

---
updated-dependencies:
- dependency-name: faker
  dependency-version: 3.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [capybara_accessible_selectors](https://github.com/citizensadvice/capybara_accessible_selectors) from `e204122` to `d518ee5`.
- [Release notes](https://github.com/citizensadvice/capybara_accessible_selectors/releases)
- [Commits](citizensadvice/capybara_accessible_selectors@e204122...d518ee5)

---
updated-dependencies:
- dependency-name: capybara_accessible_selectors
  dependency-version: d518ee5271f60e18a555434160ae02b74e534046
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Required for ruby 4.0.3 support.
…delete

Add "on delete, cascade" to some `Patient` foreign keys
The JavaScript driver for Capybara was being configured to use Cuprite to drive
a browser for JS-enabled specs. However, there are no such specs at the moment
and it's not obvious that there have ever been any.

When we added `js: true` to an existing feature spec and ran it, we saw an
exception, so it's not obvious that it was even working.

The feature specs currently use the default Capybara driver which is rack-test.
Since this doesn't drive a browser, it doesn't support screenshots, so we
removed the `capybara-screenshot` gem as well.

`Capybara.asset_host` is only relevant for browser-based specs and so it
doesn't need to be set any more.

The code that was checking for the browser binary by rescuing
`Ferrum::BinaryNotFoundError` is no longer needed, because Ferrum is the
lower-level gem used by Cuprite.

Currently if a JS-enabled spec is needed it's added to the e2e specs [1] which
use Python & Playwright. If we ever need to add JS-enabled specs to this repo,
it would probably make sense to use the Playwright driver for Capybara for
consistency with the e2e specs.

[1]: https://github.com/NHSDigital/manage-vaccinations-in-schools-testing/

Co-authored-by: Chris Lowis <chris.lowis@gofreerange.com>
Follow up to 0f43de1, which fixed the model count but not the
aggregate query used by the reporting API.

Update the aggregate totals to include the full no-response status set
so the breakdown matches the no consent recorded total.

Add regression coverage for the aggregate path.

Jira-Issue: MAV-7075
…-breakdown-part-2

Fix reporting API consent no-response totals
…river

Remove unused Cuprite-related code
Bumps [aws-actions/amazon-ecr-login](https://github.com/aws-actions/amazon-ecr-login) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/aws-actions/amazon-ecr-login/releases)
- [Changelog](https://github.com/aws-actions/amazon-ecr-login/blob/main/CHANGELOG.md)
- [Commits](aws-actions/amazon-ecr-login@f2e9fc6...376925c)

---
updated-dependencies:
- dependency-name: aws-actions/amazon-ecr-login
  dependency-version: 2.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.2 to 3.8.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.8.2...3.8.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@thomasleese thomasleese requested a review from a team as a code owner April 23, 2026 10:44
@thomasleese thomasleese merged commit 188f214 into main Apr 23, 2026
55 checks passed
floehopper added a commit that referenced this pull request Apr 28, 2026
This method implementation and an invocation from
`PatientStatusUpdater#update_programme_statuses!` was originally added in
this commit [1] in #6468.

Both the implementation and invocation were removed in this commit [2] in #6611.

Then the implementation was then re-added without the corresponding invocation
in this commit [3] within #6677 which was the "Version 8.1.0" pull request.

Since the method is never invoked, it's safe to remove it.

[1]: 25e876a
[2]: 29460d4
[3]: c66b757
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.