.
edc-visit-schedule的Python项目详细描述
EDC访问计划
向应用程序添加数据收集计划。
安装
添加到设置:
INSTALLED_APPS=[...'edc_visit_schedule.apps.AppConfig',...]
概述
- 一个Visit Schedule存在于visit_schedules.py中的应用程序中。每个应用程序都可以在其visit_schedules模块中声明和注册一个或多个访问计划。从AppConfig调用autodiscover时加载就诊计划。
- 一个VisitSchedule包含Schedules,其中包含Visits,其中包含Crfs和Requisitions。
- schedule实际上是一个“数据收集计划”,其中每个包含的visit表示一个数据收集时间点。
- 主题由调度的onschedule模型放在schedule上,并由调度的offschedule模型取下。在下面的示例中,我们使用模型OnSchedule和OffSchedule对scheduleschedule1执行此操作。
使用量
首先,在应用程序的根目录中创建一个文件visit_schedules.py,下面的访问计划代码将在其中运行。
接下来,声明每次访问期间要完成的数据列表Crfs和实验室Requisitions。为了简单起见,我们假设每次访问都有相同的数据收集要求(通常不是这样)。
frommyapp.modelsimportSubjectVisit,OnSchedule,OffSchedule,SubjectDeathReport,SubjectOffstudyfromedc_visit_schedule.site_visit_schedulesimportsite_visit_schedulesfromedc_visit_schedule.scheduleimportSchedulefromedc_visit_schedule.visitimportCrf,Requisition,FormsCollectionfromedc_visit_schedule.visit_scheduleimportVisitSchedulecrfs=FormsCollection(Crf(show_order=10,model='myapp.crfone'),Crf(show_order=20,model='myapp.crftwo'),Crf(show_order=30,model='myapp.crfthree'),Crf(show_order=40,model='myapp.crffour'),Crf(show_order=50,model='myapp.crffive'),)requisitions=FormsCollection(Requisition(show_order=10,model='myapp.subjectrequisition',panel_name='Research Blood Draw'),Requisition(show_order=20,model='myapp.subjectrequisition',panel_name='Viral Load'),)
创建新的就诊计划:
subject_visit_schedule=VisitSchedule(name='subject_visit_schedule',verbose_name='My Visit Schedule',death_report_model=SubjectDeathReport,offstudy_model=SubjectOffstudy,visit_model=SubjectVisit)
访问计划包含Schedules,因此请创建计划:
schedule=Schedule(name='schedule1',onschedule_model='myapp.onschedule',offschedule_model='myapp.offschedule')
日程安排包含访问,因此标记一些访问并添加到schedule:
visit0=Visit(code='1000',title='Visit 1000',timepoint=0,rbase=relativedelta(days=0),requisitions=requisitions,crfs=crfs)visit1=Visit(code='2000',title='Visit 2000',timepoint=1,rbase=relativedelta(days=28),requisitions=requisitions,crfs=crfs)schedule.add_visit(visit=visit0)schedule.add_visit(visit=visit1)
将日程添加到您的访问日程:
schedule=subject_visit_schedule.add_schedule(schedule)
向网站注册表注册访问计划:
site_visit_schedules.register(subject_visit_schedule)
当django加载时,visit schedule类将在全局site_visit_schedules中可用。
site_visit_schedules有许多方法可以帮助查询访问计划和一些相关数据。
Note: The ^{tt11}$ above was declared with ^{tt27}$. An on-schedule model uses the ^{tt28}$ from ^{tt29}$. On ^{tt30}$ the method ^{tt31}$ is called. This method uses the visit schedule information to create the appointments as per the visit data in the schedule. See also ^{tt29}$.
计划内和计划外模型
两个模型-MIXIN可用于计划表和非计划模型,^ {TT33 } $和^ {TT34 } $。onschedule/offschedule模型特定于schedule。模型的Meta类属性visit_schedule_name上声明了visit_schedule_name和schedule_name。
例如:
classOnSchedule(OnScheduleModelMixin,CreateAppointmentsMixin,RequiresConsentModelMixin,BaseUuidModel):classMeta(EnrollmentModelMixin.Meta):visit_schedule_name='subject_visit_schedule.schedule1'consent_model='myapp.subjectconsent'classOffSchedule(OffScheduleModelMixin,RequiresConsentModelMixin,BaseUuidModel):classMeta(OffScheduleModelMixin.Meta):visit_schedule_name='subject_visit_schedule.schedule1'consent_model='myapp.subjectconsent'