Skip to content

Commit f04cd79

Browse files
authored
Merge pull request #5700 from nhsuk/fix-vaccine-seed
Fix `vaccine:seed` for MMR(V)
2 parents e3773b0 + e6eb8eb commit f04cd79

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

lib/tasks/vaccines.rake

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace :vaccines do
1010
all_data.each_value do |data|
1111
next if type.present? && data["type"] != type
1212

13-
programme = Programme.find(data["type"])
13+
programme_type = data.fetch("type")
1414

1515
vaccine =
1616
Vaccine.find_or_initialize_by(
@@ -20,34 +20,35 @@ namespace :vaccines do
2020
vaccine.brand = data["brand"]
2121
vaccine.contains_gelatine = data["contains_gelatine"]
2222
vaccine.discontinued = data.fetch("discontinued", false)
23+
vaccine.disease_types = data["disease_types"]
2324
vaccine.dose_volume_ml = data["dose_volume_ml"]
2425
vaccine.manufacturer = data["manufacturer"]
2526
vaccine.method = data["method"]
26-
vaccine.upload_name = data["upload_name"]
2727
vaccine.nivs_name = data["nivs_name"]
28+
vaccine.programme_type = programme_type
2829
vaccine.snomed_product_term = data["snomed_product_term"]
29-
vaccine.disease_types = data["disease_types"]
30-
vaccine.programme = programme
30+
vaccine.upload_name = data["upload_name"]
3131

32-
vaccine.side_effects = side_effects_for(programme, data["method"])
32+
vaccine.side_effects = side_effects_for(programme_type, data["method"])
3333

3434
vaccine.save!
3535

3636
next if vaccine.health_questions.exists?
3737

3838
ActiveRecord::Base.transaction do
39-
if programme.flu?
39+
case programme_type
40+
when "flu"
4041
create_flu_health_questions(vaccine)
41-
elsif programme.hpv?
42+
when "hpv"
4243
create_hpv_health_questions(vaccine)
43-
elsif programme.menacwy?
44+
when "menacwy"
4445
create_menacwy_health_questions(vaccine)
45-
elsif programme.mmr?
46+
when "mmr"
4647
create_mmr_health_questions(vaccine)
47-
elsif programme.td_ipv?
48+
when "td_ipv"
4849
create_td_ipv_health_questions(vaccine)
4950
else
50-
raise UnsupportedProgramme, programme
51+
raise UnsupportedProgramme, Programme.find(programme_type)
5152
end
5253
end
5354
end
@@ -84,8 +85,9 @@ namespace :vaccines do
8485
end
8586
end
8687

87-
def side_effects_for(programme, method)
88-
if programme.flu?
88+
def side_effects_for(programme_type, method)
89+
case programme_type
90+
when "flu"
8991
if method == "nasal"
9092
%w[runny_blocked_nose headache tiredness loss_of_appetite]
9193
else
@@ -100,7 +102,7 @@ def side_effects_for(programme, method)
100102
unwell
101103
]
102104
end
103-
elsif programme.hpv?
105+
when "hpv"
104106
%w[
105107
swelling
106108
headache
@@ -111,7 +113,7 @@ def side_effects_for(programme, method)
111113
loss_of_appetite
112114
unwell
113115
]
114-
elsif programme.menacwy?
116+
when "menacwy"
115117
%w[
116118
drowsy
117119
feeling_sick
@@ -123,9 +125,9 @@ def side_effects_for(programme, method)
123125
swelling
124126
unwell
125127
]
126-
elsif programme.mmr?
128+
when "mmr"
127129
%w[swollen_glands raised_blotchy_rash]
128-
elsif programme.td_ipv?
130+
when "td_ipv"
129131
%w[
130132
drowsy
131133
feeling_sick
@@ -137,7 +139,7 @@ def side_effects_for(programme, method)
137139
unwell
138140
]
139141
else
140-
raise UnsupportedProgramme, programme
142+
raise UnsupportedProgramme, Programme.find(programme_type)
141143
end
142144
end
143145

0 commit comments

Comments
 (0)