临床医生/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第三方库


热门话题
java Ajax响应不显示在JSP页面中   使用编码代码的java编码字符串   java标记f:event仅在facelets上可用   java文件访问被拒绝?   xml Mongo java。lang.IllegalArgumentException:无法序列化类java。朗格班   java jarsigner错误:未找到X.509   java在Mockito中验证内部代理调用   java在Intellij IDE中,特别是Android Studio中,如何创建并运行具有依赖项的可执行jar?   spring启动检查Java应用程序是否已成功启动init。d脚本   java何时使用线程。在2D动画中睡在SwingTimer上   groovy如何动态创建Java类列表?   java在返回列表时未获得正确的JSON   用java下载大文件的url   svn在Eclipse中构建、版本控制、测试和归档Java项目的最佳实践?   jakarta ee在java中使用TypeLiteral   java组件未在JFrame timetotime上显示   java SWT组占用整个空间并在窗口最大化期间隐藏其他组