v8.2.0#6709
Merged
thomasleese merged 69 commits intomainfrom Apr 27, 2026
Merged
Conversation
Archive and patient merge events are not specific to any programme, so they shouldn't appear on every programme tab. Extract them into a new AppPatientActivityComponent ("Activity log" card) rendered on the Child record tab instead.
* Enqueue job runs once a day * Triggers automated exports for all relevant teams * Uses extracted Careplus::AutomatedReportSender Jira-Issue: MAV-6232
Show programme-specific dose sequence guidance when the uploaded value is not a valid integer, so MMR now correctly says the maximum dose sequence is 2 and gives examples of 1 or 2 instead of the generic 1, 2 or 3 message. Jira-Issue: MAV-2312
* We still want to show this in the UI Jira-Issue: MAV-6232
After adding "cascade on delete" to these `Patient` FK relationships, we need to validate them. We can't do this as part of the same migration because it's likely to cause a long table lock, which is unacceptable in production. Hence, this needs to be included in the subsequent release. Jira-Issue: MAV-7065
The `patient_locations` association on `Patient::ProgrammeStatus` already defines the includes that are needed to successfully generate a status, therefore we don't need to define these again in the `PatientStatusUpdater`. This follows the same pattern we use for the other associations (for example `consents`).
This adds API keys and secrets for our staging and production environments giving us access to the Ordnance Survey Places API. We'll be using this API in the future to attach geographical positions to locations and allow users to find a suitable location near them. Jira-Issue: MAV-6379 Jira-Issue: MAV-6740
This adds a Ruby wrapper to the OS Places API and a simple Rake task that can be used to smoke test the integration. This will be used in the future to support fetching the latitude and longitude position of locations. Jira-Issue: MAV-6379 Jira-Issue: MAV-6740
It keeps things simpler if most of our dependencies are managed using the same tool (Mise). Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This is necessary to be able to use Yamllint. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This ensures that when importing patients via the the immunisation import, if not matched with an existing patient, we create a new one. These new patients were being assigned a `local_authority_mhclg_code` meaning that when later imported via a cohort or class list, they appear to have an import issue. Jira-Issue: MAV-5740
There are a number of patients in an invalid state due to the fact that we previously didn't set `local_authority_mhclg_code` when importing due to immunisation imports. Jira-Issue: MAV-5740
This allows it to run one more time after deployment to ensure we catch any patients who may be missing a value. Jira-Issue: MAV-5740
This explains how to install the dependencies for the service using Homebrew on macOS and Debian-based Linux distributions. Co-Authored-By: Chris Roos <chris@seagul.co.uk> Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
We're going to change to recommend install PostgreSQL and Redis from system packages rather than Mise as it causes problems building these manually, particularly with PostGIS. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This allows the application to connect to the database over a Unix socket, and is also no longer needed by CI. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This adapter allows us to take advantage of features of PostGIS which we can use for spatial querying. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
To be able to run the tests against a version of PostgreSQL that supports PostGIS. I've also renamed a few of the jobs and steps to make them clearer what they do. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This ensures that the PostGIS extension is enabled, allowing us to use features such as spatial queries and point columns. Jira-Issue: MAV-6379 Jira-Issue: MAV-6706
This adds a new spatial point column named position to the locations table. We will populate this column with longitude and latitude coordinates of each location, to support future work related to users being able to search for their nearest clinic to book in to. Jira-Issue: MAV-6379 Jira-Issue: MAV-6707
Change the wording of the email sent to parents confirming that they have consented and that triage is needed. The new wording removes the implication that the parent will be contacted under all circumstances.
Jira-Issue: MAV-6739
Mirror the DB-layer guarantee (column becomes NOT NULL in the following commit) with a model-layer validation. The factory now derives purpose from its chosen template_id so existing specs continue to build valid records by default. Jira-Issue: MAV-6739
Each template file now carries its own purpose symbol (matching the NotifyLogEntry.purposes enum) next to template_id. This is data only — nothing reads it yet. The following commit wires NotifyTemplate to surface the field; the commit after replaces the substring dispatcher in NotifyLogEntry with the template-declared value. Jira-Issue: MAV-6739
Jira-Issue: MAV-6739
Keeps this historical migration self-contained and runnable if replayed after NotifyLogEntry.purpose_for_template_name is removed in the following commit. Jira-Issue: MAV-6739
Delivery jobs now record `purpose: template.purpose` when creating a NotifyLogEntry. NotifyLogEntry.purpose_for_template_name and its spec go away. Jira-Issue: MAV-6739
…cludes Remove unnecessary includes in `PatientStatusUpdater`
…-set-on-import Ensure local authority is set on new patients after immunisation import
Add Ordnance Survey API keys and secrets
Bumps [aws-sdk-cloudwatch](https://github.com/aws/aws-sdk-ruby) from 1.133.0 to 1.134.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-cloudwatch/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-cloudwatch dependency-version: 1.134.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…sdk-rds-1.311.0
…sdk-cloudwatch-1.134.0
Bumps [rubocop-govuk](https://github.com/alphagov/rubocop-govuk) from 5.2.0 to 5.2.1. - [Changelog](https://github.com/alphagov/rubocop-govuk/blob/main/CHANGELOG.md) - [Commits](alphagov/rubocop-govuk@v5.2.0...v5.2.1) --- updated-dependencies: - dependency-name: rubocop-govuk dependency-version: 5.2.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…cop-govuk-5.2.1 Bump rubocop-govuk from 5.2.0 to 5.2.1
…delete-validate Validate new `Patient` foreign key relationships
…-export Add sidekiq job for careplus export
This adds a security disclosure document based on the NHS software engineering quality framework template.
Add `SECURITY.md`
This simplifies the Sidekiq Scheduler configuration by using the job names as the schedule names. This simple refactor should make it easier to change this configuration in the future without needing to keep the job names and schedule names in sync. Sidekiq Scheduler will automatically use the schedule name as the job class if it's not otherwise specified. Jira-Issue: MAV-7107
Use job names as schedule names
Teams can now see why parents refused consent (personal choice, gelatine concern, etc.) and how consent was submitted (website, phone, paper).
Bumps [propshaft](https://github.com/rails/propshaft) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/rails/propshaft/releases) - [Commits](rails/propshaft@v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: propshaft dependency-version: 1.3.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Add consent refusal reason and route breakdowns
Bumps the bundler group with 1 update in the / directory: [erb](https://github.com/ruby/erb). Updates `erb` from 6.0.3 to 6.0.4 - [Release notes](https://github.com/ruby/erb/releases) - [Changelog](https://github.com/ruby/erb/blob/master/NEWS.md) - [Commits](ruby/erb@v6.0.3...v6.0.4) --- updated-dependencies: - dependency-name: erb dependency-version: 6.0.4 dependency-type: indirect dependency-group: bundler ... Signed-off-by: dependabot[bot] <support@github.com>
…shaft-1.3.2 Bump propshaft from 1.3.1 to 1.3.2
…77e969a7b Bump erb from 6.0.3 to 6.0.4 in the bundler group across 1 directory
Allow end-to-end tests to trigger `EnqueueVaccinationsSearchInNHSJob`
directly rather than through the Sidekiq Scheduler's `/sidekiq/recurring-jobs/{name}`
URL.
Mirrors the existing `reporting_refresh` controller: `?wait=true` runs
`perform_now` and returns 200, otherwise enqueues with `perform_later`
and returns 202. Inherits the `:testing_api` Flipper / local-env gate
from `API::Testing::BaseController`.
…rch-job Add testing API endpoint to enqueue vaccinations search in NHS
…lus requests Jira-Issue: MAV-6232
…ng-careplus-url Ensure more descriptive error appears when URL for mock careplus service isn't set
…eporting Include withdrawn consents in consent reporting breakdowns
thomasleese
approved these changes
Apr 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.