Open
Conversation
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
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
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
This reduces the risk of supply chain attacks where the tag points to a different commit implicitly without us being aware. Jira-Issue: MAV-5897
…ic links on school page
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
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.
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
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.
…undle-link-mismatch Suppress warning for `immunization.target` mismatch
…tions Improve date validations on imports
Only consider today’s Gillick assessments as valid
April design review
Fix session layout
We've seen some evidence that the batching queries generated by `PatientStatusUpdater#update_programme_statuses!` are (at least sometimes) slow in production, potentially because of a bunch of sequential scans relating to JOINs generated by the call to `ActiveRecord::QueryMethods#includes`. The call to `#includes` is necessary in order to trigger eager loading of associations to avoid N+1 queries when calling `Patient::ProgrammeStatus#assign`. However, this is only relevant for the batch queries which make the model instances available within each batch; not for the batching queries which just work out which model IDs to include in a given batch. Thus we can simplify the batching queries without changing the overall behaviour by using `ActiveRecord::Batches#in_batches` [1] instead of `#find_in_batches` and moving the call to `#includes` onto the batch relation. Note that as per the `ActiveRecord::QueryMethods#includes` docs [2]: > A separate query is performed for each association, unless a join is required > by conditions. This means that the JOINs were only being generated on the batching queries when the patient scope included a condition, e.g. when associated with an `ImmunisationImport`. Given the instance of `PatientStatusUpdaterJob` scheduled overnight [3] uses the default arguments, its batching query is *unscoped* and thus it may not directly benefit from any performance improvements made by the changes in this commit. [1]: https://api.rubyonrails.org/v8.1.3/classes/ActiveRecord/Batches.html#method-i-in_batches [2]: https://api.rubyonrails.org/v8.1.3/classes/ActiveRecord/QueryMethods.html#method-i-includes [3]: https://github.com/NHSDigital/manage-vaccinations-in-schools/blob/6895ee514a018aaa507a460e332a32b3d9e8b6a1/config/sidekiq.yml#L70-L73 Co-authored-by: Chris Lowis <chris.lowis@gofreerange.com> Co-authored-by: Chris Roos <chris.roos@gofreerange.com>
Refactor PDS feature flags
Add programme status card
…atient-status-updater Simplify batching query in PatientStatusUpdater
Pin all GitHub Actions to commit SHAs for security
…nders Previously, HPV, doubles, flu, MMR(V) used separate templates for the first reminder and for second-and-beyond reminders. Those templates had only minor differences, which made them harder to maintain and increased the risk that improvements made to one version would not be applied to the other. This change updates reminder template selection so school consent reminders always use the unified consent_school_reminder_* templates, regardless of whether the reminder is the first one or a later one. Jira-Issue: MAV-2841
…r-templates Use one template for all school consent reminders and subsequent reminders
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from a89a83ec143615402a01f672b6e172b7b1875000 to ec61189d14ec14c8efccab744f656cffd0e33f37. - [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases) - [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md) - [Commits](aws-actions/configure-aws-credentials@a89a83e...ec61189) --- updated-dependencies: - dependency-name: aws-actions/configure-aws-credentials dependency-version: ec61189d14ec14c8efccab744f656cffd0e33f37 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [falcon](https://github.com/socketry/falcon) from 0.55.2 to 0.55.3. - [Release notes](https://github.com/socketry/falcon/releases) - [Changelog](https://github.com/socketry/falcon/blob/main/releases.md) - [Commits](socketry/falcon@v0.55.2...v0.55.3) --- updated-dependencies: - dependency-name: falcon dependency-version: 0.55.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [parallel_tests](https://github.com/grosser/parallel_tests) from 5.6.0 to 5.7.0. - [Changelog](https://github.com/grosser/parallel_tests/blob/master/CHANGELOG.md) - [Commits](grosser/parallel_tests@v5.6.0...v5.7.0) --- updated-dependencies: - dependency-name: parallel_tests dependency-version: 5.7.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…llel_tests-5.7.0
…xt/aws-actions/configure-aws-credentials-ec61189d14ec14c8efccab744f656cffd0e33f37 Bump aws-actions/configure-aws-credentials from a89a83ec143615402a01f672b6e172b7b1875000 to ec61189d14ec14c8efccab744f656cffd0e33f37
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](astral-sh/setup-uv@94527f2...37802ad) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: 37802adc94f370d6bfd71619e3f0bf239e1f3b78 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
…xt/astral-sh/setup-uv-37802adc94f370d6bfd71619e3f0bf239e1f3b78 Bump astral-sh/setup-uv from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78
Add columns for careplus namespace, username and password to team model
* Currently uses the mock service until access to the real service is granted * Sets the Careplus URL for each environment * Extracts logic to send requests into Careplus::Client Jira-Issue: MAV-5884
Add CLI tool which sends a given CSV to careplus service
Somehow we added the path to view cohort imports as '/cohort_imports'. Probably my fault, as usual. Jira-Issue: MAV-6734
thomasleese
approved these changes
Apr 17, 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.
/cohort_imports/:id->/cohort-imports/:idwith an added redirect in case anyone is passing these URLs around.MAV-6734