Skip to content

Conversation

thomasleese
Copy link
Contributor

The testing is almost finished on this release, getting this PR ready to let the CI actions run.

thomasleese and others added 30 commits August 5, 2025 15:08
This refactors the method to use `slice` to get the email address, given
name and family name.

Jira-Issue: MAV-1353
This makes it so that when a user signs in using CIS2, we attach their
user to the organisation they signed in to. This is useful when being
able to display a list of users associated with an organisation.

It doesn't handle the situation where a user leaves an organisation,
however such users will no longer be able to sign in, and it could be
useful to have a record of previous users.

Specifically, this change helps us towards two improvements:

- Fixing a bug where no nurses are displayed in the offline spreadsheet.
- Add the ability to choose which nurse performed pre-screening and
  identity checks when a health care assistant administers the vaccine.

Jira-Issue: MAV-1353
This is going to be useful as start to build out delegation, even if
this role doesn't exist properly yet in CIS2.

Jira-Issue: MAV-1365
In Rack 3.2, this has been renamed to unprocessable_content and using
the old symbol is deprecated, which results in a warning message.

Although a future version of Rails will handle this for us
(rails/rails#53383) but we can also change the
symbol we use in our codebase to reduce the number of warnings happening
at the moment.
Attach users to organisations when signing in
Bumps [aws-sdk-accessanalyzer](https://github.com/aws/aws-sdk-ruby) from 1.75.0 to 1.76.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-accessanalyzer/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-accessanalyzer
  dependency-version: 1.76.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…ccessanalyzer-1.76.0

Bump aws-sdk-accessanalyzer from 1.75.0 to 1.76.0
This removes two unused organisation personalisation variables that are
no longer being used.

Jira-Issue: MAV-1280
This is no longer a suitable unique value for the generic clinics
because each team will have their own generic clinic, while the ODS code
will belong to the organisation at a higher level. Each organisation can
have many teams, therefore many generic clinics, so the ODS codes must
be left blank.

Jira-Issue: MAV-1280
This adds a new model that groups together multiple teams under the same
ODS code. For now this model is quite simple, but in the future we may
expand it with more columns.

Jira-Issue: MAV-1280
The ODS code no longer belongs on each team as some times will share the
same ODS code in the future. Instead, the ODS code can be found on the
related organisation model.

For now, there's no longer a unique identifier on each team. We will
need to add one to support logging in where we need to know which team
a user belongs to through their CIS2 workgroup.

At the moment we assume that each organisation only ever has one team,
but this won't always be the case and needs to be supported in a follow
up pull request.

Jira-Issue: MAV-1280
This adds a new model which will be used to represent a patient being
archived meaning that it should no longer appear in any sessions, but
should still be accessible from the global patients search.

Jira-Issue: MAV-1506
This adds two scopes to the patient model that can be used to find
patients in the two possible archived states for a particular
organisation.

Jira-Issue: MAV-1506
When viewing the patients for a particular organisation this updates the
policy to ensure that patients who have been archived are included in
the scope so they're shown in various parts of the service. Any where
that shouldn't show archived patients will then exclude those.

Jira-Issue: MAV-1506
When a patient is archived, this adds an entry to the activity log
matching the latest designs in the prototype.

Jira-Issue: MAV-1506
This adds two methods to the patient model allowing the archive state of
the patient to be determined.

Jira-Issue: MAV-1506
When marking a patient as deceased we should also attach an archive
reason to the patient so they remain part of the organisation(s) but no
longer appear in any child views.

Jira-Issue: MAV-1532
This updates the `PatientMerger` service class to handle merging
patients where either one of the patients, or both of the patients, are
archived. The logic works as follows:

- No patients archived, resulting patient is not archived
- One of the patients is archived, resulting patient is not archived
- Both of the patients are archived, resulting patient is archived

Jira-Issue: MAV-1506
This updates the content in the patient search which allows you to
selecting viewing only patients with a certain criteria. At the moment
it's only for patients with missing NHS numbers, but it will soon
include an option for archived patients.

Jira-Issue: MAV-1513
When viewing a list of patients with a search form this ensures that the
user has the option to view any archived patients that may exist.

Jira-Issue: MAV-1513
This feature has been replaced with the archive functionality that has
been added in the previous commits.

Jira-Issue: MAV-1506
This adds a new form which handles the logic related to displaying a
page that allows the user to merge two patient records.

The reason behind this refactor is that we need to support merging
patient records in the archive form.

Jira-Issue: MAV-1506
This adds a new form which handles the logic related to archiving a
patient, specifically choosing the type of archival and then performing
the right action accordingly.

Jira-Issue: MAV-1506
This adds a new controller and view to handle the feature allowing users
to archive patients using the `PatientArchiveForm` added in the previous
commit.

Jira-Issue: MAV-1506
This updates the logic around school moves to make it such that when a
patient moves out of an organisation they are archived with a suitable
reason, and similarly when a patient moves in to an organisation they
are unarchived.

Jira-Issue: MAV-1506
This adds a task which handles the migration of ensuring that patients
who have a date of death are marked as archived.

Jira-Issue: MAV-1532
This adds a task which handles the migration of ensuring that patients
who were previously removed from the cohort now appear as archived for
that organisation.

Jira-Issue: MAV-1515
thomasleese and others added 18 commits August 6, 2025 17:20
Fix `archive_moved_out_of_cohort_patients`
Previously the important notices weren't being ordered by the correct date variable
This acts as the inverse to `appear_in_programmes` and it allows us to
filter on patients who are in an organisation, but don't appear in any
sessions for any programmes.

Jira-Issue: MAV-1513
When viewing a list of programmes, by default we should hide any
patients who have aged out of the programmes. Instead, an option will be
provided to allow viewing patients who have aged out of the programmes.

Jira-Issue: MAV-1513
This adds a new filter that allows users to see patients who have aged
out of all the programmes, but may still be around from previous
academic years.

Jira-Issue: MAV-1513
Bumps [good_job](https://github.com/bensheldon/good_job) from 4.11.1 to 4.11.2.
- [Release notes](https://github.com/bensheldon/good_job/releases)
- [Changelog](https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md)
- [Commits](bensheldon/good_job@v4.11.1...v4.11.2)

---
updated-dependencies:
- dependency-name: good_job
  dependency-version: 4.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [aws-sdk-ec2](https://github.com/aws/aws-sdk-ruby) from 1.545.0 to 1.546.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-ec2/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-ec2
  dependency-version: 1.546.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…4.11.2

build(deps): bump good_job from 4.11.1 to 4.11.2
…c2-1.546.0

Bump aws-sdk-ec2 from 1.545.0 to 1.546.0
This is an effort to deduplicate the hardcoded values of the important notice text. In particular, this is triggered by the introduction of the notice for patients who don't want their parents notified after self-consent; this requires dynamic content.
Include vaccination records, and associated programmes in the high level patient query. This means that there no longer needs to be a database request for every patient when loading the Important notices page, because `PatientsHelper.patient_important_notices` can now work on all the patients entirely in memory
With longer text in an `AppStatusComponent`, the blue exclamation mark icon was getting smaller. This forces it to stay the same size, and not shrink
…n-notices

Show gillick-no-notify patients in important notices
Add filter to view children who have aged out
These are no longer specific for perf tests, and I found myself manually
adding the sizes and a timestamp, so it seems to make sense to automate
that.
Before this defaulted to A9A5A always. Now we can generate a cohort
import for any organisation that is in Mavis.
These were missing, but they're useful to ensure the cli command
continues to work.
@thomasleese thomasleese requested review from a team as code owners August 7, 2025 11:33
@tvararu tvararu temporarily deployed to mavis-pr-4206 August 7, 2025 11:40 Inactive
Copy link

sonarqubecloud bot commented Aug 7, 2025

@thomasleese thomasleese merged commit 9883eac into main Aug 7, 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.

5 participants