Skip to content

Commit 2ecb470

Browse files
committed
Treat already had vaccination records as administered
This ensures that patients who have already had the vaccine are treated as administered, which means we don't move them to clinic when sessions are closed, for example.
1 parent e398f33 commit 2ecb470

File tree

2 files changed

+38
-12
lines changed

2 files changed

+38
-12
lines changed

app/models/patient.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def vaccinated?(programme)
246246
# TODO: This logic doesn't work for vaccinations that require multiple doses.
247247

248248
vaccination_records.any? do
249-
_1.administered? && _1.programme_id == programme.id
249+
(_1.administered? || _1.already_had?) && _1.programme_id == programme.id
250250
end
251251
end
252252

spec/models/session_spec.rb

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -466,21 +466,47 @@
466466
let!(:vaccinated_patient) do
467467
create(:patient, :vaccinated, session:, programme:)
468468
end
469-
let!(:unvaccinated_patient) { create(:patient, session:, programme:) }
470469

471-
it "adds the unvaccinated patients to the generic clinic session" do
472-
location = create(:location, :generic_clinic, organisation:)
473-
generic_clinic_session =
474-
create(:session, location:, organisation:, programme:)
470+
let(:generic_clinic) { create(:location, :generic_clinic, organisation:) }
471+
let(:generic_clinic_session) do
472+
create(:session, location: generic_clinic, organisation:, programme:)
473+
end
475474

476-
expect(generic_clinic_session.patients).to be_empty
475+
context "with an unvaccinated patient" do
476+
let!(:unvaccinated_patient) { create(:patient, session:, programme:) }
477477

478-
close!
478+
it "adds the unvaccinated patient to the generic clinic session" do
479+
expect(generic_clinic_session.patients).to be_empty
479480

480-
expect(generic_clinic_session.patients).to include(unvaccinated_patient)
481-
expect(generic_clinic_session.patients).not_to include(
482-
vaccinated_patient
483-
)
481+
close!
482+
483+
expect(generic_clinic_session.patients).to include(
484+
unvaccinated_patient
485+
)
486+
expect(generic_clinic_session.patients).not_to include(
487+
vaccinated_patient
488+
)
489+
end
490+
end
491+
492+
context "when a patient has already had the vaccine" do
493+
let!(:already_had_patient) { create(:patient, session:, programme:) }
494+
495+
before do
496+
create(
497+
:vaccination_record,
498+
:not_administered,
499+
:already_had,
500+
patient: already_had_patient,
501+
programme:
502+
)
503+
end
504+
505+
it "doesn't add the patient to the generic clinic session" do
506+
expect(generic_clinic_session.patients).to be_empty
507+
close!
508+
expect(generic_clinic_session.patients).to be_empty
509+
end
484510
end
485511
end
486512
end

0 commit comments

Comments
 (0)