From 4a1cd3600f3b13bbcbabd980160754d0457466e7 Mon Sep 17 00:00:00 2001 From: Taksh Date: Fri, 31 Jul 2026 14:22:53 +0300 Subject: [PATCH] fix: include wbc_max in SIRS WBC missing-data guard WBC scoring uses wbc_min, wbc_max, and bands_max, but the null arm only checked coalesce(wbc_min, bands_max), so a present wbc_max alone yielded NULL instead of 0. Align the guard across BigQuery, Postgres, and DuckDB. --- mimic-iii/concepts/severityscores/sirs.sql | 2 +- mimic-iii/concepts_duckdb/severityscores/sirs.sql | 2 +- mimic-iii/concepts_postgres/severityscores/sirs.sql | 2 +- mimic-iv/concepts/score/sirs.sql | 2 +- mimic-iv/concepts_duckdb/score/sirs.sql | 2 +- mimic-iv/concepts_postgres/score/sirs.sql | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mimic-iii/concepts/severityscores/sirs.sql b/mimic-iii/concepts/severityscores/sirs.sql index 9de5bcffa..32a171aca 100644 --- a/mimic-iii/concepts/severityscores/sirs.sql +++ b/mimic-iii/concepts/severityscores/sirs.sql @@ -89,7 +89,7 @@ left join `physionet-data.mimiciii_derived.labs_first_day` l when wbc_min < 4.0 then 1 when wbc_max > 12.0 then 1 when bands_max > 10 then 1-- > 10% immature neurophils (band forms) - when coalesce(wbc_min, bands_max) is null then null + when coalesce(wbc_min, wbc_max, bands_max) is null then null else 0 end as wbc_score diff --git a/mimic-iii/concepts_duckdb/severityscores/sirs.sql b/mimic-iii/concepts_duckdb/severityscores/sirs.sql index 5a449b758..289ba2f31 100644 --- a/mimic-iii/concepts_duckdb/severityscores/sirs.sql +++ b/mimic-iii/concepts_duckdb/severityscores/sirs.sql @@ -56,7 +56,7 @@ WITH bg AS ( THEN 1 WHEN bands_max > 10 THEN 1 - WHEN COALESCE(wbc_min, bands_max) IS NULL + WHEN COALESCE(wbc_min, wbc_max, bands_max) IS NULL THEN NULL ELSE 0 END AS wbc_score diff --git a/mimic-iii/concepts_postgres/severityscores/sirs.sql b/mimic-iii/concepts_postgres/severityscores/sirs.sql index 1a34cc285..7c370c250 100644 --- a/mimic-iii/concepts_postgres/severityscores/sirs.sql +++ b/mimic-iii/concepts_postgres/severityscores/sirs.sql @@ -59,7 +59,7 @@ WITH bg AS ( THEN 1 WHEN bands_max > 10 THEN 1 /* > 10% immature neurophils (band forms) */ - WHEN COALESCE(wbc_min, bands_max) IS NULL + WHEN COALESCE(wbc_min, wbc_max, bands_max) IS NULL THEN NULL ELSE 0 END AS wbc_score diff --git a/mimic-iv/concepts/score/sirs.sql b/mimic-iv/concepts/score/sirs.sql index ca4a933e7..40ae266b6 100644 --- a/mimic-iv/concepts/score/sirs.sql +++ b/mimic-iv/concepts/score/sirs.sql @@ -77,7 +77,7 @@ WITH scorecomp AS ( WHEN wbc_min < 4.0 THEN 1 WHEN wbc_max > 12.0 THEN 1 WHEN bands_max > 10 THEN 1-- > 10% immature neurophils (band forms) - WHEN COALESCE(wbc_min, bands_max) IS NULL THEN NULL + WHEN COALESCE(wbc_min, wbc_max, bands_max) IS NULL THEN NULL ELSE 0 END AS wbc_score diff --git a/mimic-iv/concepts_duckdb/score/sirs.sql b/mimic-iv/concepts_duckdb/score/sirs.sql index a806e7c72..43e557848 100644 --- a/mimic-iv/concepts_duckdb/score/sirs.sql +++ b/mimic-iv/concepts_duckdb/score/sirs.sql @@ -53,7 +53,7 @@ WITH scorecomp AS ( THEN 1 WHEN bands_max > 10 THEN 1 - WHEN COALESCE(wbc_min, bands_max) IS NULL + WHEN COALESCE(wbc_min, wbc_max, bands_max) IS NULL THEN NULL ELSE 0 END AS wbc_score diff --git a/mimic-iv/concepts_postgres/score/sirs.sql b/mimic-iv/concepts_postgres/score/sirs.sql index b1b28667a..65578a772 100644 --- a/mimic-iv/concepts_postgres/score/sirs.sql +++ b/mimic-iv/concepts_postgres/score/sirs.sql @@ -55,7 +55,7 @@ WITH scorecomp AS ( THEN 1 WHEN bands_max > 10 THEN 1 /* > 10% immature neurophils (band forms) */ - WHEN COALESCE(wbc_min, bands_max) IS NULL + WHEN COALESCE(wbc_min, wbc_max, bands_max) IS NULL THEN NULL ELSE 0 END AS wbc_score