Skip to content

Commit e2adab7

Browse files
authored
Merge pull request #5798 from nhsuk/stop-using-patient-vaccination-status
Stop using `Patient::VaccinationStatus`
2 parents 6850362 + 532115d commit e2adab7

38 files changed

Lines changed: 96 additions & 456 deletions

app/components/app_activity_log_component.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,12 @@ def expiration_events
203203

204204
not_vaccinated_programmes =
205205
all_programmes.reject do |programme|
206-
patient.vaccination_status(programme:, academic_year:).vaccinated?
206+
patient.programme_status(programme, academic_year:).vaccinated?
207207
end
208208

209209
vaccinated_but_seasonal_programmes =
210210
all_programmes.select do |programme|
211-
patient.vaccination_status(programme:, academic_year:).vaccinated? &&
211+
patient.programme_status(programme, academic_year:).vaccinated? &&
212212
programme.seasonal?
213213
end
214214

app/components/app_triage_form_component.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ def fieldset_options
5353

5454
def patient_eligible_for_additional_dose?
5555
next_dose =
56-
patient.vaccination_status(
57-
programme: programme,
56+
patient.programme_status(
57+
programme,
5858
academic_year: session.academic_year
5959
).dose_sequence
6060

app/controllers/draft_sessions_controller.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def set_catch_up_patients_vaccinated_percentage
130130
@draft_session
131131
.patient_locations
132132
.where(patient: { birth_academic_year: birth_academic_years })
133-
.includes(patient: :vaccination_statuses)
133+
.includes(patient: :programme_statuses)
134134
.map(&:patient)
135135

136136
total_count = catch_up_patients.count
@@ -141,7 +141,7 @@ def set_catch_up_patients_vaccinated_percentage
141141
.programmes_for(patient:)
142142
.all? do |programme|
143143
if programme.is_catch_up?(year_group:)
144-
patient.vaccination_status(programme:, academic_year:).vaccinated?
144+
patient.programme_status(programme, academic_year:).vaccinated?
145145
else
146146
true
147147
end
@@ -415,13 +415,13 @@ def catch_up_year_group_has_high_unvaccinated_count?(programme, year_group)
415415
@draft_session
416416
.patient_locations
417417
.where(patient: { birth_academic_year: })
418-
.includes(patient: :vaccination_statuses)
418+
.includes(patient: :programme_statuses)
419419
.map(&:patient)
420420

421421
total_count = catch_up_patients.count
422422
vaccinated_count =
423423
catch_up_patients.count do |patient|
424-
patient.vaccination_status(programme:, academic_year:).vaccinated?
424+
patient.programme_status(programme, academic_year:).vaccinated?
425425
end
426426

427427
vaccinated_count < total_count / 2

app/forms/triage_form.rb

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,13 @@ def show_add_patient_specific_direction?(option)
9494
end
9595

9696
def next_mmr_dose_date
97-
vaccination_status = patient.vaccination_status(programme:, academic_year:)
97+
programme_status = patient.programme_status(programme, academic_year:)
9898

99-
first_dose_date =
100-
if vaccination_status.eligible? || vaccination_status.due?
101-
vaccination_status.latest_date
102-
end
103-
104-
(first_dose_date || Date.current) + 28.days
99+
if programme_status.cannot_vaccinate_delay_vaccination?
100+
programme_status.date
101+
elsif (first_dose_date = programme_status.date)
102+
(first_dose_date + 28.days).to_date
103+
end
105104
end
106105

107106
private
@@ -269,8 +268,8 @@ def associate_triage_with_vaccination_record(next_dose_delay_triage)
269268

270269
def patient_eligible_for_additional_dose?
271270
next_dose =
272-
patient.vaccination_status(
273-
programme: programme,
271+
patient.programme_status(
272+
programme,
274273
academic_year: session.academic_year
275274
).dose_sequence
276275

app/jobs/concerns/send_school_consent_notification_concern.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def patient_programmes_eligible_for_notification(session:)
1111
session
1212
.patient_locations
1313
.includes(
14-
patient: %i[consent_notifications consent_statuses vaccination_statuses]
14+
patient: %i[consent_notifications consent_statuses programme_statuses]
1515
)
1616
.find_each do |patient_location|
1717
patient = patient_location.patient
@@ -33,8 +33,7 @@ def get_programmes_that_need_consent(patient:, session:, programmes:)
3333
academic_year = session.academic_year
3434

3535
programmes.select do |programme|
36-
patient.consent_status(programme:, academic_year:).no_response? &&
37-
patient.vaccination_status(programme:, academic_year:).eligible?
36+
patient.programme_status(programme, academic_year:).needs_consent?
3837
end
3938
end
4039

app/jobs/send_clinic_initial_invitations_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def should_send_notification?(patient:, team:, academic_year:, programmes:)
5757
return if already_invited
5858

5959
programmes.any? do |programme|
60-
!patient.vaccination_status(programme:, academic_year:).vaccinated? &&
60+
!patient.programme_status(programme, academic_year:).vaccinated? &&
6161
!patient.consent_status(programme:, academic_year:).refused?
6262
end
6363
end

app/jobs/send_clinic_subsequent_invitations_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def should_send_notification?(patient:, team:, academic_year:, programmes:)
5757
return unless already_invited
5858

5959
programmes.any? do |programme|
60-
!patient.vaccination_status(programme:, academic_year:).vaccinated? &&
60+
!patient.programme_status(programme, academic_year:).vaccinated? &&
6161
!patient.consent_status(programme:, academic_year:).refused?
6262
end
6363
end

app/jobs/send_school_session_reminders_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def should_send_notification?(patient:, session:)
4747

4848
all_vaccinated =
4949
programmes.all? do |programme|
50-
patient.vaccination_status(programme:, academic_year:).vaccinated?
50+
patient.programme_status(programme, academic_year:).vaccinated?
5151
end
5252

5353
return false if all_vaccinated

app/lib/already_had_notification_sender.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def other_vaccination_records
6767
end
6868

6969
def would_still_be_vaccinated?
70-
# We're not using the existing `Patient::VaccinationStatus` instance here
70+
# We're not using the existing `Patient::ProgrammeStatus` instance here
7171
# because we want to know if the patient would still be vaccinated if we
7272
# took away the vaccination record in question, to know whether to send
7373
# the notification.

app/lib/govuk_notify_personalisation.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,9 @@ def mmr_second_dose_message
199199
return unless patient
200200
return unless mmr_programme
201201

202-
vaccination_status =
203-
patient.vaccination_status(programme: mmr_programme, academic_year:)
202+
programme_status = patient.programme_status(mmr_programme, academic_year:)
204203

205-
return "" if vaccination_status.vaccinated?
204+
return "" if programme_status.vaccinated?
206205

207206
[
208207
"## Your child still needs a second dose of the MMR vaccine",
@@ -262,15 +261,16 @@ def next_mmr_dose_date
262261
return if patient.nil?
263262
return if mmr_programme.nil?
264263

265-
vaccination_status =
266-
patient.vaccination_status(programme: mmr_programme, academic_year:)
264+
programme_status = patient.programme_status(mmr_programme, academic_year:)
267265

268-
first_dose_date =
269-
if vaccination_status.eligible? || vaccination_status.due?
270-
vaccination_status.latest_date
266+
date =
267+
if programme_status.cannot_vaccinate_delay_vaccination?
268+
programme_status.date
269+
elsif (first_dose_date = programme_status.date)
270+
(first_dose_date + 28.days).to_date
271271
end
272272

273-
(first_dose_date + 28.days).to_date.to_fs(:long) if first_dose_date
273+
date.to_fs(:long)
274274
end
275275

276276
def patient_eligible_for_additional_dose?
@@ -280,7 +280,7 @@ def patient_eligible_for_additional_dose?
280280
next_dose =
281281
patient
282282
.reload
283-
.vaccination_status(programme: mmr_programme, academic_year:)
283+
.programme_status(mmr_programme, academic_year:)
284284
.dose_sequence
285285

286286
next_dose == mmr_programme.maximum_dose_sequence

0 commit comments

Comments
 (0)