Skip to content

Commit 60198f9

Browse files
committed
Add Session#eligible_programmes_for
This adds a new method on the session class which can be used to determine the eligible programmes for a particular patient. This logic already exists in the service but is duplicates in a number of places, instead we can avoid that duplication and have the logic in a single method.
1 parent cbf7080 commit 60198f9

3 files changed

Lines changed: 7 additions & 6 deletions

File tree

app/models/note.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ class Note < ApplicationRecord
3333

3434
validates :body, presence: true, length: { maximum: 1000 }
3535

36-
def programmes
37-
session.programmes.select { it.year_groups.include?(year_group) }
38-
end
36+
def programmes = session.eligible_programmes_for(year_group:)
3937

4038
private
4139

app/models/patient_session.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,7 @@ def can_record_as_already_vaccinated?(programme:)
201201
!session.today? && patient.vaccination_status(programme:).none_yet?
202202
end
203203

204-
def programmes
205-
session.programmes.select { it.year_groups.include?(patient.year_group) }
206-
end
204+
def programmes = session.eligible_programmes_for(patient:)
207205

208206
def session_status(programme:)
209207
session_statuses.find { it.programme_id == programme.id } ||

app/models/session.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ def vaccine_methods
164164
programmes.flat_map(&:vaccine_methods).uniq.sort
165165
end
166166

167+
def eligible_programmes_for(patient: nil, year_group: nil)
168+
year_group ||= patient.year_group
169+
programmes.select { it.year_groups.include?(year_group) }
170+
end
171+
167172
def dates
168173
session_dates.map(&:value).compact
169174
end

0 commit comments

Comments
 (0)