Summary
concepts/medication/phenylephrine.sql filters inputevents on a single itemid, but MIMIC-IV records phenylephrine infusions under several itemids that differ only by bag concentration. Administrations charted under the variant itemids are absent from the derived phenylephrine concept, and therefore from vasoactive_agent and norepinephrine_equivalent_dose.
The practical effect is that a cohort defined as "received a vasopressor" via norepinephrine_equivalent_dose silently omits a subset of phenylephrine-treated patients. Because phenylephrine is one of the most frequently used vasopressors in MIMIC-IV, the omitted group is not small.
Environment
MIMIC-IV v3.1
BigQuery, physionet-data.mimiciv_3_1_icu / physionet-data.mimiciv_3_1_derived
The itemids
SELECT itemid, label
FROM `physionet-data.mimiciv_3_1_icu.d_items`
WHERE LOWER(label) LIKE '%phenylephrine%';
| itemid |
label |
| 229789 |
Phenylephrine (Intubation) |
| 221749 |
Phenylephrine |
| 229630 |
Phenylephrine (50/250) |
| 229631 |
Phenylephrine (200/250)_OLD_1 |
| 229632 |
Phenylephrine (200/250) |
Rate-documented (i.e. infusion) administrations by itemid:
SELECT ie.itemid, i.label,
COUNT(*) AS n_rows,
COUNT(DISTINCT ie.stay_id) AS n_stays
FROM `physionet-data.mimiciv_3_1_icu.inputevents` ie
JOIN `physionet-data.mimiciv_3_1_icu.d_items` i USING (itemid)
WHERE LOWER(i.label) LIKE '%phenylephrine%'
AND ie.rate IS NOT NULL
GROUP BY 1, 2 ORDER BY n_stays DESC;
| itemid |
label |
n_rows |
n_stays |
| 221749 |
Phenylephrine |
209376 |
14428 |
| 229630 |
Phenylephrine (50/250) |
61013 |
3778 |
| 229632 |
Phenylephrine (200/250) |
12840 |
453 |
Reproduction
WITH raw AS (
SELECT DISTINCT ie.stay_id
FROM `physionet-data.mimiciv_3_1_icu.inputevents` ie
JOIN `physionet-data.mimiciv_3_1_icu.d_items` i USING (itemid)
WHERE LOWER(i.label) LIKE '%phenylephrine%'
AND LOWER(i.label) NOT LIKE '%intubation%'
AND ie.rate IS NOT NULL AND ie.rate > 0
),
derived AS (
SELECT DISTINCT stay_id FROM `physionet-data.mimiciv_3_1_derived.phenylephrine`
)
SELECT (SELECT COUNT(*) FROM raw) AS n_stays_raw,
(SELECT COUNT(*) FROM derived) AS n_stays_derived,
(SELECT COUNT(*) FROM raw WHERE stay_id NOT IN (SELECT stay_id FROM derived))
AS n_missing;
| n_stays_raw |
n_stays_derived |
n_missing |
| 17841 |
14428 |
3413 |
These are not incidental exposures. Restricting to first ICU stays with ≥24 h length of stay and looking only at the first 24 hours, the affected administrations average 10.5 hours of infusion within the window, with the upper deciles spanning the full 24 hours. Fewer than 7% are single-hour. This is sustained vasopressor support, not peri-procedural dosing.
Current filter
concepts/medication/phenylephrine.sql:
WHERE itemid = 221749 -- phenylephrine
Suggested Fix
Extend the filter to the full set of phenylephrine infusion itemids, excluding the peri-intubation item (which is bolus dosing and has no rate):
WHERE itemid IN (<!-- LIST -->)
Phenylephrine dose unit and dose distributions between labels are consistent with each other. So, adding the missing itemids is the likely immediate fix.
Stays with misrepresented NEE
Currently, there are stays with a calculated NEE dose but without the contribution from concentration-variant phenylephrine medications. This can potentially result in a lower calculated NEE dose than what is represented in the raw data.
WITH variant AS (
-- stays with a rate-documented infusion under a NON-base phenylephrine item
SELECT DISTINCT ie.stay_id
FROM `physionet-data.mimiciv_3_1_icu.inputevents` ie
JOIN `physionet-data.mimiciv_3_1_icu.d_items` i USING (itemid)
WHERE LOWER(i.label) LIKE '%phenylephrine%'
AND LOWER(i.label) NOT LIKE '%intubation%'
AND ie.itemid != 221749 -- CONFIRM the base itemid from the .sql
AND ie.rate IS NOT NULL AND ie.rate > 0
),
has_nee AS (
SELECT DISTINCT stay_id
FROM `physionet-data.mimiciv_3_1_derived.norepinephrine_equivalent_dose`
WHERE norepinephrine_equivalent_dose > 0
)
SELECT
COUNT(*) AS n_variant_stays,
COUNTIF(h.stay_id IS NOT NULL) AS n_understated,
COUNTIF(h.stay_id IS NULL) AS n_absent,
ROUND(SAFE_DIVIDE(COUNTIF(h.stay_id IS NOT NULL), COUNT(*)), 3) AS frac_understated
FROM variant v
LEFT JOIN has_nee h USING (stay_id);
| n_variant_stays |
n_understated |
n_absent |
frac_understated |
| 3872 |
2277 |
1595 |
0.588 |
Happy to submit a PR
I can put together a PR against concepts/, concepts_duckdb/, and concepts_postgres/ if the approach above looks right to you.
Summary
concepts/medication/phenylephrine.sql filters inputevents on a single itemid, but MIMIC-IV records phenylephrine infusions under several itemids that differ only by bag concentration. Administrations charted under the variant itemids are absent from the derived phenylephrine concept, and therefore from vasoactive_agent and norepinephrine_equivalent_dose.
The practical effect is that a cohort defined as "received a vasopressor" via norepinephrine_equivalent_dose silently omits a subset of phenylephrine-treated patients. Because phenylephrine is one of the most frequently used vasopressors in MIMIC-IV, the omitted group is not small.
Environment
MIMIC-IV v3.1
BigQuery, physionet-data.mimiciv_3_1_icu / physionet-data.mimiciv_3_1_derived
The itemids
Rate-documented (i.e. infusion) administrations by itemid:
Reproduction
These are not incidental exposures. Restricting to first ICU stays with ≥24 h length of stay and looking only at the first 24 hours, the affected administrations average 10.5 hours of infusion within the window, with the upper deciles spanning the full 24 hours. Fewer than 7% are single-hour. This is sustained vasopressor support, not peri-procedural dosing.
Current filter
concepts/medication/phenylephrine.sql:
WHERE itemid = 221749 -- phenylephrine
Suggested Fix
Extend the filter to the full set of phenylephrine infusion itemids, excluding the peri-intubation item (which is bolus dosing and has no rate):
WHERE itemid IN (<!-- LIST -->)Phenylephrine dose unit and dose distributions between labels are consistent with each other. So, adding the missing itemids is the likely immediate fix.
Stays with misrepresented NEE
Currently, there are stays with a calculated NEE dose but without the contribution from concentration-variant phenylephrine medications. This can potentially result in a lower calculated NEE dose than what is represented in the raw data.
Happy to submit a PR
I can put together a PR against concepts/, concepts_duckdb/, and concepts_postgres/ if the approach above looks right to you.