Initial Checking with all 820 MLMs
This commit is contained in:
210
MLMStripper/bin/Debug/SCH/SCH_CHECK_LAB_ORDERS_HISTORY.mlm
Normal file
210
MLMStripper/bin/Debug/SCH/SCH_CHECK_LAB_ORDERS_HISTORY.mlm
Normal 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:
|
||||
Reference in New Issue
Block a user