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

Difference between revisions of "Arden Syntax:Implementation Guide:Clinical use cases"

From HL7Wiki
Jump to navigation Jump to search
(Created page with "=== Clinical Use Cases === How to use Arden to deliver decision support in particular clinical or administrative scenarios * [[drug_disease_interaction_use_case|Drug-Disease Int...")
(No difference)

Revision as of 12:51, 17 November 2013

Clinical Use Cases

How to use Arden to deliver decision support in particular clinical or administrative scenarios

  • Drug-Disease Interaction
  • immunizations
  • hospital admission quality indicators
  • population-based decision support (e.g., infection control)

body mass index

Calculation of body mass index

maintenance:
 title:       body mass index;;
 mlmname:     BMI_complex;;
 arden:       Version 2.5;;
 version:     1.00;;
 institution: Medexter Healthcare;;
 author:      Karsten Fehre;;
 specialist:  Harald Mandl;;
 date:        2013-11-11;;
 validation:  testing;;
library:
 purpose:     body mass index;;
 explanation: calculation of body mass index
              input: compound list with:
                (number) size in m,
                (number) weight in kg,
                (time)   birth date.
              output: compound list with:
                If the age is not less then 19 and the classification  
                wrt.WHO is not normal, a message containing  
                the BMI  and the classification will be returned. 
              The classification follows the definition by the WHO, 2008.
              The interpretation follows the BMI definition. For non adults
              (age < 19) the definition by Kromeyer-Hauschild is used with the
              3. and the 97. percentile.
 ;;
 keywords:    BMI, body mass index;;
 citations:   ;;
 links:       http://de.wikipedia.org/wiki/Body-Mass-Index;;
knowledge:
 type:		   data_driven;;
 data:        
   (size, weight, birth) := argument;           // input of MLM
   bmiEvent := EVENT {bmiEvent};
 ;;
 priority:    ;;
 evoke:       
   bmiEvent;;
 logic:
 
   // calculation of BMI

   let bmi be weight / (size ** 2);             // BMI
   age := currenttime - birth;                  // age
   
   // classification wrt. WHO (only for adults)
   if     age < 19 years then classification := null;
   elseif bmi < 16       then classification := localized 'strongunder';
   elseif bmi < 17       then classification := localized 'modunder';
   elseif bmi < 18,5     then classification := localized 'slightunder';
   elseif bmi < 25       then classification := null;
   elseif bmi < 30       then classification := localized 'obese';
   elseif bmi < 35       then classification := localized 'obeseI';
   elseif bmi < 40       then classification := localized 'obeseII';
   else                       classification := localized 'obeseIII';
   endif;

   bmi := bmi formatted with localized 'msg';  // construct the localized message

   conclude classification is present ;        // if there is a classification, execute the action slot
 ;;
 action:	 
   return bmi || classification || ".";         // return result 
 ;;
 urgency:     ;;

resources:
 default: de;;
 language: en
   'msg'        : "The patient's BMI %.1f is not in the normal range and is classified as ";
   'strongunder': "severe thinness";
   'modunder'   : "moderate thinness";
   'slightunder': "mild thinness";
   'obese'      : "pre-obese";
   'obeseI'     : "obese class I";
   'obeseII'    : "obese class II";
   'obeseIII'   : "obese class III"
 ;;
 language: de
   'msg'        : "Der BMI %.1f des Patienten ist nicht im normalen Bereich und wird klassifiziert als ";
   'strongunder': "starkes Untergewicht";
   'modunder'   : "mäßiges Untergewicht";
   'slightunder': "leichtes Untergewicht";
   'obese'      : "Präadipositas (Übergewicht)";
   'obeseI'     : "Adipositas Grad I";
   'obeseII'    : "Adipositas Grad II";
   'obeseIII'   : "Adipositas Grad III"
 ;;
end: