Skip to main content

Classes and utils to handle eGFR collection and reporting for clinicedc/edc projects

Project description

pypi actions codecov downloads

edc-egfr

Classes and utils to handle eGFR collection and reporting

Includes calculators for CKD-EPI Creatinine equation (2009) and Cockcroft-Gault.

Calculate value, grade, percent drop, percent drop grade

The calculators use edc_reportable to reference DAIDS tox tables.

egfr1 = EgfrCkdEpi(
        gender=MALE,
        ethnicity=BLACK,
        creatinine_value=53.0,
        age_in_years=30,
        creatinine_units=MICROMOLES_PER_LITER,
    )
self.assertEqual(round(egfr1.value, 2), 156.43)

and the eGFR grade

self.assertEqual(egfr1.egfr_grade, 0)

Percent drop from baseline

In a trial, we are interested in the eGFR percent from baseline. Any reference value can be passed as the baseline value.

If the baseline value is not provided, the percent drop = 0:

# see edc-reportable for `reference_range_collection_name`
opts = dict(
    gender=MALE,
    age_in_years=25,
    ethnicity=BLACK,
    creatinine_value=10.15,
    creatinine_units=MILLIGRAMS_PER_DECILITER,
    report_datetime=get_utcnow(),
    reference_range_collection_name="my_reference_list",
    calculator_name="ckd-epi",
)
egfr = Egfr(**opts)
self.assertEqual(egfr.egfr_drop_value, 0.0)

If a baseline value is provided, the percent drop is calculated:

egfr = Egfr(baseline_egfr_value=23.0, **opts)
self.assertEqual(round(egfr.egfr_value, 2), 7.33)
self.assertEqual(egfr.egfr_grade, 4)
self.assertEqual(round(egfr.egfr_drop_value, 2), 68.15)
self.assertEqual(egfr.egfr_drop_grade, 4)

Notify on percent drop

We can notify when the drop is more than a given percent. eGFR uses a custom model to be updated.

A edc lab result CRF is filled in, calling_crf, that has the creatinine value and units. The calling_crf has a subject_visit, report_datetime, assay_datetime, creatinine_value, and creatinine_units.

egfr = Egfr(
    baseline_egfr_value=220.1,
    notify_on_percent_drop=20,
    calling_crf=crf,
    **opts,
)
self.assertEqual(round(egfr.egfr_drop_value, 2), 28.93)
self.assertTrue(
    EgfrDropNotification.objects.filter(subject_visit=subject_visit).exists()
)

Connecting a custom drop notification model with edc-action-item

from edc_crf.crf_with_action_model_mixin import CrfWithActionModelMixin
from edc_egfr.constants import EGFR_DROP_NOTIFICATION_ACTION
from edc_egfr.model_mixins import EgfrDropNotificationModelMixin
from edc_model import models as edc_models


class EgfrDropNotification(
    EgfrDropNotificationModelMixin,
    CrfWithActionModelMixin,
    edc_models.BaseUuidModel,
):

    action_name = EGFR_DROP_NOTIFICATION_ACTION

    tracking_identifier_prefix = "EG"

    class Meta(edc_models.BaseUuidModel.Meta):
        verbose_name = "eGFR Drop Notification"
        verbose_name_plural = "eGFR Drop Notifications"

Adding to an EDC model.save()

For example, from the BloodResultRft model in meta-edc

class BloodResultsRft(
    CrfModelMixin,
    CreatinineModelMixin,
    EgfrModelMixin,
    EgfrDropModelMixin,
    CrfWithRequisitionModelMixin,
    BloodResultsModelMixin,
    edc_models.BaseUuidModel,
):
    lab_panel = rft_panel
    egfr_formula_name = "ckd-epi"

    class Meta(CrfWithActionModelMixin.Meta, edc_models.BaseUuidModel.Meta):
        verbose_name = "Blood Result: RFT"
        verbose_name_plural = "Blood Results: RFT"

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-egfr-0.1.3.tar.gz (38.2 kB view details)

Uploaded Source

Built Distribution

edc_egfr-0.1.3-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file edc-egfr-0.1.3.tar.gz.

File metadata

  • Download URL: edc-egfr-0.1.3.tar.gz
  • Upload date:
  • Size: 38.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.9

File hashes

Hashes for edc-egfr-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7b4bca9b887d7808522e14d996e2c4c1414ba7ed4c4f0d709414253d0142bb28
MD5 581f36e09a4e9ba35a20c54d0591bab2
BLAKE2b-256 c12417cd59403b78cf3ac63f25082f4254d3c635b39bd7cd3c88e9767342b389

See more details on using hashes here.

Provenance

File details

Details for the file edc_egfr-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: edc_egfr-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.9

File hashes

Hashes for edc_egfr-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d43d2a2549ae70171437e6a7f269beedcc05afd414db876dffec5de43e5f52d8
MD5 411552339ee9f82f2a58133daa50a71b
BLAKE2b-256 ab3f2621d5c4c13c9e149725c562c5b467560e4313dc83c917955b1847ad2afd

See more details on using hashes here.

Provenance

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