临床医生/edc项目预约模块
edc-appointment的Python项目详细描述
EDC预约
此模块与edc_visit_tracking和edc_visit_schedule紧密协作。
主题数据是在预定义的时间点上收集的。我们用edc-visit-schedule提供的visit_schedule来描述这些数据收集时间点。在^{tt5}中,$时间点由约会表示。edc-appointment提供用于创建和管理约会的类。
另请参见edc-visit-schedule。
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'
一个模型MIXIN,用于在模型被保存时触发约会的创建。这通常是一个注册模型。
添加模型字段facility。字段facility的值告诉CreateAppointmentsMixin在facility可用的日期为主题创建约会。
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)