This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Drug disease interaction use case"

From HL7Wiki
Jump to navigation Jump to search
(Created page with "=== Drug-Disease Interaction Clinical Use Case === Certain medications are contraindicated, must have their doses adjusted or must be monitored in the presence of certain diseas...")
 
 
Line 5: Line 5:
 
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.
 
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:
+
maintenance:
 
+
 
   title: Screen for presence of renal insufficiency
 
   title: Screen for presence of renal insufficiency
 
           and pharmacy order for an aminoglycoside antibiotic
 
           and pharmacy order for an aminoglycoside antibiotic
Line 17: Line 17:
 
   date: 2013-02-20;;
 
   date: 2013-02-20;;
 
   validation: production;;
 
   validation: production;;
 
+
library:
+
library:
 
+
 
   purpose:  To determine if a patient has both laboratory evidence
 
   purpose:  To determine if a patient has both laboratory evidence
 
     of renal insufficiency (based on the serum creatinine) and an
 
     of renal insufficiency (based on the serum creatinine) and an
 
     active order for an aminoglycoside antibiotic;;
 
     active order for an aminoglycoside antibiotic;;
 
+
 
   explanation:  Aminoglycoside antibiotics, such as gentamicin,
 
   explanation:  Aminoglycoside antibiotics, such as gentamicin,
 
     tobramycin and amikacin, may cause or worsen renal
 
     tobramycin and amikacin, may cause or worsen renal
Line 33: Line 33:
 
     that appropriate action (e.g., dosage adjustment) is taken
 
     that appropriate action (e.g., dosage adjustment) is taken
 
     if needed. ;;
 
     if needed. ;;
 
+
 
   keywords: renal failure; aminoglycoside antibiotic;;
 
   keywords: renal failure; aminoglycoside antibiotic;;
 
   citations: ;;
 
   citations: ;;
 
+
knowledge:
+
knowledge:
 
+
 
   type: data-driven;;
 
   type: data-driven;;
 
+
 
   data:
 
   data:
 
     /* evoke on storage of a pharmacy order */
 
     /* evoke on storage of a pharmacy order */
 
     storage_of_aminoglycoside_order := event
 
     storage_of_aminoglycoside_order := event
 
       {'30343','30345';'30343','30346'};
 
       {'30343','30345';'30343','30346'};
 
+
 
     /* read the aminoglycoside order that evoked the MLM */
 
     /* read the aminoglycoside order that evoked the MLM */
 
     aminoglycoside_order := read last
 
     aminoglycoside_order := read last
Line 51: Line 51:
 
       'constraints'="C****",'status_value'="A",
 
       'constraints'="C****",'status_value'="A",
 
       'display_header'="R",'display_comp'="V"; ; '23946'};
 
       'display_header'="R",'display_comp'="V"; ; '23946'};
 
+
 
     /* get the last appropriate creatinine */
 
     /* get the last appropriate creatinine */
 
     raw_creatinines := read last 3 from (
 
     raw_creatinines := read last 3 from (
 
       {'dam'="PDQRES2",'constraints'="C****"; ; '32752'}
 
       {'dam'="PDQRES2",'constraints'="C****"; ; '32752'}
 
       where they occurred within the past 3 months);
 
       where they occurred within the past 3 months);
 
+
 
     creatinine := last(raw_creatinines where they are number);
 
     creatinine := last(raw_creatinines where they are number);
 
     creatinine_boundary := 1.1;  /* upper reference range value */
 
     creatinine_boundary := 1.1;  /* upper reference range value */
 
+
 
     /* get the last related alerts */
 
     /* get the last related alerts */
 
     last_alert := read last (
 
     last_alert := read last (
Line 65: Line 65:
 
       'mlmself','mlm RF_AND_AMINOGLYCOSIDE'}
 
       'mlmself','mlm RF_AND_AMINOGLYCOSIDE'}
 
       where it occurred within the past 3 months);  
 
       where it occurred within the past 3 months);  
;;
+
;;
 
+
 
   evoke:
 
   evoke:
 
     /* evoke on storage of a pharmacy order */
 
     /* evoke on storage of a pharmacy order */
 
     storage_of_aminoglycoside_order;;
 
     storage_of_aminoglycoside_order;;
 
+
 
   logic:
 
   logic:
 
+
 
     if (aminoglycoside_order is null) or
 
     if (aminoglycoside_order is null) or
 
       (creatinine is null) then  /* insufficient data */
 
       (creatinine is null) then  /* insufficient data */
 
       conclude false;
 
       conclude false;
 
     endif;
 
     endif;
 
+
 
     /* avoid redundant alerts */
 
     /* avoid redundant alerts */
 
     if last_alert occurred after 2 weeks before time of
 
     if last_alert occurred after 2 weeks before time of
Line 83: Line 83:
 
         conclude false;
 
         conclude false;
 
     endif;   
 
     endif;   
 
+
 
     /* check marker for renal insufficiency */
 
     /* check marker for renal insufficiency */
 
     if creatinine <= creatinine_boundary then
 
     if creatinine <= creatinine_boundary then
 
       conclude false;
 
       conclude false;
 
     endif;
 
     endif;
 
+
 
     /* otherwise creatinine is high and pt is on aminoglycoside */
 
     /* otherwise creatinine is high and pt is on aminoglycoside */
 
     conclude true;
 
     conclude true;
;;
+
;;
 
+
 
   action:
 
   action:
 
+
 
     write "The patient has laboratory evidence of renal " ||
 
     write "The patient has laboratory evidence of renal " ||
 
           "insufficiency (serum creatinine of " || creatinine ||
 
           "insufficiency (serum creatinine of " || creatinine ||
Line 103: Line 103:
 
           "This may not be applicable to topical preparations.  " ||
 
           "This may not be applicable to topical preparations.  " ||
 
           "Appropriate action should be taken as needed.";
 
           "Appropriate action should be taken as needed.";
 
+
;;
+
;;
 
+
end:
+
end:

Latest revision as of 16:39, 16 November 2013

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: