コード例 #1
0
    def clean(self):
        raise_if_clinical_review_does_not_exist(
            self.cleaned_data.get("subject_visit"))

        self.raise_if_both_ago_and_actual_date()
        if (self.subject_screening.clinic_type in [HIV_CLINIC]
                and self.cleaned_data.get("receives_care") != YES):
            raise forms.ValidationError({
                "receives_care":
                ("Patient was screened from an HIV clinic, expected `Yes`."),
            })

        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()
コード例 #2
0
ファイル: mixins.py プロジェクト: inte-africa-trial/inte-edc
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     self.not_required_if(NEVER,
                          field="last_missed_pill",
                          field_required="missed_pill_reason")
     self.m2m_other_specify(m2m_field="missed_pill_reason",
                            field_other="other_missed_pill_reason")
コード例 #3
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     raise_if_intervention_site_without_icc_registration()
     self.clean_health_messages_and_advice()
     self.clean_pharmacy_services()
     self.clean_managing_clinic_records_and_appointments()
     self.clean_laboratory_services()
コード例 #4
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",
     )
コード例 #5
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     self.raise_if_both_ago_and_actual_date()
     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 self.estimated_date_from_ago(
                 "med_start_ago") < self.estimated_date_from_ago("dx_ago"):
             raise forms.ValidationError(
                 {"med_start_ago": "Invalid. Cannot be before diagnosis."})
コード例 #6
0
    def clean(self):
        raise_if_clinical_review_does_not_exist(
            self.cleaned_data.get("subject_visit"))

        raise_if_intervention_site_without_icc_registration()

        self.clean_education()

        self.required_if(NO,
                         field="is_highest_earner",
                         field_required="highest_earner")

        self.clean_recv_drugs_by_duration("month")

        self.clean_non_drug_activities_by_duration("month")

        self.validate_other_specify(
            field="missed_routine_activities",
            other_specify_field="missed_routine_activities_other",
        )

        self.required_if(
            YES,
            field="lost_income",
            field_required="lost_income_amount",
        )

        self.applicable_if(YES,
                           field="childcare",
                           field_applicable="childcare_source")

        self.validate_other_specify(
            field="childcare_source",
            other_specify_field="childcare_source_other")

        self.validate_other_specify(field="transport",
                                    other_specify_field="transport_other")

        self.clean_recv_drugs_by_duration("today")

        self.clean_non_drug_activities_by_duration("today")

        self.required_if(YES,
                         field="health_insurance",
                         field_required="health_insurance_cost")

        self.required_if(YES,
                         field="patient_club",
                         field_required="patient_club_cost")
コード例 #7
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"
     )
コード例 #8
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",
        )
コード例 #9
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")
コード例 #10
0
    def clean(self):
        raise_if_clinical_review_does_not_exist(
            self.cleaned_data.get("subject_visit"))

        raise_if_intervention_site_without_icc_registration()

        self.clean_education()

        self.clean_recv_drugs_by_duration("month")

        self.clean_recv_drugs_by_duration("today")

        self.required_if(YES,
                         field="health_insurance",
                         field_required="health_insurance_cost")

        self.required_if(YES,
                         field="patient_club",
                         field_required="patient_club_cost")
コード例 #11
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")
コード例 #12
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(DM, "Diabetes", drawn_date_fld="glucose_date")
     self.validate_glucose_test()
コード例 #13
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
コード例 #14
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     self.required_if_true(
         icc_registered(
             report_datetime=self.cleaned_data.get("report_datetime")),
         field_required="integrated_clinic_appt_date",
     )
     self.date_not_before(
         "report_datetime",
         "integrated_clinic_appt_date",
         convert_to_date=True,
     )
     if not icc_registered(
             report_datetime=self.cleaned_data.get("report_datetime")):
         # hiv_clinic_appt_date
         condition = (
             self.clinic_type == HIV_CLINIC
             or HivInitialReview.objects.filter(
                 subject_visit__appointment__subject_identifier=self.
                 subject_identifier,
                 subject_visit__report_datetime__lte=self.cleaned_data.get(
                     "report_datetime"),
             ).exists())
         self.required_if_true(condition,
                               field_required="hiv_clinic_appt_date")
         self.date_not_before(
             "report_datetime",
             "hiv_clinic_appt_date",
             convert_to_date=True,
         )
         ncd_condition = (DmInitialReview.objects.filter(
             subject_visit__appointment__subject_identifier=self.
             subject_identifier,
             subject_visit__report_datetime__lte=self.cleaned_data.get(
                 "report_datetime"),
         ).exists() or HtnInitialReview.objects.filter(
             subject_visit__appointment__subject_identifier=self.
             subject_identifier,
             subject_visit__report_datetime__lte=self.cleaned_data.get(
                 "report_datetime"),
         ).exists())
         self.required_if_true(
             ncd_condition and self.clinic_type == NCD_CLINIC,
             field_required="ncd_clinic_appt_date",
         )
         self.date_not_before(
             "report_datetime",
             "ncd_clinic_appt_date",
             convert_to_date=True,
         )
         self.required_if_true(
             ncd_condition and self.clinic_type == DIABETES_CLINIC,
             field_required="dm_clinic_appt_date",
         )
         self.date_not_before(
             "report_datetime",
             "dm_clinic_appt_date",
             convert_to_date=True,
         )
         self.required_if_true(
             ncd_condition and self.clinic_type == HYPERTENSION_CLINIC,
             field_required="htn_clinic_appt_date",
         )
         self.date_not_before(
             "report_datetime",
             "htn_clinic_appt_date",
             convert_to_date=True,
         )
コード例 #15
0
 def clean(self):
     raise_if_clinical_review_does_not_exist(
         self.cleaned_data.get("subject_visit"))
     self.validate_care_delivery()
     self.validate_glucose_test()