maintenance: title: FORM_FUNC_DISPLAY_ANTIBIOTIC_GUIDELINES;; mlmname: FORM_FUNC_DISPLAY_ANTIBIOTIC_GUIDELINES;; arden: version 2.5;; version: 15.1;; institution: St Clair Hospital;; author: Juliet Law, Allscripts ;; specialist: ;; date: 2016-05-05;; validation: testing;; library: purpose: Functional MLM to display antibiotic guideline information on order sets ;; explanation: This MLM will be a functional call from Order set MLMs when needing to display antibiotic / allergy guideline information Change history 05.05.2016 JML Created. 06.09.2017 JML CSR 35272: Added guidelines for Sepsis Unknown Source Antibiotic order sets 02.13.2018 JML CSR 25885: Replaced gentamicin with amikacin on GU antibiotics order sets ;; keywords: Called MLMs, display, fields ;; knowledge: type: data-driven;; data: // This MLM is passed three arguments, of types // communication_type, form_type and client info object respectively. ( this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) := argument; standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; using "ObjectsPlusXA.SCM.Forms"; using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms"; ClientGuid := this_communication.ClientGUID; ChartGuid := this_communication.ChartGUID; ClientVisitGuid := this_communication.ClientVisitGUID; PrimaryObjdetail:=this_communication.PrimaryObj; OrderSetName := PrimaryObjdetail.OrderSetName; field_list:= this_form.fields; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to True if a decision.log is needed.*/ log_execution_info := False; SP := " "; SP2 := SP||SP; CR := 13 formatted with "%c"; LF := 10 formatted with "%c"; CRLF:= CR||LF; TAB := 9 formatted with "%c"; //Retrieve fields Allergy_Info := first of ( field_list WHERE field_list.DataItemName = "NUR_GenAdditionalTxt" AND field_list.Control_MultiFieldOccNum = 1 ); Antibiotic_Info := first of ( field_list WHERE field_list.DataItemName = "NUR_GenAdditionalTxt" AND field_list.Control_MultiFieldOccNum = 2 ); allergy_msg := "Note: Simple rash, nausea or vomiting does not exclude the use of Cephalosporins."; allergy_msg := allergy_msg || CRLF || "Avoid cephalosporin only if PCN reaction was immediate hypersensitivity (i.e. hives, anaphylaxis, pharyngeal edema, neutropenia, fever)."; Allergy_Info.Value := allergy_msg; wt_based_msg := CRLF || ""; if ( OrderSetName = "Pneumonia Antibiotic" ) then wt_based_msg := "Ceftriaxone 1 gm (< 80 kg)" || TAB || "Vancomycin Loading Dose 25 mg/kg ABW x1"; wt_based_msg := wt_based_msg || CRLF || "Ceftriaxone 2 gm (>= 80 kg)" || TAB || SP2 || "then Vancomycin 20 mg/kg ABW IV q12hr (CrCl > 60 ml/min) OR q24hr (CrCl 30-60 ml/min)"; wt_based_msg := wt_based_msg || CRLF || TAB || TAB || TAB || SP2 || " OR X 1 (CrCl < 30 ml/min)"; wt_based_msg := wt_based_msg || CRLF || "Tobramycin 5 mg/kg ABW X 1"; wt_based_msg := wt_based_msg || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight;"; endif; if ( OrderSetName = "Pneumonia Antibiotic ED" ) then wt_based_msg := "Ceftriaxone 1 gm (< 80 kg)" || TAB || "Vancomycin Loading Dose 25 mg/kg ABW x1" || TAB || "Tobramycin 5 mg/kg ABW X 1"; wt_based_msg := wt_based_msg || CRLF || "Ceftriaxone 2 gm (>= 80 kg)"; wt_based_msg := wt_based_msg || CRLF || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight"; endif; if ( OrderSetName = "Sepsis Unknown Source Antibiotic ED" ) then wt_based_msg := "Vancomycin Loading Dose 25 mg/kg ABW x1"; wt_based_msg := wt_based_msg || CRLF || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight"; endif; if ( OrderSetName = "Sepsis Unknown Source Antibiotic" ) then wt_based_msg := "Vancomycin Loading Dose 25 mg/kg ABW x1"; wt_based_msg := wt_based_msg || CRLF || SP2 || SP2 || "then Vancomycin 20 mg/kg ABW IV q12hr (CrCl > 60 ml/min) OR q24hr (CrCl 30-60 ml/min)"; wt_based_msg := wt_based_msg || CRLF || TAB || SP2 || " OR X 1 (CrCl < 30 ml/min)"; wt_based_msg := wt_based_msg || CRLF || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight;"; endif; if ( OrderSetName IN ("Genitourinary Antibiotic", "Genitourinary Antibiotic ED") ) then wt_based_msg := "Ceftriaxone 1 gm (< 80 kg)" || TAB || "Amikacin 7.5 mg/kg ABW X 1"; wt_based_msg := wt_based_msg || CRLF || "Ceftriaxone 2 gm (>= 80 kg)"; wt_based_msg := wt_based_msg || CRLF || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight"; endif; if ( OrderSetName IN ("IntraAbdominal Antibiotic", "IntraAbdominal Antibiotic ED") ) then wt_based_msg := "Cefazolin 1 gm (< 80 kg)"; wt_based_msg := wt_based_msg || CRLF || "Cefazolin 2 gm (>= 80 kg)"; endif; if ( OrderSetName = "Skin Antibiotic Inpatient" ) then wt_based_msg := "Cefazolin 1 gm (< 80 kg)" || TAB || "Vancomycin Loading Dose 25 mg/kg ABW X 1"; wt_based_msg := wt_based_msg || CRLF || "Cefazolin 2 gm (>= 80 kg)" || TAB || SP2 || "then Vancomycin 20 mg/kg ABW IV q12hr (CrCl > 60 ml/min) OR q24hr (CrCl 30-60 ml/min)"; wt_based_msg := wt_based_msg || CRLF || TAB || TAB || TAB || SP2 || " OR X 1 (CrCl < 30 ml/min)"; wt_based_msg := wt_based_msg || CRLF || "Clindamycin 600 mg IV q6hr (< 80 kg)"; wt_based_msg := wt_based_msg || CRLF || "Clindamycin 900 mg IV q8hr (>= 80 kg)"; endif; if ( OrderSetName = "Skin Antibiotic Inpatient ED" ) then wt_based_msg := "Cefazolin 1 gm (< 80 kg)" || TAB || "Vancomycin Loading Dose 25 mg/kg ABW X 1" || TAB || "Clindamycin 600 mg IV STAT (< 80 kg)"; wt_based_msg := wt_based_msg || CRLF || "Cefazolin 2 gm (>= 80 kg)" || TAB || TAB || TAB || TAB || TAB || TAB || "Clindamycin 900 mg IV STAT (>= 80 kg)"; wt_based_msg := wt_based_msg || CRLF || CRLF || "ABW (Adjusted Body Weight) = (Total Body Weight - Ideal Body Weight) x 0.4 + Ideal Body Weight"; endif; if ( OrderSetName IN ("Skin Antibiotic Outpatient", "Skin Antibiotic Outpatient ED") ) then wt_based_msg := "Cephalexin 500 mg PO (<= 110 kg)"; wt_based_msg := wt_based_msg || CRLF || "Cephalexin 1000 mg PO (> 110 kg)"; endif; Antibiotic_Info.Value := wt_based_msg; ;; evoke: // No evoke statement ;; logic: conclude True; ;; action: // This MLM returns two parameters, of types communication_type and form_type respectively. return this_communication, this_form; ;; Urgency: 50;; end: