Base classes for visit reports/tracking in clinicedc/edc.
Project description
edc-visit-tracking
Track study participant visit reports.
Declaring a visit model
A visit_model is declared using the model mixin VisitModelMixin. Normally, a visit_model will be declared with additional model mixins, but VisitModelMixin must be there.
class SubjectVisit(VisitModelMixin, BaseUuidModel):
...
Also, ensure the Meta class attributes of VisitModelMixin are inherited. These include required constraints and ordering.
class SubjectVisit(VisitModelMixin, BaseUuidModel):
...
class Meta(VisitModelMixin.Meta):
pass
Among other features, VisitModelMixin adds a OneToOneField foreign key to the visit_model that points to edc_appointment.Appointment.
Important: A visit model is a special model in the EDC. A model declared with the model mixin, VisitModelMixin, is the definition of a visit model. CRFs and Requisitions have a foreign key pointing to a visit model. A number of methods on CRFs and Requisitions detect their visit model foreign key name, model class and value by looking for the FK declared with VisitModelMixin.
For a subject that requires ICF the visit model would look like this:
class SubjectVisit(VisitModelMixin, OffstudyMixin, CreatesMetadataModelMixin,
RequiresConsentModelMixin, BaseUuidModel):
class Meta(VisitModelMixin.Meta):
consent_model = 'myapp.subjectconsent' # for RequiresConsentModelMixin
If the subject does not require ICF, such as an infant, don’t include the RequiresConsentModelMixin:
class InfantVisit(VisitModelMixin, OffstudyMixin,
CreatesMetadataModelMixin, BaseUuidModel):
class Meta(VisitModelMixin.Meta):
pass
Declaring a CRF
The CrfModelMixin is required for all CRF models. CRF models have a OneToOneField key to a visit model.
class CrfOne(CrfModelMixin, OffstudyCrfModelMixin, RequiresConsentModelMixin,
UpdatesCrfMetadataModelMixin, BaseUuidModel):
subject_visit = models.OneToOneField(SubjectVisit)
f1 = models.CharField(max_length=10, default='erik')
vl = models.CharField(max_length=10, default=NO)
rdb = models.CharField(max_length=10, default=NO)
class Meta:
consent_model = 'myapp.subjectconsent' # for RequiresConsentModelMixin
Declaring forms:
The VisitFormMixin includes a number of common validations in the clean method:
class SubjectVisitForm(VisitFormMixin, forms.ModelForm):
class Meta:
model = SubjectVisit
PreviousVisitModelMixin
The PreviousVisitModelMixin ensures that visits are entered in sequence. It is included with the VisitModelMixin.
VisitTrackingModelFormMixin
see DEFAULT_REPORT_DATETIME_ALLOWANCE
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 Distributions
Built Distribution
Hashes for edc_visit_tracking-0.2.48-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15bf9e6daefd20308daf5a2e1e8c0281348a8b67ff2c1320afdfcb53aa4d013f |
|
MD5 | 5acccc21dac79e6f806d262a29e5266c |
|
BLAKE2b-256 | bbe42e04027a659defba9b0b937867ebb58781fed5de6a94710220dc99d9c3b4 |