CORR demo dataset · version 1
charite_mockdata — synthetic ICU demo dataset
A fully synthetic ICU cohort in a table layout mimicking Charité's health data lake to test and explore the CORR concept library and associated data pipelines.
Synthetic — no real patient data not clinically validated Quickstart notebook ↗ Concepts browser ↗
Access
The easiest way to get started is the quickstart notebook in the corr-vars repository: it builds a cohort from this dataset and adds the first concepts. Browse the available concepts in the demo concepts browser.
The Parquet files are served as static files at https://demo-data.corr.icu/v1. The charite_demo source of corr-vars queries them with DuckDB over HTTPS, fetching only the row groups a concept needs (a typical concept reads a few MB). Concept definitions for the demo are served from demo-concepts.corr.icu.
For offline work, download the folder (manifest plus Parquet, 194.3 MB) and pass its path. All timestamps are naive Europe/Berlin local time; numeric-looking values are strings, as in production, so casts use try_cast.
from corr_vars import Cohort
cohort = Cohort(obs_level="icu_stay",
sources={"charite_demo": {}},
project="demo", api_key="cak_demo_0d2b53ac")
# reads demo-data.corr.icu/v1 over HTTPS (DuckDB)
# local copy instead:
# sources={"charite_demo": {"path": "/path/to/demo-data/data/v1"}}
How it was generated
No real patient data and no statistics estimated from real patients were used. A deterministic generator (seed 20261022) draws patients and their hospital cases, each ICU case with one of 22 disease archetypes (for example septic shock, cardiac surgery, stroke, intoxication) and a latent severity that also drives the outcome. Cases are laid out as ward movements (emergency department, ward, operating room, ICU), from which the cohort loader builds ICU stays with a 24 h merge rule. For every ICU stay an organ-support plan is drawn (ventilation, vasopressor, acute kidney injury and renal replacement), and hourly latent physiology follows archetype course curves with patient random effects and Ornstein–Uhlenbeck noise, coupled where clinicians expect it (norepinephrine with MAP, FiO2 with PaO2, creatinine with urine output and RRT; SOFA is computed from the latent state). A charting process then samples, rounds and documents these signals into the ten warehouse tables, and injects the irregularities the concept code has to handle. The result passes all 118 integrity and plausibility checks.
Cohort
ICU hospital cases for demographics and outcome; merged ICU stays for length of stay and organ support.
Age at admission
ICU cases · median 68 y (IQR 58–76)
ICU length of stay
merged ICU stays · median 2.2 d (IQR 1.1–4.5) · log scale
Hospital length of stay
ICU cases · median 12.7 d (IQR 7.7–20.0) · log scale
ICU cases per year
by hospital admission year · 2019–2025
Admission type and organ support
share of 20,000 ICU stays · surgical = surgical OPS −24 h/+6 h around ICU admission
Outcome
ICU hospital cases, closed
Case mix and mortality by archetype
The archetype is a latent variable of the generator and not part of the warehouse tables; it is read from the generator's validation set shipped with the dataset (validation/cases), which also records severity and the planned course so concept implementations can be checked against what the generator planned (fully synthetic, no patient data). Mortality: in-hospital deaths among closed cases.
Table view
| archetype | ICU cases | mortality |
|---|---|---|
| Elective cardiac surgery (CABG / valve) | 1,825 | 3.1% |
| Elective major abdominal surgery | 1,090 | 2.4% |
| Community-acquired pneumonia | 921 | 11.7% |
| Intracranial haemorrhage / ischaemic stroke | 860 | 20.2% |
| Cardiogenic shock / acute myocardial infarction | 818 | 25.1% |
| Septic shock, pulmonary focus | 785 | 26.2% |
| Acute decompensated heart failure | 765 | 16.3% |
| Other postoperative monitoring (ortho / uro / gyn) | 710 | 1.0% |
| Polytrauma / traumatic brain injury | 689 | 10.4% |
| Elective neurosurgery (tumour / spine) | 649 | 1.6% |
| Elective vascular / aortic surgery | 584 | 3.9% |
| COPD exacerbation / hypercapnic failure | 568 | 8.9% |
| Emergency laparotomy | 519 | 19.8% |
| Septic shock, abdominal focus | 509 | 24.8% |
| Upper gastrointestinal bleeding | 472 | 8.9% |
| COVID-19 pneumonia | 453 | 26.3% |
| Post-cardiac-arrest care | 427 | 43.3% |
| Intoxication | 419 | 1.2% |
| Acute kidney injury / metabolic derangement | 414 | 14.1% |
| ARDS (non-COVID) | 342 | 27.4% |
| Diabetic ketoacidosis | 279 | 1.1% |
| Acute pancreatitis | 264 | 9.6% |
Example stays
Two ICU stays picked by a fixed rule from the data, showing how signals are coupled: vasopressor with blood pressure, ventilator settings with oxygenation, creatinine with urine output and renal replacement.
Shock course with ventilation, AKI and renal replacement
case 0040000259 · 71 y, female · ICU admission diagnosis J15.9 · ICU stay 7.7 days · discharged alive. x-axis: days since ICU admission.
Circulation
Mean arterial pressure
invasive, mmHg
Norepinephrine
infusion rate, µg/kg/min
Respiration invasive ventilation
PaO2/FiO2
arterial blood gas
FiO2 set
ventilator setting, %
Kidney renal replacement
Creatinine
mg/dl
Urine output
ml/h, 6 h bins
Short post-operative stay with brief ventilation and vasopressor
case 0040000052 · 74 y, male · ICU admission diagnosis I25.13 · ICU stay 1.6 days · discharged alive. x-axis: days since ICU admission.
Circulation
Mean arterial pressure
invasive, mmHg
Norepinephrine
infusion rate, µg/kg/min
Respiration invasive ventilation
PaO2/FiO2
arterial blood gas
FiO2 set
ventilator setting, %
Kidney renal replacement
Creatinine
mg/dl
Urine output
ml/h, 6 h bins
Signal distributions
All charted values of the full dataset.
Mean arterial pressure (invasive)
18,502,344 readings · median 78 mmHg
Creatinine (mg/dl, µmol/l converted)
216,038 results · median 1.02 mg/dl · log scale
PaO2/FiO2 while ventilated
125,056 arterial gases · median 254
FiO2 measured on the ventilator
473,376 readings · median 34%
SOFA score (charted daily)
89,826 scores · median 4
Tables
Ten tables with production table and column names, column types and literal codes.
| table | rows | size | content | main concepts |
|---|---|---|---|---|
| it_ishmed_patient | 13,591 | 0.17 MB | Patient: sex, birth date, death (also after discharge), nationality, postcode | age_on_admission, sex, death |
| it_ishmed_fall | 18,653 | 0.30 MB | Hospital case: admission/discharge, age, discharge type, origin/destination | cohort, stay_status, inhospital death |
| it_ishmed_bewegung | 88,557 | 1.4 MB | Ward movements: ED, ward, OR, ICU, discharge; ICU stays are built from these | cohort (24 h merge), icu_length_of_stay |
| it_ishmed_diagnose | 115,743 | 0.96 MB | ICD-10-GM diagnoses with certainty and department main-diagnosis flag | diagnoses_all, icu_admission_diagnoses, dx_*, elixhauser_* |
| it_ishmed_procedure | 96,816 | 1.2 MB | OPS procedure codes linked to movements | surgery_ops, icu_admiss_type, icu_admission_apache_iii |
| it_copra6_hierarchy_v2 | 22,163,651 | 100.6 MB | COPRA key/value charting: vitals, ventilator, urine, SOFA, airway, anaesthesia | blood_pressure_*, urine_output, vent_fio2, sofa_score_total, airway_device |
| it_copra6_therapy | 122,589 | 1.5 MB | Device therapies: ventilators, oxygen, renal replacement | invasive_vent, therapy_all, hemodialysis_icu |
| it_copra6_medication | 650,347 | 3.9 MB | Continuous infusions: norepinephrine, sedatives | norepinephrine |
| it_ishmed_labor | 7,366,869 | 84.2 MB | Laboratory: creatinine, routine chemistry, blood gas panels, weights | blood_creatinine, aki_crea_based, blood_gas, pf_ratio |
| it_ishmed_observation | 18,504 | 0.19 MB | SAP body weight and height | body_weight |
| total | 30,655,320 | 194.3 MB | zstd Parquet, ~100k-row row groups, sorted for row-group pruning | |
Real-world messiness
Irregularities injected at low, realistic rates so that the concept logic is exercised as on production data. Counts are from this build.
| feature | in this build | exercises |
|---|---|---|
| Creatinine in µmol/l besides mg/dl; Jaffé vs enzymatic and alternative labels | 9.8% µmol/l; 2.0% alternative labels | blood_creatinine |
| Urine creatinine (KS4090) next to serum creatinine | 843 cases | blood_creatinine |
| FiO2 charted as a fraction (0.45) instead of percent | 9,484 rows (2.0%) | vent_fio2 |
| Ventilator standby strings (Standby, Stand-by, Pause, STDBY …) | 11,167 rows | ventilator_mode_automatic_standby, fio2_set |
| Post-filter blood gases from the CRRT circuit (Ca²⁺ < 0.5 mmol/l) | 251 samples | blood_gas |
| Venous, mixed-venous and capillary blood gases | 13.9% of 294,785 samples | blood_pao2_arterial |
| Bladder irrigation inflow charted with urine | 2,663 rows | aki_urine_output |
| Suspected / excluded (V, A, VW) and history (Z) diagnoses | 7,350 + 1,350 rows | diagnoses_all, dx_* |
| Airway devices without documented removal | 651 of 24,027 | airway_device, invasive_vent |
| UTC strings inside c_value (SOFA date, airway, OR times) vs local timestamps | 169,564 values | co6 extractor, build_procedures |
| Body weight in several COPRA fields at the same time | 1,715 duplicates | body_weight |
| ASA strings like 3E, ‘4 E’, ‘ 3’, ‘2 - leichte …’ | 30% of BEH_ANAE_ASA_STATUS values non-plain | asa_physical_status |
| Several ICU movements per stay; department changes | 1.24 movements/stay; 835 cases ≥ 2 blocks | cohort merge, icu_admission_diagnoses |
| Companion movements (B/BM) on ICU wards | 30 cases | cohort filter |
| Open cases at reference_now (no discharge) | 92 cases, 37 ICU stays | stay_status |
| Non-numeric lab values (text in c_wert) | 294,880 rows | try_cast semantics |
| Non-target drugs and norepinephrine boluses | 208,363 rows; 166 boluses | norepinephrine |