maintenance: title: FORM_SET_Pediatric_PACU_Meds;; mlmname: FORM_SET_Pediatric_PACU_Meds;; arden: version 2.5;; version: 16.3;; institution: St Clair Hospital;; author: Teresa Spicuzza, Allscripts ;; specialist: Peggy Leschak;; date: 2017-09-05;; validation: testing;; library: purpose: Provide Pediatric Dose Amounts based upon patient weight and/or age ;; explanation: Change history 04.09.2018 TMS CSR 35320 - Created for PACU Pedatric Medication Dose Calculation ;; keywords: PACU, weight based, pediatric ;; knowledge: type: data-driven;; data: standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; // local_session := CDS_SESSION.local; using "ObjectsPlusXA.SCM.Forms"; using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms"; // 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; comm_obj := this_communication.primaryobj; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to true if a decision.log is needed.*/ log_execution_info := FALSE; /***************************************************************************************/ // Initialize error message error_message:=""; CR := 13 formatted with "%c"; LF := 10 formatted with "%c"; CRLF:= CR||LF; TAB := 9 FORMATTED WITH "%C" ; TAB2 := TAB || TAB ; TAB3 := TAB || TAB || TAB; // Assigns fields passed in the Form object to the Field object field_list:= this_form.fields; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; ClientGuid := this_communication.ClientGUID; ClientVisitGuid := this_communication.ClientVisitGUID; ChartGuid := this_communication.ChartGUID; //Form fields CurrWeight := last of ( field_list WHERE field_list.DataItemName = "CombinedMeasurements" AND field_list.Control_MultiFieldOccNum = 1 ); Morphine_Mod := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 1 ); Morphine_Sev := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 2 ); Hydromorphone_Mod:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 3 ); Hydromorphone_Sev:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 4 ); Fentanyl_Mod:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 5 ); Fentanyl_Sev:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 6 ); Oxycodone_Liq:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 7 ); Oxycodone_Tab:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 8 ); Ketorolac := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 9 ); Acetaminophen_Oral:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 10 ); Acetaminophen_Rectal:= last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 11 ); Meperidine := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 12 ); Metoclopramide := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 13 ); Ondansetron_IV := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 14 ); Midazolam := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 15 ); RacemicEpi := last of ( field_list WHERE field_list.DataItemName = "DosageLow" AND field_list.Control_MultiFieldOccNum = 16 ); Morphine_Mod_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 1 ); Morphine_Sev_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 2 ); Hydromorphone_Mod_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 3 ); Hydromorphone_Sev_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 4 ); Fentanyl_Mod_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 5 ); Fentanyl_Sev_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 6 ); Acetaminophen_Stat_Note := last of ( field_list WHERE field_list.DataItemName = "AdminInstructions" AND field_list.Control_MultiFieldOccNum = 1 ); Acetaminophen_Note := last of ( field_list WHERE field_list.DataItemName = "AdminInstructions" AND field_list.Control_MultiFieldOccNum = 2 ); AcetaminophenOrders := last of ( field_list WHERE field_list.DataItemName = "MultiOrderGrid" AND field_list.Control_MultiFieldOccNum = 6 ); Ondansetron_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 8 ); AcetaminophenGrid := AcetaminophenOrders.value; Metoclopramide_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 7 ); RacemicEpi_Note := last of ( field_list WHERE field_list.DataItemName = "PRX_NoteComment0" AND field_list.Control_MultiFieldOccNum = 9 ); if exists CurrWeight then CurrWeight_val := CurrWeight.Value; wt := CurrWeight_val.weight; fmtwt := wt formatted with "%.1f"; else wtgm := read last { " Select Text from CV3PhysicalNoteDeclaration " || " where ClientGUID = " || SQL(clientguid) || " and ClientVisitGUID = " || SQL(clientvisitguid) || " and TypeCode = {{{SINGLE-QUOTE}}}weight{{{SINGLE-QUOTE}}} " || " order by Entered asc " }; wt := (wtgm as number) / 1000; fmtwt := wt formatted with "%.1f"; endif; Calc_0_005 := (wt as number) * 0.005; Calc_0_01 := (wt as number) * 0.01; Calc_0_03 := (wt as number) * 0.03; Calc_0_05 := (wt as number) * 0.05; Calc_0_15 := (wt as number) * 0.15; Calc_0_1 := (wt as number) * 0.1; Calc_0_3 := (wt as number) * 0.3; Calc_0_5 := (wt as number) * 0.5; Calc_1_5 := (wt as number) * 1.5; Calc_15 := (wt as number) * 15; Calc_3 := wt * 3; Calc_5 := wt * 5; Calc_1 := wt * 1; Calc_15 := wt * 15; rnd_Calc_0_03:= (int((Calc_3 + 2.5)/5) * 5) /100; rnd_Calc_0_05:= (int((Calc_5 + 2.5)/5) * 5) /100; rnd_Calc_0_005:= (int((Calc_5 + 25)/50) * 50) /1000; rnd_Calc_0_01:= (int((Calc_1 + 2.5)/5) * 5) /100; rnd_Calc_0_3:= (int((Calc_3 + 0.5)/1) * 1) / 10; rnd_Calc_0_5:= (int((Calc_5 + 0.5)/1) * 1) / 10; rnd_Calc_0_15 := (int((Calc_15 + 50)/100) * 100) / 100; rnd_Calc_1_5 := (int((Calc_15 + 5)/10) * 10) / 10; rnd_Calc_0_1 := (int((Calc_1 + 0.5)/1) * 1) / 10; Morphine_Mod.Value := rnd_Calc_0_03 as number; Morphine_Sev.Value := rnd_Calc_0_05 as number; Hydromorphone_Mod.Value := rnd_Calc_0_005 as number; Hydromorphone_Sev.Value := rnd_Calc_0_01 as number; Fentanyl_Mod.Value := rnd_Calc_0_3 as number; Fentanyl_Sev.Value := rnd_Calc_0_5 as number; Metoclopramide.Value := rnd_Calc_0_1 as number; Acetaminophen_ml := (Int((((Calc_15 / 32) * 10) + 2.5)/5) *5) /10 ; Morphine_Mod_Note.Value := "Morphine 0.03 mg/kg (" ||rnd_Calc_0_03 || " mg)" || CRLF || "(Maximum Dose: 0.15 mg/kg (" || rnd_Calc_0_15 || " mg) TOTAL of all Morphine administered in PACU)"; Morphine_Sev_Note.Value := "Morphine 0.05 mg/kg (" ||rnd_Calc_0_05 || " mg)" || CRLF || "(Maximum Dose: 0.15 mg/kg (" || rnd_Calc_0_15 || " mg) TOTAL of all Morphine administered in PACU)"; Hydromorphone_Mod_Note.Value := "Hydromorphine 0.005 mg/kg (" || rnd_Calc_0_005 || " mg)" || CRLF || "(Maximum Dose: 0.03 mg/kg (" || rnd_Calc_0_03 || " mg) TOTAL)"; Hydromorphone_Sev_Note.Value := "Hydromorphine 0.01 mg/kg (" || rnd_Calc_0_01 || " mg)" || CRLF || "(Maximum Dose: 0.03 mg/kg (" || rnd_Calc_0_03 || " mg) TOTAL)"; Fentanyl_Mod_Note.Value := "Fentanyl 0.3 mcg/kg (" || rnd_Calc_0_3 || " mcg)" || CRLF || "(Maximum Dose: 1.5 mcg/kg (" || rnd_Calc_1_5 || " mcg) TOTAL)"; Fentanyl_Sev_Note.Value := "Fentanyl 0.5 mcg/kg (" || rnd_Calc_0_5 || " mcg)" || CRLF || "(Maximum Dose: 1.5 mcg/kg (" || rnd_Calc_1_5 || " mcg) TOTAL)"; Metoclopramide_Note.Value := "Metoclopramide 0.1 mg/kg (" || rnd_Calc_0_1 || " mg)" || CRLF || "(Maximum Dose: 10 mg)"; If (Calc_0_5 as number) < 30 then Ketorolac.Value := rnd_Calc_0_5 as number; else Ketorolac.Value := 30; endif; Acetaminophen_Oral.Value := (Acetaminophen_ml as number) * 32; Acetaminophen_Stat_Note.Value := "PACU ONLY. Give upon arrival in PACU. Acetaminophen 15 mg/kg. May give through NG tube."|| CRLF || Acetaminophen_Oral.Value || " mg = " || Acetaminophen_ml || " ml"; Acetaminophen_Note.Value := "PACU ONLY. For Mild pain score of 1-3. Acetaminophen 15 mg/kg. May give through NG tube."|| CRLF || Acetaminophen_Oral.Value || " mg = " || Acetaminophen_ml || " ml"; If (Calc_15 as number) > 0 and (Calc_15 as number) <= 300 then Acetaminophen_Rectal.Value := 120; AcetaminophenGrid.IsReadOnly := (False, False, False, True, True); Elseif (Calc_15 as number) > 300 and (Calc_15 as number) <= 645 then Acetaminophen_Rectal.Value := 325; AcetaminophenGrid.IsReadOnly := (False, False, True, False, True); Elseif (Calc_15 as number) > 645 then Acetaminophen_Rectal.Value := 650; AcetaminophenGrid.IsReadOnly := (False, False, True, True, False ); else AcetaminophenGrid.IsReadOnly := (False, False, False, False, False); endif; If (Calc_0_5 as number) >= 50 then Meperidine.Value := 50; Else Meperidine.Value := rnd_Calc_0_5 as number; endif; If (rnd_Calc_0_1 as number) >= 10 then Metoclopramide.Value := 10; Else Metoclopramide.Value := rnd_Calc_0_1 as number; endif; If (wt as number)> 0 and (wt as number)< 10 then Ondansetron_IV.value := rnd_Calc_0_1 as number; Ondansetron_Note.value := "Patients less than 10 kg. 0.1 mg/kg (" ||rnd_Calc_0_1 || "). "; elseif (wt as number)>= 10 and (wt as number)< 20 then Ondansetron_IV.value := 1; Ondansetron_Note.value := "Patients 10 to less than 20 kg."; elseif (wt as number)>= 20 and (wt as number)< 30 then Ondansetron_IV.value := 2; Ondansetron_Note.value := "Patients 20 to less than 30 kg."; elseif (wt as number)>= 30 and (wt as number)< 40 then Ondansetron_IV.value := 3; Ondansetron_Note.value := "Patients 30 to less than 40 kg."; elseif (wt as number)>= 40 then Ondansetron_IV.value := 4; Ondansetron_Note.value := "Patients 40 kg or greater."; endif; If (Calc_0_05 as number) >= 2 then Midazolam.Value := 2; Else Midazolam.Value := rnd_Calc_0_05 as number; endif; If (Calc_0_05 as number) >= 0.5 then RacemicEpi.Value := 0.5; RacemicEpi_Note.Value := "PACU ONLY. Racemic Epinephrine Inhalation 0.05 ml/kg/dose equals " ||RacemicEpi.Value || " ml diluted to 3 ml with normal saline over 15 min (MAXIMUM TOTAL DOSE Racemic Epinephrine: 0.5 ml)"; Else RacemicEpi.Value := rnd_Calc_0_05 as number; RacemicEpi_Note.Value := "PACU ONLY. Racemic Epinephrine Inhalation 0.05 ml/kg/dose equals " ||RacemicEpi.Value || " ml diluted to 3 ml with normal saline over 15 min (MAXIMUM TOTAL DOSE Racemic Epinephrine: 0.5 ml)"; endif; If CurrWeight_val.Weight = 0 then this_communication.Message := "Please enter a weight on this patient to continue." ; this_communication.MessageType := "Informational"; endif; ;; 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; ;; end: