library(dplyr)
library(formatters)
data <- teal_data()
data <- within(data, {
ADSL <- tmc_ex_adsl %>%
mutate(
DTHFL = case_when( #' nolint
!is.na(DTHDT) ~ "Y",
TRUE ~ ""
) %>% with_label("Subject Death Flag")
)
ADAE <- tmc_ex_adae
add_event_flags <- function(dat) {
dat <- dat %>%
mutate(
TMPFL_SER = AESER == "Y",
TMPFL_REL = AEREL == "Y",
TMPFL_GR5 = AETOXGR == "5",
TMP_SMQ01 = !is.na(SMQ01NAM),
TMP_SMQ02 = !is.na(SMQ02NAM),
TMP_CQ01 = !is.na(CQ01NAM)
)
column_labels <- list(
TMPFL_SER = "Serious AE",
TMPFL_REL = "Related AE",
TMPFL_GR5 = "Grade 5 AE",
TMP_SMQ01 = aesi_label(dat[["SMQ01NAM"]], dat[["SMQ01SC"]]),
TMP_SMQ02 = aesi_label("Y.9.9.9.9/Z.9.9.9.9 AESI"),
TMP_CQ01 = aesi_label(dat[["CQ01NAM"]])
)
var_labels(dat)[names(column_labels)] <- as.character(column_labels)
dat
}
#' Generating user-defined event flags.
ADAE <- ADAE %>% add_event_flags()
ae_anl_vars <- names(ADAE)[startsWith(names(ADAE), "TMPFL_")]
aesi_vars <- names(ADAE)[startsWith(names(ADAE), "TMP_")]
})
datanames <- c("ADSL", "ADAE")
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]
app <- init(
data = data,
modules = modules(
tm_t_events_summary(
label = "Adverse Events Summary",
dataname = "ADAE",
arm_var = choices_selected(
choices = variable_choices("ADSL", c("ARM", "ARMCD")),
selected = "ARM"
),
flag_var_anl = choices_selected(
choices = variable_choices("ADAE", data[["ae_anl_vars"]]),
selected = data[["ae_anl_vars"]][1],
keep_order = TRUE,
fixed = FALSE
),
flag_var_aesi = choices_selected(
choices = variable_choices("ADAE", data[["aesi_vars"]]),
selected = data[["aesi_vars"]][1],
keep_order = TRUE,
fixed = FALSE
),
add_total = TRUE
)
)
)
if (interactive()) {
shinyApp(app$ui, app$server)
}
Run the code above in your browser using DataLab