def clean(self): raise_if_clinical_review_does_not_exist(self.cleaned_data.get("subject_visit")) self.required_if_true( is_baseline(self.cleaned_data.get("subject_visit")), field_required="weight", inverse=False, ) self.required_if_true( is_baseline(self.cleaned_data.get("subject_visit")), field_required="height", inverse=False, ) self.required_if(YES, field="r1_taken", field_required="sys_blood_pressure_r1") self.required_if(NO, field="r1_taken", field_required="r1_reason_not_taken") self.required_if(YES, field="r1_taken", field_required="dia_blood_pressure_r1") self.validate_bp_reading( "sys_blood_pressure_r1", "dia_blood_pressure_r1", ) if self.cleaned_data.get("r2_taken") == NOT_REQUIRED and self.htn_initial_review: raise forms.ValidationError( {"r2_taken": "Invalid. Expected YES or NO. Patient is hypertensive."} ) self.required_if(NO, field="r2_taken", field_required="r2_reason_not_taken") self.required_if(YES, field="r2_taken", field_required="sys_blood_pressure_r2") self.required_if(YES, field="r2_taken", field_required="dia_blood_pressure_r2") self.validate_bp_reading( "sys_blood_pressure_r2", "dia_blood_pressure_r2", )
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) self.validate_care_delivery() self.validate_bp_reading( "sys_blood_pressure", "dia_blood_pressure", )
def clean(self): raise_if_clinical_review_does_not_exist(self.cleaned_data.get("subject_visit")) self.required_if(YES, field="stroke", field_required="stroke_date") self.required_if(YES, field="heart_attack", field_required="heart_attack_date") self.required_if(YES, field="renal_disease", field_required="renal_disease_date") self.required_if(YES, field="vision", field_required="vision_date") self.required_if(YES, field="numbness", field_required="numbness_date") self.required_if(YES, field="foot_ulcers", field_required="foot_ulcers_date") self.required_if(YES, field="complications", field_required="complications_other")
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) raise_if_both_ago_and_actual_date(cleaned_data=self.cleaned_data) self.required_if(DRUGS, field="managed_by", field_required="med_start_ago") if self.cleaned_data.get("med_start_ago") and self.cleaned_data.get( "dx_ago"): if estimated_date_from_ago( data=self.cleaned_data, ago_field="med_start_ago") < estimated_date_from_ago( data=self.cleaned_data, ago_field="dx_ago"): raise forms.ValidationError( {"med_start_ago": "Invalid. Cannot be before diagnosis."})
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) self.validate_care_delivery() art_init_date = art_initiation_date( subject_identifier=self.subject_identifier, report_datetime=self.report_datetime, ) self.applicable_if_true( not art_init_date, field_applicable="arv_initiated", applicable_msg="Subject was NOT previously reported as on ART.", not_applicable_msg="Subject was previously reported as on ART.", ) self.required_if(YES, field="arv_initiated", field_required="arv_initiation_actual_date")
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) self.date_not_before( "report_datetime", "appt_date", convert_to_date=True, ) appointment = self.cleaned_data.get("subject_visit").appointment appt_date = self.cleaned_data.get("appt_date") # TODO: confirm next appointment date logic for routine appointment if appointment.next: msg = None if (appointment.next.appt_status != NEW_APPT and appt_date != appointment.next.appt_datetime.date()): msg = f"Invalid. Expected {appointment.next.appt_datetime.date()}" elif appointment.next.next: if appt_date and appointment.next.next.appt_datetime.date(): if appt_date > appointment.next.next.appt_datetime.date(): msg = f"Invalid. Cannot be after {appointment.next.next.appt_datetime.date()} " if msg: raise forms.ValidationError({"appt_date": f"{msg}"})
def clean(self): super().clean() raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) raise_if_both_ago_and_actual_date(cleaned_data=self.cleaned_data) self.applicable_if(YES, field="receives_care", field_applicable="clinic") self.required_if(OTHER, field="clinic", field_required="clinic_other") self.required_if(YES, field="receives_care", field_required="arv_initiated") self.validate_art_initiation_date() self.required_if(YES, field="arv_initiated", field_required="has_vl") self.validate_viral_load() self.required_if(YES, field="arv_initiated", field_required="has_cd4") self.validate_cd4()
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) self.validate_care_delivery()
def clean(self): if self.cleaned_data.get("subject_visit"): raise_if_baseline(self.cleaned_data.get("subject_visit")) raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit")) self.validate_drawn_date_by_dx_date("hiv", "HIV infection")
def clean(self): raise_if_clinical_review_does_not_exist( self.cleaned_data.get("subject_visit"))