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,210 @@
maintenance:
title: SCH_CHECK_LAB_ORDERS_HISTORY ;;
mlmname: SCH_CHECK_LAB_ORDERS_HISTORY ;;
arden: version 2.5;;
version: 15.3;;
institution: ALLSCRIPTS;;
author: ANKIT MISTRY;;
specialist: ;;
date: 2017-09-06;;
validation: testing;;
library:
purpose:
;;
explanation:
;;
keywords:
;;
citations:
;;
knowledge:
type: data-driven;;
data:
enter_order_event_hemoglobin := EVENT { OrderEnter User Order: WHERE NAME = "Hemoglobin A1C" };
enter_order_event_LipidPanel := EVENT { OrderEnter User Order: WHERE NAME = "Lipid Panel"};
enter_order_event_Hepaptitis_Mayo := EVENT { OrderEnter User Order: WHERE NAME = "Hepatitis C Antibody (Mayo)"};
enter_order_event_Hepaptitis_IgG := EVENT { OrderEnter User Order: WHERE NAME = "Hepatitis C Antibody IgG"};
init_order_event_hemoglobin := EVENT { OrderInit User Order: WHERE NAME = "Hemoglobin A1C" };
init_order_event_LipidPanel := EVENT { OrderInit User Order: WHERE NAME = "Lipid Panel"};
init_order_event_Hepaptitis_Mayo := EVENT { OrderInit User Order: WHERE NAME = "Hepatitis C Antibody (Mayo)"};
init_order_event_Hepaptitis_IgG := EVENT { OrderInit User Order: WHERE NAME = "Hepatitis C Antibody IgG"};
// Start Modified: 09/25/2017 Keyur
Is_Order_Set :=0;
Event_Type:=EvokingEventType;
IF EXISTS (EVOKINGOBJECT.OrderSetName) THEN
Is_Order_Set :=1;
ENDIF;
// End Modified: 09/25/2017 Keyur
HemoglobinA1C_OrderName := "Hemoglobin A1C";
LipidPanel_OrderName := "Lipid Panel";
Hepaptitis_Mayo_OrderName := "Hepatitis C Antibody (Mayo)";
Hepaptitis_IgG_OrderName := "Hepatitis C Antibody IgG";
ClientGUID := EVOKINGOBJECT.ClientGUID;
ClientVisitGUID := EVOKINGOBJECT.ClientVisitGUID;
If EVOKINGOBJECT.Name = HemoglobinA1C_OrderName then
// STart Modified: 09/26/2017
/*(HemoglobinA1C_EnteredDate,
HemoglobinA1C_ResultComponent,
HemoglobinA1C_ResultValue) := READ FIRST {" SELECT TOP 1 CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE
FROM CV3Order O WITH (NOLOCK)
INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.OrderGUID = O.GUID AND BO.ItemName = {{{SINGLE-QUOTE}}}Hemoglobin A1C Percent{{{SINGLE-QUOTE}}}
WHERE (O.Entered > GETDATE()-60) AND O.NAME = " || SQL(HemoglobinA1C_OrderName) || " AND O.ClientGUID = " || SQL(ClientGUID) || "
ORDER BY O.CreatedWhen DESC "};*/
(HemoglobinA1C_EnteredDate,
HemoglobinA1C_ResultComponent,
HemoglobinA1C_ResultValue) := READ FIRST {" SELECT TOP 1 CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE +{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+BO.UnitOfMeasure "
|| " FROM CV3CLIENTVISIT CV WITH (NOLOCK) "
|| " INNER JOIN CV3Order O WITH (NOLOCK) ON O.CLIENTGUID = CV.CLIENTGUID AND O.CHARTGUID = CV.CHARTGUID AND O.ClientVisitGUID = CV.GUID AND O.NAME = {{{SINGLE-QUOTE}}}Hemoglobin A1C{{{SINGLE-QUOTE}}} AND (O.Entered > GETDATE()-60) "
|| " INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.ClientGUID = O.ClientGUID AND BO.ChartGUID = O.ChartGUID AND BO.OrderGUID = O.GUID AND BO.ItemName = {{{SINGLE-QUOTE}}}Hemoglobin A1C Percent{{{SINGLE-QUOTE}}} "
|| " WHERE O.ClientGUID = " || SQL(ClientGUID)
|| " ORDER BY O.CreatedWhen DESC "};
// End Modified: 09/26/2017
If EXISTS HemoglobinA1C_EnteredDate THEN
Hemoglobin_msg := "{{+B}}" || HemoglobinA1C_OrderName || "{{-B}}" || " performed on "|| HemoglobinA1C_EnteredDate ||" with result of {{+R}}"|| HemoglobinA1C_ResultValue ||"{{-R}}.\n"
|| "60 day interval between testing recommended. If additional testing required, please call Pathology Office at x3800.";
HemoglobinExists := 1;
ENDIF;
EndIf;
If EVOKINGOBJECT.Name = LipidPanel_OrderName then
// Start Modified: 09/26/2017
/*(LipidPanel_Entered,LipidPanel_Cholesterol,
LipidPanel_Triglycerides,LipidPanel_HDL,
LipidPanel_LDL_Calculated,
LipidPanel_VLDL_Calculated) := READ FIRST {" SELECT CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE
INTO #DATA
FROM CV3Order O WITH (NOLOCK)
INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.OrderGUID = O.GUID
WHERE O.NAME = " || SQL(LipidPanel_OrderName) || " AND O.ClientVisitGUID = " || SQL(ClientVisitGUID) || "
ORDER BY O.CreatedWhen DESC
SELECT TOP 1 ENTERED,[Cholesterol],[Triglycerides],[HDL],[LDL Calculated],[VLDL Calculated]
FROM (SELECT * FROM #DATA) AS [RESULT]
PIVOT
(
MAX(VALUE)
FOR ITEMNAME IN ([Cholesterol],[Triglycerides],[HDL],[LDL Calculated],[VLDL Calculated])
) AS PVT
ORDER BY ENTERED DESC
DROP TABLE #DATA "};*/
(LipidPanel_Entered,LipidPanel_Cholesterol,
LipidPanel_Triglycerides,LipidPanel_HDL,
LipidPanel_LDL_Calculated,
LipidPanel_VLDL_Calculated) := READ FIRST {" IF OBJECT_ID({{{SINGLE-QUOTE}}}tempdb.dbo.#DATA{{{SINGLE-QUOTE}}}, {{{SINGLE-QUOTE}}}U{{{SINGLE-QUOTE}}}) IS NOT NULL DROP TABLE #DATA "
|| " SELECT CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE,BO.UnitOfMeasure "
|| " INTO #DATA "
|| " FROM CV3CLIENTVISIT CV WITH (NOLOCK) "
|| " INNER JOIN CV3Order O WITH (NOLOCK) ON O.CLIENTGUID = CV.CLIENTGUID AND O.CHARTGUID = CV.CHARTGUID AND O.ClientVisitGUID = CV.GUID AND O.NAME = {{{SINGLE-QUOTE}}}Lipid Panel{{{SINGLE-QUOTE}}} "
|| " INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.ClientGUID = O.ClientGUID AND BO.ChartGUID = O.ChartGUID AND BO.OrderGUID = O.GUID "
|| " WHERE CV.GUID = " || SQL(ClientVisitGUID)
|| " ORDER BY O.CreatedWhen DESC "
|| " SELECT TOP 1 ENTERED,[Cholesterol]+{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+UnitOfMeasure,[Triglycerides]+{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+UnitOfMeasure,[HDL]+{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+UnitOfMeasure, "
|| " [LDL Calculated]+{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+UnitOfMeasure,[VLDL Calculated]+{{{SINGLE-QUOTE}}} {{{SINGLE-QUOTE}}}+UnitOfMeasure "
|| " FROM (SELECT * FROM #DATA) AS [RESULT] "
|| " PIVOT "
|| " ( "
|| " MAX(VALUE) "
|| " FOR ITEMNAME IN ([Cholesterol],[Triglycerides],[HDL],[LDL Calculated],[VLDL Calculated]) "
|| " ) AS PVT "
|| " ORDER BY ENTERED DESC "};
// End Modified: 09/26/2017
If EXISTS LipidPanel_Entered THEN
LipidPanel_msg := "{{+B}}" || LipidPanel_OrderName || "{{-B}}" || " already performed this admission " || LipidPanel_Entered ||"\n"
|| "Cholesterol {{+R}}" || LipidPanel_Cholesterol || "{{-R}}\n"
|| "Triglycerides {{+R}}" || LipidPanel_Triglycerides || "{{-R}}\n"
|| "HDL {{+R}}" || LipidPanel_HDL || "{{-R}}\n"
|| "LDL Calculated {{+R}}" || LipidPanel_LDL_Calculated || "{{-R}}\n"
|| "VLDL Calculated {{+R}}" || LipidPanel_VLDL_Calculated || "{{-R}}";
LipidPanelExists := 1;
ENDIF;
EndIf;
If EVOKINGOBJECT.Name IN (Hepaptitis_Mayo_OrderName,Hepaptitis_IgG_OrderName) then
(Hepatitis_C_Antibody_Mayo_Entered,
Hepatitis_C_Antibody_Mayo_ResultComponent,
Hepatitis_C_Antibody_Mayo_ResultValue) := READ FIRST {" SELECT TOP 1 CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE "
|| " FROM CV3ClientVisit CV WITH (NOLOCK) "
|| " INNER JOIN CV3Order O WITH (NOLOCK) ON O.ClientGUID = CV.ClientGUID AND O.ChartGUID = CV.ChartGUID AND O.ClientVisitGUID = CV.GUID AND O.NAME = {{{SINGLE-QUOTE}}}Hepatitis C Antibody (Mayo){{{SINGLE-QUOTE}}} "
|| " INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.ClientGUID = O.ClientGUID AND BO.ChartGUID = O.ChartGUID AND BO.OrderGUID = O.GUID AND BO.ItemName = {{{SINGLE-QUOTE}}}Hepatitis C Antibody Mayo{{{SINGLE-QUOTE}}} "
|| " WHERE CV.ClientGUID = " || SQL(ClientGUID)
|| " ORDER BY O.CreatedWhen DESC "};
//SELECT CONVERT(VARCHAR(20),GETDATE(),110)
(Hepatitis_C_Antibody_IgG_Entered,
Hepatitis_C_Antibody_IgG_ResultComponent,
Hepatitis_C_Antibody_IgG_ResultValue) := READ FIRST {" SELECT TOP 1 CONVERT(VARCHAR(12),O.Entered,110) AS ENTERED,BO.ITEMNAME,BO.VALUE "
|| " FROM CV3ClientVisit CV WITH (NOLOCK) "
|| " INNER JOIN CV3Order O WITH (NOLOCK) ON O.ClientGUID = CV.ClientGUID AND O.ChartGUID = CV.ChartGUID AND O.ClientVisitGUID = CV.GUID AND O.NAME = {{{SINGLE-QUOTE}}}Hepatitis C Antibody IgG{{{SINGLE-QUOTE}}} "
|| " INNER JOIN CV3BasicObservation BO WITH (NOLOCK) ON BO.ClientGUID = O.ClientGUID AND BO.ChartGUID = O.ChartGUID AND BO.OrderGUID = O.GUID AND BO.ItemName = {{{SINGLE-QUOTE}}}Hepatitis C Antibody IgG{{{SINGLE-QUOTE}}} "
|| " WHERE CV.ClientGUID = " || SQL(ClientGUID)
|| " ORDER BY O.CreatedWhen DESC "};
If EXISTS Hepatitis_C_Antibody_Mayo_Entered then
Hepatitis_msg := "{{+B}}" || Hepaptitis_Mayo_OrderName || "{{-B}}" || " performed on " || Hepatitis_C_Antibody_Mayo_Entered || " with result of {{+R}}" || Hepatitis_C_Antibody_Mayo_ResultValue || "{{-R}}.\n"
|| "If additional Hepatitis C Screening is required, please call Pathology Office at x3800.";
HepatitisExists := 1;
ElseIf EXISTS Hepatitis_C_Antibody_IgG_Entered then
Hepatitis_msg := "{{+B}}" || Hepaptitis_IgG_OrderName || "{{-B}}" || " performed on " || Hepatitis_C_Antibody_IgG_Entered || " with result of {{+R}}" || Hepatitis_C_Antibody_IgG_ResultValue || "{{-R}}.\n"
|| "If additional Hepatitis C Screening is required, please call Pathology Office at x3800.";
HepatitisExists := 1;
EndIf;
EndIf;
Order_Alert := DESTINATION {Alert} WITH
[
alert_type := "WARNING",
Short_Message := "Duplicate Order",
Priority := "High",
send_with_order := "",
Alert_Dialog_Settings := "No Override Allowed"
];
;;
priority: 50
;;
evoke:
enter_order_event_hemoglobin;
enter_order_event_LipidPanel;
enter_order_event_Hepaptitis_Mayo;
enter_order_event_Hepaptitis_IgG;
init_order_event_hemoglobin;
init_order_event_LipidPanel;
init_order_event_Hepaptitis_Mayo;
init_order_event_Hepaptitis_IgG;
;;
logic:
// Start Modified: 09/25/2017
//CONCLUDE TRUE;
if Is_Order_Set=1 and Event_Type="OrderEnter" then
CONCLUDE TRUE;
endif;
if Is_Order_Set=0 and Event_Type="OrderInit" then
CONCLUDE TRUE;
endif;
// End Modified: 09/25/2017
;;
action:
IF HemoglobinExists = 1 THEN
WRITE Hemoglobin_msg AT Order_Alert;
ENDIF;
IF LipidPanelExists = 1 THEN
WRITE LipidPanel_msg AT Order_Alert;
ENDIF;
IF HepatitisExists = 1 THEN
WRITE Hepatitis_msg AT Order_Alert;
ENDIF;
;;
Urgency: 50;;
end: