Skip to content

Conversation

thomasleese
Copy link
Contributor

Testing has finished on this release.

thomasleese and others added 30 commits August 6, 2025 20:35
This adds a new column to the team model which represents the
"workgroup" identifier of the team. This will be used when
authenticating via CIS2 to select which teams the user has access to.

Jira-Issue: MAV-1280
When onboarding a new team we need to ensure the workgroup is provided
as it's a required field on teams.

Jira-Issue: MAV-1280
This updates various places where the team was being identified by the
ODS code of it's organisation to the workgroup. This is because a single
organisation can have multiple teams, and the workgroup is the way of
identifying them individually.

Jira-Issue: MAV-1280
This removes two Rake tasks which were added temporarily to support the
archive feature, but have since been run in production and therefore can
be safely removed.
This will prevent the vaccination records from being sent in the first place, and also trigger a sync whenever `Patient.validated_at` is edited
This is to cover the end-to-end journey of a patient being marked as invalid by a PDS search, in particular to check that the Imms API record is deleted as a result
Remove temporary archive Rake tasks
Prevent invalidated patients' records from being sent to the Imms API
PR #4095 made a change to the `Generate::CohortImports` class, but it
was merged in without rebasing, and therefore I wasn't aware that the
change broke some tests that were subsequently added.
Fix tests following independent merges
This renames the "Session outcomes" tab to "Children" and moves it
immediately to the right of the "Overview" tab. The intention behind
this change is to make this the tab that users use to find children in a
session as we will be hiding patients from the consent tab in the
future.

Jira-Issue: MAV-1679
When viewing patients in a session from the "Register" or the "Children"
tabs, we should also be showing their overall programme outcome to make
it clear that a patient may still be in the school, but has already been
vaccinated in a previous year.

Jira-Issue: MAV-1679
If the patient is already vaccinated, even if it happened in a different
session, the attendance buttons should be hidden to indicate that
nothing is needed for this patient.

Jira-Issue: MAV-1679
This updates the "Consent" tab on a session page to hide patients who
don't need consent. This can occur because the patient is already
vaccinated for the programme this year, and therefore should no longer
be shown on this tab.

Instead they can continue to be found in the "Session outcomes" tab
(which is shortly to be renamed to "Children").

Jira-Issue: MAV-1679
This is the default naming convention assumed by ActiveRecord. When
using a concern that is loaded before the self.table_name is ran, using
a non-standard table name breaks access to the table.
…ts-shown

Improve how patients already vaccinated appear in sessions
Rename `Triage` table from `triage` to `triages`
Even when a child was vaccinated for these programmes, the health
information still expires. New consent must be sought for the next
academic year. In fact, seasonal programmes are the reason we introduced
expiry of health information in the first place.

A custom iterator on the AcademicYear class is made to avoid the linter
failing on .all.each as this chaining is an anti-pattern when used on
ActiveRecords. https://rails.rubystyle.guide/#find-each
…vity-log

Show expired flu consents in activity log
This adds a new set of classes (and refactors how the `Status`-prefixed
models work) to use these new classes. The reason to do this is so that
the logic to determine the status of a patient can be used outside of
the model classes themselves. More specifically, we can use them as part
of generating statuses, as a few of the statuses are interdependent.

For example, at the moment to determine the triage status you need to
konw the vaccination status and the consent status.

Similarly, this commit will be followed up by a commit that uses the
session status to determine the overall programme status.

Jira-Issue: MAV-1679
This adds a column to the patient vaccination status table that will
contain the latest session status, allowing it to be displayed next to
the programme status wherever that is shown.

Jira-Issue: MAV-1679
This makes it so that when updating the overall vaccination status of a
patient, we also update the latest session status, so it can be
displayed next to the overall status.

Jira-Issue: MAV-1679
When viewing a programme outcome, we want to show the latest session
outcome next to it, so users understand the reason behind the patient
having a particular status.

For example, if a patient has not yet been vaccinated, because they were
unwell during the session, we show that label next to the overall
outcome.

Jira-Issue: MAV-1679
…o-programme

Show latest session status next to programme
When historic vaccination records were uploaded, their status would show incorrectly, because `notify_parents` was `nil`. This makes the check explicit for `false`.

Also add tests for this status
Fix logic to decide which status text to show
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@v4...v5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
thomasleese and others added 24 commits August 11, 2025 07:23
These tests weren't working because they set up a session in 3 weeks
time, and that meant when running the tests after today (the 11th
August), the sessions would be set up for a different academic year to
the consent requests and other associated models created today.

This fixes the tests by specifying a time and running the tests within a
frozen time.
Set up for end-to-end testing of rollover in training
Fix specs for consent and invitation jobs
…user

Add token fields and relation to user
This reverts commit 3800808.

We've finished testing QA with the preparation period off so we can
re-enable it now.
When importing GP practices or schools this ensures that we're not
loading the same CSV file twice, slightly improving performance of the
commands.
This fixes an issue where because the progress bar was being memoised in
the module, rather than a class instance, the progress bar would be
re-used across different feature tests leading to a warning message
about the total count being incorrect.
Reset progress bar between feature test runs
This adds a new section to the patient page showing which
programmes the patient is eligible for at which time and
their vaccination status if it exists.

Jira-Issue: MAV-1516
This adds a number of new models which weren't being handled in this
endpoint.
…nt-page

Show eligible programmes on patient page
…-to-patients-page

Link missing nhs numbers overview to patients page
This shouldn't be shown in sessions because you won't ever see patients
who have aged out of the programme in sessions. The original intention
behind the design was to show it only on the children page.

Currently if you try and use this filter you get an error message.

Sentry-Issue: 6803159132
Only show aged out filter in global child view
Switches patient show and log pages to use full-width layout
to better accommodate the eligible programmes table component.

The eligible programmes component (added in 95a175e) displays a
3-column table that requires more horizontal space to prevent text
wrapping. Design team confirmed full-width layout is appropriate
for these patient-focused pages.
Expand patient and activity pages to full width
Add documents explaining reporting app authentication
Revert "Turn off preparation period in QA"
@thomasleese thomasleese requested review from a team as code owners August 11, 2025 15:08
Copy link

@tvararu tvararu temporarily deployed to mavis-pr-4240 August 11, 2025 15:11 Inactive
@thomasleese thomasleese merged commit 1425070 into main Aug 11, 2025
47 checks passed
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.

7 participants