maintenance: title: FORM_Func_Disable_OS_Checkboxes;; mlmname: FORM_Func_Disable_OS_Checkboxes;; arden: version 2.5;; version: 15.1;; institution: St Clair Hospital;; author: Juliet Law, Allscripts ;; specialist: ;; date: 2016-05-05;; validation: testing;; library: purpose: Functional MLM to disable / enable grouping of checkbox fields on an order set ;; explanation: This MLM will be a functional call from Order set MLMs when needing to disable / enable a grouping of checkbox fields. Change history 05.05.2016 JML Created ;; keywords: Called MLMs, checkbox, fields ;; 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 callingField, //checkbox field that initiated the disable / enable of other checkboxes readOnlyVal, //Disable v. enable exceptionLst //Checkboxes to leave alone ) := argument; standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}}; include standard_libs; str_parse := MLM {{{SINGLE-QUOTE}}}UTIL_STRING_PARSE{{{SINGLE-QUOTE}}}; using "ObjectsPlusXA.SCM.Forms"; using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms"; ClientGuid := this_communication.ClientGUID; ChartGuid := this_communication.ChartGUID; ClientVisitGuid := this_communication.ClientVisitGUID; field_list := this_form.fields; /*******************Make Changes To Spelling And Flags In This Section*******************/ /* Set to True if a decision.log is needed.*/ log_execution_info := False; //------------------------------------------------------------ // Define the ObjectsPlus destinations //------------------------------------------------------------ for i in 1 seqto ( count field_list ) do if ( field_list.DataItemName[i] matches pattern "PRX_Checkbox%" ) then concatCurrField := field_list.DataItemName[i] || "|" || field_list.Control_MultiFieldOccNum[i]; if ( concatCurrField <> callingField ) then if ( NOT ( concatCurrField IN exceptionLst ) ) then affectedFld := first of ( field_list WHERE field_list.DataItemName = field_list.DataItemName[i] AND field_list.Control_MultiFieldOccNum = field_list.Control_MultiFieldOccNum[i] ); affectedFld.Control_Read_Only := readOnlyVal; endif; endif; endif; enddo; ;; evoke: // No evoke statement ;; logic: conclude True; ;; action: // This MLM returns two parameters, of types communication_type and form_type respectively. return true; ;; Urgency: 50;; end: