Patient registration module for clinicedc/edc projects
Project description
edc-registration
The model RegisteredSubject is used by the Edc as the master subject registration table. Only one record may exist per individual. The table has space for PII so typically a RegisteredSubject instance is created or updated on completion of the informed consent. As always, PII in the Edc is encrypted at rest using django-crypto-field.
For the model and signal to be registered you need to add the AppConfig to your INSTALLED_APPS:
INSTALLED_APPS = ( .... 'edc_registration.apps.AppConfig', .... )
UpdatesOrCreatesRegistrationModelMixin
RegisteredSubject is never edited directly by the user. Instead some other model with the needed attributes is used as a proxy. To have a model perform the task of creating or updating RegisteredSubject, declare it with the UpdatesOrCreatesRegistrationModelMixin.
For example, a model, SubjectEligibility or a screening model creates or updates RegisteredSubject without a subject identifier then a model such as the SubjectConsent in tests.models, also creates or updates a subject’s RegisteredSubject instance on save. For this to happen, both models are declared with the UpdatesOrCreatesRegistrationModelMixin:
class SubjectEligibility(UniqueSubjectIdentifierModelMixin, UpdatesOrCreatesRegistrationModelMixin, BaseUuidModel): screening_identifier = models.CharField( max_length=36, null=True, unique=True) @property def registration_unique_field(self): return 'screening_identifier' def update_subject_identifier_on_save(self): """Overridden to not set the subject identifier on save. """ if not self.subject_identifier: self.subject_identifier = self.subject_identifier_as_pk.hex self.subject_identifier_aka = self.subject_identifier_as_pk.hex return self.subject_identifier class SubjectConsent( ConsentModelMixin, UpdatesOrCreatesRegistrationModelMixin, CreateAppointmentsMixin, IdentityFieldsMixin, ReviewFieldsMixin, PersonalFieldsMixin, CitizenFieldsMixin, VulnerabilityFieldsMixin, BaseUuidModel): @property def registration_unique_field(self): return 'screening_identifier' class Meta: app_label = 'my_app'
The property registration_unique_field returns a model attribute that is used to set a registration identifier on RegisteredSubject.
A subject’s RegisteredSubject instance is created and updated in a post_save signal. As mentioned, it is never edited directly by the user.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for edc_registration-0.3.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb126eb06fc28e7e6c0b9609454bc6b0baa243a90466c0cc3da8df8df9510d01 |
|
MD5 | 1e351351f9a76d7c8fd61221c88648a0 |
|
BLAKE2-256 | 37075406ec25fe8cdb8e2cdadff7b860394244de3625872f920c4e5dc77d9321 |