スキル一覧に戻る
Common-Longitudinal-ICU-data-Format

clif-icu

by Common-Longitudinal-ICU-data-Format

CLIF Foundational Skill for the Claude

1🍴 0📅 2026年1月13日
GitHubで見るManusで実行

SKILL.md


name: clif-icu description: Analyzes ICU clinical data using the Common Longitudinal ICU data Format (CLIF) and clifpy Python library. Loads and filters CLIF tables (vitals, labs, medications, respiratory support, microbiology) by hospitalization_id and category columns. Computes clinical scores including SOFA, Charlson Comorbidity Index (CCI), and Elixhauser. Creates wide datasets and performs data transformations. Use when working with ICU data, CLIF format, clifpy, clinical scoring, ventilator data, sepsis research, or intensive care analytics.

CLIF + clifpy

CLIF (Common Longitudinal ICU data Format) + clifpy Python library for ICU data analysis.

pip install clifpy

When to Use This Skill

Activate this skill when:

  • Working with ICU/intensive care unit clinical data
  • Using or asking about the CLIF data format
  • Loading data with the clifpy Python library
  • Computing clinical scores (SOFA, CCI, Elixhauser, MDRO)
  • Processing vitals, labs, medications, or respiratory support data
  • Creating wide datasets from longitudinal ICU data
  • Researching sepsis, ARDS, or critical care outcomes

Instructions

Follow these steps when working with CLIF data:

  1. Identify required tables - Determine which CLIF tables contain the data needed (vitals, labs, medications, etc.)
  2. Always filter data - Use hospitalization_id filters on all tables; add category filters on long tables (see filtering rules below)
  3. Choose the right approach:
    • Use individual table classes for most tasks (faster, more memory efficient)
    • Use ClifOrchestrator only when creating wide datasets or computing SOFA scores
  4. Look up category values - Check mCIDE/ for valid category values before filtering
  5. Compute clinical scores - Use ClifOrchestrator for SOFA, or refer to reference/clinical-scores.md for CCI and Elixhauser

Critical: Always Filter Data

Long Tables (Use BOTH hospitalization_id AND category filters)

These tables have many rows per hospitalization. Always filter by category column:

TableCategory ColumnExample Values
vitalsvital_categoryheart_rate, sbp, spo2, temp_c
labslab_categoryhemoglobin, creatinine, lactate
patient_assessmentsassessment_categorygcs_total, rass, cam_icu
medication_admin_continuousmed_categorynorepinephrine, propofol, fentanyl
medication_admin_intermittentmed_categoryvancomycin, cefepime
respiratory_supportdevice_categoryIMV, NIPPV, High_Flow_NC
microbiology_cultureorganism_categorystaphylococcus_aureus, escherichia_coli

Other Tables (hospitalization_id filter only, if needed)

All other tables (patient, hospitalization, adt, code_status, position, crrt_therapy, ecmo_mcs, hospital_diagnosis, patient_procedures, microbiology_susceptibility, microbiology_nonculture) have fewer rows per hospitalization. Filter by hospitalization_id only when needed.


Quick Start

Load Individual Tables (Preferred)

from clifpy.tables import Vitals, Labs, PatientAssessments

hosp_ids = ['H001', 'H002', 'H003']

# Always filter by BOTH hospitalization_id AND category
vitals = Vitals.from_file(
    data_directory='/path/to/data',
    filetype='parquet',
    timezone='US/Eastern',
    filters={
        'hospitalization_id': hosp_ids,
        'vital_category': ['heart_rate', 'sbp', 'spo2']
    }
)

labs = Labs.from_file(
    data_directory='/path/to/data',
    filetype='parquet',
    timezone='US/Eastern',
    filters={
        'hospitalization_id': hosp_ids,
        'lab_category': ['hemoglobin', 'creatinine', 'lactate']
    }
)

# Access DataFrames
vitals_df = vitals.df
labs_df = labs.df

ClifOrchestrator (Only for Wide Datasets)

from clifpy import ClifOrchestrator

co = ClifOrchestrator(
    data_directory='/path/to/data',
    filetype='parquet',
    timezone='US/Eastern'
)
co.load_table('vitals', filters={'hospitalization_id': hosp_ids})

Example Scripts

Complete workflow examples in scripts/:

cohort_identification_example.py

End-to-end cohort identification workflow:

  1. Load core tables (patient, hospitalization, adt)
  2. Filter adults (age >= 18) and date range (2018-2024)
  3. Stitch encounters using 6-hour windows
  4. Identify CRRT encounters
  5. Exclude ESRD patients (ICD codes N185, N186, Z992)
  6. Check weight data availability
  7. Build final cohort with demographics
  8. Save to parquet
from clifpy.clif_orchestrator import ClifOrchestrator
from clifpy.utils.stitching_encounters import stitch_encounters

sofa_score_calculation.py

SOFA score computation workflow:

  1. Load cohort and define time windows (e.g., first 24h)
  2. Load required tables (labs, vitals, assessments, medications, respiratory)
  3. Clean medication data (remove null doses)
  4. Convert vasopressor units to mcg/kg/min
  5. Create wide dataset with REQUIRED_SOFA_CATEGORIES_BY_TABLE
  6. Compute 6 SOFA components (respiratory, coagulation, liver, cardiovascular, CNS, renal)
  7. Save results to CSV
from clifpy.clif_orchestrator import ClifOrchestrator
from clifpy.utils.sofa import REQUIRED_SOFA_CATEGORIES_BY_TABLE

Reference Files

For detailed information, read the appropriate reference file:

TopicFileWhen to Read
Table schemas & categoriesreference/tables.mdLooking up table structure, column definitions, category values
Clinical scoresreference/clinical-scores.mdComputing SOFA, CCI, Elixhauser scores
Data processingreference/data-processing.mdWide datasets, hourly aggregation, encounter stitching, outlier handling
clifpy APIreference/clifpy-api.mdComplete API reference for clifpy library
CLIF vocabularymCIDE/Looking up specific category values and their descriptions
Config file setupreference/clifpy_utils/configuration.mdSetting up clif_config.json, understanding loading options
Table classes & methodsreference/clifpy_utils/table_classes.mdUsing BaseTable, from_file(), table-specific methods
ClifOrchestrator usagereference/clifpy_utils/orchestrator.mdWide datasets, SOFA scores, encounter stitching
Utility functionsreference/clifpy_utils/clifpy_functions.mdUnderstanding internal clifpy logic, custom implementations
YAML schemasschemas/Column definitions, data types, validation rules

All Table Classes

from clifpy.tables import (
    Patient, Hospitalization, Adt,
    Vitals, Labs, RespiratorySupport, Position,
    MedicationAdminContinuous, MedicationAdminIntermittent,
    PatientAssessments, HospitalDiagnosis,
    CodeStatus, CrrtTherapy, EcmoMcs,
    MicrobiologyCulture, MicrobiologyNonculture, MicrobiologySusceptibility,
    PatientProcedures
)

Performance Rules

  1. Use individual table classes - Not ClifOrchestrator
  2. ALWAYS filter by hospitalization_id
  3. Filter long tables by category
  4. Use parquet - Faster than CSV
  5. Limit columns - columns=['col1', 'col2']

Requirements

pip install clifpy
  • Python 3.8+
  • Dependencies: pandas, pyarrow (for parquet support)

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です