maintenance: title:Pharmacy SCM Route Code to WORx code mapping;; mlmname:FORM_RX_ROUTE_MAPPING;; arden: version 2;; version: 4.50;; institution: St Clair Rx Route Mapping MLM;; author: Robert Spence, Eclipsys Corp;; specialist: ;; date: 2007-01-26;; validation: testing;; library: purpose: This MLM sets the field WORX_Route to a mapped value dependant on the SCM Route. ;; explanation: This MLM is launched on the change of the Route field on the PRX forms The mappings where supplied by Teresa Spicuzza 01/26/2007 change history 10.24.2007 TMS Added additional routes for mapping to MM, PO and NS to eliminate Veriscan errors. 05.27.2015 TMS Added additional for interventional radiology orders. CSR 32710 ;; keywords: Called MLMs, Form fields, Rx Route, Worx Route, Mapping ;; 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; /***************************************************************************************/ // Initialize error message error_message:=""; // Assigns fields passed in the Form object to the Field object field_list:= this_form.fields; CallingField :=this_communication.CallingFieldName; CallingEvent := this_communication.CallingEvent; FormType := this_communication.FormType; // This sets the visible control on the field dataitem - CHG_OVERRIDE_WITH Route_field := last of (field_list where field_list.DataItemName = "OrderRouteCode" ); WORx_Route_field := last of (field_list where field_list.DataItemName = "PRX_WORx_Route" ); If CallingField ="OrderRouteCode" then If Route_Field.Value in ("IV PUSH","IVPB", "IV") then WORx_Route_Field.Value :="IV"; elseif Route_Field.Value in ("Left Ear","Right Ear","Both Ears") then WORx_Route_Field.Value := "OT"; elseif Route_Field.Value in ("Left Eye","Right Eye","Both Eyes") then WORx_Route_Field.Value := "OP"; elseif Route_Field.Value in ("Left Nostril","Right Nostril","Each Nostril","Alternating Nostrils") then WORx_Route_Field.Value := "NS"; elseif Route_Field.Value in ("PO","VIA TUBE","CHEW","Swish and Swallow") then WORx_Route_Field.Value :="PO"; elseif Route_Field.Value in ("SL") then WORx_Route_Field.Value :="SL"; elseif Route_Field.Value in ("Topical","Topically","Apply","Cleanse incision") then WORx_Route_Field.Value :="TP"; elseif Route_Field.Value in ("Inhaled") then WORx_Route_Field.Value := "IH"; elseif Route_Field.Value in ("Dissolve in Mouth","Swish and Spit","Swish","Gargle") then WORx_Route_Field.Value := "MM"; elseif Route_Field.Value in ("Apply Topically") then WORx_Route_Field.Value := "TD"; elseif Route_Field.Value in ("IM") then WORx_Route_Field.Value := "IM"; elseif Route_Field.Value in ("Rectally", "Per Colostomy") then WORx_Route_Field.Value := "RC"; elseif Route_Field.Value in ("Vaginally") then WORx_Route_Field.Value := "VG"; elseif Route_Field.Value in ("Sheath") then WORx_Route_Field.Value := "SH"; elseif Route_Field.Value in ("Epidural") then WORx_Route_Field.Value := "EP"; elseif Route_Field.Value in ("Intracatheter") then WORx_Route_Field.Value := "IC"; endif; endif; // this_communication.DisplayForm := "Yes"; // this_communication.Message := "MLM Field :" || CallingField || "\n" || // "MLM Event :" || CallingEvent || "\n" || // "Form type :" || FormType; // this_communication.MessageType := "Informational"; ;; 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: