Skip to content

Add ERReadmissionMIMIC4 task for ER-specific 30-day readmission prediction#984

Open
RajendranRanjith wants to merge 1 commit intosunlabuiuc:masterfrom
RajendranRanjith:er-readmission-task
Open

Add ERReadmissionMIMIC4 task for ER-specific 30-day readmission prediction#984
RajendranRanjith wants to merge 1 commit intosunlabuiuc:masterfrom
RajendranRanjith:er-readmission-task

Conversation

@RajendranRanjith
Copy link
Copy Markdown

Contributor Information

  • Name: Ranjithkumar Rajendran
  • NetID: rr54
  • Email: rr54@illinois.edu
  • Course: CS598 DL4H — Spring 2026

Contribution Type

Standalone Task — New task for MIMIC-IV ER-specific readmission prediction.

Paper Reference

KEEP: Integrating Medical Ontologies with Clinical Data for Robust Code Embeddings

Description

This PR adds ERReadmissionMIMIC4, a new PyHealth task that predicts 30-day readmission for Emergency Room patients in MIMIC-IV. This implements the ER cohort definition from the KEEP paper, which demonstrated that ER patients have distinct readmission patterns requiring specialized prediction models.

How it works:

  1. Filters admissions where admission_location == 'EMERGENCY ROOM'
  2. Extracts versioned ICD diagnosis codes (e.g., "10_E11.9")
  3. Computes discharge time from the admissions table
  4. Labels each visit: 1 if next admission < 30 days, 0 otherwise
  5. Returns PyHealth-compatible sample dicts with conditions and readmission fields

Key design decisions:

  • Inherits from BaseTask following PyHealth conventions
  • Configurable readmission window via timedelta parameter (default: 30 days)
  • Skips patients with < 2 admissions and visits with no diagnoses
  • ICD codes versioned as "{version}_{code}" matching ReadmissionPredictionMIMIC4
  • PEP8 compliant (88-char limit), Google-style docstrings, full type hints

File Guide

# File Description
1 pyhealth/tasks/mimic4_er_readmission.py Core task implementationERReadmissionMIMIC4 class (~130 lines)
2 pyhealth/tasks/__init__.py Updated to export ERReadmissionMIMIC4
3 tests/test_mimic4_er_readmission.py 7 unit tests using synthetic data (edge cases: single admission, no diagnoses, custom window, ICD versioning)
4 examples/mimic4_er_readmission_retain.py Ablation script: Standard vs ER-specific readmission using RETAIN
5 examples/mimic4_er_readmission_transformer.py Ablation script: RETAIN vs Transformer on ER cohort
6 docs/api/tasks/pyhealth.tasks.mimic4_er_readmission.rst Sphinx API documentation
7 docs/api/tasks.rst Updated task index with new entry

Tests

All 7 unit tests pass using synthetic Patient objects (no real data required):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant