def call
if Rails.env.production? && !@confirm_production_delete
raise ProductionDeletionError
end
ActiveRecord::Base.transaction do
delete_related(ArchiveReason)
delete_related(AttendanceRecord)
delete_related(ClinicNotification)
delete_related(ConsentNotification)
delete_related(Consent)
delete_related(GillickAssessment)
delete_related(ImportantNotice)
delete_related(Note)
delete_related(PatientChangeset)
delete_related(PatientLocation)
delete_related(PatientSpecificDirection)
delete_related(PreScreening)
delete_related(SchoolMove)
delete_related(SessionNotification)
delete_related(Triage)
delete_related(VaccinationRecord.with_discarded)
parent_ids =
Parent.joins(parent_relationships: :patient).merge(@patients).ids
delete_related(ParentRelationship)
Parent
.where(id: parent_ids)
.where
.missing(:parent_relationships)
.destroy_all
@patients.each(&:destroy)
end
end