Identify first ICU stays and first hospital admissions in MIMIC-IV for cohort selection. Use to exclude readmissions, create independent observations, or build adult patient cohorts.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: first-icu-stay
description: Identify first ICU stays and first hospital admissions in MIMIC-IV for cohort selection. Use to exclude readmissions, create independent observations, or build adult patient cohorts.
license: Apache-2.0
metadata:
author: m4-clinical-extraction
version: "1.0"
database: mimic-iv
category: cohort-definitions
source: https://github.com/MIT-LCP/mimic-code/tree/main/mimic-iv/concepts/demographics
validated: true
---
# First ICU Stay Selection
Identifies first ICU stays and hospital admissions for cohort construction. Critical for avoiding correlated observations and inflated sample sizes from readmissions.
## When to Use This Skill
- Creating research cohorts with independent observations
- Excluding readmissions that may have different characteristics
- Selecting incident (first-time) ICU patients
- Matching cohorts by admission characteristics
## Pre-computed Table
```sql
SELECT
subject_id,
hadm_id,
stay_id,
-- Demographics
gender,
dod, -- Date of death (if applicable)
-- Hospital admission
admittime,
dischtime,
los_hospital, -- Hospital length of stay (days)
admission_age,
race,
hospital_expire_flag,
hospstay_seq, -- Hospital admission sequence number
first_hosp_stay, -- TRUE if first hospitalization
-- ICU stay
icu_intime,
icu_outtime,
los_icu, -- ICU length of stay (days)
icustay_seq, -- ICU stay sequence within hospitalization
first_icu_stay -- TRUE if first ICU stay of this hospitalization
FROM mimiciv_derived.icustay_detail;
```
## Key Columns Explained
### Hospital-Level
- `hospstay_seq`: Order of hospital admission for this patient (1 = first ever)
- `first_hosp_stay`: TRUE if this is the patient's first hospital admission
### ICU-Level (Within Hospitalization)
- `icustay_seq`: Order of ICU stays within this hospitalization (1 = first ICU stay)
- `first_icu_stay`: TRUE if this is the first ICU stay of the current hospitalization
## Age Calculation
Age is calculated as:
```sql
anchor_age + (YEAR(admittime) - anchor_year)
```
**Important**: MIMIC-IV shifts ages for patients > 89 years old at any admission. These patients have `anchor_age = 91` and ages are not exact.
## Common Cohort Selection Patterns
### First ICU Stay Only (Most Common)
```sql
SELECT *
FROM mimiciv_derived.icustay_detail
WHERE first_icu_stay = TRUE;
```
### First-Ever ICU Stay (Strictest)
```sql
SELECT *
FROM mimiciv_derived.icustay_detail
WHERE first_hosp_stay = TRUE
AND first_icu_stay = TRUE;
```
### Adult Patients Only
```sql
SELECT *
FROM mimiciv_derived.icustay_detail
WHERE admission_age >= 18
AND first_icu_stay = TRUE;
```
### Exclude Very Short Stays
```sql
SELECT *
FROM mimiciv_derived.icustay_detail
WHERE first_icu_stay = TRUE
AND los_icu >= 1 -- At least 24 hours in ICU
AND los_hospital >= 1;
```
## Critical Implementation Notes
1. **Multiple ICU Stays**: One hospitalization can have multiple ICU stays. `first_icu_stay` identifies the first ICU stay within each hospitalization.
2. **Patient-Level vs Stay-Level**: Choose the right level of independence:
- `first_hosp_stay = TRUE AND first_icu_stay = TRUE`: Most independent
- `first_icu_stay = TRUE`: Independent within each hospitalization
- All stays: May have correlated outcomes
3. **Age Shifting**: Ages > 89 are shifted to protect privacy. Anchor age is 91, actual age is approximated.
4. **Mortality Flags**:
- `hospital_expire_flag`: Died during this hospitalization
- `dod`: Date of death (may be after discharge)
5. **LOS Calculations**:
- `los_hospital`: Days from admission to discharge
- `los_icu`: Days from ICU admission to ICU discharge
## Example: Standard Adult Cohort
```sql
SELECT
stay_id,
subject_id,
hadm_id,
admission_age,
gender,
los_icu,
hospital_expire_flag
FROM mimiciv_derived.icustay_detail
WHERE first_icu_stay = TRUE
AND admission_age >= 18
AND admission_age < 90 -- Exclude age-shifted patients
AND los_icu >= 1;
```
## Example: Readmission Analysis
```sql
-- Patients with multiple ICU stays in same hospitalization
SELECT
hadm_id,
COUNT(*) AS n_icu_stays
FROM mimiciv_derived.icustay_detail
GROUP BY hadm_id
HAVING COUNT(*) > 1;
-- Compare first vs subsequent stays
SELECT
first_icu_stay,
COUNT(*) AS n_stays,
ROUND(AVG(los_icu), 1) AS avg_los,
ROUND(AVG(hospital_expire_flag), 3) AS mortality
FROM mimiciv_derived.icustay_detail
GROUP BY first_icu_stay;
```
## Example: Age Distribution
```sql
SELECT
CASE
WHEN admission_age < 40 THEN '<40'
WHEN admission_age < 60 THEN '40-59'
WHEN admission_age < 80 THEN '60-79'
WHEN admission_age < 90 THEN '80-89'
ELSE '90+'
END AS age_group,
COUNT(*) AS n_patients
FROM mimiciv_derived.icustay_detail
WHERE first_icu_stay = TRUE
GROUP BY 1
ORDER BY 1;
```
## Related Exclusion Criteria
Common additional exclusions for research cohorts:
- Comfort care / DNR orders (see `mimiciv_derived.code_status`)
- Organ donors
- Very short stays (< 4-24 hours)
- Missing key data elements
- Specific diagnoses (trauma, cardiac surgery, etc.)
## References
- Johnson AEW et al. "MIMIC-IV, a freely accessible electronic health record dataset." Scientific Data. 2023.
No comments yet. Be the first to comment!