Classes and utils to handle eGFR collection and reporting for clinicedc/edc projects
Project description
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
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
File details
Details for the file edc-egfr-0.1.9.tar.gz
.
File metadata
- Download URL: edc-egfr-0.1.9.tar.gz
- Upload date:
- Size: 38.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e56631f19668c99f7466efb3fe053a78fcd6f1ee96b0802bbef593b079c718af |
|
MD5 | a800ea100d802b1533131ab524933bb3 |
|
BLAKE2b-256 | 9e832d1b993cb9b027886dc4327f5ae157cbcf7b30260e8901ca2cf5264323c1 |
Provenance
File details
Details for the file edc_egfr-0.1.9-py3-none-any.whl
.
File metadata
- Download URL: edc_egfr-0.1.9-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6e55f66c25a2462029ee7bf58adbfe2c9edff1c8662c51753abf2496db153b1 |
|
MD5 | 1f706962be72b03090bc4d29d80b2666 |
|
BLAKE2b-256 | ccb39dc9f90ad0ca425e8ab48e48235b279f01679307d6dfb5191cadee23da73 |