Skip to content

Commit 4fc90b7

Browse files
committed
Add vaccine method to offline spreadsheet
When viewing the offline spreadsheet we need to include the vaccine methods that the parent consented to.
1 parent ca74c7e commit 4fc90b7

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

app/lib/reports/export_formatters.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,15 @@ def clinic_name(location:, vaccination_record:)
3030
def consent_status(patient:, programme:, academic_year:)
3131
consent_status = patient.consent_status(programme:, academic_year:)
3232
if consent_status.given?
33-
"Consent given"
33+
if programme.has_multiple_vaccine_methods?
34+
vaccine_methods =
35+
consent_status.vaccine_methods.map do |method|
36+
Vaccine.human_enum_name(:method, method).downcase
37+
end
38+
"Consent given for #{vaccine_methods.to_sentence}"
39+
else
40+
"Consent given"
41+
end
3442
elsif consent_status.refused?
3543
"Consent refused"
3644
elsif consent_status.conflicts?

spec/lib/reports/offline_session_exporter_spec.rb

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ def validation_formula(worksheet:, column_name:, row: 1)
306306
end
307307
end
308308

309-
context "with lots of health answers" do
309+
context "with consent" do
310310
before do
311311
create(
312312
:consent,
@@ -315,6 +315,20 @@ def validation_formula(worksheet:, column_name:, row: 1)
315315
programme:,
316316
health_questions_list: ["First question?", "Second question?"]
317317
)
318+
create(
319+
:patient_consent_status,
320+
:given,
321+
patient:,
322+
programme:,
323+
academic_year:,
324+
vaccine_methods: %w[nasal injection]
325+
)
326+
end
327+
328+
it "includes the status" do
329+
expect(rows.first["CONSENT_STATUS"]).to eq(
330+
expected_consent_status
331+
)
318332
end
319333

320334
it "separates the answers by new lines" do
@@ -1028,6 +1042,9 @@ def validation_formula(worksheet:, column_name:, row: 1)
10281042
let(:programme) { create(:programme, :flu) }
10291043
let(:expected_programme) { "Flu" }
10301044
let(:expected_dose_sequence) { 1 }
1045+
let(:expected_consent_status) do
1046+
"Consent given for nasal spray and injection"
1047+
end
10311048

10321049
include_examples "generates a report"
10331050
end
@@ -1036,6 +1053,7 @@ def validation_formula(worksheet:, column_name:, row: 1)
10361053
let(:programme) { create(:programme, :hpv) }
10371054
let(:expected_programme) { "HPV" }
10381055
let(:expected_dose_sequence) { 1 }
1056+
let(:expected_consent_status) { "Consent given" }
10391057

10401058
include_examples "generates a report"
10411059
end
@@ -1044,6 +1062,7 @@ def validation_formula(worksheet:, column_name:, row: 1)
10441062
let(:programme) { create(:programme, :menacwy) }
10451063
let(:expected_programme) { "ACWYX4" }
10461064
let(:expected_dose_sequence) { nil }
1065+
let(:expected_consent_status) { "Consent given" }
10471066

10481067
include_examples "generates a report"
10491068
end
@@ -1052,6 +1071,7 @@ def validation_formula(worksheet:, column_name:, row: 1)
10521071
let(:programme) { create(:programme, :td_ipv) }
10531072
let(:expected_programme) { "3-in-1" }
10541073
let(:expected_dose_sequence) { nil }
1074+
let(:expected_consent_status) { "Consent given" }
10551075

10561076
include_examples "generates a report"
10571077
end

spec/lib/reports/programme_vaccinations_exporter_spec.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@
462462
expect(rows.first.to_hash).to include(
463463
"CONSENT_DETAILS" =>
464464
"Given by John Smith at 2024-01-01 12:05:20 +0000",
465-
"CONSENT_STATUS" => "Consent given",
465+
"CONSENT_STATUS" => expected_consent_status,
466466
"HEALTH_QUESTION_ANSWERS" =>
467467
consent
468468
.health_answers
@@ -563,24 +563,28 @@
563563

564564
context "Flu programme" do
565565
let(:programme) { create(:programme, :flu) }
566+
let(:expected_consent_status) { "Consent given for injection" }
566567

567568
include_examples "generates a report"
568569
end
569570

570571
context "HPV programme" do
571572
let(:programme) { create(:programme, :hpv) }
573+
let(:expected_consent_status) { "Consent given" }
572574

573575
include_examples "generates a report"
574576
end
575577

576578
context "MenACWY programme" do
577579
let(:programme) { create(:programme, :menacwy) }
580+
let(:expected_consent_status) { "Consent given" }
578581

579582
include_examples "generates a report"
580583
end
581584

582585
context "Td/IPV programme" do
583586
let(:programme) { create(:programme, :td_ipv) }
587+
let(:expected_consent_status) { "Consent given" }
584588

585589
include_examples "generates a report"
586590
end

0 commit comments

Comments
 (0)