Skip to content

Commit e10baba

Browse files
fix: parse-safe D/C match in pivoted_invasive_lines
Replace backslash-escaped D/C'd with LIKE so sqlglot can transpile the BigQuery concept to postgres/duckdb. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 3a914fc commit e10baba

3 files changed

Lines changed: 11 additions & 10 deletions

File tree

mimic-iii/concepts/pivot/pivoted_invasive_lines.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ WITH stg0 AS
1919
, CASE WHEN itemid < 8000 THEN value ELSE NULL END AS line_type
2020
, CASE WHEN itemid > 8000 THEN value ELSE NULL END AS line_site
2121
-- the stopped column is always present for invasive lines
22+
-- LIKE avoids apostrophe escaping that breaks sqlglot transpile
2223
, CASE
23-
WHEN ce.stopped = 'D/C\'d' THEN 1
24+
WHEN ce.stopped LIKE 'D/C%' THEN 1
2425
WHEN ce.stopped = 'NotStopd' THEN 0
2526
ELSE NULL END AS line_dc
2627
FROM `physionet-data.mimiciii_clinical.chartevents` ce

mimic-iii/concepts_duckdb/pivot/pivoted_invasive_lines.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ WITH stg0 AS (
2828
CASE WHEN itemid < 8000 THEN value ELSE NULL END AS line_type,
2929
CASE WHEN itemid > 8000 THEN value ELSE NULL END AS line_site,
3030
CASE
31-
WHEN ce.stopped = 'D/C''d'
31+
WHEN ce.stopped LIKE 'D/C%'
3232
THEN 1
3333
WHEN ce.stopped = 'NotStopd'
3434
THEN 0
3535
ELSE NULL
3636
END AS line_dc
37-
FROM mimiciii.chartevents AS ce
37+
FROM mimiciii_clinical.chartevents AS ce
3838
WHERE
3939
ce.itemid IN (
4040
229,
@@ -138,8 +138,8 @@ WITH stg0 AS (
138138
mv.location AS line_site,
139139
starttime,
140140
endtime
141-
FROM mimiciii.procedureevents_mv AS mv
142-
INNER JOIN mimiciii.d_items AS di
141+
FROM mimiciii_clinical.procedureevents_mv AS mv
142+
INNER JOIN mimiciii_clinical.d_items AS di
143143
ON mv.itemid = di.itemid
144144
WHERE
145145
mv.itemid IN (

mimic-iii/concepts_postgres/pivot/pivoted_invasive_lines.sql

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ WITH stg0 AS (
2626
ELSE NULL
2727
END AS line_number,
2828
CASE WHEN itemid < 8000 THEN value ELSE NULL END AS line_type,
29-
CASE WHEN itemid > 8000 THEN value ELSE NULL END AS line_site, /* the stopped column is always present for invasive lines */
29+
CASE WHEN itemid > 8000 THEN value ELSE NULL END AS line_site, /* the stopped column is always present for invasive lines */ /* LIKE avoids apostrophe escaping that breaks sqlglot transpile */
3030
CASE
31-
WHEN ce.stopped = 'D/C''d'
31+
WHEN ce.stopped LIKE 'D/C%'
3232
THEN 1
3333
WHEN ce.stopped = 'NotStopd'
3434
THEN 0
3535
ELSE NULL
3636
END AS line_dc
37-
FROM mimiciii.chartevents AS ce
37+
FROM mimiciii_clinical.chartevents AS ce
3838
WHERE
3939
ce.itemid IN (
4040
229, /* INV Line#1 [Type] */
@@ -135,8 +135,8 @@ WITH stg0 AS (
135135
mv.location AS line_site,
136136
starttime,
137137
endtime
138-
FROM mimiciii.procedureevents_mv AS mv
139-
INNER JOIN mimiciii.d_items AS di
138+
FROM mimiciii_clinical.procedureevents_mv AS mv
139+
INNER JOIN mimiciii_clinical.d_items AS di
140140
ON mv.itemid = di.itemid
141141
WHERE
142142
mv.itemid IN (

0 commit comments

Comments
 (0)