Skip to main content

Pivoted reference model for clinicedc/edc modules

Project description

pypi actions coverage

edc-reference

Pivoted reference table for EDC modules

edc_reference creates a pivoted table of CRF and Requisition records with a small subset of values that can be efficiently referenced. The module is used by edc_metadata_rules to quickly determine if a CRF or Requisition model instance exists avoiding the need to query each individual model class.

See also edc_metadata_rules

Usage and Configuration

Declare a model with the ReferenceModelMixin.

from edc_reference.model_mixins import ReferenceModelMixin

class CrfOne(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)

Register the model and the relevant fields with the site global, site_reference_configs:

from edc_reference.site_reference import ReferenceModelConfig

reference = ReferenceModelConfig(
    model='edc_reference.crfone',
    fields=['f1', 'f4'])
site_reference_configs.register(reference)

Create a model instance:

crf_one = CrfOne.objects.create(
    subject_visit=subject_visit,
    f1='happiness'
    f4=get_utcnow())

The Reference model will be updated:

from edc_reference.models import Reference

reference = 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',
 ...}

Get the value from the reference instance:

>>> reference.value
'happiness'

Model managers methods are also available, for example:

reference = Reference.objects.crf_get_for_visit(
    model='edc_reference.crfone',
    visit=self.subject_visit,
    field_name='f1')

>>> reference.value
'happiness'

Accessing pivoted data with LongitudinalRefset

TODO

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edc-reference-0.3.9.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

edc_reference-0.3.9-py3-none-any.whl (65.5 kB view details)

Uploaded Python 3

File details

Details for the file edc-reference-0.3.9.tar.gz.

File metadata

  • Download URL: edc-reference-0.3.9.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.9

File hashes

Hashes for edc-reference-0.3.9.tar.gz
Algorithm Hash digest
SHA256 569c251602335b485c9e8d45c3c5de7aa8d605e9e97537e9aac0d88f38a91d3e
MD5 1551346b24b78c7bac6bd782920f3d9c
BLAKE2b-256 71ef04e54c49d503a2882ce28956b5634c5df1ed8db573a42b8dfbd5f58b5729

See more details on using hashes here.

File details

Details for the file edc_reference-0.3.9-py3-none-any.whl.

File metadata

File hashes

Hashes for edc_reference-0.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 3c5b5aff24e94e8d6cb0bf9e81d984825845232b4ed23be0b39f36c6ad8dd008
MD5 bc4c9c2f5d7dc84348e0aa82a98811f5
BLAKE2b-256 27636e9dc44c2d31ff8909d5b369e506651047a4a417291e5c6b60f1543be748

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page