From 57aa7da70f95a55f9a4c139fd21d759e1e66b14f Mon Sep 17 00:00:00 2001 From: jmulhall00 Date: Wed, 17 Jun 2026 20:25:56 +0000 Subject: [PATCH] special obs audit pulls special obs orders and maths the time of order --- spec_obs_audit | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 spec_obs_audit diff --git a/spec_obs_audit b/spec_obs_audit new file mode 100644 index 0000000..152a110 --- /dev/null +++ b/spec_obs_audit @@ -0,0 +1,200 @@ +WITH pvt_cte AS ( + + SELECT + ct.ordernumber, + ct."Special Observation Level", + ct."Reason for Observation", + ct."Milieu Location", + ct."Observation Level Comment", + ct."Milieu Location Comment" + FROM mat.crosstab( + + ' + SELECT + oqq.omordid, + mqm.text AS name, + oqq.queryresponse AS elementresponse + FROM mat.omord_queries_queries oqq + LEFT JOIN mat.misqry_main mqm + ON mqm.misqryid = oqq.queryid + WHERE oqq.queryid IN ( + ''OM.COMMENT.OBS'', + ''OM.OBS.COMM.MIL'' + ) + + UNION + + SELECT + oqqm.omordid, + mgrm.name, + mgrge.elementresponse + FROM mat.omord_queries_queriesmult oqqm + LEFT JOIN mat.misgroupresp_main mgrm + ON oqqm.querygroupresponse_misgrouprespid = mgrm.misgrouprespid + LEFT JOIN mat.misgroupresp_groupelements mgrge + ON oqqm.querygroupresponse_misgrouprespid = mgrge.misgrouprespid + AND oqqm.queryresponse = mgrge.elementmnemonicid + WHERE oqqm.querygroupresponse_misgrouprespid IN ( + ''OM.OBS.MILIEU'', + ''OM.OBS.LEVEL'', + ''OM.SPECOBSREAS'' + ) + ORDER BY 1, 2 + '::text, + + ' + SELECT * + FROM ( + VALUES + (''Special Observation Levels''), + (''Reason for Observation''), + (''Milieu Location''), + (''Observation Level Comment''), + (''Milieu Location Comment'') + ) x(x) + '::text + + ) AS ct ( + ordernumber varchar, + "Special Observation Level" varchar, + "Reason for Observation" varchar, + "Milieu Location" varchar, + "Observation Level Comment" varchar, + "Milieu Location Comment" varchar + ) + +), + +edits_cte AS ( + + SELECT + omordid, + rowupdatedatetime AS "Edit Date", + + CASE activityevent + WHEN 'Query Observation Level edited: ' + THEN 'Observation Level' + WHEN 'Query Milieu Location edited: ' + THEN 'Milieu Location' + WHEN 'Query Reason for Observation edited: ' + THEN 'Reason for Observation' + END AS "Edit Field", + + REPLACE( + REPLACE( + REPLACE(activityoldvalue, '}', ''), + '{', '' + ), + '|', + ', ' + ) AS "Old Value", + + REPLACE( + REPLACE( + REPLACE(activitynewvalue, '}', ''), + '{', '' + ), + '|', + ', ' + ) AS "New Value" + + FROM mat.omord_activities + + WHERE activityevent IN ( + 'Query Reason for Observation edited: ', + 'Query Milieu Location edited: ', + 'Query Observation Level edited: ' + ) + +) + +SELECT + ram.accountnumber AS "Account", + ram.location_mislocid AS "Program", + hrmrn.prefixmedicalrecordnumber AS "MRN", + hrm.name AS "Patient Name", + oom.omordid AS "Order Number", + oom3.startdatetime AS "Order Start", + oom3.status AS "Order Status", + + pvt."Special Observation Level", + pvt."Reason for Observation", + pvt."Milieu Location", + pvt."Observation Level Comment", + pvt."Milieu Location Comment", + + edits."Edit Date", + edits."Edit Field", + edits."Old Value", + edits."New Value" + +FROM mat.regacct_main ram + +JOIN mat.himrec_main hrm + ON hrm.sourceid = ram.sourceid + AND hrm.patientid = ram.patientid + +LEFT JOIN mat.misfac_main mfm + ON ram.sourceid::text = mfm.sourceid::text + AND ram.facility_misfacid::text = mfm.misfacid::text + +LEFT JOIN mat.mishimdept_main mhdm + ON mfm.sourceid::text = mhdm.sourceid::text + AND mfm.himdepartment_mishimdeptid::text = mhdm.mishimdeptid::text + +LEFT JOIN mat.himrec_medicalrecordnumbers hrmrn + ON ram.sourceid = hrmrn.sourceid + AND ram.patientid = hrmrn.patientid + AND mhdm.medicalrecordnumberprefix = hrmrn.mrnprefixid + +JOIN mat.omord_main oom + ON ram.sourceid = oom.sourceid + AND ram.visitid = oom.visitid + +LEFT JOIN mat.omord_main2 oom2 + ON oom2.sourceid = oom.sourceid + AND oom2.omordid = oom.omordid + +LEFT JOIN mat.omorddict_main oodm + ON oodm.sourceid = oom2.sourceid + AND oodm.omorddictid = oom2.procedure_omorddictid + +LEFT JOIN mat.omord_main3 oom3 + ON oom3.sourceid = oom.sourceid + AND oom3.omordid = oom.omordid + +JOIN pvt_cte pvt + ON oom.omordid = pvt.ordernumber + +LEFT JOIN edits_cte edits + ON edits.omordid = oom.omordid + AND ( + ( + edits."Edit Field" = 'Milieu Location' + AND ( + edits."Old Value" LIKE '%LSA%' + OR edits."New Value" LIKE '%LSA%' + ) + ) + OR + ( + edits."Edit Field" = 'Observation Level' + AND ( + edits."Old Value" LIKE '%1%' + OR edits."Old Value" LIKE '%CVO%' + OR edits."New Value" LIKE '%1%' + OR edits."New Value" LIKE '%CVO%' + ) + ) + ) + +WHERE + pvt."Special Observation Level" LIKE '%CVO%' + OR pvt."Special Observation Level" LIKE '%1%' + OR pvt."Milieu Location" LIKE '%LSA%' + OR edits."Edit Field" IS NOT NULL + +ORDER BY + oom.omordid, + oom3.startdatetime, + edits."Edit Date"; \ No newline at end of file