---
title: LSIMH01
subtitle: Listing of Medical History/Medical History of Interest
---
------------------------------------------------------------------------
{{< 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: lsimh01.R
# Prep environment
library(envsetup)
library(tern)
library(dplyr)
library(tidyr)
library(rtables)
library(rlistings)
library(junco)
# Define script level parameters
tblid <- "LSIMH01"
fileid <- tblid
popfl <- "FASFL"
trtvar <- "TRT01P"
key_cols <- c("COL0", "COL1", "COL2")
disp_cols <- paste0("COL", 0:8)
concat_sep <- " / "
tab_titles <- get_titles_from_file(input_path = '../../_data/', tblid)
string_map <- default_str_map
# Process data
adsl <- pharmaverseadamjnj::adsl %>%
filter(!!rlang::sym(popfl) == "Y")
mh <- pharmaversesdtmjnj::mh
adsl_mh <- adsl %>%
inner_join(mh, by = c("STUDYID", "USUBJID"))
lsting <- adsl_mh %>%
mutate(
AGE = explicit_na(as.character(AGE), ""),
SEX = explicit_na(SEX, ""),
RACE_DECODE = explicit_na(RACE_DECODE, ""),
MHDECOD = case_when(
MHDECOD == "" ~ paste0("Uncoded: ", MHTERM),
.default = MHDECOD
),
MHBODSYS = case_when(
MHBODSYS == "" ~ "Uncoded",
.default = MHBODSYS
),
MHDECOD = explicit_na(MHDECOD, ""),
MHTERM = explicit_na(MHTERM, ""),
MHENRTPTL = ifelse(MHENRTPT == "ONGOING", "Yes", "No"),
MHSTDT = as.Date(MHSTDTC, format = "%Y-%m-%d"),
MHSTYR = ifelse(
stringr::str_length(MHSTDTC) >= 4,
substr(MHSTDTC, 1, 4),
NA
),
MHSTMO = month.abb[
as.numeric(ifelse(
stringr::str_length(sub("T.*", "", MHSTDTC)) >= 7 &
substr(sub("T.*", "", MHSTDTC), 6, 7) != "--",
substr(sub("T.*", "", MHSTDTC), 6, 7),
NA
))
],
MHSTDAY = ifelse(
stringr::str_length(MHSTDTC) >= 10,
substr(MHSTDTC, 9, 10),
NA
),
MHSTDY = ifelse(MHSTDT > TRTSDT, MHSTDT - TRTSDT + 1, MHSTDT - TRTSDT),
MHSTDYL = ifelse(!is.na(MHSTDT) & is.na(MHSTDY), "-", MHSTDY),
MHENDT = as.Date(MHENDTC, format = "%Y-%m-%d"),
MHENYR = ifelse(
stringr::str_length(MHENDTC) >= 4,
substr(MHENDTC, 1, 4),
NA
),
MHENMO = month.abb[
as.numeric(ifelse(
stringr::str_length(sub("T.*", "", MHENDTC)) >= 7 &
substr(sub("T.*", "", MHENDTC), 6, 7) != "--",
substr(sub("T.*", "", MHENDTC), 6, 7),
NA
))
],
MHENDAY = ifelse(
stringr::str_length(MHENDTC) >= 10,
substr(MHENDTC, 9, 10),
NA
),
MHENDY = ifelse(MHENDT > TRTSDT, MHENDT - TRTSDT + 1, MHENDT - TRTSDT),
MHENDYL = case_when(
!is.na(MHENDY) ~ as.character(MHENDY),
is.na(MHENDY) & !is.na(MHENDT) ~ "-",
TRUE ~ NA
),
) %>%
unite(
"MHSTDTL",
MHSTDAY,
MHSTMO,
MHSTYR,
sep = "",
na.rm = TRUE,
remove = FALSE
) %>%
unite(
"MHENDTL",
MHENDAY,
MHENMO,
MHENYR,
sep = "",
na.rm = TRUE,
remove = FALSE
) %>%
mutate(
COL0 = explicit_na(.data[[trtvar]], ""),
COL1 = explicit_na(USUBJID, ""),
COL2 = paste(AGE, SEX, RACE_DECODE, sep = concat_sep),
COL3 = explicit_na(MHBODSYS, ""),
COL4 = paste(MHDECOD, MHTERM, sep = concat_sep),
COL5 = case_when(
MHSTDTL != "" & !is.na(MHSTDYL) ~
paste0(toupper(MHSTDTL), " (", MHSTDYL, ")"),
MHSTDTL != "" & is.na(MHSTDYL) ~
paste0(toupper(MHSTDTL), ""),
TRUE ~ ""
),
COL6 = case_when(
MHENDTL != "" & !is.na(MHENDYL) ~
paste0(toupper(MHENDTL), " (", MHENDYL, ")"),
MHENDTL != "" & is.na(MHENDYL) ~
paste0(toupper(MHENDTL), ""),
TRUE ~ ""
),
COL7 = explicit_na(MHENRTPTL, ""),
# Optional Column: COL8/MHTOXGR
COL8 = explicit_na(MHTOXGR, ""),
) %>%
arrange(COL0, COL1, COL2, MHSTDTC, MHBODSYS, MHDECOD)
lsting <- var_relabel(
lsting,
COL0 = "Treatment Group",
COL1 = "Subject ID",
COL2 = paste("Age (years)", "Sex", "Race", sep = concat_sep),
COL3 = "System Organ Class",
COL4 = paste("[Preferred Term", "Reported Term]", sep = concat_sep),
COL5 = "Start Date (Study Day)~[super a]",
COL6 = "End Date (Study Day)~[super a]",
COL7 = "Ongoing?",
# Optional Column: COL8/MHTOXGR
COL8 = "Toxicity Grade"
)
# 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')`)
::::