@@ -11,22 +11,30 @@ def call
1111 vaccination_records_for_programme =
1212 vaccination_records . select { it . programme_id == programme . id }
1313
14- return true if vaccination_records_for_programme . any? ( &:already_had? )
15-
16- administered_records =
17- vaccination_records_for_programme . select ( &:administered? )
18-
19- if programme . menacwy?
20- administered_records . any? { patient . age ( now : it . performed_at ) >= 10 }
21- elsif programme . td_ipv?
22- administered_records . any? do
23- (
24- it . dose_sequence == programme . vaccinated_dose_sequence ||
25- ( it . dose_sequence . nil? && it . recorded_in_service? )
26- ) && patient . age ( now : it . performed_at ) >= 10
27- end
14+ if programme . flu?
15+ vaccination_records_for_programme
16+ . select { it . administered? || it . already_had? }
17+ . any? ( &:performed_this_academic_year? )
2818 else
29- administered_records . any?
19+ return true if vaccination_records_for_programme . any? ( &:already_had? )
20+
21+ administered_records =
22+ vaccination_records_for_programme . select ( &:administered? )
23+
24+ if programme . hpv?
25+ administered_records . any?
26+ elsif programme . menacwy?
27+ administered_records . any? { patient . age ( now : it . performed_at ) >= 10 }
28+ elsif programme . td_ipv?
29+ administered_records . any? do
30+ (
31+ it . dose_sequence == programme . vaccinated_dose_sequence ||
32+ ( it . dose_sequence . nil? && it . recorded_in_service? )
33+ ) && patient . age ( now : it . performed_at ) >= 10
34+ end
35+ else
36+ raise UnsupportedProgramme , programme
37+ end
3038 end
3139 end
3240
0 commit comments