maintenance: title: Admission Orders - Pneumonia;; mlmname: FORM_Set_ED_Admit_Pneumonia;; arden: version 2.5;; version: 5.50;; institution: St Clair Hospital;; author: Teresa Spicuzza, Allscripts ;; specialist: Teresa Spicuzza, Allscripts;; date: 2011-04-01;; validation: testing;; library: purpose: Used for Admission Orders - Pneumonia ;; explanation: This MLM is called from Admission Orders - Pneumonia Change history 06.20.2012 TMS Added call to FORM_MEDICAL_IMAGING_INDICATIONS_FOR_OS{{{SINGLE-QUOTE}}} under form open to retrieve diabetic health issues and iodine allergies to autopopulate questions on order set form when found. CSR 22904 ;; keywords: Called MLMs, Lab Grids on Order Sets, Inital ED ;; knowledge: type: data-driven;; data: standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; 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; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to true if a decision.log is needed.*/ log_execution_info := FALSE; /***************************************************************************************/ MedImageInd := MLM {{{SINGLE-QUOTE}}}FORM_MEDICAL_IMAGING_INDICATIONS_FOR_OS{{{SINGLE-QUOTE}}}; // Initialize error message error_message:=""; // Assigns fields passed in the Form object to the Field object field_list:= this_form.fields; CallingEvent := this_communication.CallingEvent; CallingField := this_communication.CallingFieldName; AdmitOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 46); AdmitOrders_List := AdmitOrders.Value; Found_Admit_Gen := first of (AdmitOrders_List where AdmitOrders_List.Name = "Admit to Inpatient"); Found_Admit_CC := last of (AdmitOrders_List where AdmitOrders_List.Name = "Admit to Inpatient"); GenMedOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 66); GenMedOrders_List := GenMedOrders.Value; CCMedOrders := last of (field_list where field_list.DataItemName = "MultiOrderGrid" and field_List.Control_MultiFieldOccNum = 67); CCMedOrders_List := CCMedOrders.Value; Guidelines := last of (field_list where field_list.DataItemName = "MultiOrderInline" and field_List.Control_MultiFieldOccNum = 1); Guidelines_List := Guidelines.Value; If CallingEvent = "FormOpen" then Guidelines_List.IsReadOnly := (True); IndMLM := call MedImageInd with (this_communication, // Communication object this_form, // Form object client_info_obj //Arden ClientInfo object ) ; endif; // Make eligible orders available for General or Critical Care depending upon admit order If CallingField = "MultiOrderGrid|46" then If (Found_Admit_Gen.IsSelected = True) then AdmitOrders_List.IsReadOnly := (False,True,True); CCMedOrders_List.IsReadOnly := (True,True,True,True,True,True); elseIf (Found_Admit_CC.IsSelected = True) then AdmitOrders_List.IsReadOnly := (True,False,True); GenMedOrders_List.IsReadOnly := (True,True,True,True,True); else AdmitOrders_List.IsReadOnly := (False,False,False); GenMedOrders_List.IsReadOnly := (False,False,False,False,False); CCMedOrders_List.IsReadOnly := (False,False,False,False,False,False); endif; endif; // multiordergrid 46 // Mark meds to be ordered in combo when first med is selected (gen orders) If CallingField = "MultiOrderGrid|66" and CallingEvent = "FieldChange" Then If true in GenMedOrders_List.IsSelected Then //gen combo 1-2(selected) If GenMedOrders_List.IsSelected [1] = true Then GenMedOrders_List.IsSelected := (True,True,False,False,False); GenMedOrders_List.IsReadOnly := (False,True,True,True,True); Endif; //gen combo 1-2( (unselected) If (GenMedOrders_List.IsSelected [1] = False and GenMedOrders_List.IsSelected [2] = True) Then GenMedOrders_List.IsSelected := (False,False,False,False,False); GenMedOrders_List.IsReadOnly := (False,False,False,False,False); Endif; //gen combo 3-4(selected) If GenMedOrders_List.IsSelected [3] = true Then GenMedOrders_List.IsSelected := (False,False,True,True,False); GenMedOrders_List.IsReadOnly := (True,True,False,True,True); Endif; // gen combo 3-4((unselected) If (GenMedOrders_List.IsSelected [3] = False and GenMedOrders_List.IsSelected [4] = True) Then GenMedOrders_List.IsSelected := (False,False,False,False,False); GenMedOrders_List.IsReadOnly := (False,False,False,False,False); Endif; //item 5 (selected) If GenMedOrders_List.IsSelected [5] = true Then GenMedOrders_List.IsSelected := (False,False,False,False,True); GenMedOrders_List.IsReadOnly := (True,True,True,True,False); Endif; // (unselected) else GenMedOrders_List.IsReadOnly := (False,False,False,False,False); endif; // If true in GenMedOrders_List.IsSelected endif; //If CallingField = "MultiOrderGrid|66" and CallingEvent = "FieldChange" Then // Mark meds to be ordered in combo when first med is selected (gen orders) If CallingField = "MultiOrderGrid|67" and CallingEvent = "FieldChange" Then If true in CCMedOrders_List.IsSelected Then //CC combo 1-2(selected) If CCMedOrders_List.IsSelected [1] = true Then CCMedOrders_List.IsSelected := (True,True,False,False,False,False); CCMedOrders_List.IsReadOnly := (False,True,True,True,True,True); Endif; //CC combo 1-2( (unselected) If (CCMedOrders_List.IsSelected [1] = False and CCMedOrders_List.IsSelected [2] = True) Then CCMedOrders_List.IsSelected := (False,False,False,False,False,False); CCMedOrders_List.IsReadOnly := (False,False,False,False,False,False); Endif; //CC combo 3-4(selected) If CCMedOrders_List.IsSelected [3] = true Then CCMedOrders_List.IsSelected := (False,False,True,True,False,False); CCMedOrders_List.IsReadOnly := (True,True,False,True,True,True); Endif; // CC combo 3-4((unselected) If (CCMedOrders_List.IsSelected [3] = False and CCMedOrders_List.IsSelected [4] = True) Then CCMedOrders_List.IsSelected := (False,False,False,False,False,False); CCMedOrders_List.IsReadOnly := (False,False,False,False,False,False); Endif; // CC combo 5-6 (selected) If CCMedOrders_List.IsSelected [5] = true Then CCMedOrders_List.IsSelected := (False,False,False,False,True,True); CCMedOrders_List.IsReadOnly := (True,True,True,True,False,True); Endif; // CC combo 5-6((unselected) If (CCMedOrders_List.IsSelected [5] = False and CCMedOrders_List.IsSelected [6] = True) Then CCMedOrders_List.IsSelected := (False,False,False,False,False,False); CCMedOrders_List.IsReadOnly := (False,False,False,False,False,False); Endif; else CCMedOrders_List.IsReadOnly := (False,False,False,False,False,False); endif; //If true in CCMedOrders_List.IsSelected endif; //If CallingField = "MultiOrderGrid|67" and CallingEvent = "FieldChange" Then ;; 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: