临床医生/edc项目预约模块

edc-appointment的Python项目详细描述


pypitraviscodecovdownloads

EDC预约

此模块与edc_visit_trackingedc_visit_schedule紧密协作。

主题数据是在预定义的时间点上收集的。我们用edc-visit-schedule提供的visit_schedule来描述这些数据收集时间点。在^{tt5}中,$时间点由约会表示。edc-appointment提供用于创建和管理约会的类。

另请参见edc-visit-schedule

< H3>任命模型MIN < EH3>< P>模型为约会模型。每个项目可能有一个预约模式。例如:

classAppointment(AppointmentModelMixin,RequiresConsentModelMixin,BaseUuidModel):classMeta(AppointmentModelMixin.Meta):consent_model='edc_example.subjectconsent'app_label='edc_example'

预约是访问报告

Appointment模型是访问报告所需的外键。请务必设置on_delete=PROTECT

classSubjectVisit(VisitModelMixin,OffstudyMixin,CreatesMetadataModelMixin,RequiresConsentModelMixin,BaseUuidModel):appointment=models.OneToOneField(Appointment,on_delete=PROTECT)objects=VisitModelManager()classMeta(VisitModelMixin.Meta):consent_model='edc_example.subjectconsent'app_label='edc_example'
< H3>创建约会模型

一个模型MIXIN,用于在模型被保存时触发约会的创建。这通常是一个注册模型。

添加模型字段facility。字段facility的值告诉CreateAppointmentsMixinfacility可用的日期为主题创建约会。

classEnrollment(EnrollmentModelMixin,CreateAppointmentsMixin,RequiresConsentModelMixin,BaseUuidModel):classMeta(EnrollmentModelMixin.Meta):visit_schedule_name='subject_visit_schedule.schedule1'consent_model='edc_example.subjectconsent'app_label='edc_example'

当保存上述声明的Enrollment时,将为访问日程schedule1中的每个visit主题创建一个约会。

注意:用户必须通过表单接口或以编程方式提供facility的值。

通过Facility

自定义约会计划

edc_facility

可用的预约模型管理器方法

使用AppointmentManager声明Appointment模型。它有几种有用的方法。

第一次约会()最后一次约会()

返回第一个(或最后一个)约会。如果只提供subject_identifier,则返回主题的协议的第一个约会。更具体地说,请提供{subject_identifier=subject_identifier, visit_schedule_name=visit_schedule_name}。 更具体地说,{subject_identifier=subject_identifier, visit_schedule_name=visit_schedule_name, schedule_name=schedule_name}

最常见的用法是为约会实例提供这些值:

first_appointment=Appointment.objects.first_appointment(appointment=appointment)

下一个约会()上一个约会()

下一次和上一次约会与日程和该日程内的就诊代码相关。如果对序列中的最后一个约会调用next,则返回None。如果对序列中的第一个约会调用previous,则返回None

例如,按预约顺序1000、2000、3000、4000:

>>>appointment.visit_code1000>>>next_appointment=Appointment.objects.next_appointment(appointment=appointment)>>>next_appointment.visit_code2000

但您也可以通过预约实例并通过访问代码:

>>>appointment.visit_code1000>>>next_appointment=Appointment.objects.next_appointment(appointment=appointment,visit_code=3000)>>>next_appointment.visit_code4000

如果您要求上一次的下一次约会,None将返回:

>>>appointment.visit_code4000>>>next_appointment=Appointment.objects.next_appointment(appointment=appointment,visit_code=3000)>>>next_appointment.visit_codeAttributeError:'NoneType'objecthasnoattribute'visit_code'

previous_appointment按预期工作:

>>>appointment.visit_code1000>>>previous_appointment=Appointment.objects.previous_appointment(appointment=appointment)>>>previous_appointment.visit_codeAttributeError:'NoneType'objecthasnoattribute'visit_code'

删除日期之后的主题

此方法将删除给定日期时间后主题的所有约会。另请参见edc-offstudy

Appointment通常是访问模型的外键。使用此方法确保在将Appointment声明为foreignkey时显式设置on_delete=PROTECT,这一点很重要。如果你不这样做,删除将级联到其他相关的实例-这是不好的。

appointment=models.OneToOneField(Appointment,on_delete=PROTECT)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
找不到足够的连续内存会导致OOM吗?   java如何计算一个矩形可以放入另一个矩形的次数?   谷歌地图api java   java Autowired批注在AuthenticationSuccessHandler中返回null   Java电话号码格式正则表达式   eclipse我希望能够同时选择多个复选框?Java SWT   java j2objc可以用于生成不适用于iOS的目标C代码吗?   使用cUrl将PHP post数组转换为java servlet   java playpac4j和Play 2.5:@requireAuthentication注释导致stacktrace   java为什么在Javamail中连接超时?   java使用SwingUtilities。main方法中的invokeLater()   如何在名为from Unity的Java插件中创建Android处理程序