Skip to content

Examples

This section provides practical examples of using CLIFpy for common ICU data analysis tasks.

Available Examples

Loading Data

Learn different ways to load CLIF data, including: - Loading from CSV and Parquet files - Using filters and column selection - Working with sample data - Handling large datasets efficiently

Analyzing ICU Stays

Common ICU analysis patterns: - Identifying ICU admissions - Calculating length of stay - Tracking patient movement - Analyzing severity of illness

Clinical Calculations

Implement clinical calculations and scores: - Calculating SOFA scores - Tracking vasopressor requirements - Monitoring ventilation parameters - Assessing prone positioning compliance

Quick Examples

Basic Data Loading

from clifpy.tables import Patient, Labs, Vitals
from clifpy.clif_orchestrator import ClifOrchestrator

# Load individual tables
patient = Patient.from_file('/data', 'parquet', timezone='US/Central')
labs = Labs.from_file('/data', 'parquet', timezone='US/Central')

# Or use orchestrator for multiple tables
orchestrator = ClifOrchestrator('/data', 'parquet', 'US/Central')
orchestrator.initialize(tables=['patient', 'labs', 'vitals', 'adt'])

Finding ICU Patients

# Get ICU admissions
icu_stays = orchestrator.adt.filter_by_location_category('icu')
icu_patients = icu_stays['patient_id'].unique()

# Get their demographics
icu_demographics = orchestrator.patient.df[
    orchestrator.patient.df['patient_id'].isin(icu_patients)
]
# Get recent abnormal labs
recent_labs = orchestrator.labs.get_recent(hours=24)
abnormal = recent_labs[
    (recent_labs['lab_name'] == 'creatinine') & 
    (recent_labs['lab_value'] > 2.0)
]

# Track patient's lab trend
patient_labs = orchestrator.labs.df[
    orchestrator.labs.df['patient_id'] == 'P12345'
].sort_values('lab_datetime')

Medication Analysis

# Find patients on multiple vasopressors
vasopressors = orchestrator.medication_admin_continuous.filter_by_med_group('vasopressor')
concurrent = orchestrator.medication_admin_continuous.get_concurrent_medications('P12345')
multi_pressor = concurrent[concurrent['medication_group'] == 'vasopressor']

Example Notebooks

The repository includes Jupyter notebooks demonstrating: - labs_demo.ipynb - Laboratory data analysis - respiratory_support_demo.ipynb - Ventilation analysis - position_demo.ipynb - Prone positioning analysis

Next Steps