@@ -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