Difference between revisions of "Arden Syntax:Implementation Guide:Engineering Use Cases"
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 *...") |
Karstenf77 (talk | contribs) |
||
Line 12: | Line 12: | ||
=== Guidelines === | === Guidelines === | ||
− | + | The following MLM is part of a larger knowledge base implementing a guideline for borreliosis detection and support. | |
+ | The calling instance sends a set of patient parameter to this MLM. The MLM checks if relevant parameter for a decision are in the list. | ||
+ | If at some point of the decision a parameter (necessary for the decision) is missing, the MLM will create a so called 'question object' that is sent back to the calling instance. The calling instance can then use this question object to ask the corresponding medical staff for the specific parameter of the patient. With the additional parameter (additional to the orginal list) the MLM is called again. If no other parameter for the final decision is needed, the MLM will return a result or a recommendation based on the guideline. | ||
maintenance: | maintenance: |
Latest revision as of 13:21, 17 November 2013
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
The following MLM is part of a larger knowledge base implementing a guideline for borreliosis detection and support. The calling instance sends a set of patient parameter to this MLM. The MLM checks if relevant parameter for a decision are in the list. If at some point of the decision a parameter (necessary for the decision) is missing, the MLM will create a so called 'question object' that is sent back to the calling instance. The calling instance can then use this question object to ask the corresponding medical staff for the specific parameter of the patient. With the additional parameter (additional to the orginal list) the MLM is called again. If no other parameter for the final decision is needed, the MLM will return a result or a recommendation based on the guideline.
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: