SQL/RXcompare
jmulhall00 36da5fbea8 Add RXcompare
looking admin / dispense
2026-09-29 17:37:14 +00:00

64 lines
No EOL
1.6 KiB
Text

SELECT
p.prescriptionid,
p.administrationseqid,
p.administrationdatetime,
p.dispensedatetime,
p.doseadministered,
m.drugid,
m.dose AS ordered_dose,
ot.action_datetime AS omnicell_datetime,
ot.rx_name,
ot.minutes_apart
FROM npr.pharxadministrations p
JOIN mat.regacct_main rm
ON rm.visitid = p.visitid
JOIN npr.pharxmedications m
ON m.sourceid = p.sourceid
AND m.visitid = p.visitid
AND m.prescriptionid = p.prescriptionid
LEFT JOIN LATERAL (
SELECT
o.*,
ABS(
EXTRACT(
EPOCH FROM (
p.administrationdatetime - o.action_datetime
)
)
) / 60.0 AS minutes_apart
FROM public.omnicell_transaction o
WHERE o.pat_id = rm.accountnumber
AND o.rx_name ILIKE '%lorazepam%'
AND (
(m.dose = '0.25' AND o.rx_name ILIKE '%0.25MG%')
OR (m.dose = '0.5' AND o.rx_name ILIKE '%0.5MG%')
)
AND o.action_datetime >= p.administrationdatetime - INTERVAL '12 hours'
AND o.action_datetime <= p.administrationdatetime + INTERVAL '12 hours'
ORDER BY
ABS(
EXTRACT(
EPOCH FROM (
p.administrationdatetime - o.action_datetime
)
)
)
LIMIT 1
) ot
ON TRUE
WHERE p.administrationdatetime >= TIMESTAMP '2026-08-24 00:00:00'
AND p.administrationdatetime < TIMESTAMP '2026-08-25 00:00:00'
AND rm.accountnumber = 'BR1500059884'
AND m.drugid ILIKE 'LORAZ%'
ORDER BY p.administrationdatetime;