def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) self.lab_helper.setup_site_labs() class RequisitionForm(RequisitionFormMixin, FormValidatorMixin, forms.ModelForm): form_validator_cls = RequisitionFormValidator class Meta: fields = "__all__" model = SubjectRequisition self.form_cls = RequisitionForm self.subject_identifier = "12345" SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow(), identity="1111111", confirm_identity="1111111", visit_schedule_name="visit_schedule", schedule_name="schedule", ) appointment = Appointment.objects.get(visit_code="1000") self.subject_visit = SubjectVisit.objects.create( appointment=appointment, report_datetime=get_utcnow(), reason=SCHEDULED)
def test_schedule_bad_crf_model(self): site_visit_schedules._registry = {} visit_schedule = VisitSchedule( name="visit_schedule", verbose_name="Visit Schedule", offstudy_model="visit_schedule_app.subjectoffstudy", death_report_model="visit_schedule_app.deathreport", ) schedule = Schedule( name="schedule", onschedule_model="visit_schedule_app.onschedule", offschedule_model="visit_schedule_app.offschedule", appointment_model="edc_appointment.appointment", consent_model="visit_schedule_app.subjectconsent", ) crfs = FormsCollection( Crf(show_order=10, model="blah.CrfOne"), Crf(show_order=20, model="blah.CrfTwo"), Crf(show_order=30, model="blah.CrfThree"), ) visit = Visit( code="1000", rbase=relativedelta(days=0), rlower=relativedelta(days=0), rupper=relativedelta(days=6), facility_name="default", crfs=crfs, timepoint=1, ) schedule.add_visit(visit) visit_schedule.add_schedule(schedule) site_visit_schedules.register(visit_schedule) errors = visit_schedule_check(app_configs=django_apps.get_app_configs()) self.assertEqual(len(errors), 1) self.assertEqual("edc_visit_schedule.visits", errors[0].id)
def setUp(self): self.visit_schedule_name = 'visit_schedule' self.schedule_name = 'schedule' site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_visit_schedules.register(visit_schedule2) self.subject_identifier = '111111111' self.subject_identifiers = [ self.subject_identifier, '222222222', '333333333', '444444444'] self.consent_datetime = get_utcnow() - relativedelta(weeks=4) for subject_identifier in self.subject_identifiers: subject_consent = SubjectConsent.objects.create( subject_identifier=subject_identifier, identity=subject_identifier, confirm_identity=subject_identifier, consent_datetime=self.consent_datetime, dob=get_utcnow() - relativedelta(years=25)) Enrollment.objects.create( subject_identifier=subject_consent.subject_identifier, schedule_name=self.schedule_name, report_datetime=self.consent_datetime, facility_name='default') self.subject_consent = SubjectConsent.objects.get( subject_identifier=self.subject_identifier, dob=get_utcnow() - relativedelta(years=25)) enrollment = Enrollment.objects.get( subject_identifier=self.subject_identifier) self.schedule = enrollment.schedule
def setUp(self): self.visit_schedule_name = "visit_schedule1" self.schedule_name = "schedule1" site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule1) site_visit_schedules.register(visit_schedule2) self.schedule1 = visit_schedule1.schedules.get("schedule1") self.schedule2 = visit_schedule2.schedules.get("schedule2") self.subject_identifier = "111111111" self.subject_identifiers = [ self.subject_identifier, "222222222", "333333333", "444444444", ] self.consent_datetime = get_utcnow() - relativedelta(weeks=4) dob = get_dob(age_in_years=25, now=self.consent_datetime) for subject_identifier in self.subject_identifiers: subject_consent = SubjectConsent.objects.create( subject_identifier=subject_identifier, identity=subject_identifier, confirm_identity=subject_identifier, consent_datetime=self.consent_datetime, dob=dob, ) self.schedule1.put_on_schedule( subject_identifier=subject_consent.subject_identifier, onschedule_datetime=self.consent_datetime, ) self.subject_consent = SubjectConsent.objects.get( subject_identifier=self.subject_identifier, dob=dob)
def setUp(self): import_holidays() self.panel_one = Panel.objects.create(name='one') register_to_site_reference_configs() site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule( visit_models={ 'edc_appointment.appointment': 'edc_metadata.subjectvisit'}) self.subject_identifier = '1111111' subject_consent = SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow()) _, self.schedule = site_visit_schedules.get_by_onschedule_model( 'edc_metadata.onschedule') self.schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=subject_consent.consent_datetime) self.appointment = Appointment.objects.get( subject_identifier=self.subject_identifier, visit_code=self.schedule.visits.first.code) self.subject_visit = SubjectVisit.objects.create( appointment=self.appointment, subject_identifier=self.subject_identifier, reason=SCHEDULED)
def setUp(self): self.panel_one = Panel.objects.create(name="one") site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) register_to_site_reference_configs() site_reference_configs.register_from_visit_schedule( visit_models={ "edc_appointment.appointment": "edc_metadata.subjectvisit" }) self.subject_identifier = "1111111" subject_consent = SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow()) _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata.onschedule") self.schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=subject_consent.consent_datetime, ) self.appointment = Appointment.objects.get( subject_identifier=self.subject_identifier, visit_code=self.schedule.visits.first.code, ) self.subject_visit = SubjectVisit.objects.create( appointment=self.appointment, subject_identifier=self.subject_identifier, reason=SCHEDULED, )
def setUp(self): self.user = User.objects.create_superuser("user_login", "*****@*****.**", "pass") site_labs._registry = {} site_labs.loaded = False site_labs.register(lab_profile=lab_profile) register_to_site_reference_configs() site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule( visit_models={ "edc_appointment.appointment": "edc_model_admin.subjectvisit" }) self.subject_identifier = "101-12345" SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow(), identity="1111111", confirm_identity="1111111", visit_schedule_name="visit_schedule", schedule_name="schedule", ) appointment = Appointment.objects.get(visit_code="1000") self.subject_visit = SubjectVisit.objects.create( appointment=appointment, report_datetime=get_utcnow(), reason=SCHEDULED)
def setUp(self): import_holidays() register_to_site_reference_configs() for name in ['one', 'two', 'three', 'four', 'five', 'six']: Panel.objects.create(name=name) site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule( visit_models={ 'edc_appointment.appointment': 'edc_metadata.subjectvisit'}) self.subject_identifier = '1111111' self.assertEqual(CrfMetadata.objects.all().count(), 0) self.assertEqual(RequisitionMetadata.objects.all().count(), 0) subject_consent = SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow()) _, self.schedule = site_visit_schedules.get_by_onschedule_model( 'edc_metadata.onschedule') self.schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=subject_consent.consent_datetime) self.appointment = Appointment.objects.get( subject_identifier=self.subject_identifier, visit_code=self.schedule.visits.first.code) self.subject_visit = SubjectVisit.objects.create( appointment=self.appointment, subject_identifier=self.subject_identifier, reason=SCHEDULED)
def setUp(self): load_list_data( list_data=list_data, model_name="edc_visit_tracking.subjectvisitmissedreasons", ) self.subject_identifier = "12345" self.helper = self.helper_cls( subject_identifier=self.subject_identifier) crfs = FormsCollection( Crf(show_order=1, model="edc_metadata.crfone", required=True), Crf(show_order=2, model="edc_metadata.crftwo", required=True), Crf(show_order=3, model="edc_metadata.crfthree", required=True), Crf(show_order=4, model="edc_metadata.crffour", required=True), Crf(show_order=5, model="edc_metadata.crffive", required=True), ) crfs_missed = FormsCollection( Crf( show_order=1, model="edc_visit_tracking.subjectvisitmissed", required=True, ), ) visit_schedule1 = VisitSchedule( name="visit_schedule1", offstudy_model="edc_visit_tracking.subjectoffstudy", death_report_model="edc_visit_tracking.deathreport", locator_model="edc_locator.subjectlocator", ) schedule1 = Schedule( name="schedule1", onschedule_model="edc_visit_tracking.onscheduleone", offschedule_model="edc_visit_tracking.offscheduleone", consent_model="edc_visit_tracking.subjectconsent", appointment_model="edc_appointment.appointment", ) visits = [] for index in range(0, 4): visits.append( Visit( code=f"{index + 1}000", title=f"Day {index + 1}", timepoint=index, rbase=relativedelta(days=index), rlower=relativedelta(days=0), rupper=relativedelta(days=6), requisitions=[], crfs=crfs, crfs_missed=crfs_missed, allow_unscheduled=True, )) for visit in visits: schedule1.add_visit(visit) visit_schedule1.add_schedule(schedule1) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_visit_tracking.subjectvisit" })
def setUp(self): import_holidays() self.helper = Helper() site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule1) self.path = mkdtemp() self.helper.create_crfs(5) self.subject_visit = SubjectVisit.objects.all()[0]
def setUpClass(cls): super().setUpClass() import_holidays() site_consents.registry = {} site_consents.register(v1) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) Site.objects.create(id=10, name="edc", domain="edc.example.com")
def setUp(self): import_holidays() self.subject_identifier = '12345' self.helper = self.helper_cls( subject_identifier=self.subject_identifier) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2)
def setUp(self): site_consents.registry = {} self.study_open_datetime = Protocol().study_open_datetime self.study_close_datetime = Protocol().study_close_datetime site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) self.subject_identifier = "12345" super().setUp()
def setUp(self): v1_consent = Consent( "visit_schedule_app.subjectconsent", version="1", start=Protocol().study_open_datetime, end=Protocol().study_close_datetime, age_min=18, age_is_adult=18, age_max=64, gender=[MALE, FEMALE], ) import_holidays() site_consents.registry = {} site_consents.register(v1_consent) self.visit_schedule = VisitSchedule( name="visit_schedule", verbose_name="Visit Schedule", offstudy_model="visit_schedule_app.subjectoffstudy", death_report_model="visit_schedule_app.deathreport", ) self.schedule = Schedule( name="schedule", onschedule_model="visit_schedule_app.onschedule", offschedule_model="visit_schedule_app.offschedule", appointment_model="edc_appointment.appointment", consent_model="visit_schedule_app.subjectconsent", ) visit = Visit( code="1000", rbase=relativedelta(days=0), rlower=relativedelta(days=0), rupper=relativedelta(days=6), timepoint=1, ) self.schedule.add_visit(visit) self.visit_schedule.add_schedule(self.schedule) site_visit_schedules._registry = {} site_visit_schedules.register(self.visit_schedule) site_reference_configs.registry = {} site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "visit_schedule_app.subjectvisit" }) self.subject_consent = SubjectConsent.objects.create( subject_identifier="12345", consent_datetime=get_utcnow() - relativedelta(seconds=1), dob=date(1995, 1, 1), identity="11111", confirm_identity="11111", ) self.subject_identifier = self.subject_consent.subject_identifier
def setUp(self): self.subject_identifier = '12345' site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2) self.helper = self.helper_cls( subject_identifier=self.subject_identifier, now=arrow.Arrow.fromdatetime( datetime(2017, 1, 7), tzinfo='UTC').datetime)
def __init__(self, now=None, subject_identifier=None): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule1) self.now = now or get_utcnow() self.subject_identifier = subject_identifier or uuid.uuid4().hex self.consent_and_put_on_schedule() self.subject_visit = None self.thing_one = None self.thing_two = None
def setUp(self): import_holidays() site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) # note crfs in visit schedule are all set to REQUIRED by default. _, self.schedule = site_visit_schedules.get_by_onschedule_model( 'edc_metadata.onschedule')
def setUp(self): import_holidays() SubjectVisit.visit_sequence_cls = VisitSequence self.subject_identifier = '12345' self.helper = self.helper_cls( subject_identifier=self.subject_identifier) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2) self.helper.consent_and_put_on_schedule()
def setUp(self): import_holidays() self.subject_identifier = '12345' self.helper = self.helper_cls( subject_identifier=self.subject_identifier) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2) self.helper.consent_and_put_on_schedule() self.appointment = Appointment.objects.all( ).order_by('timepoint_datetime')[0]
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) register_to_site_reference_configs() site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_metadata_rules.subjectvisit" }) _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata_rules.onschedule")
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) register_to_site_reference_configs() # note crfs in visit schedule are all set to REQUIRED by default. _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata.onschedule" )
def setUp(self): self.subject_identifier = "12345" self.helper = self.helper_cls( subject_identifier=self.subject_identifier) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_visit_tracking.subjectvisit" })
def test_requires_consent(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) consent_object_factory(start=self.study_open_datetime, end=self.study_close_datetime) consent_obj = baker.make_recipe( "edc_consent.subjectconsent", subject_identifier=self.subject_identifier, consent_datetime=self.study_open_datetime + relativedelta(months=1), ) subject_visit = SubjectVisit.objects.create(subject_identifier=self.subject_identifier) self.assertRaises( SiteConsentError, CrfOne.objects.create, subject_visit=subject_visit, subject_identifier="12345", report_datetime=self.study_close_datetime + relativedelta(months=1), ) subject_visit = SubjectVisit.objects.create(subject_identifier=self.subject_identifier) try: CrfOne.objects.create( subject_visit=subject_visit, subject_identifier="12345", report_datetime=self.study_open_datetime + relativedelta(months=1), ) except (SiteConsentError, NotConsentedError) as e: self.fail(f"Exception unexpectedly raised. Got {e}") consent_obj.delete() subject_visit = SubjectVisit.objects.create(subject_identifier=self.subject_identifier) self.assertRaises( NotConsentedError, CrfOne.objects.create, subject_visit=subject_visit, subject_identifier="12345", report_datetime=self.study_open_datetime + relativedelta(months=1), ) self.assertRaises( NotConsentedError, SubjectLocator.objects.create, subject_identifier="12345", report_datetime=self.study_open_datetime - relativedelta(months=1), ) # delete singleton action item # created for the subject locator ActionItem.objects.all().delete() try: SubjectLocator.objects.create( subject_identifier="12345", report_datetime=self.study_open_datetime + relativedelta(months=1), ) except NotConsentedError as e: self.fail(f"NotConsentedError unexpectedly raised. Got {e}")
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) self.user = User.objects.create(username="******", is_staff=True, is_active=True) self.subject_identifier = "1234" for permission in Permission.objects.filter( content_type__app_label="edc_fieldsets"): self.user.user_permissions.add(permission) RegisteredSubject.objects.create( subject_identifier=self.subject_identifier)
def setUp(self): self.user = get_user_model().objects.create_superuser( "user_login", "*****@*****.**", "pass") site_labs._registry = {} site_labs.loaded = False site_labs.register(lab_profile=lab_profile) site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) populate_visit_schedule()
def setUp(self): self.user = User.objects.create_superuser("user_login", "*****@*****.**", "pass") site_labs._registry = {} site_labs.loaded = False site_labs.register(lab_profile=lab_profile) register_to_site_reference_configs() site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "review_dashboard_app.subjectvisit" }) self.subject_identifiers = ["101-40990028-3", "101-40990029-4"] for subject_identifier in self.subject_identifiers: subject_consent = SubjectConsent.objects.create( subject_identifier=subject_identifier, consent_datetime=get_utcnow(), identity=subject_identifier, confirm_identity=subject_identifier, dob=get_utcnow() - relativedelta(years=25), ) for schedule in visit_schedule.schedules.values(): for visit in schedule.visits.values(): appointment = Appointment.objects.create( appt_datetime=get_utcnow(), subject_identifier=subject_identifier, visit_schedule_name="visit_schedule", schedule_name="schedule", timepoint=visit.timepoint, visit_code=visit.code, user_created="user_login", ) SubjectVisit.objects.create( appointment=appointment, subject_identifier=subject_identifier, reason=SCHEDULED, user_created="user_login", ) # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( "review_dashboard_app.onschedule") schedule.put_on_schedule( subject_identifier=subject_consent.subject_identifier, onschedule_datetime=subject_consent.consent_datetime, )
def setUp(self): SubjectVisit.visit_sequence_cls = VisitSequence self.subject_identifier = "12345" self.helper = self.helper_cls( subject_identifier=self.subject_identifier) site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule1) site_visit_schedules.register(visit_schedule=visit_schedule2) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_visit_tracking.subjectvisit" }) self.helper.consent_and_put_on_schedule()
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_metadata_rules.subjectvisit" }) # note crfs in visit schedule are all set to REQUIRED by default. _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata_rules.onschedule") site_metadata_rules.registry = OrderedDict() site_metadata_rules.register(rule_group_cls=CrfRuleGroupGender)
def test_already_registered(self): site_visit_schedules._registry = {} schedule = Schedule( name="schedule", onschedule_model="visit_schedule_app.onschedule", offschedule_model="visit_schedule_app.offschedule", appointment_model="edc_appointment.appointment", consent_model="visit_schedule_app.subjectconsent", ) self.visit_schedule.add_schedule(schedule) site_visit_schedules.register(self.visit_schedule) self.assertRaises( AlreadyRegisteredVisitSchedule, site_visit_schedules.register, self.visit_schedule, )
def register_visit_schedule(self, facility_name=None): """Overwrite facility name on each visit and register the modified visit_schedule. """ visit_schedule = deepcopy(visit_schedule1) for schedule_name, schedule in visit_schedule.schedules.items(): visit_collection = VisitCollection() for k, v in schedule.visits.items(): v.facility_name = facility_name visit_collection.update({k: v}) schedule.visits = visit_collection visit_schedule.schedules[schedule_name] = schedule site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule) visit_schedule = site_visit_schedules.get_visit_schedule( visit_schedule.name) for schedule_name, schedule in visit_schedule.schedules.items(): for k, v in schedule.visits.items(): self.assertEqual(v.facility_name, facility_name)
def test_visit_schedule_ok(self): site_visit_schedules._registry = {} visit_schedule = VisitSchedule( name="visit_schedule", verbose_name="Visit Schedule", offstudy_model="visit_schedule_app.subjectoffstudy", death_report_model="visit_schedule_app.deathreport", ) schedule = Schedule( name="schedule", onschedule_model="visit_schedule_app.onschedule", offschedule_model="visit_schedule_app.offschedule", appointment_model="edc_appointment.appointment", consent_model="visit_schedule_app.subjectconsent", ) visit_schedule.add_schedule(schedule) site_visit_schedules.register(visit_schedule) errors = visit_schedule_check(app_configs=django_apps.get_app_configs()) self.assertEqual(len(errors), 0)
def setUp(self): self.panel_one = Panel.objects.create(name=panel_one.name) self.panel_two = Panel.objects.create(name=panel_two.name) self.panel_three = Panel.objects.create(name=panel_three.name) self.panel_four = Panel.objects.create(name=panel_four.name) self.panel_five = Panel.objects.create(name=panel_five.name) self.panel_six = Panel.objects.create(name=panel_six.name) self.panel_seven = Panel.objects.create(name=panel_seven.name) self.panel_eight = Panel.objects.create(name=panel_eight.name) site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "edc_metadata_rules.subjectvisit" }) _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata_rules.onschedule") site_metadata_rules.registry = OrderedDict()
def register_visit_schedule(self, facility_name=None): """Overwrite facility name on each visit and register the modified visit_schedule. """ visit_schedule = deepcopy(visit_schedule1) for schedule_name, schedule in visit_schedule.schedules.items(): visit_collection = VisitCollection() for k, v in schedule.visits.items(): v.facility_name = facility_name visit_collection.update({k: v}) schedule.visits = visit_collection visit_schedule.schedules[schedule_name] = schedule site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule=visit_schedule) visit_schedule = site_visit_schedules.get_visit_schedule( visit_schedule.name) for schedule_name, schedule in visit_schedule.schedules.items(): for k, v in schedule.visits.items(): self.assertEqual(v.facility_name, facility_name)
def setUp(self): self.user = User.objects.create(username="******") for name in [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ]: Panel.objects.create(name=name) site_visit_schedules._registry = {} site_visit_schedules.loaded = False site_visit_schedules.register(visit_schedule) register_to_site_reference_configs() site_reference_configs.register_from_visit_schedule( visit_models={ "edc_appointment.appointment": "edc_metadata.subjectvisit" }) self.subject_identifier = "1111111" self.assertEqual(CrfMetadata.objects.all().count(), 0) self.assertEqual(RequisitionMetadata.objects.all().count(), 0) subject_consent = SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow()) _, self.schedule = site_visit_schedules.get_by_onschedule_model( "edc_metadata.onschedule") self.schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=subject_consent.consent_datetime, ) self.appointment = Appointment.objects.get( subject_identifier=self.subject_identifier, visit_code=self.schedule.visits.first.code, ) self.subject_visit = SubjectVisit.objects.create( appointment=self.appointment, subject_identifier=self.subject_identifier, reason=SCHEDULED, )
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) self.subject_identifier = "1111111111" self.lab_helper.setup_site_labs() self.panel = self.lab_helper.panel SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow(), identity="1111111", confirm_identity="1111111", visit_schedule_name="visit_schedule", schedule_name="schedule", site=Site.objects.get_current(), ) appointment = Appointment.objects.get(visit_code="1000") self.subject_visit = SubjectVisit.objects.create( appointment=appointment, report_datetime=get_utcnow(), reason=SCHEDULED)
def test_bad_offschedule1(self): site_visit_schedules.loaded = False site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule6) SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow() - relativedelta(years=2), ) OnScheduleSix.objects.create( subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow() - relativedelta(years=2), ) self.assertRaises( ImproperlyConfigured, BadOffSchedule1.objects.create, subject_identifier=self.subject_identifier, my_offschedule_date=get_utcnow(), )
def test_offschedule_custom_field_datetime(self): site_visit_schedules.loaded = False site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule5) SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow() - relativedelta(years=2), ) OnScheduleFive.objects.create( subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow() - relativedelta(years=2), ) offschedule_datetime = get_utcnow() - relativedelta(years=1) obj = OffScheduleFive.objects.create( subject_identifier=self.subject_identifier, my_offschedule_datetime=offschedule_datetime, ) self.assertEqual(obj.my_offschedule_datetime, offschedule_datetime) self.assertEqual(obj.offschedule_datetime, offschedule_datetime)
def test_offschedule_no_meta_defaults_offschedule_field(self): site_visit_schedules.loaded = False site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule7) SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow() - relativedelta(years=2), ) OnScheduleSeven.objects.create( subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow() - relativedelta(years=2), ) offschedule_datetime = get_utcnow() obj = OffScheduleSeven.objects.create( subject_identifier=self.subject_identifier, offschedule_datetime=offschedule_datetime, ) self.assertEqual(obj.offschedule_datetime, offschedule_datetime)
def setUp(self): site_visit_schedules.loaded = False site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) site_reference_configs.register_from_visit_schedule(visit_models={ "edc_appointment.appointment": "visit_schedule_app.subjectvisit" }) v1_consent = Consent( "visit_schedule_app.subjectconsent", version="1", start=Protocol().study_open_datetime, end=Protocol().study_close_datetime, age_min=18, age_is_adult=18, age_max=64, gender=[MALE, FEMALE], ) self.subject_identifier = "1234" site_consents.registry = {} site_consents.register(v1_consent)
def test_requires_consent(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) self.consent_object_factory() consent_obj = mommy.make_recipe( 'edc_consent.subjectconsent', subject_identifier=self.subject_identifier, consent_datetime=self.study_open_datetime + relativedelta(months=1)) self.assertRaises( SiteConsentError, CrfOne.objects.create, subject_identifier='12345', report_datetime=get_utcnow()) try: CrfOne.objects.create( subject_identifier='12345', report_datetime=self.study_open_datetime + relativedelta(months=1)) except (SiteConsentError, NotConsentedError) as e: self.fail(f'Exception unexpectedly raised. Got {e}') consent_obj.delete() self.assertRaises( NotConsentedError, CrfOne.objects.create, subject_identifier='12345', report_datetime=self.study_open_datetime + relativedelta(months=1)) self.assertRaises( NotConsentedError, SubjectLocator.objects.create, subject_identifier='12345', report_datetime=self.study_open_datetime - relativedelta(months=1)) try: SubjectLocator.objects.create( subject_identifier='12345', report_datetime=self.study_open_datetime + relativedelta(months=1)) except NotConsentedError as e: self.fail(f'NotConsentedError unexpectedly raised. Got {e}')
def setUp(self): site_visit_schedules._registry = {} site_visit_schedules.register(visit_schedule) super().setUp()