def subject_consent_on_post_save(sender, instance, raw, created, **kwargs): """Creates an onschedule instance for this consented subject, if it does not exist. """ if not raw: if not created: _, schedule = site_visit_schedules.get_by_onschedule_model( "inte_prn.onschedule") schedule.refresh_schedule( subject_identifier=instance.subject_identifier) else: subject_screening = SubjectScreening.objects.get( screening_identifier=instance.screening_identifier) subject_screening.subject_identifier = instance.subject_identifier subject_screening.consented = True subject_screening.save_base( update_fields=["subject_identifier", "consented"]) # randomize # TODO: should get randomizer name "default" from model or Consent object site_randomizers.randomize( "default", subject_identifier=instance.subject_identifier, report_datetime=instance.consent_datetime, site=instance.site, user=instance.user_created, ) # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( "inte_prn.onschedule") schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=instance.consent_datetime, )
def subject_consent_on_post_save(sender, instance, raw, created, **kwargs): """Creates an onschedule instance for this consented subject, if it does not exist. """ if not raw: if not created: _, schedule = site_visit_schedules.get_by_onschedule_model( 'ambition_prn.onschedule') schedule.refresh_schedule( subject_identifier=instance.subject_identifier) else: subject_screening = SubjectScreening.objects.get( screening_identifier=instance.screening_identifier) subject_screening.subject_identifier = instance.subject_identifier subject_screening.consented = True subject_screening.save_base( update_fields=['subject_identifier', 'consented']) # randomize randomizer = Randomizer( subject_identifier=instance.subject_identifier, report_datetime=instance.consent_datetime, site=instance.site, user=instance.user_created) # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( 'ambition_prn.onschedule') schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=instance.consent_datetime) # create prescription prescription_model_cls = django_apps.get_model( 'edc_pharmacy.prescription') prescription_model_cls.objects.create( subject_identifier=randomizer.model_obj.subject_identifier, rando_sid=randomizer.model_obj.sid, rando_arm=randomizer.model_obj.drug_assignment) # create / delete action for reconsent if instance.completed_by_next_of_kin == YES: try: create_action_item( action_cls=ReconsentAction, subject_identifier=instance.subject_identifier) except SingletonActionItemError: pass else: try: delete_action_item( action_cls=ReconsentAction, subject_identifier=instance.subject_identifier) except ActionItemDeleteError: pass
def subject_consent_on_post_save(sender, instance, raw, created, **kwargs): """Creates an onschedule instance for this consented subject, if it does not exist. """ if not raw: if not created: _, schedule = site_visit_schedules.get_by_onschedule_model( "ambition_prn.onschedule" ) schedule.refresh_schedule(subject_identifier=instance.subject_identifier) else: subject_screening = SubjectScreening.objects.get( screening_identifier=instance.screening_identifier ) subject_screening.subject_identifier = instance.subject_identifier subject_screening.consented = True subject_screening.save_base( update_fields=["subject_identifier", "consented"] ) # randomize Randomizer = site_randomizers.get("ambition") Randomizer( subject_identifier=instance.subject_identifier, report_datetime=instance.consent_datetime, site=instance.site, user=instance.user_created, ) # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( "ambition_prn.onschedule" ) schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=instance.consent_datetime, ) # create / delete action for reconsent if instance.completed_by_next_of_kin == YES: ReconsentAction(subject_identifier=instance.subject_identifier) else: try: delete_action_item( action_cls=ReconsentAction, subject_identifier=instance.subject_identifier, ) except ActionItemDeleteError: pass
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 take_off_schedule(self): on_schedule = django_apps.get_model( 'potlako_subject.onschedule') _, schedule = site_visit_schedules.get_by_onschedule_model( onschedule_model=on_schedule._meta.label_lower) schedule.take_off_schedule(offschedule_model_obj=self)
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 subject_consent_on_post_delete(sender, instance, using, **kwargs): """Updates/Resets subject screening. """ # don't allow if subject visits exist. This should be caught # in the ModelAdmin delete view if SubjectVisit.objects.filter( subject_identifier=instance.subject_identifier ).exists(): raise ValidationError("Unable to delete consent. Visit data exists.") _, schedule = site_visit_schedules.get_by_onschedule_model( "ambition_prn.onschedule" ) schedule.take_off_schedule( subject_identifier=instance.subject_identifier, offschedule_datetime=instance.consent_datetime, ) # update subject screening subject_screening = SubjectScreening.objects.get( screening_identifier=instance.screening_identifier ) subject_screening.consented = False subject_screening.subject_identifier = subject_screening.subject_screening_as_pk subject_screening.save()
def study_termination_conclusion_on_post_save(sender, instance, raw, created, **kwargs): """Enroll to W10 if willing_to_complete_10w == YES. """ if not raw: try: willing_to_complete_10w = instance.willing_to_complete_10w except AttributeError: pass else: _, schedule = site_visit_schedules.get_by_onschedule_model( "ambition_prn.onschedulew10" ) registered_subject = RegisteredSubject.objects.get( subject_identifier=instance.subject_identifier ) if willing_to_complete_10w == YES: schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=registered_subject.registration_datetime, ) elif willing_to_complete_10w == NO: try: schedule.take_off_schedule( subject_identifier=instance.subject_identifier, offschedule_datetime=registered_subject.registration_datetime, ) except NotOnScheduleError: pass
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 subject_consent_on_post_save(sender, instance, raw, created, **kwargs): """Creates an onschedule instance for this consented subject, if it does not exist. """ if not raw: if not created: _, schedule = site_visit_schedules.get_by_onschedule_model( get_onschedule_model_name(instance)) try: schedule.refresh_schedule( subject_identifier=instance.subject_identifier) except ObjectDoesNotExist as e: raise InteSubjectConsentError( f"Clinic type cannot be changed. Got `{instance.clinic_type}`. ({e})" ) else: subject_screening = SubjectScreening.objects.get( screening_identifier=instance.screening_identifier) if subject_screening.clinic_type != instance.clinic_type: raise InteSubjectConsentError( f"Clinic type reported on screening does not match consent." f"Expected {subject_screening.clinic_type}. Got {instance.clinic_type}" ) subject_screening.subject_identifier = instance.subject_identifier subject_screening.consented = True subject_screening.save_base( update_fields=["subject_identifier", "consented"]) # randomize # TODO: should get randomizer name "default" from model or Consent object site_randomizers.randomize( "default", subject_identifier=instance.subject_identifier, report_datetime=instance.consent_datetime, site=instance.site, user=instance.user_created, ) # put subject on primary schedule _, schedule = site_visit_schedules.get_by_onschedule_model( get_onschedule_model_name(instance)) schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=instance.consent_datetime, )
def caregiver_child_consent_on_post_save(sender, instance, raw, created, **kwargs): """Creates an onschedule instance for this enrolled subject, if it does not exist. """ if not raw: if not created: _, schedule = site_visit_schedules.get_by_onschedule_model( 'pre_flourish.onschedulepreflourish') schedule.refresh_schedule( subject_identifier=instance.subject_identifier) else: # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( 'pre_flourish.onschedulepreflourish') schedule.put_on_schedule( subject_identifier=instance.subject_identifier, onschedule_datetime=instance.consent_datetime)
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 consent_and_put_on_schedule(self, subject_identifier=None): subject_identifier = subject_identifier or self.subject_identifier subject_consent = SubjectConsent.objects.create( subject_identifier=subject_identifier, consent_datetime=get_utcnow()) _, schedule = site_visit_schedules.get_by_onschedule_model( 'edc_visit_tracking.onscheduleone') schedule.put_on_schedule( subject_identifier=subject_consent.subject_identifier, onschedule_datetime=subject_consent.consent_datetime)
def test_resave(self): """Asserts returns the correct instances for the schedule.""" visit_schedule, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onscheduletwo") subject_schedule = SubjectSchedule(visit_schedule=visit_schedule, schedule=schedule) subject_schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow()) subject_schedule.resave(subject_identifier=self.subject_identifier)
def test_cannot_put_on_schedule_if_visit_schedule_not_consented(self): onschedule_datetime = get_utcnow() - relativedelta(years=4) _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") SubjectConsent.objects.all().delete() self.assertRaises( NotConsentedError, schedule.put_on_schedule, subject_identifier=self.subject_identifier, onschedule_datetime=onschedule_datetime, )
def take_off_schedule(self): on_schedule = OnSchedule try: on_schedule_obj = on_schedule.objects.get( subject_identifier=self.subject_identifier) except on_schedule.DoesNotExist: pass else: _, schedule = site_visit_schedules.get_by_onschedule_model( onschedule_model=on_schedule._meta.label_lower) schedule.take_off_schedule(offschedule_model_obj=self)
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): 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 test_cannot_put_on_schedule_if_visit_schedule_not_registered_subject( self): onschedule_datetime = get_utcnow() - relativedelta(years=4) _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") RegisteredSubject.objects.all().delete() self.assertRaises( UnknownSubjectError, schedule.put_on_schedule, subject_identifier=self.subject_identifier, onschedule_datetime=onschedule_datetime, )
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 get_offschedule_action_cls(self): """Returns the action class for the offschedule model. """ action_cls = None for onschedule_model_obj in SubjectScheduleHistory.objects.onschedules( subject_identifier=self.subject_identifier, report_datetime=self.model_obj.report_datetime): _, schedule = site_visit_schedules.get_by_onschedule_model( onschedule_model=onschedule_model_obj._meta.label_lower) offschedule_model = schedule.offschedule_model action_cls = site_action_items.get_by_model( model=offschedule_model) return action_cls
def test_put_on_schedule(self): _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") self.assertRaises( ObjectDoesNotExist, OnSchedule.objects.get, subject_identifier=self.subject_identifier, ) schedule.put_on_schedule(subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow()) try: OnSchedule.objects.get(subject_identifier=self.subject_identifier) except ObjectDoesNotExist: self.fail("ObjectDoesNotExist unexpectedly raised")
def consent_and_put_on_schedule( self, subject_identifier=None, ): subject_identifier = subject_identifier or self.subject_identifier subject_consent = self.subject_consent_model_cls.objects.create( subject_identifier=subject_identifier, consent_datetime=get_utcnow() ) _, schedule = site_visit_schedules.get_by_onschedule_model(self.onschedule_model_name) schedule.put_on_schedule( subject_identifier=subject_consent.subject_identifier, onschedule_datetime=subject_consent.consent_datetime, ) return subject_consent
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_creates_appointments_starting_with_onschedule_datetime(self): """Will pass as long as this is not a holiday""" onschedule_datetime = datetime(2017, 7, 19, 15, 29, 44, 903192, tzinfo=tzutc()) _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=onschedule_datetime, ) appointment = Appointment.objects.all().order_by( "appt_datetime").first() self.assertEqual(appointment.appt_datetime, onschedule_datetime)
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 test_multpile_consents(self): """Asserts does not raise if more than one consent for this subject """ subject_identifier = "ABCDEF" SubjectConsent.objects.create(subject_identifier=subject_identifier, version="1") SubjectConsent.objects.create(subject_identifier=subject_identifier, version="2") visit_schedule, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onscheduletwo") subject_schedule = SubjectSchedule(visit_schedule=visit_schedule, schedule=schedule) try: subject_schedule.put_on_schedule( subject_identifier=subject_identifier, onschedule_datetime=get_utcnow()) except SubjectScheduleError: self.fail("SubjectScheduleError unexpectedly raised.")
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 test_cannot_create_offschedule_before_last_visit(self): onschedule_datetime = get_utcnow() - relativedelta(years=4) _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=onschedule_datetime, ) appointments = Appointment.objects.all() SubjectVisit.objects.create( appointment=appointments[0], subject_identifier=self.subject_identifier, report_datetime=appointments[0].appt_datetime, reason=SCHEDULED, ) self.assertRaises( InvalidOffscheduleDate, schedule.take_off_schedule, subject_identifier=self.subject_identifier, offschedule_datetime=appointments[0].appt_datetime - relativedelta(days=1), )
def test_onschedule_updates_history(self): """Asserts returns the correct instances for the schedule.""" for onschedule_model, schedule_name in [ ("visit_schedule_app.onscheduletwo", "schedule_two"), ("visit_schedule_app.onschedulefour", "schedule_four"), ]: with self.subTest(onschedule_model=onschedule_model, schedule_name=schedule_name): visit_schedule, schedule = site_visit_schedules.get_by_onschedule_model( onschedule_model) subject_schedule = SubjectSchedule( visit_schedule=visit_schedule, schedule=schedule) subject_schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=get_utcnow(), ) try: SubjectScheduleHistory.objects.get( subject_identifier=self.subject_identifier, schedule_name=schedule_name, ) except ObjectDoesNotExist: self.fail("ObjectDoesNotExist unexpectedly raised")
def setUp(self): import_holidays() self.user = User.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() site_reference_configs.register_from_visit_schedule( visit_models={ "edc_appointment.appointment": "data_manager_app.subjectvisit" }) self.subject_identifier = "101-40990029-4" identity = "123456789" subject_consent = SubjectConsent.objects.create( subject_identifier=self.subject_identifier, consent_datetime=get_utcnow() - relativedelta(days=10), identity=identity, confirm_identity=identity, dob=get_utcnow() - relativedelta(years=25), ) # put subject on schedule _, schedule = site_visit_schedules.get_by_onschedule_model( "data_manager_app.onschedule") schedule.put_on_schedule( subject_identifier=subject_consent.subject_identifier, onschedule_datetime=subject_consent.consent_datetime, )
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) visit = Visit( code="1010", rbase=relativedelta(days=28), rlower=relativedelta(days=0), rupper=relativedelta(days=6), timepoint=2, ) 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 onschedule_datetime = get_utcnow() - relativedelta(years=4) _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") schedule.put_on_schedule( subject_identifier=self.subject_identifier, onschedule_datetime=onschedule_datetime, ) self.appointments = Appointment.objects.all()
def test_get_schedule_by_onschedule_model(self): _, schedule = site_visit_schedules.get_by_onschedule_model( "visit_schedule_app.onschedule") self.assertEqual(schedule.onschedule_model_cls, OnSchedule)