class VaccinateForm
Attributes
Public Instance Methods
Source
# File app/forms/vaccinate_form.rb, line 57 def delivery_site if vaccine_method.present? return nil if vaccine_method == "none" available_delivery_sites = Vaccine::AVAILABLE_DELIVERY_SITES.fetch(vaccine_method) if available_delivery_sites.length == 1 return available_delivery_sites.first end end super end
Calls superclass method
Source
# File app/forms/vaccinate_form.rb, line 52 def delivery_site=(value) # This is an optional field and ensures that "" comes in as nil. super(value.presence) end
Calls superclass method
Source
# File app/forms/vaccinate_form.rb, line 96 def has_patient_specific_direction? patient.has_patient_specific_direction?( academic_year:, programme_type: programme.type, team: current_user.selected_team, vaccine_method: ) end
Source
# File app/forms/vaccinate_form.rb, line 109 def healthcare_assistant? current_user.is_healthcare_assistant? end
Source
# File app/forms/vaccinate_form.rb, line 87 def healthcare_assistant_using_national? healthcare_assistant? && session.national_protocol_enabled? && vaccine_method == "injection" end
Source
# File app/forms/vaccinate_form.rb, line 82 def healthcare_assistant_using_psd? healthcare_assistant? && session.psd_enabled? && has_patient_specific_direction? end
Source
# File app/forms/vaccinate_form.rb, line 72 def protocol if healthcare_assistant_using_psd? "psd" elsif healthcare_assistant_using_national? "national" else "pgd" end end
Source
# File app/forms/vaccinate_form.rb, line 92 def requires_supplied_by_user_id? !current_user.show_in_suppliers && !healthcare_assistant_using_psd? end
Source
# File app/forms/vaccinate_form.rb, line 113 def save(draft_vaccination_record:) return nil if invalid? return false unless pre_screening.save draft_vaccination_record.clear_attributes if administered? draft_vaccination_record.outcome = "administered" if delivery_site.nil? draft_vaccination_record.delivery_method = delivery_method draft_vaccination_record.delivery_site = Vaccine::AVAILABLE_DELIVERY_SITES.fetch(vaccine_method).first elsif delivery_site != "other" draft_vaccination_record.delivery_method = delivery_method draft_vaccination_record.delivery_site = delivery_site end end draft_vaccination_record.batch_id = todays_batch&.id draft_vaccination_record.dose_sequence = dose_sequence draft_vaccination_record.full_dose = true draft_vaccination_record.identity_check_confirmed_by_other_name = identity_check_confirmed_by_other_name draft_vaccination_record.identity_check_confirmed_by_other_relationship = identity_check_confirmed_by_other_relationship draft_vaccination_record.identity_check_confirmed_by_patient = identity_check_confirmed_by_patient draft_vaccination_record.location_id = session.location_id unless session.generic_clinic? draft_vaccination_record.patient_id = patient.id draft_vaccination_record.performed_at = Time.current draft_vaccination_record.performed_by_user = current_user draft_vaccination_record.performed_ods_code = organisation.ods_code draft_vaccination_record.programme = programme draft_vaccination_record.protocol = protocol draft_vaccination_record.session_id = session.id draft_vaccination_record.source = "service" draft_vaccination_record.supplied_by_user_id = supplied_by_user_id || psd_created_by_user_id draft_vaccination_record.uuid = generate_uuid draft_vaccination_record.save # rubocop:disable Rails/SaveBang end
Source
# File app/forms/vaccinate_form.rb, line 105 def supplied_by_users current_user.selected_team.users.show_in_suppliers end