This wiki has undergone a migration to Confluence found Here
Arden Syntax:Implementation Guide:Engineering Use Cases
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 *...")
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: