コード例 #1
0
 def clean_guardian_and_dob(self):
     """Validates if guardian is required based in AGE_IS_ADULT
     set on the model.
     """
     cleaned_data = self.cleaned_data
     guardian = cleaned_data.get("guardian_name")
     dob = cleaned_data.get("dob")
     consent_datetime = timezone.localtime(
         cleaned_data.get("consent_datetime",
                          self.instance.consent_datetime))
     rdelta = relativedelta(consent_datetime.date(), dob)
     if rdelta.years < self.consent_config.age_is_adult:
         if not guardian:
             raise forms.ValidationError(
                 "Subject's age is {}. Subject is a minor. Guardian's "
                 "name is required with signature on the paper "
                 "document.".format(formatted_age(dob, consent_datetime)),
                 params={"age": formatted_age(dob, consent_datetime)},
                 code="invalid",
             )
     if rdelta.years >= self.consent_config.age_is_adult and guardian:
         if guardian:
             raise forms.ValidationError(
                 "Subject's age is {}. Subject is an adult. Guardian's "
                 "name is NOT required.".format(
                     formatted_age(dob, consent_datetime)),
                 params={"age": formatted_age(dob, consent_datetime)},
                 code="invalid",
             )
コード例 #2
0
 def description(self, obj=None):
     context = {
         "subject_identifier":
         obj.rx.registered_subject.subject_identifier,
         "initials":
         obj.rx.registered_subject.initials,
         "gender":
         obj.rx.registered_subject.gender,
         "age_in_years":
         formatted_age(born=obj.rx.registered_subject.dob,
                       reference_dt=get_utcnow()),
         "refill_date":
         obj.refill_date,
         "visit_code":
         obj.visit_code,
         "visit_code_sequence":
         obj.visit_code_sequence,
         "number_of_days":
         obj.number_of_days,
         "remaining":
         obj.remaining,
         "total":
         obj.total,
         "SHORT_DATE_FORMAT":
         settings.SHORT_DATE_FORMAT,
         "rx_refill":
         obj,
     }
     return render_to_string(
         f"edc_pharmacy/bootstrap{settings.EDC_BOOTSTRAP}/rx_refill_description.html",
         context,
     )
コード例 #3
0
 def age(self):
     model_obj = getattr(self, self.model_attr)
     return formatted_age(self.registered_subject.dob,
                          reference_dt=model_obj.report_datetime)
コード例 #4
0
 def formatted_age_at_consent(self):
     """Returns a string representation.
     """
     return formatted_age(self.dob, self.consent_datetime)