Initial Checking with all 820 MLMs
This commit is contained in:
125
MLMStripper/bin/Debug/DOC/DOC_FUNC_DEFAULT_OBS_VALUES.mlm
Normal file
125
MLMStripper/bin/Debug/DOC/DOC_FUNC_DEFAULT_OBS_VALUES.mlm
Normal file
@@ -0,0 +1,125 @@
|
||||
maintenance:
|
||||
|
||||
title: DOC_FUNC_DEFAULT_OBS_VALUES;;
|
||||
mlmname: DOC_FUNC_DEFAULT_OBS_VALUES;;
|
||||
arden: version 2.5;;
|
||||
version: 1.00;;
|
||||
institution: St. Clair Hospital;;
|
||||
author: Shawn Head x7468 - Allscripts/St. Clair Hospital;;
|
||||
specialist: Courtney Carr - Allscripts/St. Clair Hospital;;
|
||||
date: 2017-06-20;;
|
||||
validation: testing;;
|
||||
|
||||
library:
|
||||
purpose:
|
||||
;;
|
||||
explanation:
|
||||
06-20-2017 STH CSR#: 35320 - This MLM is called to parse through the configuration on structured notes to default the observation values to user configurable values.
|
||||
|
||||
;;
|
||||
keywords:
|
||||
;;
|
||||
citations:
|
||||
;;
|
||||
knowledge:
|
||||
type: data-driven;;
|
||||
data:
|
||||
standard_libs := mlm {{{SINGLE-QUOTE}}}std_include_libs{{{SINGLE-QUOTE}}};
|
||||
std_write_obs_MLM := mlm {{{SINGLE-QUOTE}}}STD_FUNC_DOC_WRITE_TO_DOCUMENT{{{SINGLE-QUOTE}}};
|
||||
string_parse := mlm {{{SINGLE-QUOTE}}}UTIL_STRING_PARSE{{{SINGLE-QUOTE}}};
|
||||
include standard_libs;
|
||||
|
||||
using "ObjectsPlusXA.SCM.Forms";
|
||||
using namespace "ObjectsPlusXA.SunriseClinicalManager.Forms";
|
||||
CR := 13 formatted with "%c";
|
||||
LF := 10 formatted with "%c";
|
||||
CRLF:= CR||LF;
|
||||
|
||||
// Recieve arguments from the structured note
|
||||
(thisDocumentCommunication) := argument;
|
||||
|
||||
// Extract interesting parts of the object model
|
||||
(thisStructuredNoteDoc) := thisDocumentCommunication.DocumentConfigurationObj;
|
||||
(thisParameters) := thisStructuredNoteDoc.ParametersList;
|
||||
(thisObservations) := thisStructuredNoteDoc.ChartedObservationsList;
|
||||
|
||||
// Create prototypes for the object types we{{{SINGLE-QUOTE}}}ll need to instantiate
|
||||
ObservationType := OBJECT [ObservationGUID, ClientDocumentGUID, ParameterGUID, DataType, ValueObj];
|
||||
FreeTextValueType := OBJECT [Value];
|
||||
DateValueType := OBJECT [Value];
|
||||
ListValueType := OBJECT [ListGuid,ListItemsList, SuggestedTextValue];
|
||||
ListValueListItemType := OBJECT [ListItemGUID, Value, IsSelected];
|
||||
|
||||
// Get the client and visit GUIDs
|
||||
clientGuid := thisDocumentCommunication.ClientGUID;
|
||||
visitGuid := thisDocumentCommunication.ClientVisitGUID;
|
||||
chartGuid := thisDocumentCommunication.ChartGUID;
|
||||
userGuid := thisDocumentCommunication.UserGUID;
|
||||
DocGuid := thisStructuredNoteDoc.ClientDocumentGUID ;
|
||||
allrulesprocessed := false;
|
||||
Generic_SN_Parameter := first of (thisParameters where thisParameters.Name = "GenericSetObsDefaults");
|
||||
Generic_SN_Obs := first of (thisObservations where thisObservations.ParameterGUID = Generic_SN_Parameter.ParameterGUID);
|
||||
Generic_SN_Rules := Generic_SN_Obs.ValueObj.Value;
|
||||
fidcrlf := find CRLF in string Generic_SN_Rules;
|
||||
ctlen := length of Generic_SN_Rules;
|
||||
|
||||
ReplaceCRLF := "";
|
||||
for x in (fidcrlf seqto(ctlen)) do
|
||||
|
||||
ReplaceCRLF := read {" select replace("|| sql(Generic_SN_Rules) || ",char(13)+char(10),{{{SINGLE-QUOTE}}}{{{SINGLE-QUOTE}}}) "};
|
||||
fidcrlf := find CRLF in string ReplaceCRLF;
|
||||
if fidcrlf = 0 then
|
||||
fidcrlf := ctlen + 1;
|
||||
endif;
|
||||
|
||||
|
||||
enddo;
|
||||
|
||||
if not (ReplaceCRLF[1] matches pattern "%|") then
|
||||
ReplaceCRLF[1] := ReplaceCRLF[1] || "|";
|
||||
endif;
|
||||
Rules_List := ();
|
||||
Rules_Obs_Values := ();
|
||||
SplitRulesFromValues := ();
|
||||
SplitValuesFromSuggestedText := ();
|
||||
|
||||
Rules_List := call string_parse with (ReplaceCRLF[1],"|");
|
||||
|
||||
for x in 1 seqto(count(Rules_List)) do
|
||||
test2 := Rules_List[x];
|
||||
tstfind := find CRLF in string Rules_List[x];
|
||||
(SplitRulesFromValues) := call string_parse with (Rules_List[x],"~");
|
||||
Rules_Obs_Parameter := SplitRulesFromValues[1];
|
||||
testsplit := (SplitRulesFromValues[2] matches pattern "%{%");
|
||||
if(SplitRulesFromValues[2] matches pattern "%{%") then
|
||||
SplitValuesFromSuggestedText := call string_parse with (SplitRulesFromValues[2],"{");
|
||||
(Rules_Obs_Values) := call string_parse with (SplitValuesFromSuggestedText[1],"^");
|
||||
Rules_Obs_SuggestedText := SplitValuesFromSuggestedText[2];
|
||||
else
|
||||
(Rules_Obs_Values) := call string_parse with (SplitRulesFromValues[2],"^");
|
||||
Rules_Obs_SuggestedText := "";//SplitValuesFromSuggestedText[2];
|
||||
endif;
|
||||
|
||||
IF(count(Rules_Obs_Values)>1) then
|
||||
(thisDocumentCommunication) := CALL std_write_obs_MLM with (thisDocumentCommunication,Rules_Obs_Parameter,Rules_Obs_Values,Rules_Obs_SuggestedText,"Replace");
|
||||
else
|
||||
(thisDocumentCommunication) := CALL std_write_obs_MLM with (thisDocumentCommunication,Rules_Obs_Parameter,Rules_Obs_Values[1],Rules_Obs_SuggestedText,"Replace");
|
||||
endif;
|
||||
|
||||
enddo;
|
||||
|
||||
if((Generic_SN_Rules <> "") and (allrulesprocessed)) then
|
||||
(thisDocumentCommunication) := CALL std_write_obs_MLM with (thisDocumentCommunication,Generic_SN_Parameter.Name,"","","Replace");
|
||||
endif;
|
||||
|
||||
;;
|
||||
priority: 50
|
||||
;;
|
||||
evoke:
|
||||
;;
|
||||
logic: conclude true;
|
||||
;;
|
||||
action: return thisDocumentCommunication;
|
||||
;;
|
||||
Urgency: 50;;
|
||||
end:
|
||||
Reference in New Issue
Block a user