Teal Module: Abnormality Summary Table
Usage
tm_t_abnormality(
label,
dataname,
parentname = ifelse(inherits(arm_var, "data_extract_spec"),
teal.transform::datanames_input(arm_var), "ADSL"),
arm_var,
by_vars,
grade,
abnormal = list(low = c("LOW", "LOW LOW"), high = c("HIGH", "HIGH HIGH")),
id_var = teal.transform::choices_selected(teal.transform::variable_choices(dataname,
subset = "USUBJID"), selected = "USUBJID", fixed = TRUE),
baseline_var =
teal.transform::choices_selected(teal.transform::variable_choices(dataname, subset =
"BNRIND"), selected = "BNRIND", fixed = TRUE),
treatment_flag_var =
teal.transform::choices_selected(teal.transform::variable_choices(dataname, subset =
"ONTRTFL"), selected = "ONTRTFL", fixed = TRUE),
treatment_flag =
teal.transform::choices_selected(teal.transform::value_choices(dataname, "ONTRTFL"),
selected = "Y", fixed = TRUE),
add_total = TRUE,
exclude_base_abn = FALSE,
drop_arm_levels = TRUE,
pre_output = NULL,
post_output = NULL,
na_level = "<Missing>",
basic_table_args = teal.widgets::basic_table_args()
)
Arguments
- label
(
character
)
menu item label of the module in the teal app.- dataname
(
character
)
analysis data used in teal module.- parentname
(
character
)
parent analysis data used in teal module, usually this refers toADSL
.- arm_var
(
choices_selected
ordata_extract_spec
)
object with all available choices and preselected option for variable names that can be used asarm_var
. It defines the grouping variable(s) in the results table. If there are two elements selected forarm_var
, second variable will be nested under the first variable.- by_vars
(
choices_selected
ordata_extract_spec
)
object with all available choices and preselected option for variable names used to split the summary by rows.- grade
(
teal.transform::choices_selected()
orteal.transform::data_extract_spec()
)
object with all available choices and preselected option for variable names that can be used to specify the abnormality grade. Variable must be factor.- abnormal
(
named list
)
defined by user to indicate what abnormalities are to be displayed.- id_var
(
choices_selected
ordata_extract_spec
)
object specifying the variable name for subject id.- baseline_var
(
teal.transform::choices_selected()
orteal.transform::data_extract_spec()
)
variable for baseline abnormality grade.- treatment_flag_var
(
choices_selected
ordata_extract_spec
)
on treatment flag variable.- treatment_flag
(
choices_selected
] ordata_extract_spec
)
value indicating on treatment records intreatment_flag_var
.- add_total
(
logical
)
whether to include column with total number of patients.- exclude_base_abn
(
logical
)
whether to exclude patients who had abnormal values at baseline.- drop_arm_levels
(
logical
)
drop the unusedarm_var
levels. WhenTRUE
,arm_var
levels are set to those used in thedataname
dataset. WhenFALSE
,arm_var
levels are set to those used in theparantname
dataset.- pre_output
optional, (
shiny.tag
)
with text placed before the output to put the output into context. For example a title.- post_output
optional, (
shiny.tag
)
with text placed after the output to put the output into context. For example theshiny::helpText()
elements are useful.- na_level
(
character
)
the NA level in the input dataset, default to"<Missing>"
.- basic_table_args
-
optional, (
basic_table_args
)
object created byteal.widgets::basic_table_args()
with settings for the module table. The argument is merged with optionteal.basic_table_args
and with default module arguments (hard coded in the module body).For more details, see the vignette:
vignette("custom-basic-table-arguments", package = "teal.widgets")
.
Note
Patients with the same abnormality at baseline as on the treatment visit can be
excluded in accordance with GDSR specifications by using exclude_base_abn
.
Examples
library(scda)
library(dplyr)
synthetic_cdisc_data_latest <- synthetic_cdisc_data("latest")
adsl <- synthetic_cdisc_data_latest$adsl
adlb <- synthetic_cdisc_data_latest$adlb %>%
mutate(
ONTRTFL = case_when(
AVISIT %in% c("SCREENING", "BASELINE") ~ "",
TRUE ~ "Y"
)
)
attr(adlb[["ONTRTFL"]], "label") <- "On Treatment Record Flag"
app <- init(
data = cdisc_data(
cdisc_dataset("ADSL", adsl,
code = "synthetic_cdisc_data_latest <- synthetic_cdisc_data('latest')
ADSL <- synthetic_cdisc_data_latest$adsl"
),
cdisc_dataset("ADLB", adlb,
code = "synthetic_cdisc_data_latest <- synthetic_cdisc_data('latest')
ADLB <- synthetic_cdisc_data_latest$adlb %>%
mutate(
ONTRTFL = case_when(
AVISIT %in% c('SCREENING', 'BASELINE') ~ '',
TRUE ~ 'Y'
)
)
attr(ADLB[['ONTRTFL']], 'label') <- 'On Treatment Record Flag'
ADLB"
)
),
modules = modules(
tm_t_abnormality(
label = "Abnormality Table",
dataname = "ADLB",
arm_var = choices_selected(
choices = variable_choices(adsl, subset = c("ARM", "ARMCD")),
selected = "ARM"
),
add_total = FALSE,
by_vars = choices_selected(
choices = variable_choices(adlb, subset = c("LBCAT", "PARAM", "AVISIT")),
selected = c("LBCAT", "PARAM"),
keep_order = TRUE
),
grade = choices_selected(
choices = variable_choices(adlb, subset = "ANRIND"),
selected = "ANRIND",
fixed = TRUE
),
abnormal = list(low = "LOW", high = "HIGH"),
exclude_base_abn = FALSE
)
)
)
#> [INFO] 2022-10-14 09:10:16.7593 pid:3139 token:[] teal.modules.clinical Initializing tm_t_abnormality
if (FALSE) {
shinyApp(app$ui, app$server)
}