Files
St.Clair/MLMStripper/bin/Debug/FORM/FORM_FUNC_DISPLAY_ANTIBIOTIC_GUIDELINES.mlm

150 lines
6.8 KiB
Plaintext

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: