Data dictionary

Simulated data, not real patients. FLUID-ICU is an invented study: every value was produced by a computer program with a fixed random seed. It does not describe any real patient, hospital or ICU. Any manuscript written from it must say that the data are simulated and must never be submitted as real research.

Download: CSV · PDF

SIMULATED DATA: NOT REAL PATIENTS. FLUID-ICU was generated by R/00_generate_fluid_icu.R for teaching.

Study: FLUID-ICU, a multicentre prospective cohort of adults with sepsis admitted to 4 ICUs (ICU A-D), January 2023 to December 2024.

Files: fluid_icu_raw.csv / .xlsx (as sent by the sites, 623 rows, used in the cleaning demo) and fluid_icu_clean.csv / .rds (620 patients, 32 variables, analysis-ready).

Main exposure: cumulative fluid balance at day 3 (cum_fluid_balance_d3_ml_kg, positive_balance_d3). Primary outcome: died_28d (with time_to_event_28d).

Pre-specified confounders: age, sofa, lactate_mmol_l, vasopressor, mech_vent, ckd. Effect modifier: heart_failure.

In the clean file a missing value is an empty cell (CSV) or NA (R). Missing code (raw) gives how the raw file recorded a missing value. Allowed range is the plausibility check used in R/01_clean.R; values outside it are set to missing and queried. DERIVED variables are computed in cleaning and do not exist in the raw file.

# Variable Label Type Units / codes Allowed range Missing code (raw) Notes
1 study_id Study identifier Character (ID) FLU-001 … FLU-620 Unique None allowed Raw column ‘Study ID’. Raw file has 3 IDs entered twice (exact duplicate rows); removed in cleaning.
2 site Recruiting ICU Categorical (4 levels) ICU A / ICU B / ICU C / ICU D 4 levels None allowed Raw ‘Site’ typed several ways (icu a, ICU-A, ICUA); standardised. ICU C reported lactate in mg/dL.
3 admission_date Date of ICU admission (enrolment) Date YYYY-MM-DD 2023-01-01 to 2024-12-31 None allowed Raw ‘Admission Date’ mixes YYYY-MM-DD, DD/MM/YYYY and DD-Mon-YYYY.
4 age Age Numeric (integer) Years 18 to 110 Blank Raw ‘Age’. One impossible value (210) set to missing; query to site.
5 sex Sex Categorical (2 levels) Female / Male 2 levels None allowed Raw ‘Sex’ has 8-9 spellings (M, m, male, F, f, female, ’ Female’).
6 weight_kg Body weight on admission Numeric kg (1 decimal) 30 to 250 Blank Raw ‘Weight (kg)’. One impossible value (7) set to missing. Used to compute balance in ml/kg.
7 diabetes Diabetes mellitus Binary No / Yes No, Yes None Raw codes Yes/No/Y/N/yes/no/1/0 (ICU B sends 1/0).
8 ckd Chronic kidney disease Binary No / Yes No, Yes None Pre-specified confounder. Mixed Yes/No coding in raw file.
9 heart_failure Chronic heart failure Binary No / Yes No, Yes None Pre-specified effect modifier (Q1). Mixed coding in raw file.
10 hypertension Hypertension Binary No / Yes No, Yes None Mixed coding in raw file.
11 infection_source Source of infection Categorical (5 levels) Respiratory / Urinary / Abdominal / Skin/soft tissue / Other 5 levels None Ordered as listed for tables.
12 sofa SOFA score on ICU admission Numeric (integer score) Points 0 to 24 None Severity; pre-specified confounder. Median 7 (IQR 5-9).
13 apache_ii APACHE II score (first 24 h) Numeric (integer score) Points 0 to 71 -99 Raw ‘APACHE II’; 6 values coded -99 = not recorded.
14 lactate_mmol_l Blood lactate on admission Numeric mmol/L (1 decimal) 0.1 to 30 Blank, 999, -99 ~15% missing, more often in less severe patients (MAR). ICU C values in raw file are mg/dL (x 9.01): divided by 9.01 in cleaning.
15 map_mmhg Mean arterial pressure on admission Numeric (integer) mmHg 20 to 200 999 Raw ‘MAP (mmHg)’; 4 values coded 999.
16 vasopressor Vasopressor on admission Binary No / Yes No, Yes None Pre-specified confounder. Mixed coding in raw file.
17 mech_vent Invasive mechanical ventilation on admission Binary No / Yes No, Yes None Raw ‘Mech vent’. Pre-specified confounder.
18 fluid_in_d1_ml Total fluid input, ICU day 1 Numeric (integer) ml 0 to 20000 Blank All intravenous and enteral fluid incl. drugs and nutrition. Raw ‘Fluid in D1 (ml)’.
19 fluid_out_d1_ml Total fluid output, ICU day 1 Numeric (integer) ml 0 to 20000 Blank Urine, drains, ultrafiltration; insensible losses not included.
20 fluid_in_d2_ml Total fluid input, ICU day 2 Numeric (integer) ml 0 to 20000 Blank
21 fluid_out_d2_ml Total fluid output, ICU day 2 Numeric (integer) ml 0 to 20000 Blank One negative value (impossible) in raw file set to missing.
22 fluid_in_d3_ml Total fluid input, ICU day 3 Numeric (integer) ml 0 to 20000 Blank
23 fluid_out_d3_ml Total fluid output, ICU day 3 Numeric (integer) ml 0 to 20000 Blank
24 cum_fluid_balance_d3_ml_kg Cumulative fluid balance, ICU days 1-3 Numeric (DERIVED) ml/kg (1 decimal) -150 to 250 Derived = (sum of fluid in d1-3 - sum of fluid out d1-3) / weight_kg. Not in the raw file. Missing for 2 patients (weight or output missing). Main exposure (Q2, Q3: per 10 ml/kg).
25 positive_balance_d3 Positive cumulative fluid balance at day 3 Binary (DERIVED) No / Yes No, Yes Derived Yes if cum_fluid_balance_d3_ml_kg > 0. Main exposure for Q1 and Q5.
26 aki_stage Acute kidney injury, maximum KDIGO stage, ICU days 1-7 Ordinal (integer) 0 = none, 1, 2, 3 0 to 3 None Raw ‘AKI stage (KDIGO)’.
27 aki_any Any acute kidney injury (KDIGO stage >= 1) Binary (DERIVED) No / Yes No, Yes Derived Yes if aki_stage >= 1. Outcome for Q2.
28 rrt Renal replacement therapy by day 28 Binary No / Yes No, Yes None Mixed coding in raw file.
29 vent_free_days_28 Ventilator-free days to day 28 Numeric (integer) Days 0 to 28 None Days alive and free of invasive ventilation to day 28; 0 if died; 28 if never ventilated and alive. Raw ‘VFD 28’. Outcome for Q3.
30 icu_los_days ICU length of stay Numeric Days (1 decimal) > 0 None Right-skewed. For patients who died, stay ends at death. Outcome for Q5 (survivors).
31 died_28d Death from any cause by day 28 Binary No / Yes No, Yes None Primary outcome (Q1, Q4). Mixed coding in raw file.
32 time_to_event_28d Time from ICU admission to death or censoring Numeric (integer) Days 1 to 28 None Death day if died; 28 (censored) if alive at day 28. Use with died_28d for Kaplan-Meier and Cox. Raw ‘Time to event 28d (days)’.

Column names in the raw file are spreadsheet-style (e.g. Weight (kg), MAP (mmHg)); janitor::clean_names() plus four renames give the names above (see R/01_clean.R, step 1).