将患者操作项添加到临床医生/急诊医生项目
edc-action-item的Python项目详细描述
EDC行动项
将患者操作项添加到EDC中
概述
操作项是提交表单的提醒。
可以将操作项配置为驱动数据收集
- 对于不适合访问日程的表单;
- 对于根据某些临床事件需要的表格。
跟踪操作项。每个都分配了一个唯一的操作标识符并保持状态(新建、打开、关闭)。
可以链接操作。一个操作可以创建另一个操作、一组操作或重新创建自身。
不良事件、死亡、计划外都是很好的候选者。
根据一些临床事件需要提供不良事件报告。由于必须报告该事件,因此仅保留报告用户的决定是不够的。可以根据临床事件和管理性跟踪的操作项的状态打开操作项。行动项与不良事件报告相关。报告提交后,操作项将关闭。如果在提交初始不良事件报告后需要其他数据,则可以自动打开后续操作。
如需有关示例,请参阅模块“雄心壮志”活动项目。
定义操作项
在应用程序的根目录中,定义一个操作项模块。edc操作项站点控制器将自动发现此模块并注册操作项类。
像这样在操作项模块中注册操作项类
site_action_items.register(AeInitialAction)
一个简单的操作项
在它中,使用action类定义操作。
fromedc_action_itemimportAction,site_action_itemsfromedc_constants.constantsHIGH_PRIORITYfromambition_ae.action_itemsimportAeFollowupAction,AeTmgActionclassAeInitialAction(Action):name=AE_INITIAL_ACTIONdisplay_name='Submit AE Initial Report'model='ambition_ae.aeinitial'show_on_dashboard=Trueinstructions='Complete the initial report and forward to the TMG'priority=HIGH_PRIORITY
操作项与其模型关联
fromedc_action_item.model_mixinsimportActionModelMixinfromedc_identifier.model_mixinsimportNonUniqueSubjectIdentifierFieldMixinclassAeInitial(ActionModelMixin,NonUniqueSubjectIdentifierFieldMixin,BaseUuidModel):action_cls=AeInitialAction...# field classes
在代码中的某个位置,实例化操作项
AeInitialAction(subject_identifier='12345')
此主题创建了
现在创建关联的模型实例
AeInitial.objects.create(subject_identifier='12345',...)
actionitem模型实例现在的状态是closed。
更改条件以关闭操作
默认情况下,在保存关联的模型实例后,操作将关闭。有关更精细的行为,请在“操作项”类中定义“在保存时关闭操作项”。
classAeInitialAction(Action):...defclose_action_item_on_save(self):self.delete_children_if_new(action_cls=self)returnself.model_obj.report_status==CLOSED
单一行动项
要确保操作项不会为每个主题创建多个实例,请使用singleton属性。
classEnrollToSubstudyAction(Action):name='My Action'display_name='Enroll to sub-study'model='myapp.enroll'show_link_to_changelist=Trueadmin_site_name='myapp_admin'priority=HIGH_PRIORITYcreate_by_user=Falsesingleton=True
创建下一个操作项的操作项
要使一个操作项在关闭后打开另一个操作项,请设置下一个操作。
classAeInitialAction(Action):name=AE_INITIAL_ACTIONdisplay_name='Submit AE Initial Report'model='ambition_ae.aeinitial'show_on_dashboard=Trueinstructions='Complete the initial report and forward to the TMG'priority=HIGH_PRIORITYnext_actions=[AeFollowupAction]
如果下一个操作的条件基于某些其他信息,请在操作项上声明“获取下一个操作”并返回所需的操作项列表。
classAeInitialAction(Action):...defget_next_actions(self):next_actions=[]try:self.reference_model_cls().objects.get(ae_initial=self.model_obj.ae_initial)exceptMultipleObjectsReturned:passelse:if(self.model_obj.ae_initial.ae_classification!=self.model_obj.ae_classification):next_actions=[self]returnnext_actions
带有通知的操作项
操作项可以与来自edc_notification的通知相关联,以便在创建操作时,将通知(电子邮件或短信)发送给注册接收它的人。
''action`,ActionWithNotification`的子类向操作添加通知。当操作由site_action_items注册时,将自动注册该操作的通知。
例如:
classAeTmgAction(ActionWithNotification):name=AE_TMG_ACTIONdisplay_name="TMG AE Report pending"notification_display_name="TMG AE Report"parent_action_names=[AE_INITIAL_ACTION],reference_model="ambition_ae.aetmg"related_reference_model="ambition_ae.aeinitial"related_reference_fk_attr="ae_initial"show_link_to_changelist=Trueadmin_site_name="ambition_ae_admin"