maintenance: title: CDS Session Definition;; filename: SYS_LIB_SESSION;; arden: version 2.5;; version: 18.4;; institution: Allscripts, System MLM;; author: Allscripts Healthcare Solutions, Inc.;; specialist: ;; date: 2018-10-26;; validation: testing;; /* P r o p r i e t a r y N o t i c e */ /* Unpublished (c) 2013 - 2018 Allscripts Healthcare, LLC. and/or its affiliates. All Rights Reserved. P r o p r i e t a r y N o t i c e: This software has been provided pursuant to a License Agreement, with Allscripts Healthcare, LLC. and/or its affiliates, containing restrictions on its use. This software contains valuable trade secrets and proprietary information of Allscripts Healthcare, LLC. and/or its affiliates and is protected by trade secret and copyright law. This software may not be copied or distributed in any form or medium, disclosed to any third parties, or used in any manner not provided for in said License Agreement except with prior written authorization from Allscripts Healthcare, LLC. and/or its affiliates. Notice to U.S. Government Users: This software is {{{SINGLE-QUOTE}}}Commercial Computer Software{{{SINGLE-QUOTE}}}. All product names are the trademarks or registered trademarks of Allscripts Healthcare, LLC. and/or its affiliates. */ /* P r o p r i e t a r y N o t i c e */ library: purpose: This MLM defines the top level session object, stored in the Arden variable CDS_SESSION. ;; explanation: Facilities should NOT modify this MLM. If a facility wishes to add session variables, they should be added to the MLM named SYS_LOCAL_SESSION. From Arden, this can be referenced like this: local_session := CDS_SESSION.local; To add global session variables (these are only cleared when a user logs off) modify the SYS_GLOBAL_SESSION.MLM. From Arden, this can be referenced like this: global_session := CDS_SESSION.global; Note: this MLM is called by the system both to define and to return a new session object. It must not refer to CDS_SESSION or else a circular reference may occur where the MLM will call itself again and again. This MLM should ONLY be modified by Eclipsys. ;; keywords: SESSION; CDS_SESSION ;; knowledge: type: data-driven;; data: // Declare the MLM that will be called local_session_mlm := MLM {{{SINGLE-QUOTE}}}SYS_LOCAL_SESSION{{{SINGLE-QUOTE}}}; global_session_mlm := MLM {{{SINGLE-QUOTE}}}SYS_GLOBAL_SESSION{{{SINGLE-QUOTE}}}; EnvProfile_session_mlm := MLM {{{SINGLE-QUOTE}}}SYS_LIB_CDSENVIRONMENTSETTINGS{{{SINGLE-QUOTE}}}; // Declare the TOP LEVEL SESSION Object session := object [ global, local, CDSEnvironmentSettings, system_field_1, // Rename these or add additional fields as needed by Allscripts system_field_2 ]; ;; evoke: // Called internally by the system as necessary ;; logic: // Create a session and return it session_obj := new session; local := call local_session_mlm; // Create the local session session_obj.local := local; global := call global_session_mlm; // Create the global session session_obj.global := global; // Create the environment profile session object CDSEnvironmentSettings_obj := call EnvProfile_session_mlm; session_obj.CDSEnvironmentSettings := CDSEnvironmentSettings_obj; conclude true; ;; action: return session_obj; ;; end: