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,245 @@
maintenance:
title: DOC_SCH_Readmission_Risk_Assessments;;
mlmname: DOC_SCH_Readmission_Risk_Assessments;;
arden: version 2.5;;
version: 5.50;;
institution: SCH ;;
author: Chintan Tilwa ;;
specialist: ;;
date: 2012-10-10;;
validation: testing;;
library:
purpose:
;;
explanation:
Change history
10.15.2012 CT CSR# 30880 - Created by GOS for Readmission Initiative Project
04.30.2013 DW CSR# 31334 - Adjusted to support the re-configuration of Pregnancy & Lactation questions
;;
keywords:
;;
knowledge:
type: data-driven;;
data:
(this_documentCommunication) := argument;
//Get The Structure Note
(this_FS_doc) := this_documentCommunication.DocumentConfigurationObj;
//Get the Parameter List
(this_parms) := this_FS_doc.ParametersList;
//Paramters defination
(this_cols) := this_FS_doc.ColumnsList;
(this_curr_col) := this_FS_doc.Currentcolumn;
(this_currentObs) := this_documentCommunication.CurrentObservationObj;
(this_observations) := this_FS_doc.ChartedObservationsList;
(this_curr_valobj) := this_currentObs.valueobj;
if ((this_documentCommunication.DocumentName = "Adult Patient Profile") OR
(this_documentCommunication.DocumentName = "Adult Patient Profile - Observation")) then
MLM_DIPA := MLM {{{SINGLE-QUOTE}}}UTIL_OBJECT_Customize_DIPA_MLM{{{SINGLE-QUOTE}}};
Client_GUID := this_documentCommunication.ClientGUID;
Client_Visit_GUID := this_documentCommunication.ClientVisitGUID;
prm1 := first of (this_parms where this_parms.Name = "SCH_CK_Prior Pattern_2");
Obs := first of (this_observations where this_observations.ParameterGUID = prm1.ParameterGUID );
lst1 := Obs.valueObj.ListItemsList ;
(Pre_Visit) := Read Last {"select COUNT(1) as No_Visit from CV3ClientVisit where ClientGUID = " || SQL(Client_GUID) || " and GUID <> " || SQL(Client_Visit_GUID) || " and TypeCode in ({{{SINGLE-QUOTE}}}Inpatient{{{SINGLE-QUOTE}}},{{{SINGLE-QUOTE}}}Emergency{{{SINGLE-QUOTE}}}) and (AdmitDtm between GETDATE()-90 and GETDATE())"};
(Pat_Falls) := Read Last {"select Description from CV3ClientEventDeclaration where ClientGUID = " || SQL(Client_GUID) || " and TypeCode = {{{SINGLE-QUOTE}}}Fall History{{{SINGLE-QUOTE}}} and Status = {{{SINGLE-QUOTE}}}Active{{{SINGLE-QUOTE}}}"};
//sel1 := last of( lst1.Value where lst1.IsSelected = true );
final_List := ();
If Pre_Visit > 3 Then
final_List := final_List , ">3 hospitalizations or ER Visits in past 3 months" ;
endif;
If exist Pat_Falls Then
final_List := final_List , "History of Falls" ;
endif;
for i in lst1 do
if i.Isselected = true then
final_List := final_List , i.Value ;
endif;
enddo;
obs1 := CALL MLM_DIPA WITH this_DocumentCommunication, prm1, final_List;
this_documentCommunication.DocumentConfigurationObj.ChartedObservationsList := (
this_documentCommunication.DocumentConfigurationObj.ChartedObservationsList, obs1);
MLM_Score := MLM {{{SINGLE-QUOTE}}}DOC_SCH_Readmission_Risk_Score{{{SINGLE-QUOTE}}};
obs_Score := Call MLM_Score With this_documentCommunication;
MLM_Obs_Score := MLM {{{SINGLE-QUOTE}}}DOC_SCH_Readmission_Risk_Observation_Score{{{SINGLE-QUOTE}}};
obs1_Score := Call MLM_Obs_Score With this_documentCommunication;
//Clear Session variables
local_session := CDS_SESSION.local;
local_session.SessionReadmissionPharmacy := "";
local_session.SessionReadmissionDiagnosis := "";
local_session.SessionReadmissionDischarge := "";
local_session.SessionReadmissionFunctional := "";
local_session.SessionReadmissionDevice := "";
local_session.SessionReadmissionNutritional := "";
local_session.SessionReadmissionSmoking := "";
local_session.SessionReadmissionDiagnosisForMessage := "";
local_session.SessionNutritionalForMessage := "";
//local_session.SessionReadmissionScore := "";
local_session.SessionDeviceMessage := "";
local_session.SessionSmokingForMessage := "";
// Set session object for risks that are selected
prm := first of (this_parms where this_parms.Name = "SCH_CK_Nutritional Risk");
Obs := first of (this_observations where this_observations.ParameterGUID = prm.ParameterGUID);
lst1 := Obs.valueObj.ListItemsList ;
strSelectedNut := "";
for i in lst1 do
if i.Isselected = true Then
If i.value <> "No Nutritional Risk Criteria" then
List1 := List1 , i.Value ;
EndIF;
strSelectedNut := strSelectedNut || "`" || i.Value;
endif;
enddo;
local_session.SessionNutritionalForMessage := strSelectedNut;
prm := first of (this_parms where this_parms.Name = "SCH_CK_Device(s) on admission, ED, and OR");
Obs := first of (this_observations where this_observations.ParameterGUID = prm.ParameterGUID);
lst1 := Obs.valueObj.ListItemsList ;
SessionDeviceMessage := local_session.sessionDeviceMessage ;
for i in lst1 do
if i.Isselected = true Then
strSelectedDev := strSelectedDev || ", " || i.Value;
endif;
enddo;
local_session.sessionDeviceMessage := strSelectedDev;
strSelectedNut := "";
prm := first of (this_parms where this_parms.Name = "SCH_CK_Smoking Risk");
Obs := first of (this_observations where this_observations.ParameterGUID = prm.ParameterGUID);
lst1 := Obs.valueObj.ListItemsList ;
for i in lst1 do
if i.Isselected = true Then
strSelectedNut := strSelectedNut || "`" || i.Value;
endif;
enddo;
local_session.SessionSmokingForMessage := strSelectedNut;
prm := first of (this_parms where this_parms.Name = "SCH_CK_Diagnosis Risk");
Obs := first of (this_observations where this_observations.ParameterGUID = prm.ParameterGUID);
lst1 := Obs.valueObj.ListItemsList ;
sel1Col := lst1.Value where lst1.IsSelected = true ;
if "New Onset Diabetes" in sel1Col then
local_session.SessionReadmissionDiagnosisForMessage := "New Onset Diabetes";
EndIF;
// Determine if the patient Pregnacy Risk is N/A (males and females not of child bearing age)
(gender, patientage) := read last
{
" select "
||" gendercode, case when "
||" right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (datepart (MM,getdate()) as varchar),2) + right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (datepart (DD,getdate()) as varchar),2) < "
||" right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (birthmonthnum as varchar),2) + right({{{SINGLE-QUOTE}}}00{{{SINGLE-QUOTE}}} + cast (birthdaynum as varchar),2) "
||" then datediff (yy, cast (birthyearnum as varchar) ,getdate()) -1 "
||" else datediff (yy, cast (birthyearnum as varchar) ,getdate()) "
||" end "
||" from cv3client with (nolock) where guid = " || Client_GUID || " "
};
if (patientage as number) <= 9 or (patientage as number) >= 56 or gender = "male"
then
ObservationType := OBJECT [ObservationGUID, ClientDocumentGUID, ParameterGUID, DataType, ValueObj];
ListValueType := OBJECT [ListGuid,ListItemsList, SuggestedTextValue];
ListValueListItemType := OBJECT [ListItemGUID, Value, IsSelected];
// Set Pregnant to N/A
this_parametername := first of (this_parms where this_parms.Name = "SCH_PRO fem repro pg yn");
this_currentObj := NEW ObservationType;
this_currentObj.ClientDocumentGUID:= this_FS_doc.ClientDocumentGUID;
this_currentObj.ParameterGUID := this_parametername.ParameterGUID;
this_currentObj.DataType := "ListValue";
this_currentObj.ValueObj := New ListValueType;
this_currentObj.ValueObj.ListGUID:= this_parametername.ConfigurationObj.ListGUID;
listItems := ();
FOR item IN this_parametername.ConfigurationObj.ListItemsList DO
selectedItem := NEW ListValueListItemType;
selectedItem.ListItemGUID := item.ListItemGUID;
selectedItem.Value := item.Value;
if selectedItem.Value = "not applicable" then selectedItem.IsSelected := true; endif;
listItems := (listItems, selectedItem);
ENDDO;
this_currentobj.ValueObj.ListItemsList := listItems;
this_FS_doc.ChartedObservationsList := (this_FS_doc.ChartedObservationsList, this_currentObj);
// Set Breast Feeding to N/A
this_parametername := first of (this_parms where this_parms.Name = "SCH_PRO fem repro breastfeed yn");
this_currentObj := NEW ObservationType;
this_currentObj.ClientDocumentGUID:= this_FS_doc.ClientDocumentGUID;
this_currentObj.ParameterGUID := this_parametername.ParameterGUID;
this_currentObj.DataType := "ListValue";
this_currentObj.ValueObj := New ListValueType;
this_currentObj.ValueObj.ListGUID:= this_parametername.ConfigurationObj.ListGUID;
listItems := ();
FOR item IN this_parametername.ConfigurationObj.ListItemsList DO
selectedItem := NEW ListValueListItemType;
selectedItem.ListItemGUID := item.ListItemGUID;
selectedItem.Value := item.Value;
if selectedItem.Value = "not applicable" then selectedItem.IsSelected := true; endif;
listItems := (listItems, selectedItem);
ENDDO;
this_currentobj.ValueObj.ListItemsList := listItems;
this_FS_doc.ChartedObservationsList := (this_FS_doc.ChartedObservationsList, this_currentObj);
endif;
endif;
;;
priority: 50
;;
evoke:
;;
logic:
Conclude true;
;;
action:
return this_documentCommunication;
;;
Urgency: 50;;
end: