special obs audit

pulls special obs orders and maths the time of order
This commit is contained in:
John Mulhall 2026-06-17 20:25:56 +00:00
parent 2972eea7c5
commit 57aa7da70f

200
spec_obs_audit Normal file
View file

@ -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";