maintenance: title: Repeat Orders -- Add Order GUID to form;; filename: FORM_ID_RepeatOrders_Rx;; arden: version 2.5;; version: 15.10;; institution: Eclipsys;; author: Teresa Spicuzza;; specialist: Teresa Spicuzza;; date: 2015-10-13;; validation: testing;; library: purpose: This MLM is being used as a way to suppress the transmission of orders from SCM to the St. Clair ancillary Deficiency System if an order is a repeating order and not the first of the set of repeating orders. St. Clair wants only the first of a set of repeating orders to be sent to the deficiency system. This MLM fires on FormClose when a user is entering an order. That control is set by the system to be TRUE if the order is a repeat order; otherwise it will be FALSE on FormClose. This MLM will check the value of the control_read_only of RequestedTime. If it is TRUE, this MLM will populate the hidden field on the form with the OrderGUID of the current order (which is the master repeat order). That value will be propagated to all the children -- the repeat instances generated from the master. An interface process will read the hidden field transmitted in the HL7 message -- if the field is present and populated, the interface will use the master order GUID stored in the message to determine whether or not this is the initial repeat or a subsequent one. ;; explanation: This MLM is called by FORM _NOW_AND_THEN on FormClose of any order listed in the logic using the the dosing option functionality for medicatio orders. The intention is to "mark" repeating orders. When the initial order of a repeating group of orders is entered. It populates a hidden REPEAT_ORDER_GUID_MED field with the OrderGUID of the Primary Object (the order being entered). No message is sent displayed to the user. The order form must be configured with the REPEAT_ORDER_GUID_MED field and this MLM must be triggered by FormClose. change history 10.13.2015 TMS Copied and modified for pharmacy orders that use a dosing option group from Form_ID_Repeat_Orders. Moved to prod 11.11.2015 Ticket # 1855646 ;; keywords: Called MLMs, Form fields, PRN ;; 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; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to true if a decision.log is needed.*/ log_execution_info := false; /***************************************************************************************/ comm_obj := this_communication.primaryobj; // Initialize error message error_message:=""; // Assigns fields passed in the Form object to the Field object and the name of the form field_list:= this_form.fields; CallingField :=this_communication.CallingFieldName; CallingEvent := this_communication.CallingEvent; FormType := this_communication.FormType; form_name := this_form.Name; /*-------------------------------------------*/ /* Retrieve info from other argument objects */ /*-------------------------------------------*/ //Capture the Ordering Method (Item Event), the OrderGUID, and the OrderCatalogMasterItemGUID // Order_Method := this_communication.ItemEvent; // Could be UserEnter, UserModify, UserEditUnsubmitted, SystemEnter, or SystemModify. Order_GUID := this_communication.PrimaryObj.GUID; Order_GUID_string := Order_GUID AS String; RepeatOrderID_field := first of (field_list where field_list.DataItemName = "REPEAT_ORDER_GUID_MED"); If comm_obj.Name = "MethylPREDNISolone 4mg Dose Pak Tab" and RepeatOrderID_field.value is null Then RepeatOrderID_field.Value := Order_GUID_string; 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: