病人登记模块
edc-registration的Python项目详细描述
EDC注册
edc使用模型RegisteredSubject作为主主题注册表。每个人只能存在一条记录。表中有用于pii的空间,因此通常会在知情同意完成时创建或更新一个RegisteredSubject实例。与往常一样,edc中的pii在静止时使用django-crypto-field加密。
要注册型号和信号,您需要将appconfig添加到已安装的应用中:
INSTALLED_APPS=(....'edc_registration.apps.AppConfig',....)
^ {STR 1 } $UpDATESORCCRATEISCENDATIONMODEMIXIN < /强>
RegisteredSubject从不由用户直接编辑。相反,一些具有所需属性的其他模型被用作代理。要让模型执行创建或更新RegisteredSubject的任务,请使用UpdatesOrCreatesRegistrationModelMixin声明它。
例如,模型SubjectEligibility或屏蔽模型创建或更新RegisteredSubject时不带主题标识符,然后模型(如tests.models中的SubjectConsent)也会在保存时创建或更新主题的RegisteredSubject实例。为此,两个模型都用UpdatesOrCreatesRegistrationModelMixin:
声明classSubjectEligibility(UniqueSubjectIdentifierModelMixin,UpdatesOrCreatesRegistrationModelMixin,BaseUuidModel):screening_identifier=models.CharField(max_length=36,null=True,unique=True)@propertydefregistration_unique_field(self):return'screening_identifier'defupdate_subject_identifier_on_save(self):"""Overridden to not set the subject identifier on save. """ifnotself.subject_identifier:self.subject_identifier=self.subject_identifier_as_pk.hexself.subject_identifier_aka=self.subject_identifier_as_pk.hexreturnself.subject_identifierclassSubjectConsent(ConsentModelMixin,UpdatesOrCreatesRegistrationModelMixin,CreateAppointmentsMixin,IdentityFieldsMixin,ReviewFieldsMixin,PersonalFieldsMixin,CitizenFieldsMixin,VulnerabilityFieldsMixin,BaseUuidModel):@propertydefregistration_unique_field(self):return'screening_identifier'classMeta:app_label='my_app'
属性registration_unique_field返回一个用于在RegisteredSubject上设置注册标识符的模型属性。
主题的RegisteredSubject实例是在post_save信号中创建和更新的。如前所述,它从不由用户直接编辑。