Skip to content
Open
Show file tree
Hide file tree
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
14 changes: 13 additions & 1 deletion .github/workflows/lint_sqlfluff.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
name: SQLFluff

# Lints changed mimic-iv/concepts/*.sql on pull requests and posts GitHub
# annotations. Fork PRs skip Annotate — GITHUB_TOKEN cannot create check runs
# from forks (Resource not accessible by integration / 403).
on:
- pull_request

jobs:
lint-mimic-iv:
runs-on: ubuntu-latest
permissions:
contents: read
checks: write
steps:
- name: checkout
uses: actions/checkout@v7
Expand Down Expand Up @@ -35,8 +41,14 @@ jobs:
shell: bash
run: sqlfluff lint --format github-annotation --annotation-level failure --nofail ${{ steps.get_files_to_lint.outputs.lintees }} > annotations.json
- name: Annotate
# Same-repo PRs only: fork tokens get 403 creating check runs, and
# ignore-unauthorized-error does not treat that as unauthorized.
if: >
steps.get_files_to_lint.outputs.lintees != '' &&
github.event.pull_request.head.repo.full_name == github.repository
uses: yuzutech/annotations-action@v0.6.0
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
title: "SQLFluff Lint"
input: "./annotations.json"
input: "./annotations.json"
ignore-unauthorized-error: true
8 changes: 7 additions & 1 deletion mimic-iv/concepts/measurement/complete_blood_count.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ SELECT
, MAX(CASE WHEN itemid = 51221 THEN valuenum ELSE NULL END) AS hematocrit
, MAX(CASE WHEN itemid = 51222 THEN valuenum ELSE NULL END) AS hemoglobin
, MAX(CASE WHEN itemid = 51248 THEN valuenum ELSE NULL END) AS mch
, MAX(CASE WHEN itemid = 51249 THEN valuenum ELSE NULL END) AS mchc
, MAX(
CASE
WHEN itemid = 51249 AND valueuom = 'g/dL' THEN valuenum ELSE NULL
END
) AS mchc
, MAX(CASE WHEN itemid = 51250 THEN valuenum ELSE NULL END) AS mcv
, MAX(CASE WHEN itemid = 51265 THEN valuenum ELSE NULL END) AS platelet
, MAX(CASE WHEN itemid = 51279 THEN valuenum ELSE NULL END) AS rbc
Expand All @@ -30,6 +34,8 @@ WHERE le.itemid IN
, 51301 -- WBC
)
AND valuenum IS NOT NULL
-- MCHC (51249) is sometimes recorded with valueuom '%' in error; keep g/dL only
AND (itemid != 51249 OR valueuom = 'g/dL')
-- lab values cannot be 0 and cannot be negative
AND valuenum > 0
GROUP BY le.specimen_id
Expand Down
8 changes: 7 additions & 1 deletion mimic-iv/concepts/measurement/inflammation.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,20 @@ SELECT
, MAX(charttime) AS charttime
, le.specimen_id
-- convert from itemid into a meaningful column
, MAX(CASE WHEN itemid = 50889 THEN valuenum ELSE NULL END) AS crp
, MAX(
CASE
WHEN itemid = 50889 AND valueuom = 'mg/L' THEN valuenum ELSE NULL
END
) AS crp
FROM `physionet-data.mimiciv_hosp.labevents` le
WHERE le.itemid IN
(
-- 51652 -- high sensitivity CRP
50889 -- crp
)
AND valuenum IS NOT NULL
-- CRP (50889) rows with missing valueuom are excluded; mg/L is the expected unit
AND (itemid != 50889 OR valueuom = 'mg/L')
-- lab values cannot be 0 and cannot be negative
AND valuenum > 0
GROUP BY le.specimen_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ SELECT
MAX(CASE WHEN itemid = 51221 THEN valuenum ELSE NULL END) AS hematocrit,
MAX(CASE WHEN itemid = 51222 THEN valuenum ELSE NULL END) AS hemoglobin,
MAX(CASE WHEN itemid = 51248 THEN valuenum ELSE NULL END) AS mch,
MAX(CASE WHEN itemid = 51249 THEN valuenum ELSE NULL END) AS mchc,
MAX(CASE WHEN itemid = 51249 AND valueuom = 'g/dL' THEN valuenum ELSE NULL END) AS mchc,
MAX(CASE WHEN itemid = 51250 THEN valuenum ELSE NULL END) AS mcv,
MAX(CASE WHEN itemid = 51265 THEN valuenum ELSE NULL END) AS platelet,
MAX(CASE WHEN itemid = 51279 THEN valuenum ELSE NULL END) AS rbc,
Expand All @@ -19,6 +19,9 @@ FROM mimiciv_hosp.labevents AS le
WHERE
le.itemid IN (51221, 51222, 51248, 51249, 51250, 51265, 51279, 51277, 52159, 51301)
AND NOT valuenum IS NULL
AND (
itemid <> 51249 OR valueuom = 'g/dL'
)
AND valuenum > 0
GROUP BY
le.specimen_id
9 changes: 7 additions & 2 deletions mimic-iv/concepts_duckdb/measurement/inflammation.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ SELECT
MAX(hadm_id) AS hadm_id,
MAX(charttime) AS charttime,
le.specimen_id,
MAX(CASE WHEN itemid = 50889 THEN valuenum ELSE NULL END) AS crp
MAX(CASE WHEN itemid = 50889 AND valueuom = 'mg/L' THEN valuenum ELSE NULL END) AS crp
FROM mimiciv_hosp.labevents AS le
WHERE
le.itemid IN (50889) AND NOT valuenum IS NULL AND valuenum > 0
le.itemid IN (50889)
AND NOT valuenum IS NULL
AND (
itemid <> 50889 OR valueuom = 'mg/L'
)
AND valuenum > 0
GROUP BY
le.specimen_id
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SELECT
MAX(CASE WHEN itemid = 51221 THEN valuenum ELSE NULL END) AS hematocrit,
MAX(CASE WHEN itemid = 51222 THEN valuenum ELSE NULL END) AS hemoglobin,
MAX(CASE WHEN itemid = 51248 THEN valuenum ELSE NULL END) AS mch,
MAX(CASE WHEN itemid = 51249 THEN valuenum ELSE NULL END) AS mchc,
MAX(CASE WHEN itemid = 51249 AND valueuom = 'g/dL' THEN valuenum ELSE NULL END) AS mchc,
MAX(CASE WHEN itemid = 51250 THEN valuenum ELSE NULL END) AS mcv,
MAX(CASE WHEN itemid = 51265 THEN valuenum ELSE NULL END) AS platelet,
MAX(CASE WHEN itemid = 51279 THEN valuenum ELSE NULL END) AS rbc,
Expand All @@ -31,6 +31,9 @@ WHERE
51301 /* WBC */
)
AND NOT valuenum IS NULL
AND /* MCHC (51249) is sometimes recorded with valueuom '%' in error; keep g/dL only */ (
itemid <> 51249 OR valueuom = 'g/dL'
)
AND /* lab values cannot be 0 and cannot be negative */ valuenum > 0
GROUP BY
le.specimen_id
5 changes: 4 additions & 1 deletion mimic-iv/concepts_postgres/measurement/inflammation.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ SELECT
MAX(hadm_id) AS hadm_id,
MAX(charttime) AS charttime,
le.specimen_id, /* convert from itemid into a meaningful column */
MAX(CASE WHEN itemid = 50889 THEN valuenum ELSE NULL END) AS crp
MAX(CASE WHEN itemid = 50889 AND valueuom = 'mg/L' THEN valuenum ELSE NULL END) AS crp
FROM mimiciv_hosp.labevents AS le
WHERE
le.itemid IN (50889 /* 51652 -- high sensitivity CRP */ /* crp */)
AND NOT valuenum IS NULL
AND /* CRP (50889) rows with missing valueuom are excluded; mg/L is the expected unit */ (
itemid <> 50889 OR valueuom = 'mg/L'
)
AND /* lab values cannot be 0 and cannot be negative */ valuenum > 0
GROUP BY
le.specimen_id
Loading