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

Arden Syntax:Implementation Guide:Engineering Use Cases

From HL7Wiki
Revision as of 13:05, 17 November 2013 by Karstenf77 (talk | contribs) (Created page with "=== Programming / Engineering Use Cases: === Every use case should contain at least one example MLM. * decision trees/tables * production system * state machines / transitions *...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Programming / Engineering Use Cases:

Every use case should contain at least one example MLM.

  • decision trees/tables
  • production system
  • state machines / transitions
  • guidelines
  • fuzzy control
  • use of external knowledge bases
  • creation and maintenance of documents (e.g., CHICA system)
  • (any other ideas ?)

Guidelines

TODO: add text

maintenance:
 title: borreliosis_erythema_migrans_treatment;;
 mlmname: borreliosis_erythema_migrans_treatment;;
 arden: Version 2.9;;
 version: 1.08;;
 institution: Medexter Healthcare GmbH, Vienna, Austria;;
 author: Alexander Seitinger;;
 specialist: Alexander Seitinger;;
 date: 2008−08−20;;
 validation: testing;;
library:
 purpose: borreliosis support;;
 explanation:
   managing all borreliosis EM treatment
 ;;
 keywords: borreliosis, decision support;;
 citations: ;;
 links: ;;
knowledge:
 type: data_driven;;
 data:
   parameterlist := argument;
   result_obj := object[result, next_questions];
   question_obj := object[q_type, q_label, q_info];
 ;;
 priority: ;;
 evoke: ;;
 logic:
   resultobj := new result_obj;
   resultobj.result := ();
   resultobj.next_questions := ();
 
   age := −1;
   gender := −1;
   
   pregnant := −1;
   breastfeeding := −1;
   allergy_amocicilline_doxycycline := −1;
   contraindication_amocicilline_doxycycline := −1;
   
   for parameter in parameterlist do
       if parameter.key eq "Age" then
           age := parameter.val;
       elseif parameter.key eq "Gender" then
           gender := parameter.val;
       elseif parameter.key eq "Pregnant" then
           pregnant := parameter.val;
       elseif parameter.key eq "Breastfeeding" then
           breastfeeding := parameter.val;
       elseif parameter.key eq "Allergy" then
           allergy_amocicilline_doxycycline := parameter.val;
       elseif parameter.key eq "Contraindication" then
           contraindication_amocicilline_doxycycline := parameter.val;
       endif;
   enddo;
   // if female: pregnant? breastfeeding?
   if gender eq 1 then // female
       if pregnant eq −1 then
           question := new question_obj;
           question.q_type := "polar_bool";
           question.q_label := "Pregnant";
           question.q_info := "Pregnancy is the fertilization and development of one or more offspring.";
           
           resultobj.result := resultobj.result, localized ’pregnant’;
           resultobj.next_questions := resultobj.next_questions, question;
       endif;
       if breastfeeding eq −1 then
           question := new question_obj;
           question.q_type := "polar_bool";
           question.q_label := "Breastfeeding";
           question.q_info := "Breastfeeding is the feeding of an infant or young child with breast milk directly from female human breasts.";
           
           resultobj.result := resultobj.result, localized ’breastfeeding’;
           resultobj.next_questions := resultobj.next_questions, question;
       endif
   endif;
   
   // check for allergies
   if allergy_amocicilline_doxycycline eq −1 then // then contraindication_amocicilline_doxycycline also -1
       question := new question_obj;
       question.q_type := "polar_fuzzy";
       question.q_label := "Allergy";
       question.q_info := "mocicilline and/or Doxycycline allergy.";
       question2 := new question_obj;
       question2.q_type := "polar_fuzzy";
       question2.q_label := "Contraindication";
       question2.q_info := "Amocicilline and/or Doxycycline contraindication.";
       resultobj.result := resultobj.result, localized ’allerg_amocicilline_doxycycline’, localized ’contra_amocicilline_doxycycline’;
       resultobj.next_questions := resultobj.next_questions, question, question2;
   elseif allergy_amocicilline_doxycycline then
       if pregnant then
           resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_pregnant’;
       else
           if age < 18 then // child
               resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_child’;
           else
               resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_adult’;
           endif;
       endif;
       
       question := new question_obj;
       question.q_type := "polar_bool";
       question.q_label := "Executed EM Therapy";
       question.q_info := "Patient took the medication for the adviced duration and dosage.";
       
       resultobj.next_questions := resultobj.next_questions, question;
   elseif contraindication_amocicilline_doxycycline then // same as allergy_amocicilline_doxycycline - should be solved with or
       if pregnant then
           resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_pregnant’;
       else
           if age < 18 then // child
               resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_child’;
           else
               resultobj.result := resultobj.result, localized ’erythema_migrans_alergy_therapy_adult’;
           endif;
       endif;
       question := new question_obj;
       question.q_type := "polar_bool";
       question.q_label := "Executed EM Therapy";
       question.q_info := "Patient took the medication for the adviced duration and dosage.";
       resultobj.next_questions := resultobj.next_questions, question;
   else // no allergy or contradiction
       if pregnant then
           resultobj.result := resultobj.result, localized ’erythema_migrans_therapy_adult1’;
       elseif breastfeeding then // same as pregnant
           resultobj.result := resultobj.result, localized ’erythema_migrans_therapy_adult1’;
       else
           if age < 18 then // child
               resultobj.result := resultobj.result, localized ’erythema_migrans_therapy_child1’;
               if age > 9 then
                   resultobj.result := resultobj.result, localized ’erythema_migrans_therapy_child2’;
               endif;
           else
               resultobj.result := resultobj.result, localized ’erythema_migrans_therapy_adult1’, localized ’erythema_migrans_therapy_adult2’;
           endif;
       endif;
       question := new question_obj;
       question.q_type := "polar_bool";
       question.q_label := "Executed EM Therapy";
       question.q_info := "Patient took the medication for the adviced duration and dosage.";
       resultobj.next_questions := resultobj.next_questions, question;
   endif;
   conclude true;
 ;;
 action:
   return resultobj;
 ;;
 urgency: ;;
 resources:
   default: en;;
   language: en
       ’pregnant’: "Check if patient is pregnant.";
       ’breastfeeding’: "Ask patient if she is breastfeeding";
       ’allerg_amocicilline_doxycycline’: "Check if patient has an Amocicilline or Doxycycline allergy.";
       ’contra_amocicilline_doxycycline’: "Check if there are contraindications for Amocicilline or Doxycycline.";
       ’erythema_migrans_alergy_therapy_pregnant’: "Choose Azithromycin or Erytromycin and take Ceftriaxone (under clinical surveillance) into consideration.";
       ’erythema_migrans_alergy_therapy_adult’: "Choose Cefuroxim (2x500 mg p.o., 14−21 days), Azithromycin (1x500 mg p.o., 7−10 days) or Clarithromycin (2x500 mg p.o., 14−21 days)";
       ’erythema_migrans_alergy_therapy_child’: "Choose Cefuroxim (30 mg/kg/day, 14−21 days), Azithromycin (5−10 mg/kg/day, 5−10 days) or Clarithromycin (2x500 mg p.o., 14−21 days)";
       ’erythema_migrans_therapy_adult1’: "Choose Amaxicillin (3x500 mg p.o., 14−21 days).";
       ’erythema_migrans_therapy_adult2’: "Doxycycline (2x100 mg p.o., 10 days) is also an option.";
       ’erythema_migrans_therapy_child1’: "For children use Amaxicillin (2−4 mg/kg/day, 14−21 days)";
       ’erythema_migrans_therapy_child2’: "For children older than 9 years Doxycycline (2−4 mg/kg/day, 10 days) is an option";;
end: