Drug disease interaction use case
Drug-Disease Interaction Clinical Use Case
Certain medications are contraindicated, must have their doses adjusted or must be monitored in the presence of certain diseases. The presence of at least some diseases may be revealed by laboratory testing. As laboratory test observations have been among the earliest discrete data captured by health information systems, many Arden Syntax medical logic modules have been written that provide alerts when a drug is ordered in the presence of certain conditions defined by laboratory test observations.
This MLM demonstrates how to trigger an MLM based on a medication order and then assess whether a disease (renal insufficiency) is present based on laboratory testing, alerting the user if this is so and if a recent alert about this has not been provided.
maintenance: title: Screen for presence of renal insufficiency and pharmacy order for an aminoglycoside antibiotic (triggered by order for the aminoglycoside) ;; filename: AMINOGLYCOSIDE_AND_RF;; version: 1.05;; institution: The Best Medical Center;; author: James Best, MD;; specialist: Francine Specialist, MD;; date: 2013-02-20;; validation: production;; library: purpose: To determine if a patient has both laboratory evidence of renal insufficiency (based on the serum creatinine) and an active order for an aminoglycoside antibiotic;; explanation: Aminoglycoside antibiotics, such as gentamicin, tobramycin and amikacin, may cause or worsen renal insufficiency. In addition, a typical dose of the antibiotic must be adjusted when it is administered to a patient who already has renal insufficiency. This module sends an alert if one of this class of antibiotics is ordered for a patient who has laboratory evidence of renal insufficiency to help ensure that appropriate action (e.g., dosage adjustment) is taken if needed. ;; keywords: renal failure; aminoglycoside antibiotic;; citations: ;; knowledge: type: data-driven;; data: /* evoke on storage of a pharmacy order */ storage_of_aminoglycoside_order := event {'30343','30345';'30343','30346'}; /* read the aminoglycoside order that evoked the MLM */ aminoglycoside_order := read last {'evoking','dam'="PDQORD1",'auxstr'="0013", 'constraints'="C****",'status_value'="A", 'display_header'="R",'display_comp'="V"; ; '23946'}; /* get the last appropriate creatinine */ raw_creatinines := read last 3 from ( {'dam'="PDQRES2",'constraints'="C****"; ; '32752'} where they occurred within the past 3 months); creatinine := last(raw_creatinines where they are number); creatinine_boundary := 1.1; /* upper reference range value */ /* get the last related alerts */ last_alert := read last ( {'dam'="PDQDEC1",'display_header'="TX",'display_comp'=""; 'mlmself','mlm RF_AND_AMINOGLYCOSIDE'} where it occurred within the past 3 months); ;; evoke: /* evoke on storage of a pharmacy order */ storage_of_aminoglycoside_order;; logic: if (aminoglycoside_order is null) or (creatinine is null) then /* insufficient data */ conclude false; endif; /* avoid redundant alerts */ if last_alert occurred after 2 weeks before time of aminoglycoside_order then conclude false; endif; /* check marker for renal insufficiency */ if creatinine <= creatinine_boundary then conclude false; endif; /* otherwise creatinine is high and pt is on aminoglycoside */ conclude true; ;; action: write "The patient has laboratory evidence of renal " || "insufficiency (serum creatinine of " || creatinine || " mg/dL on " || time of creatinine || "). Also, an active " || "order for an aminoglycoside antibiotic has been " || "recorded. Such antibiotics may cause or worsen renal " || "insufficiency, and special dosing may be required. " || "This may not be applicable to topical preparations. " || "Appropriate action should be taken as needed."; ;; end: