# Statistical analysis code for the post-upgrade cohort.
# This submission copy preserves the complete analysis in the original
# "LEP post.R" file.

library(readr)
library(janitor)
library(dplyr)
library(gtsummary)

# Read and clean the PI-approved de-identified dataset.
# Update the filename below if the submitted dataset has a different name.
data <- read_csv("data/deidentified_LEP_dataset.csv") %>%
  clean_names()

# Keep only POST interpreter period
data_post <- data %>%
  filter(pre_post_period == "Post (October 1, 2023 - September 30, 2024)")

# Create English vs Non-English group
data_post <- data_post %>%
  mutate(
    language_group = case_when(
      preferred_language == "English" ~ "English",
      TRUE ~ "Non-English"
    )
  )

# Optional: mobility change score
data_post <- data_post %>%
  mutate(
    mobility_change =
      discharge_mobility_qi_score -
      admission_mobility_qi_score
  )
names(data_post)
#################################################
# TABLE 1 — Overall POST cohort characteristics
#################################################

table1 <- data_post %>%
  select(
    race,
    ethnicity,
    gender_7,
    age_at_admission,
    preferred_language,
    admission_mobility_qi_score,
    discharge_mobility_qi_score,
    mobility_change
  ) %>%
  tbl_summary(
    statistic = list(
      all_continuous() ~ "{mean} ± {sd}",
      all_categorical() ~ "{n} ({p}%)"
    ),
    digits = all_continuous() ~ 1,
    missing = "ifany"
  ) %>%
  bold_labels()

table1

#################################################
# TABLE 2 — English vs Non-English comparison
#################################################

table2 <- data_post %>%
  select(
    language_group,
    race,
    ethnicity,
    gender_7,
    age_at_admission,
    admission_mobility_qi_score,
    discharge_mobility_qi_score,
    mobility_change
  ) %>%
  tbl_summary(
    by = language_group,
    statistic = list(
      all_continuous() ~ "{mean} ± {sd}",
      all_categorical() ~ "{n} ({p}%)"
    ),
    digits = all_continuous() ~ 1,
    missing = "ifany"
  ) %>%
  add_p() %>%
  bold_labels()

table2


data_post$race <- relevel(
  as.factor(data_post$race),
  ref = "White"
)

data_post$ethnicity <- relevel(
  as.factor(data_post$ethnicity),
  ref = "Not Hispanic or Latino"
)

data_post$language_group <- relevel(
  as.factor(data_post$language_group),
  ref = "English"
)

model <- lm(
  mobility_change ~
    language_group +
    age_at_admission +
    gender_7 +
    race +
    ethnicity,
  data = data_post
)

summary(model)


model2 <- lm(
  discharge_mobility_qi_score ~
    language_group +
    admission_mobility_qi_score +
    age_at_admission +
    gender_7 +
    race +
    ethnicity,
  data = data_post
)

summary(model2)


model3 <- lm(
  discharge_mobility_qi_score ~
    language_group +
    admission_mobility_qi_score +
    age_at_admission +
    gender_7 +
    race,
  data = data_post
)

summary(model3)

