临床edc/edc模块的旋转参考模型
edc-reference的Python项目详细描述
EDC参考
EDC模块的透视引用表
edc_reference创建一个CRF和请求记录的透视表,其中包含可以有效引用的一小部分值。该模块使用^ {TT2}$来快速确定CRF或请求模型实例是否存在,避免了需要查询每个单独的模型类。
另请参见edc_metadata_rules
使用和配置
用ReferenceModelMixin声明模型。
fromedc_reference.model_mixinsimportReferenceModelMixinclassCrfOne(ReferenceModelMixin,BaseUuidModel):subject_visit=models.ForeignKey(SubjectVisit,on_delete=PROTECT)report_datetime=models.DateTimeField(default=get_utcnow)f1=models.CharField(max_length=50)f2=models.CharField(max_length=50)f3=models.CharField(max_length=50)f4=models.DatetimeField(null=True)
将模型和相关字段注册到站点global,site_reference_configs:
fromedc_reference.site_referenceimportReferenceModelConfigreference=ReferenceModelConfig(model='edc_reference.crfone',fields=['f1','f4'])site_reference_configs.register(reference)
创建模型实例:
crf_one=CrfOne.objects.create(subject_visit=subject_visit,f1='happiness'f4=get_utcnow())
Reference模型将更新:
fromedc_reference.modelsimportReferencereference=Reference.objects.get(identifier=self.subject_identifier,timepoint=self.subject_visit.visit_code,report_datetime=crf_one.report_datetime,field_name='f1')>>>reference.__dict__{...'datatype':'CharField','field_name':'f1','identifier':'1','model':'edc_reference.crfone','report_datetime':datetime.datetime(2017,7,7,13,30,6,545140,tzinfo=<UTC>),'timepoint':'code','value_date':None,'value_datetime':None,'value_int':None,'value_str':'happiness',...}
从引用实例中获取value:
>>>reference.value'happiness'
模型管理器方法也可用,例如:
reference=Reference.objects.crf_get_for_visit(model='edc_reference.crfone',visit=self.subject_visit,field_name='f1')>>>reference.value'happiness'
使用LongitudinalRefset
访问数据透视TODO