Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 18 additions & 7 deletions mimic-iv/concepts/measurement/urine_output_rate.sql
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ WITH tm AS (
)

-- now calculate time since last UO measurement
-- Use SECOND diffs (like kdigo_uo) so BigQuery and PostgreSQL agree (#1549).
-- BigQuery DATETIME_DIFF(..., MINUTE/HOUR) truncates; SECOND/N keeps fractions.
, uo_tm AS (
SELECT tm.stay_id
, CASE
WHEN LAG(charttime) OVER w IS NULL
THEN DATETIME_DIFF(charttime, intime_hr, MINUTE)
ELSE DATETIME_DIFF(charttime, LAG(charttime) OVER w, MINUTE)
THEN DATETIME_DIFF(charttime, intime_hr, SECOND) / 60.0
ELSE DATETIME_DIFF(charttime, LAG(charttime) OVER w, SECOND) / 60.0
END AS tm_since_last_uo
, uo.charttime
, uo.urineoutput
Expand All @@ -45,24 +47,33 @@ WITH tm AS (
-- to 1 hour of UO, therefore we use '5' and '11' to restrict the
-- period, rather than 6/12 this assumption may overestimate UO rate
-- when documentation is done less than hourly
, SUM(CASE WHEN DATETIME_DIFF(io.charttime, iosum.charttime, HOUR) <= 5
, SUM(CASE
WHEN DATETIME_DIFF(
io.charttime, iosum.charttime, SECOND
) / 3600.0 <= 5
THEN iosum.urineoutput
ELSE NULL END) AS urineoutput_6hr
, ROUND(CAST(
SUM(
CASE
WHEN DATETIME_DIFF(io.charttime, iosum.charttime, HOUR) <= 5
WHEN DATETIME_DIFF(
io.charttime, iosum.charttime, SECOND
) / 3600.0 <= 5
THEN iosum.tm_since_last_uo
ELSE NULL END) / 60.0 AS NUMERIC
), 6) AS uo_tm_6hr
, SUM(CASE WHEN DATETIME_DIFF(io.charttime, iosum.charttime, HOUR) <= 11
, SUM(CASE
WHEN DATETIME_DIFF(
io.charttime, iosum.charttime, SECOND
) / 3600.0 <= 11
THEN iosum.urineoutput
ELSE NULL END) AS urineoutput_12hr
, ROUND(CAST(
SUM(
CASE
WHEN
DATETIME_DIFF(io.charttime, iosum.charttime, HOUR) <= 11
WHEN DATETIME_DIFF(
io.charttime, iosum.charttime, SECOND
) / 3600.0 <= 11
THEN iosum.tm_since_last_uo
ELSE NULL END) / 60.0 AS NUMERIC
), 6) AS uo_tm_12hr
Expand Down
Loading