Пример #1
0
    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",
        )
Пример #2
0
 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",
     )
Пример #3
0
 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")
Пример #4
0
 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."})
Пример #5
0
 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")
Пример #6
0
 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}"})
Пример #7
0
    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()
Пример #8
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     self.validate_care_delivery()
Пример #9
0
 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")
Пример #10
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))