TL Catalog
  1. Listings
  2. Adverse Events
  3. LSFAE04
  • Introduction

  • Index

  • Tables
    • Adverse Events
      • TSFAE01A
      • TSFAE01B
      • TSFAE02
      • TSFAE02A
      • TSFAE03
      • TSFAE03A
      • TSFAE04
      • TSFAE04A
      • TSFAE05
      • TSFAE05A
      • TSFAE06A
      • TSFAE06B
      • TSFAE07A
      • TSFAE07B
      • TSFAE08
      • TSFAE09
      • TSFAE10
      • TSFAE11
      • TSFAE12
      • TSFAE13
      • TSFAE14
      • TSFAE15
      • TSFAE16
      • TSFAE17A
      • TSFAE17B
      • TSFAE17C
      • TSFAE17D
      • TSFAE19A
      • TSFAE19B
      • TSFAE19C
      • TSFAE19D
      • TSFAE20A
      • TSFAE20B
      • TSFAE20C
      • TSFAE21A
      • TSFAE21B
      • TSFAE21C
      • TSFAE21D
      • TSFAE22A
      • TSFAE22B
      • TSFAE22C
      • TSFAE23A
      • TSFAE23B
      • TSFAE23C
      • TSFAE23D
      • TSFAE24A
      • TSFAE24B
      • TSFAE24C
      • TSFAE24D
      • TSFAE24F
      • TSFDTH01
    • Clinical Laboratory Evaluation
      • TSFLAB01
      • TSFLAB01A
      • TSFLAB02
      • TSFLAB02A
      • TSFLAB02B
      • TSFLAB03
      • TSFLAB03A
      • TSFLAB04A
      • TSFLAB04B
      • TSFLAB05
      • TSFLAB06
      • TSFLAB07
    • Demographic
      • TSIDEM01
      • TSIDEM02
      • TSIMH01
    • Disposition of Subjects
      • TSIDS01
      • TSIDS02
      • TSIDS02A
    • Electrocardiograms
      • TSFECG01
      • TSFECG01A
      • TSFECG02
      • TSFECG03
      • TSFECG04
      • TSFECG05
    • Exposure
      • TSIEX01
      • TSIEX02
      • TSIEX03
      • TSIEX04
      • TSIEX06
      • TSIEX07
      • TSIEX08
      • TSIEX09
      • TSIEX10
      • TSIEX11
    • Pharmacokinetics
      • TPK01A
      • TPK01B
      • TPK02
      • TPK03
    • Prior and Concomitant Therapies
      • TSICM01
      • TSICM02
      • TSICM03
      • TSICM04
      • TSICM05
      • TSICM06
      • TSICM07
      • TSICM08
    • Vital Signs and Physical Findings
      • TSFVIT01
      • TSFVIT01A
      • TSFVIT02
      • TSFVIT03
      • TSFVIT04
      • TSFVIT05
      • TSFVIT06
  • Listings
    • Adverse Events
      • LSFAE01
      • LSFAE02
      • LSFAE03
      • LSFAE04
      • LSFAE05
      • LSFAE06A
      • LSFAE06B
      • LSFDTH01
    • Clinical Laboratory Evaluation
      • LSFLAB01
    • Demographic
      • LSIDEM01
      • LSIDEM02
      • LSIMH01
    • Disposition of Subjects
      • LSIDS01
      • LSIDS02
      • LSIDS03
      • LSIDS04
      • LSIDS05
    • Electrocardiograms
      • LSFECG01
      • LSFECG02
    • Exposure
      • LSIEX01
      • LSIEX02
      • LSIEX03
    • Prior and Concomitant Therapies
      • LSICM01
    • Vital Signs and Physical Findings
      • LSFVIT01
      • LSFVIT02

  • Reproducibility

  • Changelog

On this page

  • Output
  • Edit this page
  • Report an issue
  1. Listings
  2. Adverse Events
  3. LSFAE04

LSFAE04

Listing of Adverse Events Leading to Death


Output

  • Preview
Code
# Program Name:              lsfae04.R

# Prep environment

library(envsetup)
library(tern)
library(dplyr)
library(rtables)
library(rlistings)
library(junco)
library(stringi)
library(junco)

# Define script level parameters

tblid <- "LSFAE04"
fileid <- tblid
popfl <- "SAFFL"
trtvar <- "TRT01A"
key_cols <- c("COL0", "COL1", "COL2")
disp_cols <- paste0("COL", 0:10)
concat_sep <- " / "
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map
# Parameter to control whether time should be displayed
include_time <- TRUE

# Process data

adae <- pharmaverseadamjnj::adae %>%
  filter(!!rlang::sym(popfl) == "Y" & AEOUT == "FATAL")

lsting <- adae %>%
  mutate(
    AGE = explicit_na(as.character(AGE), ""),
    SEX = explicit_na(SEX, ""),
    RACE_DECODE = explicit_na(RACE_DECODE, ""),
    DOSEON = explicit_na(as.character(DOSEON), ""),
    DOSEU = explicit_na(DOSEU, ""),
    DOSEDY = explicit_na(as.character(DOSEDY), ""),
    AEDECOD = explicit_na(AEDECOD, ""),
    AETERM = ifelse(
      is.na(AETERM),
      "",
      stringi::stri_trans_totitle(gsub("\\$", "", AETERM))
    ),
    ASTDT = ifelse(
      nchar(as.character(ASTDT)) == 10,
      toupper(format(ASTDT, "%d%b%Y")),
      ""
    ),
    ASTTM = ifelse(
      include_time & !is.na(ASTDTM),
      substr(as.character(ASTDTM), 12, 16),
      ""
    ),
    ASTDYN = ifelse(!is.na(ASTDY), ASTDY, NA),
    ASTDY = ifelse(!is.na(ASTDY), ASTDY, ""),
    ASTDTFS = ifelse(!is.na(ASTDTF), "*", ""),
    AENDT = explicit_na(as.character(AENDT), ""),
    AENDT = ifelse(
      nchar(AENDT) == 10,
      toupper(format(as.Date(AENDT), "%d%b%Y")),
      ""
    ),
    AENTM = ifelse(
      include_time & !is.na(AENDTM),
      substr(as.character(AENDTM), 12, 16),
      ""
    ),
    AENDY = ifelse(!is.na(AENDY), AENDY, ""),
    AENDTFS = ifelse(!is.na(AENDTF), "*", ""),
    AEOUTC = explicit_na(AEOUT_DECODE, ""),
    # Optional Variable: COL10/AESEV/AETOXGR
    # AESEV = explicit_na(AESEV,""),
    AETOXGR = explicit_na(AETOXGR, ""),
    AESER_DECODE = explicit_na(AESER_DECODE, ""),
    COL0 = explicit_na(.data[[trtvar]], ""),
    COL1 = explicit_na(USUBJID, ""),
    COL2 = paste(AGE, SEX, RACE_DECODE, sep = concat_sep),
    COL3 = paste(paste0(DOSEON, " ", DOSEU), DOSEDY, sep = concat_sep),
    COL4 = paste(AEDECOD, AETERM, sep = concat_sep),
    COL5 = ifelse(!is.na(TRTEMFL), "Yes", "No"),
    COL6 = case_when(
      ASTDT == "" ~ "",
      include_time & ASTDT != "" & ASTTM != "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, concat_sep, ASTTM, " (", ASTDY, ")", ASTDTFS),
      include_time & ASTDT != "" & ASTTM != "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, concat_sep, ASTTM, " (", ASTDY, ")"),
      include_time & ASTDT != "" & ASTTM == "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, concat_sep, "--:--", " (", ASTDY, ")", ASTDTFS),
      include_time & ASTDT != "" & ASTTM == "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, concat_sep, "--:--", " (", ASTDY, ")"),
      ASTDT != "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, " (", ASTDY, ")", ASTDTFS),
      ASTDT != "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, " (", ASTDY, ")"),
    ),
    COL7 = case_when(
      AENDT == "" ~ "",
      include_time & AENDT != "" & AENTM != "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, concat_sep, AENTM, " (", AENDY, ")", AENDTFS),
      include_time & AENDT != "" & AENTM != "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, concat_sep, AENTM, " (", AENDY, ")"),
      include_time & AENDT != "" & AENTM == "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, concat_sep, "--:--", " (", AENDY, ")", AENDTFS),
      include_time & AENDT != "" & AENTM == "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, concat_sep, "--:--", " (", AENDY, ")"),
      AENDT != "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, " (", AENDY, ")", AENDTFS),
      AENDT != "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, " (", AENDY, ")"),
    ),
    # Optional Column: COL8/AEACN
    COL8 = explicit_na(AEACN_DECODE, ""),
    COL9 = explicit_na(AEREL_DECODE, ""),
    # Optional Variable: COL10/AESEV/AETOXGR
    # COL10 = paste(AESEV, AESER, sep = concat_sep)
    COL10 = paste(AETOXGR, AESER_DECODE, sep = concat_sep)
  ) %>%
  arrange(
    COL0,
    COL1,
    COL2,
    !is.na(ASTDYN),
    ASTDYN,
    if (include_time) ASTDTM else ASTDT,
    AEDECOD,
    AETERM
  )

lsting <- var_relabel(
  lsting,
  COL0 = "Treatment Group",
  COL1 = "Subject ID",
  COL2 = paste("Age (years)", "Sex", "Race", sep = concat_sep),
  COL3 = paste(
    "Onset Dose (unit)",
    "Day of Last Dose~[super a,b]",
    sep = concat_sep
  ),
  COL4 = paste("Preferred Term", "Reported Term", sep = concat_sep),
  COL5 = "TE?",
  COL6 = if (include_time) {
    paste("Start Date", "Time (Study Day~[super b])", sep = concat_sep)
  } else {
    "Start Date (Study Day~[super b])"
  },
  COL7 = if (include_time) {
    paste("End Date", "Time (Study Day~[super b])", sep = concat_sep)
  } else {
    "End Date (Study Day~[super b])"
  },
  # Optional Column: COL8/AEACN
  COL8 = "Action Taken With Study Treatment",
  COL9 = "Relationship to Study Treatment~[super c]",
  # Optional Variable: COL10/AESEV/AETOXGR
  # COL10 = paste("Severity", "Serious", sep = concat_sep)
  COL10 = paste("Toxicity Grade", "Serious", sep = concat_sep)
)

# Build listing

result <- rlistings::as_listing(
  df = lsting,
  key_cols = key_cols,
  disp_cols = disp_cols
)

# Add titles and footnotes

result <- set_titles(result, tab_titles)

# Output listing

tt_to_tlgrtf(string_map = string_map, tt = head(result, 100), file = fileid, orientation = "landscape")

LSFAE04: Listing of Adverse Events Leading to Death; Safety Analysis Set (Study jjcs - core)

Treatment Group

Subject ID

Age (years) / Sex / Race

Onset Dose (unit) / Day of Last Dosea,b

Preferred Term / Reported Term

TE?

Start Date / Time (Study Dayb)

End Date / Time (Study Dayb)

Action Taken With Study Treatment

Relationship to Study Treatmentc

Toxicity Grade / Serious

Xanomeline Low Dose

01-701-1211

76 / F / Other

10 mg / 37

SUDDEN DEATH / Sudden Death

Yes

14JAN2013 / 00:00 (61)

14JAN2013 / 23:59 (61)

Dose Reduced

Not Related

1 / Yes

Placebo

01-710-1083

89 / F / White

10 mg / 37

MYOCARDIAL INFARCTION / Myocardial Infarction

Yes

02AUG2013 / 00:00 (12)

02AUG2013 / 23:59 (12)

Dose Rate Reduced

Possible

1 / Yes

Key: *=imputed date, day, or duration

a Study day of last administration of [study treatment] prior to or on AE start date.

b Study day is relative to [the start of [study treatment]].

c Relationship is assessed by the investigator.

Note: Adverse events are coded using MedDRA version 26.0; toxicity grade is evaluated according to NCI-CTCAE version 5.0..

[lsfae04.docx][/usr/lib/rstudio-server/bin/quarto/share/rmd/rmd.R] 12JAN2026, 16:09

Download RTF file

LSFAE03
LSFAE05
Source Code
---
title: LSFAE04
subtitle: Listing of Adverse Events Leading to Death
---

------------------------------------------------------------------------

{{< include ../../_utils/envir_hook.qmd >}}

```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
options(docx.add_datetime = FALSE, tidytlg.add_datetime = FALSE)
envsetup_config_name <- "default"

# Path to the combined config file
envsetup_file_path <- file.path("../..", "envsetup.yml")

Sys.setenv(ENVSETUP_ENVIRON = '')
library(envsetup)
loaded_config <- config::get(config = envsetup_config_name, file = envsetup_file_path)
envsetup::rprofile(loaded_config)


dpscomp <- compound
dpspdr <- paste(protocol,dbrelease,rpteff,sep="__")

aptcomp <- compound
aptpdr <- paste(protocol,dbrelease,rpteff,sep="__")

###### Study specific updates (formerly in envre)

dpscomp <- "standards"
dpspdr <- "jjcs__NULL__jjcs - core"

apt <- FALSE
library(junco)
default_str_map <- rbind(default_str_map, c("&ctcae", "5.0"))

```

## Output

:::: panel-tabset
## {{< fa regular file-lines sm fw >}} Preview

```{r variant1, results='hide', warning = FALSE, message = FALSE}

# Program Name:              lsfae04.R

# Prep environment

library(envsetup)
library(tern)
library(dplyr)
library(rtables)
library(rlistings)
library(junco)
library(stringi)
library(junco)

# Define script level parameters

tblid <- "LSFAE04"
fileid <- tblid
popfl <- "SAFFL"
trtvar <- "TRT01A"
key_cols <- c("COL0", "COL1", "COL2")
disp_cols <- paste0("COL", 0:10)
concat_sep <- " / "
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map
# Parameter to control whether time should be displayed
include_time <- TRUE

# Process data

adae <- pharmaverseadamjnj::adae %>%
  filter(!!rlang::sym(popfl) == "Y" & AEOUT == "FATAL")

lsting <- adae %>%
  mutate(
    AGE = explicit_na(as.character(AGE), ""),
    SEX = explicit_na(SEX, ""),
    RACE_DECODE = explicit_na(RACE_DECODE, ""),
    DOSEON = explicit_na(as.character(DOSEON), ""),
    DOSEU = explicit_na(DOSEU, ""),
    DOSEDY = explicit_na(as.character(DOSEDY), ""),
    AEDECOD = explicit_na(AEDECOD, ""),
    AETERM = ifelse(
      is.na(AETERM),
      "",
      stringi::stri_trans_totitle(gsub("\\$", "", AETERM))
    ),
    ASTDT = ifelse(
      nchar(as.character(ASTDT)) == 10,
      toupper(format(ASTDT, "%d%b%Y")),
      ""
    ),
    ASTTM = ifelse(
      include_time & !is.na(ASTDTM),
      substr(as.character(ASTDTM), 12, 16),
      ""
    ),
    ASTDYN = ifelse(!is.na(ASTDY), ASTDY, NA),
    ASTDY = ifelse(!is.na(ASTDY), ASTDY, ""),
    ASTDTFS = ifelse(!is.na(ASTDTF), "*", ""),
    AENDT = explicit_na(as.character(AENDT), ""),
    AENDT = ifelse(
      nchar(AENDT) == 10,
      toupper(format(as.Date(AENDT), "%d%b%Y")),
      ""
    ),
    AENTM = ifelse(
      include_time & !is.na(AENDTM),
      substr(as.character(AENDTM), 12, 16),
      ""
    ),
    AENDY = ifelse(!is.na(AENDY), AENDY, ""),
    AENDTFS = ifelse(!is.na(AENDTF), "*", ""),
    AEOUTC = explicit_na(AEOUT_DECODE, ""),
    # Optional Variable: COL10/AESEV/AETOXGR
    # AESEV = explicit_na(AESEV,""),
    AETOXGR = explicit_na(AETOXGR, ""),
    AESER_DECODE = explicit_na(AESER_DECODE, ""),
    COL0 = explicit_na(.data[[trtvar]], ""),
    COL1 = explicit_na(USUBJID, ""),
    COL2 = paste(AGE, SEX, RACE_DECODE, sep = concat_sep),
    COL3 = paste(paste0(DOSEON, " ", DOSEU), DOSEDY, sep = concat_sep),
    COL4 = paste(AEDECOD, AETERM, sep = concat_sep),
    COL5 = ifelse(!is.na(TRTEMFL), "Yes", "No"),
    COL6 = case_when(
      ASTDT == "" ~ "",
      include_time & ASTDT != "" & ASTTM != "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, concat_sep, ASTTM, " (", ASTDY, ")", ASTDTFS),
      include_time & ASTDT != "" & ASTTM != "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, concat_sep, ASTTM, " (", ASTDY, ")"),
      include_time & ASTDT != "" & ASTTM == "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, concat_sep, "--:--", " (", ASTDY, ")", ASTDTFS),
      include_time & ASTDT != "" & ASTTM == "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, concat_sep, "--:--", " (", ASTDY, ")"),
      ASTDT != "" & ASTDY != "" & ASTDTFS != "" ~
        paste0(ASTDT, " (", ASTDY, ")", ASTDTFS),
      ASTDT != "" & ASTDY != "" & ASTDTFS == "" ~
        paste0(ASTDT, " (", ASTDY, ")"),
    ),
    COL7 = case_when(
      AENDT == "" ~ "",
      include_time & AENDT != "" & AENTM != "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, concat_sep, AENTM, " (", AENDY, ")", AENDTFS),
      include_time & AENDT != "" & AENTM != "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, concat_sep, AENTM, " (", AENDY, ")"),
      include_time & AENDT != "" & AENTM == "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, concat_sep, "--:--", " (", AENDY, ")", AENDTFS),
      include_time & AENDT != "" & AENTM == "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, concat_sep, "--:--", " (", AENDY, ")"),
      AENDT != "" & AENDY != "" & AENDTFS != "" ~
        paste0(AENDT, " (", AENDY, ")", AENDTFS),
      AENDT != "" & AENDY != "" & AENDTFS == "" ~
        paste0(AENDT, " (", AENDY, ")"),
    ),
    # Optional Column: COL8/AEACN
    COL8 = explicit_na(AEACN_DECODE, ""),
    COL9 = explicit_na(AEREL_DECODE, ""),
    # Optional Variable: COL10/AESEV/AETOXGR
    # COL10 = paste(AESEV, AESER, sep = concat_sep)
    COL10 = paste(AETOXGR, AESER_DECODE, sep = concat_sep)
  ) %>%
  arrange(
    COL0,
    COL1,
    COL2,
    !is.na(ASTDYN),
    ASTDYN,
    if (include_time) ASTDTM else ASTDT,
    AEDECOD,
    AETERM
  )

lsting <- var_relabel(
  lsting,
  COL0 = "Treatment Group",
  COL1 = "Subject ID",
  COL2 = paste("Age (years)", "Sex", "Race", sep = concat_sep),
  COL3 = paste(
    "Onset Dose (unit)",
    "Day of Last Dose~[super a,b]",
    sep = concat_sep
  ),
  COL4 = paste("Preferred Term", "Reported Term", sep = concat_sep),
  COL5 = "TE?",
  COL6 = if (include_time) {
    paste("Start Date", "Time (Study Day~[super b])", sep = concat_sep)
  } else {
    "Start Date (Study Day~[super b])"
  },
  COL7 = if (include_time) {
    paste("End Date", "Time (Study Day~[super b])", sep = concat_sep)
  } else {
    "End Date (Study Day~[super b])"
  },
  # Optional Column: COL8/AEACN
  COL8 = "Action Taken With Study Treatment",
  COL9 = "Relationship to Study Treatment~[super c]",
  # Optional Variable: COL10/AESEV/AETOXGR
  # COL10 = paste("Severity", "Serious", sep = concat_sep)
  COL10 = paste("Toxicity Grade", "Serious", sep = concat_sep)
)

# Build listing

result <- rlistings::as_listing(
  df = lsting,
  key_cols = key_cols,
  disp_cols = disp_cols
)

# Add titles and footnotes

result <- set_titles(result, tab_titles)

# Output listing

tt_to_tlgrtf(string_map = string_map, tt = head(result, 100), file = fileid, orientation = "landscape")
```
```{r result1, echo=FALSE, message=FALSE, warning=FALSE, test = list(result_v1 = "result")}
tt_to_flextable_j(head(result,100), tblid, string_map = string_map)
```

[Download RTF file](`r paste0(tolower(tblid), '.rtf')`)
::::

Made with ❤️ by the J&J Team

  • Edit this page
  • Report an issue
Cookie Preferences