Skip to content

Conversation

benilovj
Copy link
Contributor

No description provided.

bogsi17 and others added 30 commits July 18, 2025 15:05
* This prevents unlimited write access in case a running container gets compromised
* The directories where the app needs write access are mounted as volumes in the Dockerfile. In addition to the rails directories, the shell.sh script also needs write access to certain directories
* Drop invalid headers already at the load balancer instead of forwarding them to the applica
tion

Jira-Issue: MAV-1580
Thomas suggested a refactor which considerably shortened and clarified, as well as possibly improving performance
* This policy will periodically delete images older than 3 months

Jira-Issue: MAV-1582
Adds formatted address as a hint under school names on the class list import page, to help differentiate schools with identical names. This aims to prevent misselection, especially with increased number of schools on mavis for the flu programme.
* Adding the default security group to the terraform configuration will replace the existing default security group. This way, the ingress and egress of the existing one gets removed

Jira-Issue: MAV-1577
If a delivery site is selected, but the vaccine method means that
there's only one possible delivery site, we can ignore the provided
value.

This fixes a bug where if the user were to select injection and then
select a delivery site, but then go back and select nasal spray, the
delivery site for injection would still come through and it would be
invalid for nasal spray.

Jira-Issue: MAV-1656
In the prototype it's written as a singular, "Community clinic". Because
of how the sessions are created, this won't affect any existing ones in
production but it will for the next academic year.
This allows us to refactor the `Patient#triage_status` method to avoid
the need to support passing in both a `programme_id` and a `programme`.

Jira-Issue: MAV-267
Rather than relying on the database to set the value we can pass it in
to the create method. This is necessary to support tests which modify
the current time, ensuring the `sent_at` value reflects what we'd expect
in the test.

Jira-Issue: MAV-267
This ensures that when we update these status models to take in to
account the academic year, the email criteria will update automatically.

Jira-Issue: MAV-267
This adds a new concern which can be shared across a number of different
models where the records should be in some way associated with an
academic year based on one of the date/time fields of the model.

By having a single concern we avoid having duplicate code across the
individual models.

Jira-Issue: MAV-267
This adds a new column to all three patient status models (consent,
triage and vaccination) as we now need to be able to filter status by
specific academic years in various views across the service.

In the follow up commits various parts of the service will be amended to
support this new column.

Jira-Issue: MAV-267
With the new `academic_year` column that was added in the previous
commit we can now ensure that new status models are created using this
column.

Jira-Issue: MAV-267
This updates the three patient status models (consent, triage and
vaccination) to include the academic year when generating a status
response. In that way, only consents, triages and vaccination records
relevant to the current academic year are used to generate the status.

Jira-Issue: MAV-267
In any places where we're currently checking the status of the patient,
this updates it to take the current academic year in to account.

Jira-Issue: MAV-267
This updates the various scopes responsible for determining the status
of a patient to include an argument for the academic year to ensure the
right status is checked.

Jira-Issue: MAV-267
Bumps [with_advisory_lock](https://github.com/ClosureTree/with_advisory_lock) from 5.3.0 to 7.0.1.
- [Release notes](https://github.com/ClosureTree/with_advisory_lock/releases)
- [Changelog](https://github.com/ClosureTree/with_advisory_lock/blob/master/CHANGELOG.md)
- [Commits](ClosureTree/with_advisory_lock@with_advisory_lock/v5.3.0...with_advisory_lock/v7.0.1)

---
updated-dependencies:
- dependency-name: with_advisory_lock
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Some patients will receive a second flu dose and therefore we need to
increase the maximum dose sequence for the programme to allow that.

Jira-Issue: MAV-1666
Include academic year in status models
To `PatientSearchForm` to reflect the fact that this is only used for
filtering patients, whereas in a follow up commit we will be adding a
class that does similar but for searching through sessions.
To `AppPatientSearchFormComponent` since it's for use with the patient
search form, and we'll have a new component added in a later commit that
renders a similar component for searching sessions.
This allows us to use the `RequestSessionPersistable` concern in cases
where the key needs to be dynamic, for example in the search forms.
To `_clear` to make it clear (hehe) that this isn't an attribute related
to filtering in the search form and instead performs an action.
From the `RequestSessionPersistable` concern, as we'll be using this
concern in the search form which doesn't require a current user to be
specified.
This updates the `PatientSearchForm` to store attributes in the session
using the `RequestSessionPersistable` concern to avoid code duplication.
thomasleese and others added 22 commits July 28, 2025 13:13
To `appear_in_programmes` to make it clearer what this scope
represents. Initially I was going to go with `eligible_in_programmes`
but I wanted to avoid the word eligible as it's not quite correct.

For example, a patient may be eligible for a programme based on their
year group, but only exist in sessions where that programme isn't
administered at their year group, therefore they remain eligible, but
wouldn't show in those sessions for that programme.

Jira-Issue: MAV-1293
Jira-Issue: MAV-1429
This makes a number of improvements to the `appear_in_programmes`
scopes on the `Patient` and `PatientSession` models:

- The `PatientSession` scope no longer needs an academic year. This is
  because the academic year can come from the associated session. This
  prevents the scope being used for a different academic year to the
  session which could cause unusual bugs.
- The logic of the `PatientSession` scope has been fixed to ensure that
  patients who are eligible for a programme based on their year group,
  but not eligible in a particular session (perhaps because the year
  groups aren't administered at the location), don't appear in the
  query. This fixes the possibility of a patient appearing incorrectly
  if they go to a school, but aren't eligible for any of the programmes
  administered at the school. Specifically, this fixes an issue where
  now that multiple sessions can exist for the same location, if a
  patient was eligible in one of the sessions they were appearing in
  all of them regardless of programme.
- Both scopes have been updated to ensure that patients who aren't in
  any sessions for any particular academic year are excluded from the
  results, ensuring they don't appear in the wrong place. For example,
  at the moment, if a patient was eliglble for a programme one year,
  they'll continue to show in all subsequent academic years.

The method `Session#programmes_for` already worked like this, but a
mismatch between the scope and this method meant it was possible for
a patient to appear in a session, but with no eligible programmes,
leading to bugs such as this one:

https://good-machine.sentry.io/issues/6770236206/

Jira-Issue: MAV-1293
Jira-Issue: MAV-1429
Clarify `in_programmes` scope on patients and patient sessions
* The ECS service ignores task definition changes and must be explicitly redeployed to run with the updated task definition. This wasn't an issue earlier when the old infrastructure was recreated from scratch during every deployment.
* The DB secret needs always to be fetched, regardless of whether the DB got redeployed or not
Until we show sessions for both the current and the next academic year,
we need to onboard organisations on to the current academic year
otherwise no sessions are visible.

This is mostly only relevant for the tests at the moment.
Onboard organisations in to current academic year
Bumps [pg](https://github.com/ged/ruby-pg) from 1.5.9 to 1.6.0.
- [Changelog](https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md)
- [Commits](ged/ruby-pg@v1.5.9...v1.6.0)

---
updated-dependencies:
- dependency-name: pg
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
It used to have `.downcase` as part of the text in the UI
This fixes the logic on when to show a vaccination record to ensure
that all vaccination records from previous academic years for
non-seasonal programmes show.

The previous logic meant that historical vaccination records would be
hidden as the logic was reversed.

Jira-Issue: MAV-1691
Ensure historical vaccination records are shown on patient pages
Fix the text in the "Select a default batch" header
Bumps [dry-cli](https://github.com/dry-rb/dry-cli) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/dry-rb/dry-cli/releases)
- [Changelog](https://github.com/dry-rb/dry-cli/blob/main/CHANGELOG.md)
- [Commits](dry-rb/dry-cli@v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: dry-cli
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
This fixes the confirmation labels shown as part of the verbal consent
journey to match the designs in the prototype. Specifically the
`DraftConsent` model was missing locale strings for the `response`
attribute.

Jira-Issue: MAV-1693
Fix content of verbal consent labels
Move academic year default from argument definition to call method to ensure Rails is loaded before accessing AcademicYear model
This fixes the confirmation labels shown as part of the verbal consent
journey to match the designs in the prototype.

The original commit that attempted to fix this
8ba778e didn't work correctly.

Jira-Issue: MAV-1693
Remove academic year default assignment in CreateSession CLI command
@benilovj benilovj requested review from a team as code owners July 30, 2025 14:36
Copy link

@tvararu tvararu temporarily deployed to mavis-pr-4112 July 30, 2025 14:40 Inactive
@benilovj benilovj enabled auto-merge July 30, 2025 14:43
@benilovj benilovj merged commit de3864d into main Jul 30, 2025
52 of 53 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.

8 participants