def index
scope =
Patient
.joins(:patient_locations)
.where(
patient_locations: {
location: @location,
academic_year: @academic_year
}
)
.where(school: @location)
.includes_statuses
.includes(:clinic_notifications)
patients = @form.apply(scope)
respond_to do |format|
format.html { @pagy, @patients = pagy(patients) }
format.xlsx do
data =
Reports::OfflineExporter.from_patients(
patients,
team: current_team,
programmes: @location.programmes,
academic_year: @academic_year
)
location_name =
if (urn_and_site = @location.urn_and_site).present?
"#{@location.name} (#{urn_and_site})"
else
@location.name
end
filename =
"#{location_name} - exported on #{Date.current.to_fs(:long)}.xlsx"
send_data(data, filename:, disposition: "attachment")
end
end
end