Esempio n. 1
0
    def get_subject_screening(self, report_datetime=None, eligibility_datetime=None, **kwargs):
        data = {
            "screening_consent": YES,
            "age_in_years": 25,
            "clinic_type": HIV_CLINIC,
            "gender": MALE,
            "hospital_identifier": "13343322",
            "initials": "EW",
            "lives_nearby": YES,
            "qualifying_condition": YES,
            "report_datetime": report_datetime or get_utcnow(),
            "requires_acute_care": NO,
            "selection_method": RANDOM_SAMPLING,
            "unsuitable_agreed": NOT_APPLICABLE,
            "unsuitable_for_study": NO,
        }
        data.update(**kwargs)
        form = SubjectScreeningForm(data=data, instance=None)
        form.save()

        subject_screening = SubjectScreening.objects.get(
            screening_identifier=form.instance.screening_identifier
        )

        self.assertTrue(subject_screening.eligible)

        if eligibility_datetime:
            subject_screening.eligibility_datetime = eligibility_datetime
            subject_screening.save()

        return subject_screening
Esempio n. 2
0
    def test_screening_invalid(self):

        data = self.get_data()

        responses = dict(age_in_years=17, )

        for k, v in responses.items():
            with self.subTest(k=v):
                data.update({k: v})
                form = SubjectScreeningForm(data=data, instance=None)
                form.is_valid()
                self.assertIn("age_in_years", form._errors)
    def test_screening_ok(self):

        form = SubjectScreeningForm(data=self.get_data(), instance=None)
        form.is_valid()
        self.assertEqual(form._errors, {})
        form.save()
        self.assertTrue(SubjectScreening.objects.all()[0].eligible)
    def test_screening_ineligible(self):

        data = self.get_data()

        responses = dict(
            qualifying_condition=NO,
            lives_nearby=NO,
            requires_acute_care=YES,
        )

        for k, v in responses.items():
            with self.subTest(k=v):
                data.update({k: v})
                form = SubjectScreeningForm(data=data, instance=None)
                form.is_valid()
                self.assertEqual(form._errors, {})
                form.save()

                self.assertFalse(SubjectScreening.objects.all()[0].eligible)
    def test_screening_unsuitable(self):

        data = self.get_data()

        data.update(unsuitable_for_study=YES)
        form = SubjectScreeningForm(data=data, instance=None)
        form.is_valid()
        self.assertIn("reasons_unsuitable", form._errors)

        data.update(reasons_unsuitable="blah blah")
        form = SubjectScreeningForm(data=data, instance=None)
        form.is_valid()
        self.assertIn("unsuitable_agreed", form._errors)

        data.update(unsuitable_agreed=NO)
        form = SubjectScreeningForm(data=data, instance=None)
        form.is_valid()
        self.assertIn("unsuitable_agreed", form._errors)

        data.update(unsuitable_agreed=YES)
        form = SubjectScreeningForm(data=data, instance=None)
        form.is_valid()
        form.save()
        self.assertFalse(SubjectScreening.objects.all()[0].eligible)