コード例 #1
0
    def enroll(subject_identifier=None):
        subject_identifier = subject_identifier or "1111111"

        site_reference_configs.registry = {}
        reference = ReferenceModelConfig(
            name="edc_action_item.CrfLongitudinalOne",
            fields=["f1", "f2", "f3"])
        site_reference_configs.register(reference)

        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"
            })

        subject_consent = SubjectConsent.objects.create(
            subject_identifier=subject_identifier,
            consent_datetime=get_utcnow())
        _, schedule = site_visit_schedules.get_by_onschedule_model(
            "edc_metadata.onschedule")
        schedule.put_on_schedule(
            subject_identifier=subject_consent.subject_identifier,
            onschedule_datetime=subject_consent.consent_datetime,
        )
        return subject_identifier
コード例 #2
0
    def setUp(self):
        self.panel_one = Panel.objects.create(name="one")
        self.panel_two = Panel.objects.create(name="two")

        for name in ["three", "four", "five", "six"]:
            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,
        )
コード例 #3
0
 def setUp(self):
     self.panel_one = Panel.objects.create(name='one')
     self.panel_two = Panel.objects.create(name='two')
     import_holidays()
     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'
     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)
コード例 #4
0
    def register_new_visit_schedule(crfs):
        site_visit_schedules._registry = {}
        site_visit_schedules.loaded = False

        visit = Visit(
            code="1000",
            title="Week 1",
            timepoint=0,
            rbase=relativedelta(days=0),
            rlower=relativedelta(days=0),
            rupper=relativedelta(days=6),
            crfs=crfs,
            allow_unscheduled=True,
            facility_name="5-day-clinic",
        )
        schedule = Schedule(
            name="schedule",
            onschedule_model="edc_metadata.onschedule",
            offschedule_model="edc_metadata.offschedule",
            consent_model="edc_metadata.subjectconsent",
            appointment_model="edc_appointment.appointment",
        )
        schedule.add_visit(visit)
        new_visit_schedule = VisitSchedule(
            name="visit_schedule",
            offstudy_model="edc_metadata.subjectoffstudy",
            death_report_model="edc_metadata.deathreport",
        )
        new_visit_schedule.add_schedule(schedule)
        site_visit_schedules.register(new_visit_schedule)
コード例 #5
0
 def setUp(self):
     self.subject_identifier = "12345"
     site_visit_schedules._registry = {}
     site_visit_schedules.register(visit_schedule=visit_schedule3)
     self.helper = self.helper_cls(
         subject_identifier=self.subject_identifier,
         now=Protocol().study_open_datetime,
     )
コード例 #6
0
    def setUp(self) -> None:
        site_visit_schedules._registry = {}
        site_visit_schedules.loaded = False

        site_visit_schedules.register(visit_schedule)
        self.subject_identifier = "12345"
        RegisteredSubject.objects.create(
            subject_identifier=self.subject_identifier)
        report_datetime = get_utcnow()
        creator = AppointmentsCreator(
            subject_identifier=self.subject_identifier,
            visit_schedule=visit_schedule,
            schedule=schedule,
            report_datetime=report_datetime,
        )
        creator.create_appointments(base_appt_datetime=report_datetime)

        self.assertGreater(
            Appointment.objects.filter(
                subject_identifier=self.subject_identifier).count(),
            0,
        )

        self.medication = Medication.objects.create(name="Flucytosine", )

        self.formulation = Formulation.objects.create(
            medication=self.medication,
            strength=500,
            units=Units.objects.get(name="mg"),
            route=Route.objects.get(display_name="Oral"),
            formulation_type=FormulationType.objects.get(
                display_name__iexact="Tablet"),
        )

        self.dosage_guideline_100 = DosageGuideline.objects.create(
            medication=self.medication,
            dose_per_kg=100,
            dose_units=Units.objects.get(name="mg"),
            frequency=1,
            frequency_units=FrequencyUnits.objects.get(name="day"),
        )

        self.dosage_guideline_200 = DosageGuideline.objects.create(
            medication=self.medication,
            dose_per_kg=100,
            dose_units=Units.objects.get(name="mg"),
            frequency=2,
            frequency_units=FrequencyUnits.objects.get(name="day"),
        )

        self.rx = Rx.objects.create(
            subject_identifier=self.subject_identifier,
            weight_in_kgs=40,
            report_datetime=report_datetime,
            medication=self.medication,
        )
コード例 #7
0
 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,
     )
コード例 #8
0
ファイル: mixins.py プロジェクト: clinicedc/edc-adverse-event
    def setUp(self):
        site_visit_schedules._registry = {}
        site_visit_schedules.register(visit_schedule)
        subject_consent = baker.make_recipe(
            "adverse_event_app.subjectconsent", subject_identifier="1234567"
        )
        self.subject_identifier = subject_consent.subject_identifier

        # put subject on schedule
        _, schedule = site_visit_schedules.get_by_onschedule_model(
            "adverse_event_app.onschedule"
        )
        schedule.put_on_schedule(
            subject_identifier=subject_consent.subject_identifier,
            onschedule_datetime=subject_consent.consent_datetime,
        )
コード例 #9
0
    def setUp(self):
        site_visit_schedules._registry = {}
        site_visit_schedules.register(visit_schedule=visit_schedule1)

        RegisteredSubject.objects.create(subject_identifier="12345")

        self.appointment = Appointment.objects.create(
            visit_code="1000",
            appt_datetime=get_utcnow(),
            visit_schedule_name="visit_schedule1",
            schedule_name="schedule1",
        )
        self.subject_visit = SubjectVisit.objects.create(
            appointment=self.appointment, subject_identifier="12345")
        self.bad_subject_visit = BadSubjectVisit.objects.create(
            appointment=self.appointment, subject_identifier="12345")
        self.test_model = TestModel.objects.create(
            subject_visit=self.subject_visit)
コード例 #10
0
    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_form_label",
                content_type__model="mymodel"):
            self.user.user_permissions.add(permission)
        RegisteredSubject.objects.create(
            subject_identifier=self.subject_identifier)

        self.appointment_one = Appointment.objects.create(
            subject_identifier=self.subject_identifier,
            appt_datetime=get_utcnow() - timedelta(days=1),
            visit_code=VISIT_ONE,
            visit_code_sequence=0,
            visit_schedule_name="visit_schedule",
            schedule_name="schedule",
            timepoint=0,
            timepoint_datetime=get_utcnow() - timedelta(days=1),
        )
        self.subject_visit_one = SubjectVisit.objects.create(
            appointment=self.appointment_one)

        self.appointment_two = Appointment.objects.create(
            subject_identifier=self.subject_identifier,
            appt_datetime=get_utcnow(),
            visit_code=VISIT_TWO,
            visit_code_sequence=0,
            visit_schedule_name="visit_schedule",
            schedule_name="schedule",
            timepoint=1,
            timepoint_datetime=get_utcnow(),
        )
        self.subject_visit_two = SubjectVisit.objects.create(
            appointment=self.appointment_two)

        for field in MyModel._meta.fields:
            if field.name == "circumcised":
                self.default_label = field.verbose_name
                break
コード例 #11
0
 def setUp(self):
     self.subject_identifier = "12345"
     site_consents.registry = {}
     site_consents.register(v1_consent)
     self.helper = self.helper_cls(
         subject_identifier=self.subject_identifier,
         subject_consent_model_cls=SubjectConsent,
         onschedule_model_name="visit_schedule_app.onschedule",
     )
     site_visit_schedules._registry = {}
     site_visit_schedules.register(visit_schedule=visit_schedule)
     site_reference_configs.register_from_visit_schedule(visit_models={
         "edc_appointment.appointment":
         "visit_schedule_app.subjectvisit"
     })
     self.helper.consent_and_put_on_schedule()
     appointment = Appointment.objects.all()[0]
     self.subject_visit = SubjectVisit.objects.create(
         appointment=appointment,
         report_datetime=get_utcnow(),
         reason=SCHEDULED)
コード例 #12
0
from edc_visit_schedule import VisitSchedule, site_visit_schedules

from .schedule import schedule
from .schedule_w10 import schedule_w10

app_label = 'ambition_subject'

visit_schedule = VisitSchedule(
    name='visit_schedule',
    verbose_name='Ambition',
    offstudy_model=f'ambition_prn.studyterminationconclusion',
    death_report_model=f'ambition_prn.deathreport',
    locator_model='edc_locator.subjectlocator',
    previous_visit_schedule=None)

visit_schedule.add_schedule(schedule)

visit_schedule_w10 = VisitSchedule(
    name='visit_schedule_w10',
    verbose_name='Ambition W10',
    offstudy_model=f'ambition_prn.studyterminationconclusion',
    death_report_model=f'ambition_prn.deathreport',
    locator_model='edc_locator.subjectlocator',
    previous_visit_schedule=None)

visit_schedule_w10.add_schedule(schedule_w10)

site_visit_schedules.register(visit_schedule)
site_visit_schedules.register(visit_schedule_w10)
コード例 #13
0
from edc_visit_schedule import VisitSchedule, site_visit_schedules

from .schedule import schedule1

visit_schedule1 = VisitSchedule(
    name='visit_schedule1',
    verbose_name='Trainee',
    offstudy_model='trainee_prn.subjectoffstudy',
    locator_model='trainee_subject.subject_locator',
    death_report_model='trainee_prn.deathreport',
    previous_visit_schedule=None)

visit_schedule1.add_schedule(schedule1)

site_visit_schedules.register(visit_schedule1)
コード例 #14
0
cohort_a2_visit_schedule_v1.add_schedule(a_enrollment2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_antenatal2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_birth2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_quarterly2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_sec2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_sec_quart2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_fu2_schedule_1)
cohort_a2_visit_schedule_v1.add_schedule(a_fu_quarterly2_schedule_1)

cohort_a3_visit_schedule_v1 = VisitSchedule(
    name='a3_visit_schedule1',
    verbose_name='Cohort A3 Visit Schedule',
    offstudy_model='flourish_prn.caregiveroffstudy',
    death_report_model='flourish_prn.caregiverdeathreport',
    locator_model='',
    previous_visit_schedule=None)

cohort_a3_visit_schedule_v1.add_schedule(a_enrollment3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_antenatal3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_birth3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_quarterly3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_sec3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_sec_quart3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_fu3_schedule_1)
cohort_a3_visit_schedule_v1.add_schedule(a_fu_quarterly3_schedule_1)

# Registering Visit Schedules
site_visit_schedules.register(cohort_a1_visit_schedule_v1)
site_visit_schedules.register(cohort_a2_visit_schedule_v1)
site_visit_schedules.register(cohort_a3_visit_schedule_v1)
コード例 #15
0
    death_report_model='flourish_prn.caregiverdeathreport',
    locator_model='',
    previous_visit_schedule=None)

cohort_b2_visit_schedule_v1.add_schedule(b_enrollment2_schedule_1)
cohort_b2_visit_schedule_v1.add_schedule(b_quarterly2_schedule_1)
cohort_b2_visit_schedule_v1.add_schedule(b_sec2_schedule_1)
cohort_b2_visit_schedule_v1.add_schedule(b_sec_quart2_schedule_1)
cohort_b2_visit_schedule_v1.add_schedule(b_fu2_schedule_1)
cohort_b2_visit_schedule_v1.add_schedule(b_fu_quarterly2_schedule_1)

cohort_b3_visit_schedule_v1 = VisitSchedule(
    name='b3_visit_schedule1',
    verbose_name='Cohort B3 Visit Schedule',
    offstudy_model='flourish_prn.caregiveroffstudy',
    death_report_model='flourish_prn.caregiverdeathreport',
    locator_model='',
    previous_visit_schedule=None)

cohort_b3_visit_schedule_v1.add_schedule(b_enrollment3_schedule_1)
cohort_b3_visit_schedule_v1.add_schedule(b_quarterly3_schedule_1)
cohort_b3_visit_schedule_v1.add_schedule(b_sec3_schedule_1)
cohort_b3_visit_schedule_v1.add_schedule(b_sec_quart3_schedule_1)
cohort_b3_visit_schedule_v1.add_schedule(b_fu3_schedule_1)
cohort_b3_visit_schedule_v1.add_schedule(b_fu_quarterly3_schedule_1)

# Registering Visit Schedules
site_visit_schedules.register(cohort_b1_visit_schedule_v1)
site_visit_schedules.register(cohort_b2_visit_schedule_v1)
site_visit_schedules.register(cohort_b3_visit_schedule_v1)
コード例 #16
0
    def setUp(self):
        Appointment.objects.all().delete()
        self.subject_identifier = "12345"
        self.visit_schedule = VisitSchedule(
            name="visit_schedule",
            verbose_name="Visit Schedule",
            offstudy_model="edc_offstudy.subjectoffstudy",
            death_report_model="edc_appointment.deathreport",
        )

        self.schedule = Schedule(
            name="schedule",
            onschedule_model="edc_appointment.onschedule",
            offschedule_model="edc_appointment.offschedule",
            appointment_model="edc_appointment.appointment",
            consent_model="edc_appointment.subjectconsent",
        )

        self.visit1000 = Visit(
            code="1000",
            timepoint=0,
            rbase=relativedelta(days=0),
            rlower=relativedelta(days=0),
            rupper=relativedelta(days=6),
            facility_name="7-day-clinic",
        )

        self.visit1001 = Visit(
            code="1001",
            timepoint=1,
            rbase=relativedelta(days=14),
            rlower=relativedelta(days=1),  # one day before base
            rupper=relativedelta(days=6),
            facility_name="7-day-clinic",
        )

        self.visit1010 = Visit(
            code="1010",
            timepoint=2,
            rbase=relativedelta(days=28),
            rlower=relativedelta(days=6),  # one day before base
            rupper=relativedelta(days=6),
            facility_name="7-day-clinic",
        )
        self.schedule.add_visit(self.visit1000)
        self.schedule.add_visit(self.visit1001)
        self.schedule.add_visit(self.visit1010)
        self.visit_schedule.add_schedule(self.schedule)

        site_visit_schedules._registry = {}
        site_visit_schedules.register(visit_schedule=self.visit_schedule)

        app_config = django_apps.get_app_config("edc_facility")

        class Meta:
            label_lower = ""

        class DummyAppointmentObj:
            subject_identifier = self.subject_identifier
            visit_schedule = self.visit_schedule
            schedule = self.schedule
            facility = app_config.get_facility(name="7-day-clinic")
            _meta = Meta()

        self.model_obj = DummyAppointmentObj()
 def setUp(self):
     self.subject_identifier = "12345"
     site_visit_schedules._registry = {}
     site_visit_schedules.register(visit_schedule=visit_schedule1)
コード例 #18
0
from edc_visit_schedule import VisitSchedule, site_visit_schedules

# from ..models import S

from .schedule import pre_flourish_schedule

pre_flourish_visit_schedule = VisitSchedule(
    name='visit_schedule1',
    verbose_name='Pre Flourish Visit Schedule',
    offstudy_model='pre_flourish.preflourishoffstudy',
    locator_model='pre_flourish.preflourishcaregiverlocator',
    death_report_model='pre_flourish.preflourishdeathreport',
    previous_visit_schedule=None)

pre_flourish_visit_schedule.add_schedule(pre_flourish_schedule)

site_visit_schedules.register(pre_flourish_visit_schedule)
コード例 #19
0
infant_visit_schedule_v1 = VisitSchedule(
    name='infant_visit_schedule_v1',
    verbose_name='Infant Visit Schedule V1',
    offstudy_model='td_prn.infantoffstudy',
    death_report_model='td_prn.infantdeathreport',
    locator_model='td_maternal.maternallocator',
    previous_visit_schedule=None)
infant_visit_schedule_v1.add_schedule(infant_schedule_v1)

infant_visit_schedule_v3 = VisitSchedule(
    name='infant_visit_schedule_v3',
    verbose_name='Infant Visit Schedule V3',
    offstudy_model='td_prn.infantoffstudy',
    death_report_model='td_prn.infantdeathreport',
    locator_model='td_maternal.maternallocator',
    previous_visit_schedule=None)
infant_visit_schedule_v3.add_schedule(infant_schedule_v3)
# Registering Visit Schedules
site_visit_schedules.register(antenatal_visit_schedule_v1)
site_visit_schedules.register(antenatal_visit_schedule_v3)

site_visit_schedules.register(antenatal_membership_visit_schedule_v1)
site_visit_schedules.register(antenatal_membership_visit_schedule_v3)

site_visit_schedules.register(maternal_labour_visit_schedule_v1)
site_visit_schedules.register(maternal_labour_visit_schedule_v3)

site_visit_schedules.register(infant_visit_schedule_v1)
site_visit_schedules.register(infant_visit_schedule_v3)
コード例 #20
0
    previous_visit_schedule=None)

cohort_c2_visit_schedule_v1.add_schedule(c_enrollment2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(c_quarterly2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(c_sec2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(c_sec_quart2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(caregiver_pool2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(c_fu2_schedule_1)
cohort_c2_visit_schedule_v1.add_schedule(c_fu_quarterly2_schedule_1)

cohort_c3_visit_schedule_v1 = VisitSchedule(
    name='c3_visit_schedule1',
    verbose_name='Cohort C3 Visit Schedule',
    offstudy_model='flourish_prn.caregiveroffstudy',
    death_report_model='flourish_prn.caregiverdeathreport',
    locator_model='',
    previous_visit_schedule=None)

cohort_c3_visit_schedule_v1.add_schedule(c_enrollment3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(c_quarterly3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(c_sec3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(c_sec_quart3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(caregiver_pool3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(c_fu3_schedule_1)
cohort_c3_visit_schedule_v1.add_schedule(c_fu_quarterly3_schedule_1)

# Registering Visit Schedules
site_visit_schedules.register(cohort_c1_visit_schedule_v1)
site_visit_schedules.register(cohort_c2_visit_schedule_v1)
site_visit_schedules.register(cohort_c3_visit_schedule_v1)
コード例 #21
0
    locator_model='',
    previous_visit_schedule=None)

child_b_visit_schedule_v1.add_schedule(child_b_enrollment_schedule_1)
child_b_visit_schedule_v1.add_schedule(child_b_quarterly_schedule_1)
child_b_visit_schedule_v1.add_schedule(child_b_sec_schedule_1)
child_b_visit_schedule_v1.add_schedule(child_b_sec_qt_schedule_1)
child_b_visit_schedule_v1.add_schedule(child_b_fu_schedule_1)
child_b_visit_schedule_v1.add_schedule(child_b_fu_quarterly_schedule_1)

child_c_visit_schedule_v1 = VisitSchedule(
    name='child_c_visit_schedule_v1',
    verbose_name='Child Cohort C Visit Schedule',
    offstudy_model='flourish_prn.childoffstudy',
    death_report_model='flourish_prn.childdeathreport',
    locator_model='',
    previous_visit_schedule=None)

child_c_visit_schedule_v1.add_schedule(child_c_enrollment_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_c_quarterly_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_c_sec_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_c_sec_qt_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_pool_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_c_fu_schedule_1)
child_c_visit_schedule_v1.add_schedule(child_c_fu_quarterly_schedule_1)

# Registering Visit Schedules
site_visit_schedules.register(child_a_visit_schedule_v1)
site_visit_schedules.register(child_b_visit_schedule_v1)
site_visit_schedules.register(child_c_visit_schedule_v1)