Skip to contents

This teal module produces a patient profile timeline plot using ADaM datasets.

Usage

tm_g_pp_patient_timeline(
  label,
  dataname_adcm = "ADCM",
  dataname_adae = "ADAE",
  parentname = "ADSL",
  patient_col = "USUBJID",
  aeterm = NULL,
  cmdecod = NULL,
  aetime_start = NULL,
  aetime_end = NULL,
  dstime_start = NULL,
  dstime_end = NULL,
  aerelday_start = NULL,
  aerelday_end = NULL,
  dsrelday_start = NULL,
  dsrelday_end = NULL,
  font_size = c(12L, 12L, 25L),
  plot_height = c(700L, 200L, 2000L),
  plot_width = NULL,
  pre_output = NULL,
  post_output = NULL,
  ggplot2_args = teal.widgets::ggplot2_args()
)

Arguments

label

(character)
menu item label of the module in the teal app.

dataname_adcm

(character)
name of ADCM dataset or equivalent.

dataname_adae

(character)
name of ADAE dataset or equivalent.

parentname

(character)
parent analysis data used in teal module, usually this refers to ADSL.

patient_col

(character)
patient ID column to be used.

aeterm

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
AETERM column of the ADAE dataset.

cmdecod

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
cmdecod column of the ADCM dataset.

aetime_start

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
ASTDTM column of the AE start of the ADAE dataset.

aetime_end

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
AENDTM column of the AE end of the ADAE dataset.

dstime_start

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
CMASTDTM column of treatment start of the ADCM dataset.

dstime_end

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
CMAENDTM column of treatment end of the ADCM dataset.

aerelday_start

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
ASTDY column of the ADAE dataset.

aerelday_end

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
AENDY column of the ADAE dataset.

dsrelday_start

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
ASTDY column of the ADCM dataset.

dsrelday_end

(teal.transform::choices_selected() or teal.transform::data_extract_spec())
AENDY column of the ADCM dataset.

font_size

(numeric)
numeric vector of length 3 for current, min and max font size values.

plot_height

optional, (numeric)
a vector of length three with c(value, min, max). Specifies the height of the main plot and renders a slider on the plot to interactively adjust the plot height.

plot_width

optional, (numeric)
a vector of length three with c(value, min, max). Specifies the width of the main plot and renders a slider on the plot to interactively adjust the plot width.

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 the shiny::helpText() elements are useful.

ggplot2_args

optional, (ggplot2_args)
object created by teal.widgets::ggplot2_args() with settings for the module plot. The argument is merged with option teal.ggplot2_args and with default module arguments (hard coded in the module body).

For more details, see the help vignette: vignette("custom-ggplot2-arguments", package = "teal.widgets").

Examples

library(scda)
library(nestcolor)

synthetic_cdisc_data_latest <- synthetic_cdisc_data("latest")

ADSL <- synthetic_cdisc_data_latest$adsl
ADAE <- synthetic_cdisc_data_latest$adae
ADCM <- synthetic_cdisc_data_latest$adcm

#' Modify ADCM
ADCM$CMINDC <- paste0("Indication_", as.numeric(ADCM$CMDECOD))
ADCM$CMDOSE <- 1
ADCM$CMDOSU <- "U"
ADCM$CMROUTE <- "CMROUTE"
ADCM$CMDOSFRQ <- "CMDOSFRQ"
ADCM$CMSTDY <- 1
ADCM[ADCM$CMCAT == "medcl B", ]$CMSTDY <- 20
ADCM[ADCM$CMCAT == "medcl C", ]$CMSTDY <- 150
ADCM$CMENDY <- 500
ADCM[ADCM$CMCAT == "medcl B", ]$CMENDY <- 700
ADCM[ADCM$CMCAT == "medcl C", ]$CMENDY <- 1000
ADCM$CMASTDTM <- ADCM$ASTDTM
ADCM$CMAENDTM <- ADCM$AENDTM
formatters::var_labels(
  ADCM[c("CMINDC", "CMDECOD", "CMSTDY", "CMENDY")]
) <- c(
  "Indication",
  "Reported Name of Drug, Med, or Therapy",
  "Study Day of Start of Medication",
  "Study Day of End of Medication"
)
adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4")

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("ADAE", ADAE,
      code = "synthetic_cdisc_data_latest <- synthetic_cdisc_data('latest')
        ADAE <- synthetic_cdisc_data_latest$adae"
    ),
    cdisc_dataset("ADCM", ADCM,
      code = "synthetic_cdisc_data_latest <- synthetic_cdisc_data('latest')
        ADCM <- synthetic_cdisc_data_latest$adcm
        ADCM$CMINDC <- paste0('Indication_', as.numeric(ADCM$CMDECOD))
        ADCM$CMDOSE <- 1
        ADCM$CMDOSU <- 'U'
        ADCM$CMROUTE <- 'CMROUTE'
        ADCM$CMDOSFRQ <- 'CMDOSFRQ'
        ADCM$CMSTDY <- 1
        ADCM[ADCM$CMCAT == 'medcl B', ]$CMSTDY <- 20
        ADCM[ADCM$CMCAT == 'medcl C', ]$CMSTDY <- 150
        ADCM$CMENDY <- 500
        ADCM[ADCM$CMCAT == 'medcl B', ]$CMENDY <- 700
        ADCM[ADCM$CMCAT == 'medcl C', ]$CMENDY <- 1000
        ADCM$CMASTDTM <- ADCM$ASTDTM
        ADCM$CMAENDTM <- ADCM$AENDTM
        formatters::var_labels(
          ADCM[c('CMINDC', 'CMDECOD', 'CMSTDY', 'CMENDY')]) <- c(
            'Indication',
            'Reported Name of Drug, Med, or Therapy',
            'Study Day of Start of Medication',
            'Study Day of End of Medication')",
      keys = adcm_keys
    )
  ),
  modules = modules(
    tm_g_pp_patient_timeline(
      label = "Patient timeline",
      dataname_adae = "ADAE",
      dataname_adcm = "ADCM",
      parentname = "ADSL",
      patient_col = "USUBJID",
      plot_height = c(600L, 200L, 2000L),
      cmdecod = choices_selected(
        choices = variable_choices(ADCM, "CMDECOD"),
        selected = "CMDECOD",
      ),
      aeterm = choices_selected(
        choices = variable_choices(ADAE, "AETERM"),
        selected = c("AETERM")
      ),
      aetime_start = choices_selected(
        choices = variable_choices(ADAE, "ASTDTM"),
        selected = c("ASTDTM")
      ),
      aetime_end = choices_selected(
        choices = variable_choices(ADAE, "AENDTM"),
        selected = c("AENDTM")
      ),
      dstime_start = choices_selected(
        choices = variable_choices(ADCM, "CMASTDTM"),
        selected = c("CMASTDTM")
      ),
      dstime_end = choices_selected(
        choices = variable_choices(ADCM, "CMAENDTM"),
        selected = c("CMAENDTM")
      ),
      aerelday_start = choices_selected(
        choices = variable_choices(ADAE, "ASTDY"),
        selected = c("ASTDY")
      ),
      aerelday_end = choices_selected(
        choices = variable_choices(ADAE, "AENDY"),
        selected = c("AENDY")
      ),
      dsrelday_start = choices_selected(
        choices = variable_choices(ADCM, "ASTDY"),
        selected = c("ASTDY")
      ),
      dsrelday_end = choices_selected(
        choices = variable_choices(ADCM, "AENDY"),
        selected = c("AENDY")
      )
    )
  )
)
#> [INFO] 2022-10-14 09:10:08.9029 pid:3139 token:[] teal.modules.clinical Initializing tm_g_pp_patient_timeline
if (FALSE) {
shinyApp(app$ui, app$server)
}