maintenance: title: FORM_SET_PERICARDIOCENTESIS_LABS;; mlmname: FORM_SET_PERICARDIOCENTESIS_LABS;; arden: version 2.5;; version: 5.50;; institution: St Clair Hospital;; author: Shawn Head, Allscripts ;; specialist: Michelle Palmer, Allscripts;; date: 2012-12-03;; validation: testing;; library: purpose: Lab orders entered on Pericarocentesis Order Sets need to display on MI and Cytology requisitions ;; explanation: This MLM is called from ... Change history 2012.12.03 STH CSR 30985: Created from copy of FORM_SET_THORACENTESIS_LABS {Go-Live 12/4/2018} ;; keywords: Called MLMs, Thoracentesis, Paracentesis ;; 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"; generic_item_control := mlm {{{SINGLE-QUOTE}}}FORM_SET_GENERIC_ITEM_CONTROL{{{SINGLE-QUOTE}}}; // 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; /***************************************************************************************/ // 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; ClientGuid := this_communication.ClientGUID; FormName := this_form.Name; CR := 13 formatted with "%c"; LF := 10 formatted with "%c"; //Retrieve fields Labs_fld := last of (field_list WHERE field_list.DataItemName = "MultiOrderCheckbox" and field_list.Control_MultiFieldOccNum = 1); Labs_fld_List := Labs_fld.Value; CT_Pericard_fld := last of (field_list WHERE field_list.DataItemName = "MultiOrderGrid" and field_list.Control_MultiFieldOccNum = 2); CT_Pericard_fld_list := CT_Pericard_fld.Value; Labs_List_fld := last of (field_list WHERE field_list.DataItemName = "Labs on Centesis" and field_list.Control_MultiFieldOccNum = 1); Cytology_List_fld := last of (field_list WHERE field_list.DataItemName = "Cytology on Centesis" and field_list.Control_MultiFieldOccNum = 1); lablist := null; cytologylist := null; if (CallingEvent = "FieldChange")then if (CallingField = "MultiOrderGrid|2") then if (CT_Pericard_fld_list.IsSelected[1] = true) then Labs_fld.Value.IsSelected := true; else Labs_fld.Value.IsSelected := false; endif; endif; (this_communication, this_form) := call generic_item_control WITH (this_communication, this_form, client_info_obj); if (CT_Pericard_fld_list.IsSelected[1] = true) then for i in 1 seqto (count Labs_fld_List.Name) do if(Labs_fld.Value.IsSelected[i] = true) then if (not (Labs_fld_List.Name[i] matches pattern "%Cytology%")) then if (lablist IS NULL) then lablist := Labs_fld_List.Name[i]; else lablist := lablist || ", " || Labs_fld_List.Name[i]; endif; else if (cytologylist IS NULL) then cytologylist := Labs_fld_List.Name[i]; else cytologylist := cytologylist || ", " || Labs_fld_List.Name[i]; endif; endif; endif; enddo; else cytologylist := (); lablist := (); endif; Labs_List_fld.Value := ""; Cytology_List_fld.Value := ""; if lablist <> "" and lablist is not null then Labs_List_fld.Value := "Labs: " || lablist || CR || LF; endif; if cytologylist <> "" and cytologylist is not null then Cytology_List_fld.Value := "Cytology: " || cytologylist || CR || LF; endif; 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: