Initial Checking with all 820 MLMs

This commit is contained in:
2020-02-02 00:54:01 -05:00
parent c59dc6de2e
commit 840d0432f4
828 changed files with 239162 additions and 0 deletions

View File

@@ -0,0 +1,259 @@
maintenance:
title: CALLED_DOM_CCC;;
mlmname: CALLED_DOM_CCC;;
arden: VERSION 2.5;;
version: 7.02;;
institution: Allscripts;;
author: Allscripts;;
specialist: Allscripts;;
date: 2014-09-22;;
validation: TESTING;;
/* P r o p r i e t a r y N o t i c e */
/* Unpublished (c) 2013 - 2014 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 "Commercial Computer Software".
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:
;;
explanation:
/*### SCM Release Version: 6.1, 14.3, 15.1 ###*/
VERSION DATE AUTHOR REVISION
---------------------------------------------------------------------------------------------------------
V6.10 2011-05-01 Initial Inclusion.
V7.00 2014-04-16 SMS Incremented version.
V7.01 2014-04-21 SMS Added IF block to allow charting to FS in addition to SN.
V7.02 2014-09-22 SMS Added IF block to check if .ValueObj EXISTS and if it doesn{{{SINGLE-QUOTE}}}t, create it.
This is a helper MLM that you can use to chart an observation by passing in the required parameters.
;;
keywords: RTF, Document Called MLM , list, multi-select
;;
knowledge:
type: data-driven
;;
data:
(this_documentCommunication, parameter_name, newValue, sugg_txt_value, UpdateType, pListGUID) := ARGUMENT;
/*******************Make Changes To Spelling And Flags In This Section******************/
//*** Variable and Constant Declaration ***//
// Document Types
FLOWSHEET := "Flowsheet";
STRUCTUREDNOTE := "StructuredNote";
(this_structuredNoteDoc) := this_documentCommunication.DocumentConfigurationObj;
(this_parameters) := this_structuredNoteDoc.ParametersList;
(this_chartedObservationsList) := this_structuredNoteDoc.ChartedObservationsList;
IF this_documentCommunication.DocumentType = FLOWSHEET THEN
(this_columnsList) := this_structuredNoteDoc.ColumnsList;
(this_currentColumn) := this_structuredNoteDoc.CurrentColumn;
(this_ClientDocumentGUID) := this_currentColumn.ClientDocumentGUID;
(this_chartedObservationsList) := this_structuredNoteDoc.CurrentColumn.ChartedObservationsList;
ELSEIF this_documentCommunication.DocumentType = STRUCTUREDNOTE THEN
(this_ClientDocumentGUID) := this_structuredNoteDoc.ClientDocumentGUID;
(this_chartedObservationsList) := this_structuredNoteDoc.ChartedObservationsList;
ENDIF;
this_DocumentType := this_documentCommunication.DocumentType;
//if the parameter type is a text and the observation already exist the new data may be a
//Replace of Append to current valueObj.Value
IF NOT EXISTS UpdateType OR UpdateType NOT IN("Append","Replace") THEN
UpdateType := "Replace";
ENDIF;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//*** Data Structures ***//
//The following data structures can be used to create new objects within the MLM itself.
//Not all data structures are represented here, only ones that can be created in the MLM.
// Parameter Types
NUMERICVALUE := "NumericValue";
FREETEXTVALUE := "FreeTextValue";
LISTVALUE := "ListValue";
LISTSETVALUE := "ListSetValue";
DATEVALUE := "DateValue";
IOVALUE := "IOValue";
GENERICDRIPVALUE := "GenericDripValue";
DRIPVALUE := "DripValue";
ObservationType := OBJECT [ObservationGUID, ClientDocumentGUID, ParameterGUID, DataType, ValueObj];
ListValueType := OBJECT [ListGUID, ListItemsList, SuggestedTextValue];
ListValueListItemType := OBJECT [ListItemGUID, Value, IsSelected];
DateValueType := OBJECT [Value];
FreeTextValueType := OBJECT [Value];
NumericValueType := OBJECT [Value];
ListSetValueType := OBJECT [ListValuesList];
//
// This section of code will demonstrate how to write to FreeTextValue, DateValue,NumericValue and ListValue
parameter := FIRST OF (this_Parameters WHERE this_Parameters.Name = parameter_name);
IF EXISTS parameter THEN
//******************************************************************************************************
// Check for existing object
//*******************************************************************************************************
obs := FIRST OF(this_ChartedObservationsList WHERE this_ChartedObservationsList.parameterGUID = parameter.parameterGUID);
IF NOT EXISTS obs THEN
//Create a new Observation for the list
obs := NEW ObservationType;
//obs.ClientDocumentGUID := this_documentCommunication.DocumentConfigurationObj.ClientDocumentGUID; //2014-04-21 SMS
obs.ClientDocumentGUID := this_ClientDocumentGUID;
obs.ParameterGUID := parameter.ParameterGUID;
obs.DataType := parameter.DataType;
ENDIF; //2014-09-22 SMS
IF NOT EXISTS obs.ValueObj THEN //2014-09-22 SMS
// Based on the parameter.DataType create the ValueObj Type and set the valueObj.value for (FREETEXTVALUETYPE,DATEVALUETYPE,NUMERICVALUETYPE)
// If the DataType is LISTVALUE then creat the valueObj of LISTVALUETYPE ABD ASSIGN THE paramter.configurationObj.ListGUID
IF parameter.DataType = FREETEXTVALUE THEN
obs.ValueObj := NEW FreeTextValueType;
ELSEIF parameter.DataType = DATEVALUE THEN
obs.ValueObj := NEW DateValueType;
ELSEIF parameter.DataType = NUMERICVALUE THEN
obs.ValueObj := NEW NumericValueType;
ELSEIF parameter.DataType = LISTVALUE THEN
obs.ValueObj := NEW ListValueType;
obs.ValueObj.ListGUID := parameter.ConfigurationObj.ListGUID;
ELSEIF parameter.DataType = LISTSETVALUE THEN
obs.ValueObj := NEW ListSetValueType;
ENDIF; // if parameter.DataType = FREETEXTVALUE then
//APPEND obs to the ChartedObservationsList
ENDIF;
IF parameter.DataType = FREETEXTVALUE AND UpdateType = "Append" THEN
IF LENGTH OF obs.ValueObj.Value > 0 THEN
obs.ValueObj.Value := obs.ValueObj.Value || "\n" || newValue;
ELSE
obs.ValueObj.Value := newValue;
ENDIF;
//break;
ELSEIF parameter.DataType = FREETEXTVALUE AND UpdateType = "Replace" THEN
IF EXISTS newValue THEN
//break;
obs.ValueObj.Value := newValue;
ELSE
obs.ValueObj := null;
ENDIF;
//break;
ELSEIF parameter.DataType IN(DATEVALUE,NUMERICVALUE) THEN
IF EXISTS newValue THEN // new code added by Stve Abel from Roswell Park
obs.ValueObj.Value := newValue;
//break;
ELSE
obs.ValueObj := null;
ENDIF;
// obs.ValueObj.Value := newValue; This was the code before Steve Abel addition
ELSEIF parameter.DataType = LISTVALUE THEN
//Populate the ListItemsList in the new observation object (obs)
// loop through each item in the parameter.ConfugurationObj.ListItemsList using "item"and append the item to the newly created object ListValueListItemType
//assign the item.listItemGUID to the selectedItem.ListItemGUID, the Item.value to the selectedItem.Value and set the SelectedItem.IsSelected := true
listItems := ();
IF newValue = "" THEN
newValue := NULL;
ENDIF;
IF sugg_txt_value = "" THEN
sugg_txt_value := NULL;
ENDIF;
IF (NOT EXISTS newValue) AND (NOT EXISTS sugg_txt_value) THEN
obs.ValueObj := null;
ELSE
IF EXISTS newValue THEN
FOR k IN 1 SEQTO COUNT OF parameter.ConfigurationObj.ListItemsList DO
item := parameter.ConfigurationObj.ListItemsList[k];
parm := FIRST OF(newValue WHERE newValue.ListValue = item.Value);
IF EXISTS parm THEN
//Create a list item object for the selected list item
selectedItem := NEW ListValueListItemType;
selectedItem.ListItemGUID := item.ListItemGUID;
selectedItem.Value := parm.ListValue;
selectedItem.IsSelected := parm.IsSelected;
// Arden list append statement appending the new object to the listItems object of the ListValueListItemType Object
listItems := (listItems, selectedItem);
// set the obs.valueObj.ListItemsList := listItems list object
Obs.ValueObj.ListItemsList := listItems;
ENDIF;
ENDDO;
ENDIF;
IF EXISTS sugg_txt_value THEN
obs.ValueObj.SuggestedTextValue := sugg_txt_value;
ENDIF;
ENDIF;
ELSEIF parameter.DataType = LISTSETVALUE THEN
newListValue := NEW ListValueType;
newListValue.ListGUID := pListGUID;
k := 0;
listItems := ();
ii := 0;
FOR i IN 1 SEQTO COUNT OF parameter.ConfigurationObj.ListConfigurationList DO
IF parameter.ConfigurationObj.ListConfigurationList[i].ListGUID = pListGUID THEN
ii := i;
ENDIF;
ENDDO;
FOR pItem IN parameter.ConfigurationObj.ListConfigurationList[ii].ListItemsList DO
k := k + 1;
parm := FIRST OF(newValue WHERE newValue.ListValue = pItem.Value);
IF EXISTS parm THEN
newItem := NEW ListValueListItemType;
newItem.ListItemGUID := pItem.ListItemGUID;
newItem.Value := parm.ListValue;
newItem.IsSelected := parm.IsSelected;
listItems := (listItems, newItem);
ENDIF;
ENDDO;
newListValue.ListItemsList := (newListValue.ListItemsList, listItems);
Obs.ValueObj.ListValuesList := (Obs.ValueObj.ListValuesList, newListValue);
IF EXISTS sugg_txt_value THEN
newListValue.SuggestedTextValue := sugg_txt_value;
ENDIF;
ENDIF;
IF EXISTS obs THEN //2014-04-21 SMS
IF this_DocumentType = FLOWSHEET THEN
this_documentCommunication.DocumentConfigurationObj.CurrentColumn.ChartedObservationsList := this_documentCommunication.DocumentConfigurationObj.CurrentColumn.ChartedObservationsList, obs;
ELSEIF this_DocumentType = STRUCTUREDNOTE THEN
this_documentCommunication.DocumentConfigurationObj.ChartedObservationsList := (this_documentCommunication.DocumentConfigurationObj.ChartedObservationsList, obs);
ENDIF;
ENDIF;
ENDIF; //IF EXISTS parameter THEN
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;;
evoke:
;;
logic:
CONCLUDE TRUE;
;;
action:
RETURN this_documentCommunication;
;;
Urgency: 50
end: