Derived Variables

Author

Tianqi Ouyang

Published

April 14, 2026

All variables computed in Tables.Rmd (and replicated in revision 0311.Rmd) from the REDCap source data.

Identifiers & Filtering

Variable Description Logic
id Internal row ID per center paste0("{center}_", row_number())
Discont_Day Day terlipressin discontinued (0–13) First day where discont_terli_dayN == 1 via qc_check()
center_id Center abbreviation str_extract(subjectid, "^[^-]+")
center Numeric center grouping (factor, 1–10) BID/MGH/Yale=1, PEN=2, OCH=3, BSW=4, CPM/CSF/UNM=5, Mayo/MCM/NWM=7, MMC=9, CCF/INU=10

Baseline Creatinine & eGFR

Variable Description Logic
baseline_scr_calculated Estimated SCr from eGFR=75 Inverse CKD-EPI 2021 via numerical optimization (optimize())
baseline_scr_new Best available baseline SCr (1) baseline_scr if days_to_admit != 0, else (2) baseline_scr_120to365_value, else (3) min(calculated, scr_admit)
baseline_scr_new_2 Strict baseline (no calculated fallback) Only options (1) and (2) above
eGFR Estimated GFR CKD-EPI 2021 from baseline_scr_new_2
ckd_baseline Baseline CKD eGFR < 60 → 1

AKI Staging

Variable Description Logic
ratio SCr ratio at terli initiation scr_terli_day0 / baseline_scr_new
delta SCr delta at terli initiation scr_terli_day0 - baseline_scr_new
akin AKIN stage at initiation 1: ratio 1.5–2 OR delta > 0.3; 2: ratio 2–3; 3: ratio ≥ 3 OR SCr ≥ 4
discont_ratio SCr ratio at discontinuation lowest_creatinine / baseline_scr_new
discont_delta SCr delta at discontinuation lowest_creatinine - baseline_scr_new
discont_aki_stage AKIN stage at discontinuation Same staging as akin, using lowest_creatinine
difference AKI stage change akin - discont_aki_stage

Clinical Scores

Child-Pugh Score

Variable Description
child_pugh_score Sum of 5 components (5–15)
Component 1 point 2 points 3 points
Bilirubin (mg/dL) < 2 2–3 > 3
Albumin (g/dL) > 3.5 2.8–3.5 < 2.8
INR < 1.7 1.7–2.3 > 2.3
Ascites Absent (1) Slight (2) Moderate (3)
HE grade None (0) Grade 1–2 Grade 3–4

CLIF-C Score

Variable Description
clif_c_score 10 * (0.33 * organ_score + 0.04 * age + 0.63 * log(WBC) - 2)
clif_c_score_new Median-imputed (missing → population median)
Organ 1 point 2 points 3 points
Liver (T.bili mg/dL) < 6 6–12 ≥ 12
Kidney (SCr mg/dL) < 2 2–3.5 ≥ 3.5
Brain (HE grade) 1 2–3 4–5
Coagulation (INR) < 2 2–2.5 ≥ 2.5
Circulation MAP ≥ 70, no pressors MAP < 70, no pressors Any pressors
Respiratory (SpO2/FiO2) > 357 214–357 ≤ 214

ACLF Grade & Organ Failures

Variable Description Logic
aclf_grade Organ failure count (capped at 3) Count of organ failures below
organ_failure_sum Total organ failure count (uncapped) Sum of 6 binary flags
liver_f Liver failure bili_terli_day0 >= 6
brain_f Brain failure he_terli_day0 > 1
coagulation_f Coagulation failure inr_terli_day0 >= 2
circulatory_f Circulatory failure map_terli_day0_time0 < 70
respiratory_f Respiratory failure spo2_terli_day0 / fio2_terli_day0 <= 357
kidney_f Kidney failure scr_terli_day0 >= 1.5

MELD Scores

Variable Description Formula
day0_meld MELD at Day 0 9.57*log(Cr) + 3.78*log(bili) + 11.20*log(INR) + 6.43; Cr capped 1–4
day0_meld_na MELD-Na at Day 0 MELD + sodium correction (Na capped 125–137); applied only if MELD > 11
day0_meld_3 MELD 3.0 at Day 0 Includes sex factor (+1.33 if female), albumin, sodium, and bilirubin-sodium / albumin-Cr interactions
admit_meld MELD at admission Same as day0_meld using admission labs
admit_meld_na MELD-Na at admission
admit_meld_3 MELD 3.0 at admission Median-imputed if missing
admit_meld_3_raw MELD 3.0 raw (pre-imputation)

Outcome Variables

HRS Response

Variable Description Logic
lowest_creatinine Lowest SCr around discontinuation min(last_scr_2, last_scr, scr_day1_post_terli)
last_scr SCr on discontinuation day scr_terli_day{Discont_Day}
last_scr_2 SCr day before discontinuation scr_terli_day{Discont_Day - 1}
HRS_reversal_new Primary outcome lowest_creatinine <= 1.5 AND (scr_day0 - lowest_creatinine) >= 0.3
hrs_responders Response category 0 = No stage improvement, 1 = Partial (improved but SCr > 0.3 above baseline), 2 = Complete (≤ 0.3 above baseline)
hrs_responders_cat_2 Binary responder 0 = Non-responder, 1 = Any response
hrs_rebound SCr rebound post-terli scr_day1_post_terli - last_scr >= 0.3

Survival / Competing Risk

Intermediate Variables

Variable Description Logic
dc_death_status In-hospital death 1 if disposition == 5, else 0
after_discharge_90days_death_status Died within 90 days post-discharge 1 if dc_death_90days == 1, else 0
time_to_death Days from terlipressin initiation to death or censoring In-hospital death: days_to_discharge; post-discharge death: days_to_discharge + dc_days_to_death; lost to follow-up: days_to_discharge + days_to_lost_to_followup; alive at 90 days: days_to_discharge + 90 (intentional censoring). All minus days_to_terli_initiation_day0
time_to_death_status Overall death indicator 1 = died (in-hospital or post-discharge within 90 days), 0 = alive or lost to follow-up

90-Day Death Outcomes

Variable Description Values Logic
time_to_death_90days Follow-up time for 90-day death analysis (days) 0–90 min(time_to_death, 90) – all follow-up capped at 90 days
time_to_death_status_90days 90-day death event indicator 1 = died within 90 days; 0 = alive at 90 days, OR died after 90 days (censored at 90), OR lost to follow-up 1 only if time_to_death_status == 1 AND time_to_death <= 90; all other patients get 0

90-Day Transplant Outcomes

Variable Description Values Logic
time_to_transplant_90days Follow-up time for 90-day transplant analysis (days) 0–90 min(time_to_transplant_cmp, 90)
time_to_transplant_status_90days 90-day transplant event indicator 2 = transplanted within 90 days; 0 = not transplanted within 90 days, OR transplanted after 90 days (censored at 90) 2 only if transplant_lt_status == 2 AND time_to_transplant_cmp <= 90; all other patients get 0

90-Day Competing Risk (Death vs. Transplant)

Variable Description Values Logic
time_to_death_90days_cmp Competing risk follow-up time (days) 0–90 min(time_to_death_90days, time_to_transplant_90days) – whichever event came first
time_to_death_status_90days_cmp Competing risk event indicator 0 = censored (alive, no transplant within 90 days); 1 = death within 90 days (death came first or tied); 2 = transplant within 90 days (transplant came first) If death time ≤ transplant time: use death status; if transplant time < death time: use transplant status
  • Patient dies day 30, no transplant: time = 30, status = 1 (death)
  • Patient transplanted day 20, alive at 90 days: time = 20, status = 2 (transplant)
  • Patient alive at 90 days, no transplant: time = 90, status = 0 (censored)
  • Patient dies day 50, transplanted day 40: time = 40, status = 2 (transplant came first)
  • Patient died after 90 days: time = 90, status = 0 (censored – death beyond window)
  • Patient lost to follow-up day 60: time = 60, status = 0 (censored)

Transplant

Variable Description Logic
transplant_lt LT timing category 1 = During hospitalization (LT or SLKT), 2 = Within 90 days post-discharge, 3 = After 90 days (within 1 year), 0 = No transplant
transplant_slkt Simultaneous liver-kidney transplant indicator 1 if slkt_during_hospital == 1 OR dc_lt_90days == 2 OR lt_type_1yr == 2, else 0
transplant_lt_status Transplant status for competing risk 0 = no transplant, 2 = transplanted (coded as 2 for competing risk with death = 1)
time_to_transplant Days from terlipressin initiation to transplant NA if no transplant
time_to_transplant_cmp Transplant time for competing risk (999 if no transplant) 999 serves as a large censoring time so pmin with death time selects death
transplant_outcome Transplanted within 90 days (binary) 1 if time_to_transplant_status_90days == 2, else 0
listed_transplant Listed for liver transplant 1 if lt_eval == 2 OR lteval_listingstatus == 1, else 0

Treatment Course Variables

Variable Description Logic
discont_reason_terli Reason at discontinuation day discont_reason_terli_day{Discont_Day}
terli_ae_abdpain Abdominal pain AE From discontinuation day
terli_ae_nausea Nausea AE From discontinuation day
terli_ae_diarrhea Diarrhea AE From discontinuation day
terli_ae_volover Volume overload AE From discontinuation day
terli_ae_brady Bradycardia AE From discontinuation day
terli_7 Respiratory failure reason discont_reason_terli == 7
terli_8 Ischemic event reason discont_reason_terli == 8
terli_ae_respfail Respiratory failure composite terli_7 == 1 OR terli_ae_volover == 1
any_ae Any adverse event Any AE flag == 1
mean_map_day0 Mean MAP on Day 0 Average of 4 daily MAP time-point readings
dosechange_day First day of dose adjustment First day (2–13) with dosechange_terli_dayN == 1
dosechange_status Any dose change Binary: any change days 2–12
time_to_dosechange Day of first dose change
total_albumin Total albumin across treatment rowSums(albumintotal_terli_day0:day13)

Criteria / Exclusion Flags

Variable Description Logic
criteria_1 Discontinued day 1 with no dose total_terli_day1 == 0 AND discont_terli_day1 == 1
criteria_2 ACLF grade ≥ 3 aclf_grade >= 3
criteria_3 SCr ≥ 5 scr_terli_day0 >= 5
criteria_4 Respiratory compromise SpO2/FiO2 < 357
criteria_5 High MELD 3.0 admit_meld_3 > 35
HRS_Criteria Any criteria 1–4 met
HRS_criteria_3 Criteria 2, 3, or 4 (without 1)
HRS_criteria_meld Criteria 2–5

Dose-Change Subgroups (revision 0311)

Variable Description Logic
discont_before_day3 Discontinued before day 3 Discont_Day < 3
pc_change_before_day3 Dose changed days 1–3, continued > day 3
pc_nochange_after_day3 No change days 1–3, continued > day 3
pc_day3 Discontinued exactly day 3 Discont_Day == 3

Other

Variable Description Logic
fena Fractional excretion of sodium 100 * (scr_admit * ua_na) / (sodium_admit * ua_cr)
urine_pc Urine protein:creatinine ratio uaprotein_hrs / ua_cr_value_hrs
race_2 Binary race White or missing → 1, else 0
rrt_2 RRT binary (need-not-candidate = 0) rrt == 2 recoded to 0
bili_cal Bilirubin (coalesced) coalesce(bili_terli_day0, tbili_admit, mean)

Longitudinal Lab Tracking

Lab Admission AKI Day 0–13 Post-Terli Follow-up
SCr scr_admit scr_aki scr_terli_day013 scr_day114_post_terli dc_scr, dc_scr30, 60, 90, scr_value_1yr
T.Bili tbili_admit tbili_aki bili_terli_day013 dc_tbili
INR inr_admit inr_aki inr_terli_day013 dc_inr
Albumin albumin_admit albumin_aki alb_terli_day013 dc_albumin
Sodium sodium_admit sodium_aki na_terli_day013 dc_sna
Cystatin C cystatinc_admit cystatinc_aki cystatinc_terli_day013

Multiple Imputation (revision 0311)

Predictive mean matching (PMM), m=10 imputations, 50 iterations, seed=12345.

Imputed predictors: sex_male, scr_admit, tbili_admit, sodium_admit, inr_admit, albumin_admit, bili_terli_day0, he_terli_day0, inr_terli_day0, map_terli_day0_time0, fio2_terli_day0, spo2_terli_day0, scr_terli_day0, wbc_terli_day0

Post-imputation: Clinical scores (CLIF-C, ACLF grade, Child-Pugh, MELD) are recomputed on each imputed dataset.

Models fit: Fine-Gray competing risk models pooled with Rubin’s rules via run_pooled_fg(), stratified by HRS criteria, transplant listing status, and other subgroups.