From b6f070ef9d0eeabdf6c70159a190db0201e79821 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 20 Sep 2022 15:23:27 -0400 Subject: [PATCH 01/92] Add script to create OS Health --- scripts/os-health.R | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 scripts/os-health.R diff --git a/scripts/os-health.R b/scripts/os-health.R new file mode 100644 index 00000000..ca971b5c --- /dev/null +++ b/scripts/os-health.R @@ -0,0 +1,98 @@ +library(glue) +library(dplyr) +library(GithubMetrics) + +repos <- "Biogen-Inc/tidyCDISC" + +# commits +commits <- gh_commits_get( + repos, + days_back = 365*10 +) + +# issues +issues <- gh_issues_get(repos, days_back = 365*10) + +issues_enriched <- issues %>% + mutate( + days_open = as.numeric(Sys.Date() - as.Date(created)), + days_no_activity = as.numeric(Sys.Date() - as.Date(updated)) + ) %>% + select( + full_name, state, days_open, days_no_activity + ) + +commits_enriched <- commits %>% + mutate( + date = as.Date(datetime) + ) %>% + select(full_name, date, author) + +scoring <- tibble( + full_name = unique(commits$full_name) +) %>% + left_join( + gh_metric_issues(issues_enriched), by = "full_name" + ) %>% + left_join( + gh_metric_commits_days_since_commit(commits_enriched), by = "full_name" + ) %>% + left_join( + gh_metric_commits_prepost_midpoint(commits_enriched), by = "full_name" + ) %>% + left_join( + gh_metric_commits_authors_ever(commits_enriched), by = "full_name" + ) %>% + left_join( + gh_metric_commits_authors_prepost_midpoint(commits_enriched), by = "full_name" + ) %>% + gh_score() + +os_health <- scoring$score + +template <- "https://img.shields.io/badge/{label}-{value}-{colour}" + +badge_health = case_when( + is.na(os_health) ~ as.character(glue( + template, + label = "OS Health", + colour = "red", + value = 0 + )), + os_health > 90 ~ as.character(glue( + template, + label = "OS Health", + colour = "brightgreen", + value = os_health + )), + os_health > 80 ~ as.character(glue( + template, + label = "OS Health", + colour = "green", + value = os_health + )), + os_health > 60 ~ as.character(glue( + template, + label = "OS Health", + colour = "yellowgreen", + value = os_health + )), + os_health > 50 ~ as.character(glue( + template, + label = "OS Health", + colour = "yellow", + value = os_health + )), + os_health > 40 ~ as.character(glue( + template, + label = "OS Health", + colour = "orange", + value = os_health + )), + TRUE ~ as.character(glue( + template, + label = "OS Health", + colour = "red", + value = os_health + )) +) From 8cd1f8af29b868246a173a4c5ecae240627679c1 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 20 Sep 2022 15:23:59 -0400 Subject: [PATCH 02/92] Add OS Health badge --- README.Rmd | 7 ++++++- README.md | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.Rmd b/README.Rmd index b5ac4db7..fb4416de 100644 --- a/README.Rmd +++ b/README.Rmd @@ -15,11 +15,16 @@ knitr::opts_chunk$set( # remotes::install_github("tidyCDISC") ``` +```{r, include=FALSE} +source("scripts/os-health.R") +``` + # tidyCDISC [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) - + [![OS Health](`r badge_health`)](https://openpharma.github.io/GithubMetrics/) + `tidyCDISC` is a shiny app to easily create custom tables and figures from ADaM-ish data sets. diff --git a/README.md b/README.md index a53bb4d8..1473ecfe 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) +[![OS +Health](https://img.shields.io/badge/OS%20Health-86-green)](https://openpharma.github.io/GithubMetrics/) `tidyCDISC` is a shiny app to easily create custom tables and figures From b199ab31bd3d30e5027308bccb71312f5f07c6b9 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 20 Sep 2022 15:37:05 -0400 Subject: [PATCH 03/92] Add riskmetric script --- scripts/riskmetric.R | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts/riskmetric.R diff --git a/scripts/riskmetric.R b/scripts/riskmetric.R new file mode 100644 index 00000000..13ba6062 --- /dev/null +++ b/scripts/riskmetric.R @@ -0,0 +1,47 @@ +library(glue) +library(dplyr) +library(riskmetric) + +riskmetric_score <- "tidyCDiSC" %>% + pkg_ref() %>% + as_tibble() %>% + pkg_assess() %>% + pkg_score() %>% + pull("pkg_score") + +riskmetric_score_quintile <- ntile(riskmetric_score, 5) + +template <- "https://img.shields.io/badge/{label}-{value}-{colour}" + +badge_riskmetric = case_when( + riskmetric_score_quintile == 1 ~ as.character(glue( + template, + label = "riskmetric", + colour = "brightgreen", + value = riskmetric_score + )), + riskmetric_score_quintile == 2 ~ as.character(glue( + template, + label = "riskmetric", + colour = "green", + value = riskmetric_score + )), + riskmetric_score_quintile == 3 ~ as.character(glue( + template, + label = "riskmetric", + colour = "yellowgreen", + value = riskmetric_score + )), + riskmetric_score_quintile == 4 ~ as.character(glue( + template, + label = "riskmetric", + colour = "orange", + value = riskmetric_score + )), + riskmetric_score_quintile == 5 ~ as.character(glue( + template, + label = "riskmetric", + colour = "red", + value = riskmetric_score + )) +) From 64f217490c6db8fbd3f2f0743e7b6b07af3758c7 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 20 Sep 2022 15:37:30 -0400 Subject: [PATCH 04/92] Add riskmetric badge --- README.Rmd | 2 ++ README.md | 1 + 2 files changed, 3 insertions(+) diff --git a/README.Rmd b/README.Rmd index fb4416de..fcc97f41 100644 --- a/README.Rmd +++ b/README.Rmd @@ -17,6 +17,7 @@ knitr::opts_chunk$set( ```{r, include=FALSE} source("scripts/os-health.R") +source("scripts/riskmetric.R") ``` # tidyCDISC @@ -24,6 +25,7 @@ source("scripts/os-health.R") [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) [![OS Health](`r badge_health`)](https://openpharma.github.io/GithubMetrics/) + [![riskmetric](`r badge_riskmetric`)](https://pharmar.github.io/riskmetric/) `tidyCDISC` is a shiny app to easily create custom tables and figures from ADaM-ish data sets. diff --git a/README.md b/README.md index 1473ecfe..2b4baa4a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) [![OS Health](https://img.shields.io/badge/OS%20Health-86-green)](https://openpharma.github.io/GithubMetrics/) +[![riskmetric](https://img.shields.io/badge/riskmetric-1-brightgreen)](https://pharmar.github.io/riskmetric/) `tidyCDISC` is a shiny app to easily create custom tables and figures From 4280f2099d7559c2e3bc1e5c8cfac000ff06d719 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 20 Sep 2022 15:51:20 -0400 Subject: [PATCH 05/92] Update renv.lock --- renv.lock | 254 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 207 insertions(+), 47 deletions(-) diff --git a/renv.lock b/renv.lock index 78174f8d..ffa8edaf 100644 --- a/renv.lock +++ b/renv.lock @@ -1,6 +1,6 @@ { "R": { - "Version": "4.1.3", + "Version": "4.2.1", "Repositories": [ { "Name": "CRAN", @@ -8,7 +8,18 @@ } ] }, + "Bioconductor": { + "Version": "3.15" + }, "Packages": { + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.18", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "b1a93bed5debda5775636086fdca017b", + "Requirements": [] + }, "DT": { "Package": "DT", "Version": "0.23", @@ -46,6 +57,31 @@ "tidyr" ] }, + "GithubMetrics": { + "Package": "GithubMetrics", + "Version": "0.5.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "GithubMetrics", + "RemoteUsername": "openpharma", + "RemoteRef": "HEAD", + "RemoteSha": "0c60884923855e6b1f6b25e923212094e218662e", + "Hash": "b66f33c6bbe7ad2600eca79a6290b441", + "Requirements": [ + "base64enc", + "dplyr", + "gh", + "ghql", + "glue", + "lubridate", + "magrittr", + "pander", + "progress", + "purrr", + "tibble" + ] + }, "IDEAFilter": { "Package": "IDEAFilter", "Version": "0.1.2", @@ -98,10 +134,10 @@ }, "Rcpp": { "Package": "Rcpp", - "Version": "1.0.8.3", + "Version": "1.0.9", "Source": "Repository", "Repository": "CRAN", - "Hash": "32e79b908fda56ee57fe518a8d37b864", + "Hash": "e9c08b94391e9f3f97355841229124f2", "Requirements": [] }, "askpass": { @@ -244,16 +280,6 @@ "processx" ] }, - "checkmate": { - "Package": "checkmate", - "Version": "2.1.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "147e4db6909d8814bb30f671b49d7e06", - "Requirements": [ - "backports" - ] - }, "cicerone": { "Package": "cicerone", "Version": "1.0.4", @@ -268,13 +294,11 @@ }, "cli": { "Package": "cli", - "Version": "3.3.0", + "Version": "3.4.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "23abf173c2b783dcc43379ab9bba00ee", - "Requirements": [ - "glue" - ] + "Hash": "78003c09d258968a4d28107e779edb10", + "Requirements": [] }, "clipr": { "Package": "clipr", @@ -310,6 +334,22 @@ "yaml" ] }, + "covr": { + "Package": "covr", + "Version": "3.6.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "a861cee34fbb4b107a73dd414ef56724", + "Requirements": [ + "crayon", + "digest", + "httr", + "jsonlite", + "rex", + "withr", + "yaml" + ] + }, "cpp11": { "Package": "cpp11", "Version": "0.4.2", @@ -318,6 +358,17 @@ "Hash": "fa53ce256cd280f468c080a58ea5ba8c", "Requirements": [] }, + "cranlogs": { + "Package": "cranlogs", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "cfa4eec97df94fd69cb8652368966020", + "Requirements": [ + "httr", + "jsonlite" + ] + }, "crayon": { "Package": "crayon", "Version": "1.5.1", @@ -353,6 +404,21 @@ "lazyeval" ] }, + "crul": { + "Package": "crul", + "Version": "1.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "2408d291bf25a9a6c27d912bcfe6ce0c", + "Requirements": [ + "R6", + "curl", + "httpcode", + "jsonlite", + "mime", + "urltools" + ] + }, "curl": { "Package": "curl", "Version": "4.3.2", @@ -458,10 +524,10 @@ }, "dplyr": { "Package": "dplyr", - "Version": "1.0.9", + "Version": "1.0.10", "Source": "Repository", "Repository": "CRAN", - "Hash": "f0bda1627a7f5d3f9a0b5add931596ac", + "Hash": "539412282059f7f0c07295723d23f987", "Requirements": [ "R6", "generics", @@ -551,10 +617,10 @@ }, "generics": { "Package": "generics", - "Version": "0.1.2", + "Version": "0.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "177475892cf4a55865868527654a7741", + "Hash": "15e9634c0fcd294799e9b2e929ed1b86", "Requirements": [] }, "gert": { @@ -604,10 +670,10 @@ }, "gh": { "Package": "gh", - "Version": "1.3.0", + "Version": "1.3.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "38c2580abbda249bd6afeec00d14f531", + "Hash": "b6a12054ee13dce0f6696c019c10e539", "Requirements": [ "cli", "gitcreds", @@ -616,12 +682,25 @@ "jsonlite" ] }, + "ghql": { + "Package": "ghql", + "Version": "0.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "aa13ce03131717aa76a44259460ece6b", + "Requirements": [ + "R6", + "crul", + "graphql", + "jsonlite" + ] + }, "gitcreds": { "Package": "gitcreds", - "Version": "0.1.1", + "Version": "0.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "f3aefccc1cc50de6338146b62f115de8", + "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe", "Requirements": [] }, "glue": { @@ -656,16 +735,27 @@ "yaml" ] }, + "graphql": { + "Package": "graphql", + "Version": "1.5", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "9f7d9c6426833d0cdfea726201589c42", + "Requirements": [ + "Rcpp", + "jsonlite" + ] + }, "gt": { "Package": "gt", - "Version": "0.6.0", + "Version": "0.7.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "842059d3f71b14e812500b23eeea765e", + "Hash": "b6f71436ae6088b9a773a5253217ade1", "Requirements": [ "base64enc", "bitops", - "checkmate", + "cli", "commonmark", "dplyr", "fs", @@ -730,10 +820,10 @@ }, "hms": { "Package": "hms", - "Version": "1.1.1", + "Version": "1.1.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "5b8a2dd0fdbe2ab4f6081e6c7be6dfca", + "Hash": "41100392191e1244b887878b533eea91", "Requirements": [ "ellipsis", "lifecycle", @@ -767,6 +857,14 @@ "yaml" ] }, + "httpcode": { + "Package": "httpcode", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "13641a1c6d2cc98801b76764078e17ea", + "Requirements": [] + }, "httpuv": { "Package": "httpuv", "Version": "1.6.5", @@ -782,10 +880,10 @@ }, "httr": { "Package": "httr", - "Version": "1.4.3", + "Version": "1.4.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "88d1b310583777edf01ccd1216fb0b2b", + "Hash": "57557fac46471f0dbbf44705cc6a5c8c", "Requirements": [ "R6", "curl", @@ -898,10 +996,10 @@ }, "lifecycle": { "Package": "lifecycle", - "Version": "1.0.1", + "Version": "1.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "a6b6d352e3ed897373ab19d8395c98d0", + "Hash": "25f74670fa7d3277fe3ad8c1712a699f", "Requirements": [ "glue", "rlang" @@ -978,14 +1076,25 @@ }, "openssl": { "Package": "openssl", - "Version": "2.0.2", + "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "6d3bef2e305f55c705c674653c7d7d3d", + "Hash": "b9621e75c0652041002a19609fb23c5a", "Requirements": [ "askpass" ] }, + "pander": { + "Package": "pander", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "737924139a1e4fc96356ff377c754c35", + "Requirements": [ + "Rcpp", + "digest" + ] + }, "parsedate": { "Package": "parsedate", "Version": "1.3.0", @@ -996,14 +1105,12 @@ }, "pillar": { "Package": "pillar", - "Version": "1.7.0", + "Version": "1.8.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "51dfc97e1b7069e9f7e6f83f3589c22e", + "Hash": "f2316df30902c81729ae9de95ad5a608", "Requirements": [ "cli", - "crayon", - "ellipsis", "fansi", "glue", "lifecycle", @@ -1042,7 +1149,7 @@ "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "584e7c13c2cb3a1d4b32166dc411f3bb", + "Hash": "ec3139021900fa27faae7a821b732bf8", "Requirements": [ "bslib", "callr", @@ -1311,6 +1418,16 @@ "stringr" ] }, + "rex": { + "Package": "rex", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "ae34cd56890607370665bee5bd17812f", + "Requirements": [ + "lazyeval" + ] + }, "rhub": { "Package": "rhub", "Version": "1.1.1", @@ -1340,12 +1457,35 @@ "withr" ] }, + "riskmetric": { + "Package": "riskmetric", + "Version": "0.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "08b7d18d9d7c4541519917b27bc53172", + "Requirements": [ + "BiocManager", + "backports", + "covr", + "cranlogs", + "curl", + "devtools", + "httr", + "memoise", + "pillar", + "pkgload", + "tibble", + "urltools", + "vctrs", + "xml2" + ] + }, "rlang": { "Package": "rlang", - "Version": "1.0.3", + "Version": "1.0.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "9103a8f74b2114a5ed1136b471d8feca", + "Hash": "971c3d698fc06dabdac6bc4bcda72dc4", "Requirements": [] }, "rmarkdown": { @@ -1647,12 +1787,11 @@ }, "tibble": { "Package": "tibble", - "Version": "3.1.7", + "Version": "3.1.8", "Source": "Repository", "Repository": "CRAN", - "Hash": "08415af406e3dd75049afef9552e7355", + "Hash": "56b6934ef0f8c68225949a8672fe1a8f", "Requirements": [ - "ellipsis", "fansi", "lifecycle", "magrittr", @@ -1735,6 +1874,16 @@ "shiny" ] }, + "triebeard": { + "Package": "triebeard", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "847a9d113b78baca4a9a8639609ea228", + "Requirements": [ + "Rcpp" + ] + }, "tzdb": { "Package": "tzdb", "Version": "0.3.0", @@ -1757,6 +1906,17 @@ "xml2" ] }, + "urltools": { + "Package": "urltools", + "Version": "1.7.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "e86a704261a105f4703f653e05defa3e", + "Requirements": [ + "Rcpp", + "triebeard" + ] + }, "usethis": { "Package": "usethis", "Version": "2.1.6", From 8aa34b995e49a93a6674108ab9e0f4a6096f8a75 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Wed, 21 Sep 2022 08:40:39 -0400 Subject: [PATCH 06/92] Let data feeding filter only depend on the filter dfs --- R/mod_popExp.R | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/R/mod_popExp.R b/R/mod_popExp.R index d2e7eae0..6ef06b5d 100644 --- a/R/mod_popExp.R +++ b/R/mod_popExp.R @@ -155,12 +155,8 @@ mod_popExp_server <- function(input, output, session, datafile) { # Data to provide IDEAFilter feed_filter <- reactive({ - if(input$apply_filters == TRUE){ - req(input$filter_df) - all_data() %>% subset(data_from %in% input$filter_df) - } else { - all_data() - } + req(input$filter_df) + all_data() %>% subset(data_from %in% input$filter_df) }) # Data NOT provided to IDEAFilter... will need to subset later From 0b101f1a8243f088008b6f94f8b9ad9896781ee7 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 22 Sep 2022 11:02:54 -0400 Subject: [PATCH 07/92] Ignore scripts folder in R build --- .Rbuildignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.Rbuildignore b/.Rbuildignore index 0739872e..982a1d70 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -27,3 +27,4 @@ vignettes/x0* ^doc$ ^Meta$ ^CRAN-SUBMISSION$ +^scripts$ From 3539081b477597a88e9c5b441ce053794f0abd59 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 22 Sep 2022 13:10:40 -0400 Subject: [PATCH 08/92] Correct riskmetric calculation --- README.md | 2 +- scripts/riskmetric.R | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 2b4baa4a..dc85bffe 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) [![OS Health](https://img.shields.io/badge/OS%20Health-86-green)](https://openpharma.github.io/GithubMetrics/) -[![riskmetric](https://img.shields.io/badge/riskmetric-1-brightgreen)](https://pharmar.github.io/riskmetric/) +[![riskmetric](https://img.shields.io/badge/riskmetric-0.50-orange)](https://pharmar.github.io/riskmetric/) `tidyCDISC` is a shiny app to easily create custom tables and figures diff --git a/scripts/riskmetric.R b/scripts/riskmetric.R index 13ba6062..dd23d26c 100644 --- a/scripts/riskmetric.R +++ b/scripts/riskmetric.R @@ -2,43 +2,42 @@ library(glue) library(dplyr) library(riskmetric) -riskmetric_score <- "tidyCDiSC" %>% +riskmetric_score <- "tidyCDISC" %>% pkg_ref() %>% as_tibble() %>% pkg_assess() %>% pkg_score() %>% - pull("pkg_score") + pull("pkg_score") %>% + round(2) -riskmetric_score_quintile <- ntile(riskmetric_score, 5) - -template <- "https://img.shields.io/badge/{label}-{value}-{colour}" +template <- "https://img.shields.io/badge/{label}-{sprintf('%.2f', value)}-{colour}" badge_riskmetric = case_when( - riskmetric_score_quintile == 1 ~ as.character(glue( + riskmetric_score >= .9 ~ as.character(glue( template, label = "riskmetric", colour = "brightgreen", value = riskmetric_score )), - riskmetric_score_quintile == 2 ~ as.character(glue( + riskmetric_score >= .8 ~ as.character(glue( template, label = "riskmetric", colour = "green", value = riskmetric_score )), - riskmetric_score_quintile == 3 ~ as.character(glue( + riskmetric_score >= .6 ~ as.character(glue( template, label = "riskmetric", colour = "yellowgreen", value = riskmetric_score )), - riskmetric_score_quintile == 4 ~ as.character(glue( + riskmetric_score >= .4 ~ as.character(glue( template, label = "riskmetric", colour = "orange", value = riskmetric_score )), - riskmetric_score_quintile == 5 ~ as.character(glue( + TRUE ~ as.character(glue( template, label = "riskmetric", colour = "red", From f38f36093289a63692c4e55ad429b3aa6c503e8b Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Fri, 23 Sep 2022 08:22:00 -0400 Subject: [PATCH 09/92] Add {riskmetric} and {GithubMetrics} to DESCRIPTION --- DESCRIPTION | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 28aed557..8437fcf3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -67,7 +67,9 @@ Suggests: knitr, pkgdown, spelling, - testthat + testthat, + GithubMetrics, + riskmetric Encoding: UTF-8 Language: en-US LazyData: true From 9064bb812984c90771447ad0c235a98c8239d5d8 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Fri, 23 Sep 2022 08:29:21 -0400 Subject: [PATCH 10/92] Second attempt --- DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8437fcf3..23def73f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -68,8 +68,9 @@ Suggests: pkgdown, spelling, testthat, - GithubMetrics, riskmetric +Remotes: + openpharma/GithubMetrics Encoding: UTF-8 Language: en-US LazyData: true From dcf66ce0381f4791f84eb8b97c19e2a40a099b5f Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 20 Oct 2022 11:21:15 -0400 Subject: [PATCH 11/92] Make available filter columns depend on filter_df --- R/mod_popExp.R | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/R/mod_popExp.R b/R/mod_popExp.R index 6ef06b5d..51d298a8 100644 --- a/R/mod_popExp.R +++ b/R/mod_popExp.R @@ -26,6 +26,10 @@ mod_popExp_server <- function(input, output, session, datafile) { } }) + col_list <- eventReactive(datafile(), { + map(datafile(), colnames) + }) + # show/hide checkboxes depending on radiobutton selection process <- eventReactive(datafile(), { @@ -155,10 +159,13 @@ mod_popExp_server <- function(input, output, session, datafile) { # Data to provide IDEAFilter feed_filter <- reactive({ - req(input$filter_df) all_data() %>% subset(data_from %in% input$filter_df) }) + filter_cols <- reactive({ + col_list()[input$filter_df] %>% unlist() + }) + # Data NOT provided to IDEAFilter... will need to subset later not_filtered <- reactive({ if(input$apply_filters){ @@ -169,16 +176,31 @@ mod_popExp_server <- function(input, output, session, datafile) { }) # Call IDEAFilter Module - filtered_data <- callModule( + filters <- callModule( IDEAFilter::shiny_data_filter, "data_filter", # whatever you named the widget - data = feed_filter, # the name of your pre-processed data + data = reactive(feed_filter()[filter_cols()]), # the name of your pre-processed data verbose = FALSE) + filtered_data <- eventReactive(filters(), { + if (input$apply_filters == FALSE) { + all_data() + } else if (any(regexpr("%>%",capture.output(attr(filters(), "code"))) > 0)) { + attr(filters(), "code") %>% + capture.output() %>% + paste(collapse = "") %>% + str_replace("^.*?(%>%)", "feed_filter\\(\\) \\1") %>% + rlang::parse_expr() %>% + rlang::eval_tidy() + } else { + feed_filter() + } + }) + # Update datset, depending on apply_filters or filtered_data() changing dataset <- eventReactive(list(input$apply_filters,filtered_data()), { - if (!is.null(filtered_data()) && input$apply_filters == TRUE ) { + if (input$apply_filters == TRUE && !is.null(filtered_data())) { req(input$filter_df) # needed 100% as this can be slow to update, causing an error @@ -264,10 +286,10 @@ mod_popExp_server <- function(input, output, session, datafile) { # Output text string of what was filtered in IDEAFilter widget/ module output$applied_filters <- renderUI({ req( - any(regexpr("%>%",capture.output(attr(filtered_data(), "code"))) > 0) + any(regexpr("%>%",capture.output(attr(filters(), "code"))) > 0) & input$apply_filters == TRUE ) - filters_in_english(filtered_data()) + filters_in_english(filters()) }) p_data <- From 8a14f8adccf3bc30e31942868b5c4ad5e01fa1a0 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 20 Oct 2022 11:37:22 -0400 Subject: [PATCH 12/92] Update `filters_in_english()` to handle changes --- R/utils_helpers.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/utils_helpers.R b/R/utils_helpers.R index 41ab3824..ac743885 100644 --- a/R/utils_helpers.R +++ b/R/utils_helpers.R @@ -196,7 +196,9 @@ filters_in_english <- function(filtered_data, filter_header = "Filters Applied:" orig_code <- paste(utils::capture.output(attr(filtered_data, "code")),collapse = "") # orig_code <- 'processed_data %>% filter(ABIFN1 %in% c(NA, "NEGATIVE")) %>% filter(ABIFN1 %in% c(NA, "POSITIVE"))' # convert double quotes to single quotes - code_text <- gsub('\"',"\'",orig_code) + code_text <- orig_code %>% + stringr::str_remove("^.*?\\%>\\%") %>% + str_replace_all('\"', "\'") # find the character position for the end of the string len <- nchar(code_text) From 9e98a35c205466599a7b03984bd3c82e38cbbe32 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 20 Oct 2022 11:39:08 -0400 Subject: [PATCH 13/92] Update `filters_in_english()` roxygen imports --- R/utils_helpers.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/utils_helpers.R b/R/utils_helpers.R index ac743885..7f26eaf2 100644 --- a/R/utils_helpers.R +++ b/R/utils_helpers.R @@ -182,7 +182,7 @@ common_rownames <- function(data, group) { #' @import dplyr #' @importFrom dplyr %>% #' @importFrom purrr map2 -#' @importFrom stringr str_locate_all +#' @importFrom stringr str_locate_all str_remove str_replace_all #' @importFrom utils capture.output #' @importFrom tidyr as_tibble #' @importFrom shiny HTML @@ -198,7 +198,7 @@ filters_in_english <- function(filtered_data, filter_header = "Filters Applied:" # convert double quotes to single quotes code_text <- orig_code %>% stringr::str_remove("^.*?\\%>\\%") %>% - str_replace_all('\"', "\'") + stringr::str_replace_all('\"', "\'") # find the character position for the end of the string len <- nchar(code_text) From 6c1e823e5821485203fa6463c1662a040b611756 Mon Sep 17 00:00:00 2001 From: Aaron Clark Date: Mon, 24 Oct 2022 08:06:38 -0400 Subject: [PATCH 14/92] Increment version number to 0.1.1.9000 --- DESCRIPTION | 2 +- NEWS.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 5ece4c08..fa251664 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: tidyCDISC Title: Quick Table Generation & Exploratory Analyses on ADaM-Ish Datasets -Version: 0.1.1 +Version: 0.1.1.9000 Authors@R: c( person("Aaron", "Clark", , "clark.aaronchris@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0123-0970")), diff --git a/NEWS.md b/NEWS.md index a0e4bded..3fd9dd65 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,5 @@ +# tidyCDISC (development version) + # tidyCDISC 0.1.1 * automated a footnote with **Source** and **Run Date** in table generation From c1dac07860597f9fb4333eaeb539768299a00f9a Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 22 Nov 2022 13:00:48 -0500 Subject: [PATCH 15/92] Improve the JS for RECIPE selection --- R/mod_tableGen.R | 9 +- inst/app/www/recipe.js | 228 ++++++++++++++--------------------------- 2 files changed, 82 insertions(+), 155 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 6a937f93..8d548f71 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -331,13 +331,10 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL } # end of "if labs exist" - session$sendCustomMessage("chem_weeks", as.vector(send_chem_wks)) - session$sendCustomMessage("hema_weeks", as.vector(send_hema_wks)) - session$sendCustomMessage("urin_weeks", as.vector(send_urin_wks)) + session$sendCustomMessage("adlbc", list(params = as.vector(send_chem), weeks = as.vector(send_chem_wks))) + session$sendCustomMessage("adlbh", list(params = as.vector(send_hema), weeks = as.vector(send_hema_wks))) + session$sendCustomMessage("adlbu", list(params = as.vector(send_urin), weeks = as.vector(send_urin_wks))) - session$sendCustomMessage("adlbc_params", as.vector(send_chem)) - session$sendCustomMessage("adlbh_params", as.vector(send_hema)) - session$sendCustomMessage("adlbu_params", as.vector(send_urin)) }) diff --git a/inst/app/www/recipe.js b/inst/app/www/recipe.js index da704cf2..151db427 100644 --- a/inst/app/www/recipe.js +++ b/inst/app/www/recipe.js @@ -1,15 +1,5 @@ - - -Shiny.addCustomMessageHandler('chem_weeks', function(bc_wks) { -Shiny.addCustomMessageHandler('hema_weeks', function(he_wks) { -Shiny.addCustomMessageHandler('urin_weeks', function(ur_wks) { - Shiny.addCustomMessageHandler('adlbc_params', function(bc) { - Shiny.addCustomMessageHandler('adlbh_params', function(he) { - Shiny.addCustomMessageHandler('adlbu_params', function(ur) { - $(document).ready(function(){ - $(document).on('click', '#RECIPE', function(){ - - +$(document).ready(function(){ + /* Function to create list of row blocks. If we need a block with a text String or a dropdown, make a new function here */ function simpleRecipeRowBlock(newid, df) { @@ -19,15 +9,16 @@ function simpleRecipeRowBlock(newid, df) { ` } + function selectRecipeBlock(newid, df, values) { - return `
- - - -
` - } + return `
+ + + +
` +} // this is used for combining block rows (on either the Var or STAT agg // side) scanning through the array, and appends to the html above @@ -42,44 +33,6 @@ function combineRows(block_array, df) { return(t) } - -/* -// this similar to combineRows above, but will add additional array into -// the mix and loops through that too, creating a var block for every combo -// between the two arrays. Depracated. -function multiplyCombineRows(var_block, df, select_input) { - let t = [] - var_block.forEach(function (blk) { - select_input.forEach(function () { - t.push(simpleRecipeRowBlock(blk, df)) - }); - }); - t= t.join("") - return(t) -} -*/ - - -/* -// this is selecting one stat block (that contains a selectInput) -// and then scans sets the selection options/choices to only have one -// value - one stat block per option choices. For example, it can Create -// a mean block for every week that exists in the study. Helpful for -// table 41 style tables of lab actuals by param and week or PK style -// tables. Depracated. -function oneAgg_eachOption(var_block, agg_stat, df, select_input) { - let t = []; - var_block.forEach(function () { - select_input.forEach(function (sel_input) { - t.push(selectRecipeBlock(agg_stat, df, sel_input)); - }); - }); - t= t.join(""); - return(t); -} -*/ - - // The following function creates a stat block for every var block on // the LHS, and creates a dropdown. The var_block and select_input arrays // must be of the same length. Used for Table 41. @@ -92,27 +45,39 @@ function oneAgg_combineSelects(var_block, agg_stat, df, select_input) { return(t) } - - // These are called arrays -demography_rows = ["AGEGR1", "AGE", "SEX", "ETHNIC", "RACE", "HEIGHTBL", "WEIGHTBL"] -demography_agg = ["FREQ", "MEAN", "FREQ", "FREQ", "FREQ", "MEAN", "MEAN"] +const demography_rows = ["AGEGR1", "AGE", "SEX", "ETHNIC", "RACE", "HEIGHTBL", "WEIGHTBL"] +const demography_agg = ["FREQ", "MEAN", "FREQ", "FREQ", "FREQ", "MEAN", "MEAN"] + +const ae18_rows = ["AOCCFL", "AESEV", "AESER","DTHDT"] +const ae18_agg = ["Y_FREQ", "MAX_FREQ", "Y_FREQ", "NON_MISSING"] -ae18_rows = ["AOCCFL", "AESEV", "AESER","DTHDT"] -ae18_agg = ["Y_FREQ", "MAX_FREQ", "Y_FREQ", "NON_MISSING"] +const soc_pt_rows = ["AOCCFL", "AEBODSYS"] +const soc_pt_agg = ["Y_FREQ", "NESTED_FREQ_DSC"] +const soc_pt_sel = ["NONE", "AEDECOD"] -soc_pt_rows = ["AOCCFL", "AEBODSYS"] -soc_pt_agg = ["Y_FREQ", "NESTED_FREQ_DSC"] -soc_pt_sel = ["NONE", "AEDECOD"] +let bc_obj = null; +Shiny.addCustomMessageHandler('adlbc', function(adlbc) { + bc_obj = adlbc; +}); +let he_obj = null; +Shiny.addCustomMessageHandler('adlbh', function(adlbh) { + he_obj = adlbh; +}); +let ur_obj = null; +Shiny.addCustomMessageHandler('adlbu', function(adlbu) { + ur_obj = adlbu; +}) +$(document).on('click', '#RECIPE', function(){ /* Create custom block recipes to automatically populate when selected */ - $("#RECIPE").bind("change", function(event, ui) { - var publisher = $("#RECIPE").val(); - if (publisher === "Table 3: Accounting of Subjects") { - +$("#RECIPE").bind("change", function(event, ui) { + let publisher = $("#RECIPE").val(); + switch(publisher) { + case "Table 3: Accounting of Subjects": document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(simpleRecipeRowBlock("RANDFL", "ADSL"))); $("#droppable_blocks").append($(simpleRecipeRowBlock("SAFFL", "ADSL"))); @@ -124,110 +89,83 @@ soc_pt_sel = ["NONE", "AEDECOD"] $("#droppable_agg").append($(simpleRecipeRowBlock("FREQ", "ADSL"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_ABC", "ADSL", "DCTREAS"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_ABC", "ADSL", "DCSREAS"))); - } else if (publisher === "Table 5: Demography") { + break; + case "Table 5: Demography": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(combineRows(demography_agg, "ADSL"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(combineRows(demography_rows, "ADSL"))); - - - } else if (publisher === "Table 18: Overall summary of adverse events") { + break; + case "Table 18: Overall summary of adverse events": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(combineRows(ae18_agg, "ADAE"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(combineRows(ae18_rows, "ADAE"))); - - - } else if (publisher === "Table 20: Adverse events by system organ class and preferred term sorted by alphabetical order") { + break; + case "Table 20: Adverse events by system organ class and preferred term sorted by alphabetical order": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(simpleRecipeRowBlock("NON_MISSING", "ADAE"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_ABC", "ADAE", "AEDECOD"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(simpleRecipeRowBlock("USUBJID", "ADAE"))); $("#droppable_blocks").append($(simpleRecipeRowBlock("AEBODSYS", "ADAE"))); - - - } - else if (["Table 19: Adverse events by system organ class and preferred term sorted by decreasing frequency", - "Table 25: Severe adverse events by system organ class and preferred term", - "Table 29: Related adverse events by system organ class and preferred term", - "Table 30: Serious adverse events by system organ class and preferred term", - "Table 33: Related serious adverse events by system organ class and preferred term", - "Table 34: Adverse events that led to discontinuation of study treatment by system organ class and preferred term", - "Table 36: Adverse events that led to withdrawl from study by system organ class and preferred term", - "Table 38: Adverse events that led to drug interrupted, dose reduced, or dose increased by system organ class and preferred term"].includes(publisher)) { - + break; + case "Table 19: Adverse events by system organ class and preferred term sorted by decreasing frequency": + case "Table 25: Severe adverse events by system organ class and preferred term": + case "Table 29: Related adverse events by system organ class and preferred term": + case "Table 30: Serious adverse events by system organ class and preferred term": + case "Table 33: Related serious adverse events by system organ class and preferred term": + case "Table 34: Adverse events that led to discontinuation of study treatment by system organ class and preferred term": + case "Table 36: Adverse events that led to withdrawl from study by system organ class and preferred term": + case "Table 38: Adverse events that led to drug interrupted, dose reduced, or dose increased by system organ class and preferred term": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(simpleRecipeRowBlock("NON_MISSING", "ADAE"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_DSC", "ADAE", "AEDECOD"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(simpleRecipeRowBlock("USUBJID", "ADAE"))); $("#droppable_blocks").append($(simpleRecipeRowBlock("AEBODSYS", "ADAE"))); - - - } else if (publisher === "Table 21: Adverse events by system organ class") { + break; + case "Table 21: Adverse events by system organ class": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(simpleRecipeRowBlock("NON_MISSING", "ADAE"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_DSC", "ADAE", "NONE"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(simpleRecipeRowBlock("USUBJID", "ADAE"))); $("#droppable_blocks").append($(simpleRecipeRowBlock("AEBODSYS", "ADAE"))); - - - } else if (["Table 23: Adverse events by preferred term", - "Table 26: Severe adverse events by preferred term", - "Table 31: Serious adverse events by preferred term"].includes(publisher)) { + break; + case "Table 23: Adverse events by preferred term": + case "Table 26: Severe adverse events by preferred term": + case "Table 31: Serious adverse events by preferred term": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(simpleRecipeRowBlock("NON_MISSING", "ADAE"))); $("#droppable_agg").append($(selectRecipeBlock("NESTED_FREQ_DSC", "ADAE", "NONE"))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(simpleRecipeRowBlock("USUBJID", "ADAE"))); $("#droppable_blocks").append($(simpleRecipeRowBlock("AEDECOD", "ADAE"))); - - } else if (publisher === "Table 41: Blood Chemistry actual values by visit"){ - - c_params = Object.values(bc); - c_weeks = Object.values(bc_wks); - document.getElementById("droppable_agg").innerHTML = ""; - //$("#droppable_agg").append($(oneAgg_eachOption(c_params,"MEAN","ADLB",weeks))); - $("#droppable_agg").append($(oneAgg_combineSelects(c_params,"MEAN","ADLB",c_weeks))); - document.getElementById("droppable_blocks").innerHTML = ""; - //$("#droppable_blocks").append($(multiplyCombineRows(c_params, "ADLB", weeks))); - $("#droppable_blocks").append($(combineRows(c_params, "ADLB"))); - - } else if (publisher === "Table 41: Hematology actual values by visit"){ - - h_params = Object.values(he); - h_weeks = Object.values(he_wks); - document.getElementById("droppable_agg").innerHTML = ""; - //$("#droppable_agg").append($(oneAgg_eachOption(h_params,"MEAN","ADLB",weeks))); - $("#droppable_agg").append($(oneAgg_combineSelects(h_params,"MEAN","ADLB",h_weeks))); - document.getElementById("droppable_blocks").innerHTML = ""; - //$("#droppable_blocks").append($(multiplyCombineRows(h_params, "ADLB", weeks))); - $("#droppable_blocks").append($(combineRows(h_params, "ADLB"))); - - } else if (publisher === "Table 41: Urinalysis actual values by visit"){ - - //document.getElementById("droppable_agg").innerHTML = ""; - //$("#droppable_agg").append($(combineRows(demography_agg, "ADSL"))); - //document.getElementById("droppable_blocks").innerHTML = ""; - //$("#droppable_blocks").append($(combineRows(demography_rows, "ADSL"))); - u_params = Object.values(ur); - u_weeks = Object.values(ur_wks); - document.getElementById("droppable_agg").innerHTML = ""; - //$("#droppable_agg").append($(oneAgg_eachOption(u_params,"MEAN","ADLB",weeks))); - $("#droppable_agg").append($(oneAgg_combineSelects(u_params,"MEAN","ADLB",u_weeks))); - document.getElementById("droppable_blocks").innerHTML = ""; - //$("#droppable_blocks").append($(multiplyCombineRows(u_params, "ADLB", weeks))); - $("#droppable_blocks").append($(combineRows(u_params, "ADLB"))); - - } else { + break; + case "Table 41: Blood Chemistry actual values by visit": document.getElementById("droppable_agg").innerHTML = ""; + $("#droppable_agg").append($(oneAgg_combineSelects(bc_obj.params,"MEAN","ADLB",bc_obj.weeks))); document.getElementById("droppable_blocks").innerHTML = ""; - } - }); - - + $("#droppable_blocks").append($(combineRows(bc_obj.params, "ADLB"))); + break; + case "Table 41: Hematology actual values by visit": + document.getElementById("droppable_agg").innerHTML = ""; + $("#droppable_agg").append($(oneAgg_combineSelects(he_obj.params,"MEAN","ADLB",he_obj.weeks))); + document.getElementById("droppable_blocks").innerHTML = ""; + $("#droppable_blocks").append($(combineRows(he_obj.params, "ADLB"))); + break; + case "Table 41: Urinalysis actual values by visit": + document.getElementById("droppable_agg").innerHTML = ""; + $("#droppable_agg").append($(oneAgg_combineSelects(ur_obj.params,"MEAN","ADLB",ur_obj.weeks))); + document.getElementById("droppable_blocks").innerHTML = ""; + $("#droppable_blocks").append($(combineRows(ur_obj.params, "ADLB"))); + break; + default: + document.getElementById("droppable_agg").innerHTML = ""; + document.getElementById("droppable_blocks").innerHTML = ""; + } +}); $('select#RECIPE').change(function() { var selectedDropdown = $(this).children('option:selected').val() @@ -236,11 +174,3 @@ $('select#RECIPE').change(function() { }); // $(document).on('click', '#RECIPE' }); // $document.ready() - -}); // end of adlbu_params -}); // end of adlbh_params -}); // end of adlbc_params -}); // end of urin weeks -}); // end of hema weeks -}); // end of chem weeks - From cc561a213ac61c8c6eb9b978c6c28fd7ff2902d2 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 22 Nov 2022 15:41:53 -0500 Subject: [PATCH 16/92] More intelligently skip "ALL" and "NONE" options --- inst/app/www/script.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inst/app/www/script.js b/inst/app/www/script.js index ba0f64b2..6814b2f4 100644 --- a/inst/app/www/script.js +++ b/inst/app/www/script.js @@ -37,7 +37,8 @@ $( document ).ready(function() { val = $(this).parent().find("select").children("option:selected").val() lst = []; if (val === "ALL") { - for (let i = 2; i < $(this).parent().find("select").children().length; i++) { + for (let i = 0; i < $(this).parent().find("select").children().length; i++) { + if (["NONE", "ALL"].includes($(this).parent().find("select").children()[i].text)) { continue; } lst.push($(this).parent().find("select").children()[i].text); } } From e579d7aa9107bf988d540a51a69058777ae58fc8 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 22 Nov 2022 15:42:46 -0500 Subject: [PATCH 17/92] Add the options to the dropdown when RECIPE selected --- inst/app/www/recipe.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/inst/app/www/recipe.js b/inst/app/www/recipe.js index 151db427..5dce8498 100644 --- a/inst/app/www/recipe.js +++ b/inst/app/www/recipe.js @@ -10,11 +10,12 @@ function simpleRecipeRowBlock(newid, df) { ` } -function selectRecipeBlock(newid, df, values) { +function selectRecipeBlock(newid, df, selection, values = '') { return `
` @@ -33,13 +34,21 @@ function combineRows(block_array, df) { return(t) } +/** + * Create dropdown menu from the array of AVISIT values +* @param {avisit} the text and value of the option +*/ +function createOption(opt) { + return `` +} + // The following function creates a stat block for every var block on // the LHS, and creates a dropdown. The var_block and select_input arrays // must be of the same length. Used for Table 41. -function oneAgg_combineSelects(var_block, agg_stat, df, select_input) { +function oneAgg_combineSelects(var_block, agg_stat, df, select_options) { let t = Array(var_block.length); for(var i = 0; i < var_block.length; i += 1){ - t.push(selectRecipeBlock(agg_stat, df, select_input[i])) + t.push(selectRecipeBlock(agg_stat, df, "ALL", select_options)) }; t= t.join("") return(t) @@ -144,8 +153,9 @@ $("#RECIPE").bind("change", function(event, ui) { $("#droppable_blocks").append($(simpleRecipeRowBlock("AEDECOD", "ADAE"))); break; case "Table 41: Blood Chemistry actual values by visit": + let select_opts = `${bc_obj.weeks.map(createOption).join("")}` document.getElementById("droppable_agg").innerHTML = ""; - $("#droppable_agg").append($(oneAgg_combineSelects(bc_obj.params,"MEAN","ADLB",bc_obj.weeks))); + $("#droppable_agg").append($(oneAgg_combineSelects(bc_obj.params, "MEAN", "ADLB", select_opts))); document.getElementById("droppable_blocks").innerHTML = ""; $("#droppable_blocks").append($(combineRows(bc_obj.params, "ADLB"))); break; From 97b3bf008058b97ea7b131c64a414d1d4377613c Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 22 Nov 2022 16:34:00 -0500 Subject: [PATCH 18/92] Update `check_params()` to send only unique values --- R/mod_tableGen_utils.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 76b642d0..e5660888 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -311,10 +311,10 @@ check_params <- function(datafile, param_vector) { mutate(PARAMCD = factor(PARAMCD, levels = param_vector)) %>% arrange(PARAMCD, AVISIT) ) - param_vctr <- param_lst[[1]]$PARAMCD # Will this work if two ADLB's are uploaded? + param_vctr <- unique(param_lst[[1]]$PARAMCD) # Will this work if two ADLB's are uploaded? if(!rlang::is_empty(param_vctr)){ - visit_vctr <- param_lst[[1]]$AVISIT + visit_vctr <- unique(param_lst[[1]]$AVISIT) dat_lgls <- purrr::map_lgl(param_lst, ~length(.x) > 0) param_lgl <- any(dat_lgls) dat_names <- purrr::map_chr(dat_lgls, ~names(param_dat[.x])) From 700ab1f92199d2ce568c0e268e4510ecca09c4d0 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Mon, 28 Nov 2022 09:32:09 -0500 Subject: [PATCH 19/92] Update NEWS.md and version number --- DESCRIPTION | 2 +- NEWS.md | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 28aed557..7965a656 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: tidyCDISC Title: Quick Table Generation & Exploratory Analyses on ADaM-Ish Datasets -Version: 0.1.0.9000 +Version: 0.1.0.9001 Authors@R: c( person("Aaron", "Clark", , "clark.aaronchris@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0123-0970")), diff --git a/NEWS.md b/NEWS.md index 82b28f3e..5ce0d25f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # tidyCDISC (development version) - +* Clean up JS to input RECIPEs. +* Use "ALL" as dropdown option for RECIPE 41 instead of listing all available weeks. +* Make the list of columns available to filter on in the Population Explorer depend upon the data frame(s) selected for filtering # tidyCDISC 0.1.0 (CRAN Release) From 9de76950f884631c200fa8f447348dbae4352a12 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 29 Nov 2022 13:14:07 -0500 Subject: [PATCH 20/92] Add framework to bring in ATPT values --- inst/app/www/script.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/inst/app/www/script.js b/inst/app/www/script.js index 6814b2f4..17d08bc2 100644 --- a/inst/app/www/script.js +++ b/inst/app/www/script.js @@ -250,6 +250,17 @@ Shiny.addCustomMessageHandler('my_weeks', function(df) { return type + (newId + 1); } +/** + * Function to import multiple avals per visit +*/ +let atpt_array = null; +let atpt_opts = null; +const atpt_avals = ["DIABP", "SYSBP", "PULSE"]; +Shiny.addCustomMessageHandler('my_avals', function(atpt) { + atpt_array = Object.values(atpt); + atpt_opts = `${atpt_array.map(createOption).join("")}`; +}); + // on block dropdown create simple blocks // with the block names from the droppable area // and delete buttons @@ -261,7 +272,11 @@ $(function() { var draggableId = ui.draggable.attr("id"); var df = ui.draggable.closest('ul')[0].classList[1] var newid = getNewId(draggableId); - $(this).append(simpleBlock(newid, df)); + if (atpt_array !== null && atpt_avals.some(el => draggableId.includes(el))) { + $(this).append(simpleBlock(newid, df)); + } else { + $(this).append(simpleBlock(newid, df)); + } } }).sortable({ revert: false From 515f28fe67337797883bb474370d370c1a021de4 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 29 Nov 2022 13:14:44 -0500 Subject: [PATCH 21/92] Send ATPT value to JS --- R/mod_tableGen.R | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 8d548f71..41b1ae45 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -274,6 +274,20 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL session$sendCustomMessage("all_cols", all_cols) }) + ATPT <- reactive({ + req(datafile()) + req("ADVS" %in% names(datafile())) + req("ATPT" %in% colnames(datafile()$ADVS)) + + atpt_values <- unique(datafile()$ADVS$ATPT) + atpt_values[atpt_values != ""] + }) + + observe({ + req(ATPT()) + session$sendCustomMessage("my_avals", as.vector(ATPT())) + }) + # Verify if certain lab params exist, and if so, which dataset they live in # in case there are multiple ADLBs- to use later to send data to js side From 7cb1400f8d416419db9a9366134a3c40e3c45fc4 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 29 Nov 2022 13:19:06 -0500 Subject: [PATCH 22/92] Modify selectBlock to include df --- inst/app/www/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/app/www/script.js b/inst/app/www/script.js index 17d08bc2..a74ac194 100644 --- a/inst/app/www/script.js +++ b/inst/app/www/script.js @@ -227,9 +227,9 @@ Shiny.addCustomMessageHandler('my_weeks', function(df) { * @param {newid} the new, unique id of the dropped block * @param {label} the name of the new block */ - function selectBlock(newid, label, values) { + function selectBlock(newid, label, values, df = "") { return `
- + diff --git a/R/mod_tableGen_ui.R b/R/mod_tableGen_ui.R index f9e1505f..76383353 100644 --- a/R/mod_tableGen_ui.R +++ b/R/mod_tableGen_ui.R @@ -30,6 +30,8 @@ mod_tableGen_ui <- function(id){ h1("Table Generator", align = "center"), br(), br(), br(), fluidPage( + div(uiOutput(ns("study_table_gen")), style = "padding-left: 20px"), + fluidRow( style = "padding: 20px", column(width = 6, From 5a19112baf27742657a482b6c23735d41b06148c Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 22 Dec 2022 16:07:39 -0500 Subject: [PATCH 43/92] Display Study ID on Population Explorer tab --- R/mod_popExp.R | 8 ++++++++ R/mod_popExp_ui.R | 1 + 2 files changed, 9 insertions(+) diff --git a/R/mod_popExp.R b/R/mod_popExp.R index 51d298a8..7d4fe778 100644 --- a/R/mod_popExp.R +++ b/R/mod_popExp.R @@ -26,6 +26,14 @@ mod_popExp_server <- function(input, output, session, datafile) { } }) + output$study_pop_exp <- renderUI({ + req(datafile()) + + studies <- unique(unlist(lapply(datafile(), `[[`, "STUDYID"))) + study_ids <- paste(studies, collapse = " & ") + h4(paste("Study ID: ", study_ids)) + }) + col_list <- eventReactive(datafile(), { map(datafile(), colnames) }) diff --git a/R/mod_popExp_ui.R b/R/mod_popExp_ui.R index 6ddc90b6..1f9ee611 100644 --- a/R/mod_popExp_ui.R +++ b/R/mod_popExp_ui.R @@ -28,6 +28,7 @@ mod_popExp_ui <- function(id, label = "Population Explorer"){ h1("Population Explorer", align = "center"), br(), br(), br(), + div(uiOutput(ns("study_pop_exp"))), fluidRow( column(width = 3, div(id = "pop_cic_adv_filtering", class="filter-accordion", From b1d394a7fa77de8d79572d912bb68f2f8c3115ef Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 22 Dec 2022 16:07:40 -0500 Subject: [PATCH 44/92] Display Study ID on Individual Explorer tab --- R/mod_indvExp_srv.R | 8 ++++++++ R/mod_indvExp_ui.R | 1 + 2 files changed, 9 insertions(+) diff --git a/R/mod_indvExp_srv.R b/R/mod_indvExp_srv.R index 7ce931b5..b066e235 100644 --- a/R/mod_indvExp_srv.R +++ b/R/mod_indvExp_srv.R @@ -39,6 +39,14 @@ mod_indvExp_server <- function(input, output, session, datafile){ } }) + output$study_indv_exp <- renderUI({ + req(datafile()) + + studies <- unique(unlist(lapply(datafile(), `[[`, "STUDYID"))) + study_ids <- paste(studies, collapse = " & ") + h4(paste("Study ID: ", study_ids)) + }) + # Only select data that starts with AD followed by one or more alphanumerics or underscore my_loaded_adams <- reactive({ req(!is.null(datafile())) diff --git a/R/mod_indvExp_ui.R b/R/mod_indvExp_ui.R index 0418b5ce..a59812f7 100644 --- a/R/mod_indvExp_ui.R +++ b/R/mod_indvExp_ui.R @@ -25,6 +25,7 @@ mod_indvExp_ui <- function(id){ tagList( h1("Individual Explorer", align = "center"), br(), br(), br(), + div(uiOutput(ns("study_indv_exp")), style = "padding-bottom: 20px"), fluidRow( column(3, wellPanel( From 0fc414dcb6539c3658e2e878154270c455766f71 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Fri, 6 Jan 2023 11:03:53 -0500 Subject: [PATCH 45/92] Create class for Study ID and set to dimgrey --- R/mod_dataUpload.R | 2 +- R/mod_indvExp_ui.R | 2 +- R/mod_popExp_ui.R | 2 +- R/mod_tableGen_ui.R | 2 +- inst/app/www/styles.css | 7 +++++++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/R/mod_dataUpload.R b/R/mod_dataUpload.R index b43d60a4..e247fa3e 100644 --- a/R/mod_dataUpload.R +++ b/R/mod_dataUpload.R @@ -33,7 +33,7 @@ mod_dataUpload_ui <- function(id){ tooltip = shinyWidgets::tooltipOptions(title = "Click to change pilot data selections!") )) ), - div(uiOutput(ns("study_data_upload")), style = "padding-left: 20px"), + div(uiOutput(ns("study_data_upload")), style = "padding-left: 20px", class = "studyid"), fluidRow( style = "padding: 20px", column(3, diff --git a/R/mod_indvExp_ui.R b/R/mod_indvExp_ui.R index a59812f7..c23bfcd6 100644 --- a/R/mod_indvExp_ui.R +++ b/R/mod_indvExp_ui.R @@ -25,7 +25,7 @@ mod_indvExp_ui <- function(id){ tagList( h1("Individual Explorer", align = "center"), br(), br(), br(), - div(uiOutput(ns("study_indv_exp")), style = "padding-bottom: 20px"), + div(uiOutput(ns("study_indv_exp")), style = "padding-bottom: 20px", class = "studyid"), fluidRow( column(3, wellPanel( diff --git a/R/mod_popExp_ui.R b/R/mod_popExp_ui.R index 1f9ee611..4c77178f 100644 --- a/R/mod_popExp_ui.R +++ b/R/mod_popExp_ui.R @@ -28,7 +28,7 @@ mod_popExp_ui <- function(id, label = "Population Explorer"){ h1("Population Explorer", align = "center"), br(), br(), br(), - div(uiOutput(ns("study_pop_exp"))), + div(uiOutput(ns("study_pop_exp")), class = "studyid"), fluidRow( column(width = 3, div(id = "pop_cic_adv_filtering", class="filter-accordion", diff --git a/R/mod_tableGen_ui.R b/R/mod_tableGen_ui.R index 76383353..0ebdb671 100644 --- a/R/mod_tableGen_ui.R +++ b/R/mod_tableGen_ui.R @@ -30,7 +30,7 @@ mod_tableGen_ui <- function(id){ h1("Table Generator", align = "center"), br(), br(), br(), fluidPage( - div(uiOutput(ns("study_table_gen")), style = "padding-left: 20px"), + div(uiOutput(ns("study_table_gen")), style = "padding-left: 20px", class = "studyid"), fluidRow( style = "padding: 20px", diff --git a/inst/app/www/styles.css b/inst/app/www/styles.css index fc18ac53..3b28b6fe 100644 --- a/inst/app/www/styles.css +++ b/inst/app/www/styles.css @@ -353,3 +353,10 @@ transform:rotate(180deg); height: 100%; border: none; } + + +.studyid { + color: dimgrey; +} + + From 8b8ee7a957af1a903e3a03dd5cf61f7f7f843188 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Mon, 9 Jan 2023 13:57:33 -0500 Subject: [PATCH 46/92] Add blank row between each block --- R/mod_tableGen.R | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 8d548f71..69d63092 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -485,15 +485,23 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL blocks_and_functions()$S3, blocks_and_functions()$dropdown, blocks_and_functions()$dataset), - function(x,y,z,d) - app_methods(x,y,z, + function(x,y,z,d) { + out <- app_methods(x,y,z, group = column(), data = data_to_use_str(d, ae_data(), all_data()), - totals = total_df())) %>% + totals = total_df()) + + # Add blank row between each block + out[nrow(out) + 1, ] <- "" + + return(out) + } + ) %>% purrr::map(setNames, common_rownames(use_preferred_pop_data(), column())) %>% setNames(paste(blocks_and_functions()$gt_group)) %>% bind_rows(.id = "ID") %>% mutate(ID = pretty_IDs(ID)) + return(d) }) From 12434b214a5b283ab974578f6064d2f1aca31ff8 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Mon, 9 Jan 2023 13:58:01 -0500 Subject: [PATCH 47/92] Add option for RTF output --- R/mod_tableGen.R | 25 +++++++++++++++++++++++++ R/mod_tableGen_ui.R | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 69d63092..6891229a 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -616,6 +616,31 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL } else if(input$download_type == ".html") { exportHTML <- gt_table() gt::gtsave(exportHTML, file) + } else if(input$download_type == ".rtf") { + + export_rtf <- gt_table() %>% + gt::tab_options( + # table.font.names = c("Times", "Arial"), + # table.font.size = gt::px(18), + # heading.title.font.size = NULL, + # footnotes.font.size = NULL, + page.numbering = TRUE + ) + + # Convert HTML to RTF in the Source footnote + export_rtf[["_footnotes"]]$footnotes[[1]] <- export_rtf[["_footnotes"]]$footnotes[[1]] %>% + as.character() %>% + # Convert bold from HTML to RTF + # This formatting does not render in RTF + # stringr::str_replace_all("", "\\\\b0") %>% + # stringr::str_replace_all("", "\\\\b") %>% + # Delete HTML elements + stringr::str_replace_all("<.+?>", "") %>% + trimws(which = "left") + + # page_numbering = c("none", "footer", "header") + gt::gtsave(export_rtf, file, page_numbering = "header") + } } ) diff --git a/R/mod_tableGen_ui.R b/R/mod_tableGen_ui.R index f9e1505f..12ea582f 100644 --- a/R/mod_tableGen_ui.R +++ b/R/mod_tableGen_ui.R @@ -117,7 +117,8 @@ mod_tableGen_ui <- function(id){ column(6, downloadButton(ns("download_gt"), "Download Table")), column(6, offset = 0, radioButtons(ns("download_type"), "Download Type", - choices = c("CSV" = ".csv", + choices = c("RTF" = ".rtf", + "CSV" = ".csv", "HTML" = ".html"), inline = TRUE)) From e716f680046708e083ecd5e7cefa7221abf4a625 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Mon, 9 Jan 2023 13:58:52 -0500 Subject: [PATCH 48/92] Update documentation about RTF output --- R/mod_tableGen_utils.R | 2 +- vignettes/x01_Table_Generator.Rmd | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index e5660888..c3986e04 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -555,7 +555,7 @@ tg_guide <- cicerone::Cicerone$ step( "download_table", "Keep a copy for your records", - "Download a table in CSV or HTML format as seen in the app. RTF support coming soon!" + "Download a table in RTF, CSV, or HTML format as seen in the app." )$ step( "tableGen_ui_1-tblcode", diff --git a/vignettes/x01_Table_Generator.Rmd b/vignettes/x01_Table_Generator.Rmd index 8fdaf10c..d03c43de 100644 --- a/vignettes/x01_Table_Generator.Rmd +++ b/vignettes/x01_Table_Generator.Rmd @@ -131,7 +131,7 @@ knitr::include_graphics("figures/tableGen/grouped_by.PNG")
-Now that we've created a simple table, it's time to name and download it for saving/ sharing. Below, we insert our table title and download as CSV. Currently, the app supports CSV and HTML output formats, but PDF and RTF are coming soon! +Now that we've created a simple table, it's time to name and download it for saving/ sharing. Below, we insert our table title and download as CSV. Currently, the app supports RTF, CSV, and HTML output formats, but PDF is coming soon!
@@ -275,7 +275,7 @@ knitr::include_graphics("figures/tableGen/TG_STAN_TAB41.PNG")
-As displayed in an earlier demo, you can export table output to a CSV or HTML file. In a future release of `tidyCDISC`, you'll be able to prepare PDF and RTF versions of your output. In the meantime, you can create a PDF using a temporary work-around: first export as HTML, then download page as a PDF. +As displayed in an earlier demo, you can export table output to an RTF, CSV, or HTML file. In a future release of `tidyCDISC`, you'll be able to prepare a PDF version of your output. In the meantime, you can create a PDF using a temporary work-around: first export as HTML, then download page as a PDF.
From 6561c6013cdca7712896a49a3b4ae4df16c6674c Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Mon, 9 Jan 2023 16:26:31 -0500 Subject: [PATCH 49/92] Make ATPT values dependent on AVAL --- R/mod_tableGen.R | 31 +++++++++++-------------------- inst/app/www/script.js | 32 +++++++++++--------------------- 2 files changed, 22 insertions(+), 41 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 0d69200e..a02bcee0 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -274,33 +274,24 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL session$sendCustomMessage("all_cols", all_cols) }) - TPNT <- reactive({ - req(datafile()) - req("ADVS" %in% names(datafile())) - req(any(c("ATPT", "ATM") %in% colnames(datafile()$ADVS))) - - datafile()$ADVS %>% - dplyr::select(dplyr::any_of(c("ATPT", "ATM"))) %>% - purrr::map(get_levels) %>% - purrr::map(~ c("ALL", .x)) %>% - purrr::map(~ .x[.x != ""]) - }) - - observe({ - req(TPNT()) - session$sendCustomMessage("my_tpnts", TPNT()) - }) - AVALS <- reactive({ req(datafile()) req("ADVS" %in% names(datafile())) - req(any(c("ATPT", "ATM") %in% colnames(datafile()$ADVS))) + req(any(c("ATPT") %in% colnames(datafile()$ADVS))) - datafile()$ADVS %>% - dplyr::select(PARAMCD, dplyr::any_of(c("ATPT", "ATM"))) %>% + avals <- datafile()$ADVS %>% + dplyr::select(PARAMCD, dplyr::any_of(c("ATPT"))) %>% dplyr::filter(dplyr::if_any(-PARAMCD, ~ !is.na(.x) & .x != "")) %>% dplyr::pull(PARAMCD) %>% get_levels() + + purrr::map(avals, ~ datafile()$ADVS %>% + dplyr::filter(PARAMCD == .x) %>% + dplyr::select(dplyr::any_of(c("ATPT"))) %>% + purrr::map(get_levels) %>% + purrr::map(~ c("ALL", .x)) %>% + purrr::map(~ .x[.x != ""])) %>% + purrr::set_names(avals) }) observe({ diff --git a/inst/app/www/script.js b/inst/app/www/script.js index 7c40a6ec..1f80728d 100644 --- a/inst/app/www/script.js +++ b/inst/app/www/script.js @@ -254,29 +254,19 @@ Shiny.addCustomMessageHandler('my_weeks', function(df) { /** * Function to import multiple avals per visit */ -let tpnt_array = null; -let tpnt_opts = null; -Shiny.addCustomMessageHandler('my_tpnts', function(tpnt) { - tpnt_array = Object.values(tpnt); - if (Array.isArray(tpnt)) { - tpnt_opts = `${tpnt_array.map(createOption).join("")}`; - } else { - tpnt_opts = ['']; - for (x in tpnt) { - tpnt_opts.push(""); - tpnt_opts.push($.map(tpnt[x], createOption).join("")); - tpnt_opts.push(""); +let tpnt_avals = null; +Shiny.addCustomMessageHandler('my_avals', function(aval) { + tpnt_avals = aval; + for (x in tpnt_avals) { + for (y in tpnt_avals[x]) { + tpnt_avals[x].tpnt_opts = ['']; + tpnt_avals[x].tpnt_opts.push(""); + tpnt_avals[x].tpnt_opts.push($.map(tpnt_avals[x][y], createOption).join("")); + tpnt_avals[x].tpnt_opts.push(""); } - tpnt_opts.join(""); } }); - -let tpnt_avals = []; -Shiny.addCustomMessageHandler('my_avals', function(aval) { - tpnt_avals = Object.values(aval); -}); - // on block dropdown create simple blocks // with the block names from the droppable area // and delete buttons @@ -288,8 +278,8 @@ $(function() { var draggableId = ui.draggable.attr("id"); var df = ui.draggable.closest('ul')[0].classList[1] var newid = getNewId(draggableId); - if (tpnt_array !== null && tpnt_avals.some(el => draggableId.includes(el))) { - $(this).append(selectBlock(newid, newid.slice(0, -1).toUpperCase(), tpnt_opts, df)); + if (tpnt_avals !== null && Object.keys(tpnt_avals).some(el => draggableId.includes(el))) { + $(this).append(selectBlock(newid, newid.slice(0, -1).toUpperCase(), tpnt_avals[Object.keys(tpnt_avals).find(el => draggableId.includes(el))].tpnt_opts, df)); } else { $(this).append(simpleBlock(newid, df)); } From 03de8fc0aa9d52e59f5e8fa18c69291247ffa542 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Tue, 10 Jan 2023 08:14:26 -0500 Subject: [PATCH 50/92] Allow missing values for variable dropdown --- R/mod_tableGen.R | 10 ++++++---- R/mod_tableGen_fct_methods.R | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index a02bcee0..d0ae2446 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -288,9 +288,11 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL purrr::map(avals, ~ datafile()$ADVS %>% dplyr::filter(PARAMCD == .x) %>% dplyr::select(dplyr::any_of(c("ATPT"))) %>% - purrr::map(get_levels) %>% - purrr::map(~ c("ALL", .x)) %>% - purrr::map(~ .x[.x != ""])) %>% + purrr::map(~ .x %>% + get_levels() %>% + tidyr::replace_na("N/A") %>% + c("ALL", .) %>% + `[`(. != ""))) %>% purrr::set_names(avals) }) @@ -371,7 +373,7 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL blocks_and_functions <- reactive({ # create initial dataset blockData <- convertTGOutput(input$agg_drop_zone, input$block_drop_zone) - + blockData$label <- purrr::map2(blockData$block, blockData$dataset, function(var, dat) { if(!is.null(attr(data_to_use_str(dat, ae_data(), all_data())[[var]], 'label'))){ diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index 14868bad..4e64d2b1 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -166,9 +166,11 @@ convertTGOutput <- function(aggs, blocks) { block = blocks$txt %>% unname() %>% str_trim(), dataset = blocks$df %>% unname() %>% str_trim(), dropdown = aggs_dd, - filter = if (is.na(blocks$grp)) {NA_character_} else {glue::glue("{blocks$grp %>% unname() %>% str_trim()} == '{blocks_dd}'")}, + filter = if (is.na(blocks$grp)) {NA_character_} + else if (blocks_dd == "N/A") {glue::glue("is.na({blocks$grp %>% unname() %>% str_trim()})")} + else {glue::glue("{blocks$grp %>% unname() %>% str_trim()} == '{blocks_dd}'")}, S3 = map2(block, dataset, ~ custom_class(.x, .y)), - gt_group = glue("{agg} of {block}{if (is.na(dropdown) || dropdown == 'NONE') '' else if (tolower(substr(dropdown, 1, 4)) %in% c('week','base','scree','end ')) paste(' at', dropdown) else paste(' and', dropdown)}{if (is.na(blocks$grp)) '' else paste('/', blocks_dd)}") + gt_group = glue("{agg} of {block}{if (is.na(dropdown) || dropdown == 'NONE') '' else if (tolower(substr(dropdown, 1, 4)) %in% c('week','base','scree','end ')) paste(' at', dropdown) else paste(' and', dropdown)}{if (is.na(blocks$grp) || blocks_dd == 'N/A') '' else paste('/', blocks_dd)}") ) }) }) From 3d9815ac29b08d66cb0e8425712ec93d6f78fbac Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:09:38 -0500 Subject: [PATCH 51/92] Delete unnecessary space --- R/mod_tableGen_utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index c3986e04..046dde02 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -470,7 +470,7 @@ prep_blocks <- function(blockData) { std_footnote <- function(data, source) { gt::tab_footnote(data, tags$div(HTML("Source:", source), - shiny::tags$span(shiny::HTML(" Run Date:", toupper(format(Sys.Date(), "%d%b%Y"))), + shiny::tags$span(shiny::HTML("Run Date:", toupper(format(Sys.Date(), "%d%b%Y"))), style="float:right"), style="text-align:left")) } From 6775debb989cff17f5def3bdda71b0b7d9ea619c Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:11:42 -0500 Subject: [PATCH 52/92] Fix issue with NA appearing in blank rows --- R/mod_tableGen.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 6891229a..3ee69bb4 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -491,7 +491,11 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL data = data_to_use_str(d, ae_data(), all_data()), totals = total_df()) - # Add blank row between each block + # Add blank row between each block. + # Convert factors to character so "NA" does not appear + # on blank row. + out <- out %>% + mutate_if(is.factor, as.character) out[nrow(out) + 1, ] <- "" return(out) From 2b8147b7b9ee9eb80dd12285955b8c58f3476a21 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:17:48 -0500 Subject: [PATCH 53/92] Set column widths for landscape orientation --- R/mod_tableGen.R | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 3ee69bb4..97060273 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -605,6 +605,24 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL }) + # # TODO Function to be implemented when gt package fixes issue with col_widths() + # # Column widths for RTF output + # col_widths_rtf <- reactive({ + # + # # Number of columns, excluding grouping column + # ncols <- ncol(gt_table()[["_data"]]) - 1 + # + # # Width of first column, in percentage + # width_col_1 <- 40 + # width_col_rest <- (100 - width_col_1) / (ncols - 1) + # + # widths <- c(width_col_1, rep(x = width_col_rest, times = ncols - 1)) + # widths <- gt::pct(widths) + # + # return(widths) + # + # }) + # ---------------------------------------------------------------------- # Download table # Currently CSV and HTML but easy to add more! @@ -628,8 +646,20 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL # table.font.size = gt::px(18), # heading.title.font.size = NULL, # footnotes.font.size = NULL, - page.numbering = TRUE - ) + + page.numbering = TRUE, + page.orientation = "landscape", + # Set table width to be the width of the page. Column widths + # will be distributed equally. + table.width = gt::pct(100) + ) #%>% + + # Set column widths + # Unable to pass dynamic column width to gt::cols_width() in a shiny + # app. Open issue: https://github.com/rstudio/gt/issues/641 + # gt::cols_width( + # TRUE ~ col_widths_rtf() + # ) # Convert HTML to RTF in the Source footnote export_rtf[["_footnotes"]]$footnotes[[1]] <- export_rtf[["_footnotes"]]$footnotes[[1]] %>% From 8875ae51bc510c8b3ab3e27c841f23ee890f6131 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:19:08 -0500 Subject: [PATCH 54/92] Implement bold formatting in source footnote as markdown --- R/mod_tableGen.R | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 97060273..53af372a 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -661,18 +661,21 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL # TRUE ~ col_widths_rtf() # ) - # Convert HTML to RTF in the Source footnote - export_rtf[["_footnotes"]]$footnotes[[1]] <- export_rtf[["_footnotes"]]$footnotes[[1]] %>% + + # Convert HTML to markdown in the Source footnote + export_rtf[["_footnotes"]]$footnotes[[1]] <- + export_rtf[["_footnotes"]]$footnotes[[1]] %>% as.character() %>% - # Convert bold from HTML to RTF - # This formatting does not render in RTF - # stringr::str_replace_all("
", "\\\\b0") %>% - # stringr::str_replace_all("", "\\\\b") %>% + + # Convert bold from HTML to markdown + stringr::str_replace_all("", "**") %>% + stringr::str_replace_all("", "**") %>% # Delete HTML elements stringr::str_replace_all("<.+?>", "") %>% - trimws(which = "left") + trimws(which = "left") %>% + # Convert to markdown for formatting + gt::md() - # page_numbering = c("none", "footer", "header") gt::gtsave(export_rtf, file, page_numbering = "header") } From 6359d9ab523902ad5559af4a18229932499bf589 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Thu, 12 Jan 2023 09:19:25 -0500 Subject: [PATCH 55/92] Add comments --- R/mod_tableGen.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 53af372a..5d3cf434 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -640,8 +640,13 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL gt::gtsave(exportHTML, file) } else if(input$download_type == ".rtf") { + # Table to be saved to RTF export_rtf <- gt_table() %>% + gt::tab_options( + + # Not currently possible to change font family or size + # Open issue: https://github.com/rstudio/gt/issues/687 # table.font.names = c("Times", "Arial"), # table.font.size = gt::px(18), # heading.title.font.size = NULL, @@ -661,6 +666,9 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL # TRUE ~ col_widths_rtf() # ) + # Page breaks + # Not currently possible + # Sample open issue: https://github.com/rstudio/gt/issues/1081 # Convert HTML to markdown in the Source footnote export_rtf[["_footnotes"]]$footnotes[[1]] <- From 630cb020333743cb02e225be95d77f46b3b79a3f Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 19 Jan 2023 09:52:26 -0500 Subject: [PATCH 56/92] Suppress ATPT label when it matches AVISIT --- R/mod_tableGen_fct_methods.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index 4e64d2b1..10fd0535 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -170,7 +170,7 @@ convertTGOutput <- function(aggs, blocks) { else if (blocks_dd == "N/A") {glue::glue("is.na({blocks$grp %>% unname() %>% str_trim()})")} else {glue::glue("{blocks$grp %>% unname() %>% str_trim()} == '{blocks_dd}'")}, S3 = map2(block, dataset, ~ custom_class(.x, .y)), - gt_group = glue("{agg} of {block}{if (is.na(dropdown) || dropdown == 'NONE') '' else if (tolower(substr(dropdown, 1, 4)) %in% c('week','base','scree','end ')) paste(' at', dropdown) else paste(' and', dropdown)}{if (is.na(blocks$grp) || blocks_dd == 'N/A') '' else paste('/', blocks_dd)}") + gt_group = glue("{agg} of {block}{if (is.na(dropdown) || dropdown == 'NONE') '' else if (tolower(substr(dropdown, 1, 4)) %in% c('week','base','scree','end ')) paste(' at', dropdown) else paste(' and', dropdown)}{if (is.na(blocks$grp) || blocks_dd == 'N/A' || blocks_dd == dropdown) '' else paste('/', blocks_dd)}") ) }) }) From 5d9c58a616d86843fa249142152ec68b01f4da92 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 19 Jan 2023 09:53:11 -0500 Subject: [PATCH 57/92] Order ATPT values by ATPTN --- R/mod_tableGen.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index d0ae2446..ffd2f28c 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -287,8 +287,12 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL purrr::map(avals, ~ datafile()$ADVS %>% dplyr::filter(PARAMCD == .x) %>% + dplyr::select(dplyr::any_of(c("ATPT", "ATPTN"))) %>% + varN_fctr_reorder() %>% dplyr::select(dplyr::any_of(c("ATPT"))) %>% purrr::map(~ .x %>% + addNA(ifany = TRUE) %>% + purrr::possibly(relevel, otherwise = .)(NA_character_) %>% get_levels() %>% tidyr::replace_na("N/A") %>% c("ALL", .) %>% From dff20554452287b3b72978714fda2b4a8240f5cc Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 19 Jan 2023 11:07:43 -0500 Subject: [PATCH 58/92] Suppress output for empty data when ATPT and AVISIT are selected --- R/mod_tableGen_fct_methods.R | 8 +++++++- R/mod_tableGen_utils.R | 10 ++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index 10fd0535..e359f3db 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -55,8 +55,14 @@ app_methods <- function(agg, column, week, group, data, totals, filter = NA) { stop(glue::glue("{column} variable doesn't exist in data, please remove or replace that variable from drop zone.")) } - if (!is.na(filter)) + if (!is.na(filter)) { data <- dplyr::filter(data, !!rlang::parse_expr(filter)) + + if (week != "NONE" && nrow(dplyr::filter(data, AVISIT == week)) == 0) { + cat("\033[0;31mBlock output suppressed for `", filter, " & AVISIT == '", week, "'` because dataset was empty.\033[0m\n", sep = "") + return(NULL) + } + } if (agg == "MEAN") { app_mean(column, week, group, data) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 8b555893..5d79c3ee 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -487,7 +487,7 @@ std_footnote <- function(data, source) { #' @export #' @keywords tabGen_repro tg_gt <- function(tg_datalist, blockData, total_df, group) { - purrr::pmap(list( + tbl_blocks <- purrr::pmap(list( blockData$agg, blockData$S3, blockData$dropdown, @@ -498,8 +498,14 @@ tg_gt <- function(tg_datalist, blockData, total_df, group) { data = tidyCDISC::data_to_use_str(d, tg_datalist$ADAE, tg_datalist$ADSL), totals = total_df, filter = f)) %>% - purrr::map(setNames, tidyCDISC::common_rownames(tg_datalist$POPDAT, group)) %>% setNames(paste(blockData$gt_group)) %>% + purrr::compact() + + if (rlang::is_empty(tbl_blocks)) + stop("There is no data for the selected pairs of analysis time points and visits.") + + tbl_blocks %>% + purrr::map(setNames, tidyCDISC::common_rownames(tg_datalist$POPDAT, group)) %>% dplyr::bind_rows(.id = 'ID') %>% dplyr::mutate(ID = tidyCDISC::pretty_IDs(ID)) } From ddfe085530a0e285286d202fba8e8fdfa0d9a9f6 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 19 Jan 2023 11:23:08 -0500 Subject: [PATCH 59/92] Remove "ALL" option if only one ATPT present --- R/mod_tableGen.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index ffd2f28c..fc4d3e36 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -295,8 +295,8 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL purrr::possibly(relevel, otherwise = .)(NA_character_) %>% get_levels() %>% tidyr::replace_na("N/A") %>% - c("ALL", .) %>% - `[`(. != ""))) %>% + {if (length(.) > 1) c("ALL", .) else .} %>% + as.list())) %>% purrr::set_names(avals) }) From d57d4c06ba2efd61e634768e5a3aefaad4997ffa Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 25 Jan 2023 07:17:46 -0500 Subject: [PATCH 60/92] Updated news --- NEWS.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index a53f45f2..15352f14 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,8 @@ # tidyCDISC (development version) -* Clean up JS to input RECIPEs. -* Use "ALL" as dropdown option for RECIPE 41 instead of listing all available weeks. +* Clean up JS to input `RECIPE`s (aka stanard analyses). +* Created "ALL" as dropdown option for Standard Analyses 41 instead of listing all available weeks. * Make the list of columns available to filter on in the Population Explorer depend upon the data frame(s) selected for filtering +* Added protocol / study id in prominent locaiton on each tab # tidyCDISC 0.1.1 From ea93e4a9342b5df1aacee65035f5bad565631da8 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Wed, 18 Jan 2023 13:20:57 -0500 Subject: [PATCH 61/92] Specify columns for events table --- R/mod_indvExpPatEvents.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/mod_indvExpPatEvents.R b/R/mod_indvExpPatEvents.R index 2bf1af56..6473367c 100644 --- a/R/mod_indvExpPatEvents.R +++ b/R/mod_indvExpPatEvents.R @@ -104,12 +104,12 @@ mod_indvExpPatEvents_server <- function(input, output, session, shinyjs::show(id = "eventsPlot") if("MH_" %in% substr(uni_rec$DOMAIN,1,3)){ - tab <- uni_rec %>% select(-START, -END, -DOMAIN) + tab <- uni_rec %>% select(EVENTTYP, tab_st, tab_en, DECODE) date_cols <- c("Start of Event","End of Event") } else{ date_cols <- "Date of Event" - tab <- uni_rec %>% select(-END, -tab_st, -tab_en, -DOMAIN) + tab <- uni_rec %>% select(EVENTTYP, START, DECODE) } output$eventsTable <- DT::renderDataTable(server = FALSE, { # This allows for downloading entire data set From afa23d0ef42b65ae42e461f2d0fa91803119a870 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Wed, 25 Jan 2023 13:05:26 -0500 Subject: [PATCH 62/92] Remove ATM from being pulled into the PARAMCDs dataset --- R/mod_tableGen_utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 5d79c3ee..5fe9e555 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -27,7 +27,7 @@ prep_bds <- function(datafile, ADSL) { # Bind all the PARAMCD files all_PARAMCD <- bind_rows(PARAMCD, .id = "data_from") %>% arrange(USUBJID, AVISITN, PARAMCD) %>% - select(USUBJID, AVISITN, AVISIT, dplyr::any_of(c("ATPT", "ATM")), PARAMCD, PARAM, AVAL, CHG, data_from) + select(USUBJID, AVISITN, AVISIT, dplyr::any_of(c("ATPT")), PARAMCD, PARAM, AVAL, CHG, data_from) # Join ADSL and all_PARAMCD combined_data <- inner_join(ADSL, all_PARAMCD, by = "USUBJID") } else { From 58e0cfa68915b6ae19f9e253a7930081dba9279b Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 26 Jan 2023 08:09:02 -0500 Subject: [PATCH 63/92] Generalize ATPT dropdown to any dataset with the field ATPT --- R/mod_tableGen.R | 23 +++++++++++++++-------- inst/app/www/script.js | 16 ++++++++++------ 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index fc4d3e36..3d5bc9ff 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -276,17 +276,22 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL AVALS <- reactive({ req(datafile()) - req("ADVS" %in% names(datafile())) - req(any(c("ATPT") %in% colnames(datafile()$ADVS))) + req(purrr::map_lgl(datafile(), ~ "ATPT" %in% colnames(.x))) - avals <- datafile()$ADVS %>% + atpt_datasets <- purrr::map_lgl(datafile(), ~ "ATPT" %in% colnames(.x)) + + avals <- + purrr::map(datafile()[atpt_datasets], ~ .x %>% dplyr::select(PARAMCD, dplyr::any_of(c("ATPT"))) %>% dplyr::filter(dplyr::if_any(-PARAMCD, ~ !is.na(.x) & .x != "")) %>% dplyr::pull(PARAMCD) %>% get_levels() - - purrr::map(avals, ~ datafile()$ADVS %>% - dplyr::filter(PARAMCD == .x) %>% + ) + + ## TODO: Make this less confusing. I pity the soul who has to edit this. + purrr::imap(avals, ~ purrr::map(.x, function(i, j =.y) { + datafile()[[j]] %>% + dplyr::filter(PARAMCD == i) %>% dplyr::select(dplyr::any_of(c("ATPT", "ATPTN"))) %>% varN_fctr_reorder() %>% dplyr::select(dplyr::any_of(c("ATPT"))) %>% @@ -296,8 +301,10 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL get_levels() %>% tidyr::replace_na("N/A") %>% {if (length(.) > 1) c("ALL", .) else .} %>% - as.list())) %>% - purrr::set_names(avals) + as.list()) + }) %>% + purrr::set_names(.x) + ) }) observe({ diff --git a/inst/app/www/script.js b/inst/app/www/script.js index 1f80728d..8b445dd8 100644 --- a/inst/app/www/script.js +++ b/inst/app/www/script.js @@ -259,10 +259,12 @@ Shiny.addCustomMessageHandler('my_avals', function(aval) { tpnt_avals = aval; for (x in tpnt_avals) { for (y in tpnt_avals[x]) { - tpnt_avals[x].tpnt_opts = ['']; - tpnt_avals[x].tpnt_opts.push(""); - tpnt_avals[x].tpnt_opts.push($.map(tpnt_avals[x][y], createOption).join("")); - tpnt_avals[x].tpnt_opts.push(""); + for (z in tpnt_avals[x][y]) { + tpnt_avals[x][y].tpnt_opts = ['']; + tpnt_avals[x][y].tpnt_opts.push(""); + tpnt_avals[x][y].tpnt_opts.push($.map(tpnt_avals[x][y][z], createOption).join("")); + tpnt_avals[x][y].tpnt_opts.push(""); + } } } }); @@ -278,8 +280,10 @@ $(function() { var draggableId = ui.draggable.attr("id"); var df = ui.draggable.closest('ul')[0].classList[1] var newid = getNewId(draggableId); - if (tpnt_avals !== null && Object.keys(tpnt_avals).some(el => draggableId.includes(el))) { - $(this).append(selectBlock(newid, newid.slice(0, -1).toUpperCase(), tpnt_avals[Object.keys(tpnt_avals).find(el => draggableId.includes(el))].tpnt_opts, df)); + var df_key = Object.keys(tpnt_avals).find(el => df.includes(el)); + var param_key = (df_key == undefined ? undefined : Object.keys(tpnt_avals[df_key]).find(el => draggableId.includes(el))); + if (tpnt_avals !== null && df_key != undefined && param_key != undefined) { + $(this).append(selectBlock(newid, newid.slice(0, -1).toUpperCase(), tpnt_avals[df_key][param_key].tpnt_opts, df)); } else { $(this).append(simpleBlock(newid, df)); } From 43777249fd09e704177653d78b58104cdaec05ab Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 26 Jan 2023 11:55:51 -0500 Subject: [PATCH 64/92] Check PARAMCD for ATPT calculation to make sure values are present --- R/mod_tableGen_fct_methods.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index e359f3db..e9647b77 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -58,7 +58,7 @@ app_methods <- function(agg, column, week, group, data, totals, filter = NA) { if (!is.na(filter)) { data <- dplyr::filter(data, !!rlang::parse_expr(filter)) - if (week != "NONE" && nrow(dplyr::filter(data, AVISIT == week)) == 0) { + if (week != "NONE" && nrow(dplyr::filter(data, AVISIT == week, PARAMCD == column)) == 0) { cat("\033[0;31mBlock output suppressed for `", filter, " & AVISIT == '", week, "'` because dataset was empty.\033[0m\n", sep = "") return(NULL) } From a69f5d74603d13902166f67d8c913fd3527d9055 Mon Sep 17 00:00:00 2001 From: Jeff Thompson Date: Thu, 26 Jan 2023 12:58:19 -0500 Subject: [PATCH 65/92] Update warning for empty ATPT blocks --- R/mod_tableGen_fct_methods.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index e9647b77..9e5a83d3 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -59,7 +59,7 @@ app_methods <- function(agg, column, week, group, data, totals, filter = NA) { data <- dplyr::filter(data, !!rlang::parse_expr(filter)) if (week != "NONE" && nrow(dplyr::filter(data, AVISIT == week, PARAMCD == column)) == 0) { - cat("\033[0;31mBlock output suppressed for `", filter, " & AVISIT == '", week, "'` because dataset was empty.\033[0m\n", sep = "") + cat("\033[0;31mBlock output suppressed for `PARAMCD == '", column, "' & ", filter, " & AVISIT == '", week, "'` because dataset was empty.\033[0m\n", sep = "") return(NULL) } } From f43d5822c2fe75b052ce4f05902650a17ef17aae Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Tue, 31 Jan 2023 11:54:34 -0500 Subject: [PATCH 66/92] Create separate function for rtf output --- R/mod_tableGen.R | 183 +++++++++++++++++++++-------------------- R/mod_tableGen_utils.R | 39 +++++++++ 2 files changed, 132 insertions(+), 90 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 16885d4f..23269ae9 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -544,34 +544,100 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL append(some_names_no_tot, "Total") }) + # create gt table gt_table <- reactive({ for_gt() %>% - # cols_labelgt(rowname_col = "Variable", groupname_col = "ID") %>% - gt::gt(groupname_col = "ID") %>% - gt::fmt_markdown(columns = c(Variable), - rows = stringr::str_detect(Variable,' ') | - stringr::str_detect(Variable,'') | - stringr::str_detect(Variable,'')) %>% - gt::tab_options(table.width = gt::px(700)) %>% - gt::cols_label(.list = col_for_list_expr(row_names_n(), col_total())) %>% - gt::tab_header( - title = gt::md(input$table_title), - subtitle = gt::md(subtitle_html()) - ) %>% - gt::tab_style( - style = gt::cell_text(weight = "bold"), - locations = gt::cells_row_groups() - ) %>% - gt::tab_style( - style = list( - gt::cell_text(align = "right") - ), - locations = gt::cells_stub(rows = TRUE) - )%>% - gt::cols_label(Variable = "") %>% - std_footnote("tidyCDISC app") %>% - gt::tab_footnote(input$table_footnote) + create_gt_table(., input$table_title, input$table_footnote) + }) + + # # TODO To be implemented when gt package fixes issue with col_widths() + # # Column widths for RTF output + # col_widths_rtf <- reactive({ + # + # # Number of columns, excluding grouping column + # ncols <- ncol(rtf_table()[["_data"]]) - 1 + # + # # Width of first column, in percentage + # width_col_1 <- 40 + # width_col_rest <- (100 - width_col_1) / (ncols - 1) + # + # widths <- c(width_col_1, rep(x = width_col_rest, times = ncols - 1)) + # widths <- gt::pct(widths) + # + # return(widths) + # + # }) + + # Create RTF table + rtf_table <- reactive({ + + data <- for_gt() + + # Add blank row after each ID group + + # Change factor to character to maintain order of blocks + data_factor <- data %>% + mutate(ID = factor(ID, levels = unique(ID))) + + # Add blank rows + data_with_blank_rows <- do.call(rbind, by(data, data_factor$ID, rbind, "")) + + # Populate ID in blank rows + ind <- which(data_with_blank_rows$ID == "") + data_with_blank_rows$ID[ind] <- data_with_blank_rows$ID[ind - 1] + + + # Convert to gt table object + gt_tab <- create_gt_table(data_with_blank_rows, + input$table_title, + input$table_footnote) + + # Add formatting for RTF output + rtf_tab <- gt_tab %>% + gt::tab_options( + + # Not currently possible to change font family or size + # Open issue: https://github.com/rstudio/gt/issues/687 + # table.font.names = c("Times", "Arial"), + # table.font.size = gt::px(18), + # heading.title.font.size = NULL, + # footnotes.font.size = NULL, + + page.numbering = TRUE, + page.orientation = "landscape", + + # Set table width to be the width of the page. Column widths + # will be distributed equally. + table.width = gt::pct(100) + ) #%>% + + # Set column widths + # Unable to pass dynamic column width to gt::cols_width() in a shiny + # app. Open issue: https://github.com/rstudio/gt/issues/641 + # gt::cols_width( + # TRUE ~ col_widths_rtf() + # ) + + # Page breaks + # Not currently possible + # Sample open issue: https://github.com/rstudio/gt/issues/1081 + + # Convert HTML to markdown in the Source footnote + rtf_tab[["_footnotes"]]$footnotes[[1]] <- + rtf_tab[["_footnotes"]]$footnotes[[1]] %>% + as.character() %>% + + # Convert bold from HTML to markdown + stringr::str_replace_all("", "**") %>% + stringr::str_replace_all("", "**") %>% + # Delete HTML elements + stringr::str_replace_all("<.+?>", "") %>% + trimws(which = "left") %>% + # Convert to markdown for formatting + gt::md() + + return(rtf_tab) }) output$all <- gt::render_gt({ gt_table() }) @@ -629,27 +695,9 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL }) - # # TODO Function to be implemented when gt package fixes issue with col_widths() - # # Column widths for RTF output - # col_widths_rtf <- reactive({ - # - # # Number of columns, excluding grouping column - # ncols <- ncol(gt_table()[["_data"]]) - 1 - # - # # Width of first column, in percentage - # width_col_1 <- 40 - # width_col_rest <- (100 - width_col_1) / (ncols - 1) - # - # widths <- c(width_col_1, rep(x = width_col_rest, times = ncols - 1)) - # widths <- gt::pct(widths) - # - # return(widths) - # - # }) - # ---------------------------------------------------------------------- # Download table - # Currently CSV and HTML but easy to add more! + # Currently RTF, CSV, and HTML # ---------------------------------------------------------------------- output$download_gt <- downloadHandler( @@ -663,53 +711,8 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL exportHTML <- gt_table() gt::gtsave(exportHTML, file) } else if(input$download_type == ".rtf") { - - # Table to be saved to RTF - export_rtf <- gt_table() %>% - - gt::tab_options( - - # Not currently possible to change font family or size - # Open issue: https://github.com/rstudio/gt/issues/687 - # table.font.names = c("Times", "Arial"), - # table.font.size = gt::px(18), - # heading.title.font.size = NULL, - # footnotes.font.size = NULL, - - page.numbering = TRUE, - page.orientation = "landscape", - # Set table width to be the width of the page. Column widths - # will be distributed equally. - table.width = gt::pct(100) - ) #%>% - - # Set column widths - # Unable to pass dynamic column width to gt::cols_width() in a shiny - # app. Open issue: https://github.com/rstudio/gt/issues/641 - # gt::cols_width( - # TRUE ~ col_widths_rtf() - # ) - - # Page breaks - # Not currently possible - # Sample open issue: https://github.com/rstudio/gt/issues/1081 - - # Convert HTML to markdown in the Source footnote - export_rtf[["_footnotes"]]$footnotes[[1]] <- - export_rtf[["_footnotes"]]$footnotes[[1]] %>% - as.character() %>% - - # Convert bold from HTML to markdown - stringr::str_replace_all("", "**") %>% - stringr::str_replace_all("", "**") %>% - # Delete HTML elements - stringr::str_replace_all("<.+?>", "") %>% - trimws(which = "left") %>% - # Convert to markdown for formatting - gt::md() - + export_rtf <- rtf_table() gt::gtsave(export_rtf, file, page_numbering = "header") - } } ) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 3fc113d1..43e009db 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -571,6 +571,45 @@ tg_guide <- cicerone::Cicerone$ "Have more data coming? Don't download the table, download the R script needed to produce the table. Then there's no need to even open up the app periodically to re-create your outputs!" ) +#' Create a `gt` table object +#' +#' Create a `gt` table object from the data that will then be used to generate +#' output in specific formats +#' +#' @param data The data frame used to create the table +#' @param input_table_title The Shiny input with the table title +#' @param input_table_footnote The Shiny input with the table footnote(s) +#' +#' @export +#' @keywords tabGen_repro +create_gt_table <- function(data, input_table_title, input_table_footnote) { + data %>% + gt::gt(groupname_col = "ID") %>% + gt::fmt_markdown(columns = c(Variable), + rows = stringr::str_detect(Variable,' ') | + stringr::str_detect(Variable,'') | + stringr::str_detect(Variable,'')) %>% + gt::tab_options(table.width = gt::px(700)) %>% + gt::cols_label(.list = col_for_list_expr(row_names_n(), col_total())) %>% + gt::tab_header( + title = gt::md(input_table_title), + subtitle = gt::md(subtitle_html()) + ) %>% + gt::tab_style( + style = gt::cell_text(weight = "bold"), + locations = gt::cells_row_groups() + ) %>% + gt::tab_style( + style = list( + gt::cell_text(align = "right") + ), + locations = gt::cells_stub(rows = TRUE) + )%>% + gt::cols_label(Variable = "") %>% + std_footnote("tidyCDISC app") %>% + gt::tab_footnote(input_table_footnote) +} + From 863ca611ea4c149eaa6df785f98696f181e7627f Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Tue, 31 Jan 2023 14:56:03 -0500 Subject: [PATCH 67/92] Increment version number to 0.2.0 --- DESCRIPTION | 2 +- NEWS.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 479fc911..7fe7f0e8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: tidyCDISC Title: Quick Table Generation & Exploratory Analyses on ADaM-Ish Datasets -Version: 0.1.1.9001 +Version: 0.2.0 Authors@R: c( person("Aaron", "Clark", , "clark.aaronchris@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0123-0970")), diff --git a/NEWS.md b/NEWS.md index 15352f14..b515e0d0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# tidyCDISC (development version) +# tidyCDISC 0.2.0 * Clean up JS to input `RECIPE`s (aka stanard analyses). * Created "ALL" as dropdown option for Standard Analyses 41 instead of listing all available weeks. * Make the list of columns available to filter on in the Population Explorer depend upon the data frame(s) selected for filtering From 5c40ef7042de3d3a1016904f1af39c9628404d18 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Tue, 31 Jan 2023 15:12:13 -0500 Subject: [PATCH 68/92] update news file --- NEWS.md | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/NEWS.md b/NEWS.md index b515e0d0..65fdc5af 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,29 +1,27 @@ -# tidyCDISC 0.2.0 -* Clean up JS to input `RECIPE`s (aka stanard analyses). -* Created "ALL" as dropdown option for Standard Analyses 41 instead of listing all available weeks. -* Make the list of columns available to filter on in the Population Explorer depend upon the data frame(s) selected for filtering -* Added protocol / study id in prominent locaiton on each tab +# tidyCDISC 0.2.0 (CRAN Release) +* Clean up JS to `RECIPE` input (aka 'standard analyses') drop down. +* Created "ALL" as dropdown option for standard analysis 41 instead of listing all available weeks. +* added protocol / study id in prominent locaiton on each tab +* designed special `ATPT` variable integration in the Table Generator (when present in data) +* added `OS Health` & `riskmetric` badges to the `README` +* engineered "cleaner" function that creates the table generator output from the block data +* table generator output automatically updates the table name when a standard analysis is selected +* Fixed some Population Explorer filtering issues +* Added an `app.R` file so that shiny app can be ran directly from `shiny::runGitHub()` or `runUrl()` # tidyCDISC 0.1.1 * automated a footnote with **Source** and **Run Date** in table generation - * allowed custom user-defined footnotes - * allowed the selection of 'All' when a time/visit-based statistic is chosen in the table generator - * cleaned up downloadable R Script to replicate table generator output - * fixed bug where `data_from` was erroneously listed as a grouping option in the population explorer # tidyCDISC 0.1.0 (CRAN Release) * cleaning up `devtools::check()` & preparing for CRAN release. - * unfortunately, had to revert back to importing `tippy 0.1.0` since it is the latest available version on CRAN and CRAN pkgs cannot depend on package versions under development. - * created a new toggle on the `Data` tab that allows users to select which CDISC pilot study data sources they wish to use in the app. - * Minor bug improvements # tidyCDISC 0.0.4 @@ -50,20 +48,20 @@ This release (PR #65) performs a lot of functions, testing on many non-pilot ADS This release adds meat to the previous skeleton version of `tidyCDISC`. The initial development release was intended to be a "bare bones" platform that could serve as a foundation to build a great clinical data exploratory tool. Version `0.0.1` enriches the user experience by adding useful & commonly needed features for analysis. For more on this release, see [the announcement](https://biogen-inc.github.io/tidyCDISC/articles/Blog.html#announcing-tidycdisc-0-0-1-1) on our blog. -- Major Features added, by tab: - - **Table Generator** - - New "STAT Blocks", such as `Y FREQ`, `MAX FREQ`, `NON-MISSING`, and a pair of `NESTED FREQ` blocks - - Interact with `ADAE` - - 17 new 'standard analysis' tables in the `ADAE` and `ADLB` space. - - An R Script download-er to reproduce analysis performed in the app - - **Population Explorer** - - New Chart types - - line plot - means over time - - Heat map - endpoint correlations - - Kaplan Meier Curve (when `TTE` class data uploaded) -- Upgraded `pkgdown` site documentation to be more robust and hassle-free for developers -- Depends on updated version of IDEAFilter (>= 0.1.0.9000) -- Squashed bugs and other minor improvements +* Major Features added, by tab: + * **Table Generator** + * New "STAT Blocks", such as `Y FREQ`, `MAX FREQ`, `NON-MISSING`, and a pair of `NESTED FREQ` blocks + * Interact with `ADAE` + * 17 new 'standard analysis' tables in the `ADAE` and `ADLB` space. + * An R Script download-er to reproduce analysis performed in the app + * **Population Explorer** + * New Chart types + * line plot - means over time + * Heat map - endpoint correlations + * Kaplan Meier Curve (when `TTE` class data uploaded) +* Upgraded `pkgdown` site documentation to be more robust and hassle-free for developers +* Depends on updated version of IDEAFilter (>= 0.1.0.9000) +* Squashed bugs and other minor improvements # tidyCDISC 0.0.0.9000 From 3f00dc7d5435b3efe3eba075d469c50b96ceeedc Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:34:36 -0500 Subject: [PATCH 69/92] Fix typo --- inst/app/www/recipe.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/app/www/recipe.js b/inst/app/www/recipe.js index 5dce8498..fea5ed09 100644 --- a/inst/app/www/recipe.js +++ b/inst/app/www/recipe.js @@ -125,7 +125,7 @@ $("#RECIPE").bind("change", function(event, ui) { case "Table 30: Serious adverse events by system organ class and preferred term": case "Table 33: Related serious adverse events by system organ class and preferred term": case "Table 34: Adverse events that led to discontinuation of study treatment by system organ class and preferred term": - case "Table 36: Adverse events that led to withdrawl from study by system organ class and preferred term": + case "Table 36: Adverse events that led to withdrawal from study by system organ class and preferred term": case "Table 38: Adverse events that led to drug interrupted, dose reduced, or dose increased by system organ class and preferred term": document.getElementById("droppable_agg").innerHTML = ""; $("#droppable_agg").append($(simpleRecipeRowBlock("NON_MISSING", "ADAE"))); From ad94f0111c0be0d6b51c2d64d4d2637d2c7d4d81 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Tue, 31 Jan 2023 15:35:06 -0500 Subject: [PATCH 70/92] Add 3 parameters to create_gt_table() --- R/mod_tableGen.R | 13 ++++++++++--- R/mod_tableGen_utils.R | 12 ++++++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 23269ae9..2cd42e6f 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -548,7 +548,11 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL # create gt table gt_table <- reactive({ for_gt() %>% - create_gt_table(., input$table_title, input$table_footnote) + create_gt_table(., input_table_title = input$table_title, + input_table_footnote = input$table_footnote, + col_names = row_names_n(), + col_total = col_total(), + subtitle = subtitle_html()) }) # # TODO To be implemented when gt package fixes issue with col_widths() @@ -590,8 +594,11 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL # Convert to gt table object gt_tab <- create_gt_table(data_with_blank_rows, - input$table_title, - input$table_footnote) + input_table_title = input$table_title, + input_table_footnote = input$table_footnote, + col_names = row_names_n(), + col_total = col_total(), + subtitle = subtitle_html()) # Add formatting for RTF output rtf_tab <- gt_tab %>% diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 43e009db..c33e5f24 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -579,10 +579,14 @@ tg_guide <- cicerone::Cicerone$ #' @param data The data frame used to create the table #' @param input_table_title The Shiny input with the table title #' @param input_table_footnote The Shiny input with the table footnote(s) -#' +#' @param col_names A vector of column names +#' @param col_total A vector of column totals +#' @param subtitle The table subtitle +#' #' @export #' @keywords tabGen_repro -create_gt_table <- function(data, input_table_title, input_table_footnote) { +create_gt_table <- function(data, input_table_title, input_table_footnote, + col_names, col_total, subtitle) { data %>% gt::gt(groupname_col = "ID") %>% gt::fmt_markdown(columns = c(Variable), @@ -590,10 +594,10 @@ create_gt_table <- function(data, input_table_title, input_table_footnote) { stringr::str_detect(Variable,'') | stringr::str_detect(Variable,'')) %>% gt::tab_options(table.width = gt::px(700)) %>% - gt::cols_label(.list = col_for_list_expr(row_names_n(), col_total())) %>% + gt::cols_label(.list = col_for_list_expr(col_names, col_total)) %>% gt::tab_header( title = gt::md(input_table_title), - subtitle = gt::md(subtitle_html()) + subtitle = gt::md(subtitle) ) %>% gt::tab_style( style = gt::cell_text(weight = "bold"), From ff8e5f50c1e1b6154a5e328ba75bde30453cacb1 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Tue, 31 Jan 2023 16:57:52 -0500 Subject: [PATCH 71/92] Add progress bar for table download --- R/mod_tableGen.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/R/mod_tableGen.R b/R/mod_tableGen.R index 2cd42e6f..7893ee6c 100644 --- a/R/mod_tableGen.R +++ b/R/mod_tableGen.R @@ -712,14 +712,33 @@ mod_tableGen_server <- function(input, output, session, datafile = reactive(NULL paste0("TableGenerator", input$download_type) }, content = function(file) { + progress <- Progress$new(max = 3) + progress$set(message = "Preparing Table...") + on.exit(progress$close()) + if(input$download_type == ".csv") { + progress$inc(1) # increment progress bar + write.csv(for_gt(), file, row.names = FALSE) + progress$inc(1) # increment progress bar + } else if(input$download_type == ".html") { + progress$inc(1) # increment progress bar + exportHTML <- gt_table() + progress$inc(1) # increment progress bar + gt::gtsave(exportHTML, file) + progress$inc(1) # increment progress bar + } else if(input$download_type == ".rtf") { + progress$inc(1) # increment progress bar + export_rtf <- rtf_table() + progress$inc(1) # increment progress bar + gt::gtsave(export_rtf, file, page_numbering = "header") + progress$inc(1) # increment progress bar } } ) From e165a98711244938aa8ce05d84e4041ed51a7cca Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:56:17 -0500 Subject: [PATCH 72/92] Update documentation --- NAMESPACE | 1 + NEWS.md | 1 + man/create_gt_table.Rd | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 man/create_gt_table.Rd diff --git a/NAMESPACE b/NAMESPACE index 728c434c..f5d41568 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,6 +3,7 @@ export(app_methods) export(col_for_list_expr) export(common_rownames) +export(create_gt_table) export(data_to_filter) export(data_to_use_str) export(get_levels) diff --git a/NEWS.md b/NEWS.md index 15352f14..7250de1f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,5 @@ # tidyCDISC (development version) +* Add option for RTF download to Table Generator. * Clean up JS to input `RECIPE`s (aka stanard analyses). * Created "ALL" as dropdown option for Standard Analyses 41 instead of listing all available weeks. * Make the list of columns available to filter on in the Population Explorer depend upon the data frame(s) selected for filtering diff --git a/man/create_gt_table.Rd b/man/create_gt_table.Rd new file mode 100644 index 00000000..95e27544 --- /dev/null +++ b/man/create_gt_table.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/mod_tableGen_utils.R +\name{create_gt_table} +\alias{create_gt_table} +\title{Create a `gt` table object} +\usage{ +create_gt_table( + data, + input_table_title, + input_table_footnote, + col_names, + col_total, + subtitle +) +} +\arguments{ +\item{data}{The data frame used to create the table} + +\item{input_table_title}{The Shiny input with the table title} + +\item{input_table_footnote}{The Shiny input with the table footnote(s)} + +\item{col_names}{A vector of column names} + +\item{col_total}{A vector of column totals} + +\item{subtitle}{The table subtitle} +} +\description{ +Create a `gt` table object from the data that will then be used to generate +output in specific formats +} +\keyword{tabGen_repro} From 6ee88dec8430bf222d0010efe286c0c3c3ebb33f Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 11:15:31 -0500 Subject: [PATCH 73/92] updated readme with new links and ammend riskmetric calculation metric weights --- README.Rmd | 24 ++++++++--------- README.md | 64 ++++++++++++++++++++++---------------------- scripts/riskmetric.R | 22 ++++++++++----- 3 files changed, 60 insertions(+), 50 deletions(-) diff --git a/README.Rmd b/README.Rmd index fcc97f41..133d91df 100644 --- a/README.Rmd +++ b/README.Rmd @@ -41,13 +41,13 @@ source("scripts/riskmetric.R") ## Purpose -One of `tidyCDISC`'s goals is to develop clinical tables that meet table standards leveraged for submission filings, called "standard analyses". However, this is secondary to the app's primary purpose: providing rich exploratory capabilities for clinical studies. High-level features of the app allow users to produce customized tables using a point-and-click interface, examine trends in patient populations with dynamic figures, and supply visualizations that narrow in on single patient profile. +One of `tidyCDISC`'s goals is to develop clinical tables that meet table standards leveraged for submission filings, called "standard analyses". However, this is secondary to the app's primary purpose: providing rich exploratory capabilities for clinical studies. High-level features of the app allow users to produce customized tables using a point-and-click interface, examine trends in patient populations with dynamic figures, and supply visualizations that narrow in on a single patient profile. -The beauty of this application is that the user doesn't have to write a lick of code to gather abundant insights from the study data, so it aims to serve a large population of clinical personnel with varying levels of programming experience. For example: +The beauty of the application: users don't have to write a lick of code to gather abundant insights from their study data. Thus, `tidyCDISC` aims to serve a large population of clinical personnel with varying levels of programming experience. For example: -- A **clinical head**, with presumably no programming skills but the most domain expertise, can explore results without asking a statistician or programmer to build tables & figures. +- A **clinical head**, with presumably no programming experience (but the most domain expertise) can explore results without asking a statistician or programmer to build tables & figures. -- A **statistician** can use the application to make tables/figures instantly, cutting down on statistical programming requests for excess tables that aren't required, but just "nice to see". +- A **statistician** can use the application to make tables / figures instantly, cutting down on excess statistical programming requests for tables that aren't required, but are "nice to see". ::: {.floating} @@ -55,17 +55,17 @@ The beauty of this application is that the user doesn't have to write a lick of knitr::include_graphics("man/figures/pct_95_cropped.jpg") ``` -- A **statistical programmer** can use `tidyCDISC` to perform preliminary QC programming prior to writing code in a validated process. Users who've leverage `tidyCDISC` for routine trial analysis tend to report **significant time savings, about 95%**, when performing programming duties. +- A **statistical programmer** can use `tidyCDISC` to perform preliminary QC programming prior to writing their own code in a validated process. Users who leverage `tidyCDISC` for routine trial analysis report **significant time savings, about 95%** on average, when performing their programming duties. ::: -For a high-level overview of the app with 10-minute demo, please review the following conference presentation on `tidyCDISC`at **R/Medicine 2020**: +For a high-level overview of the app with brief 10-minute demo, please review the following presentation on `tidyCDISC`at **Shiny Conf 2022**:
-[![tidyCDISC @ R/Medicine](man/figures/tidyCDISC_RMedicine_thumbnail.png)](https://youtu.be/QeHSjw-vU3U?t=103) +[![tidyCDISC @ Shiny Conf 2022](man/figures/tidyCDISC_RMedicine_thumbnail.png)](https://www.youtube.com/watch?v=0K8PCeKDbrI)
@@ -77,16 +77,16 @@ For a high-level overview of the app with 10-minute demo, please review the foll ## Scope -As previously mentioned, `tidyCDISC` can only accept data sets that conform to CDISC ADaM standards with some minor flexibility (see [upload requirements](https://Biogen-Inc.github.io/tidyCDISC/articles/x00_Data_Upload.html) for more details). At this time, the app only accepts sas7bdat files. +As previously mentioned, `tidyCDISC` can only accept data sets that conform to CDISC ADaM standards with some minor flexibility (see [upload requirements](https://Biogen-Inc.github.io/tidyCDISC/articles/x00_Data_Upload.html) for more details). At this time, the app is designed to accept `sas7bdat` files only. -If you're looking to regularly generate R code for tables, the `tidyCDISC` app has a built-in export feature that downloads an R script to reproduce any analysis performed in the app. +If you're looking to regularly generate R code for tables, the `tidyCDISC` app offers a handy feature to export an R script for full reproducibility of analyses performed in the app.
## Usage -You can start using the demo version of the app here: [tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/). Note the demo version disables the **Data Upload** feature and instead uses the CDISC pilot data. If you'd like to upload your own study data, we recommend installing `tidyCDISC` from CRAN (instructions below) to run the app locally or deploy it in your preferred environment. Please review the "[Get Started](https://Biogen-Inc.github.io/tidyCDISC/articles/tidyCDISC.html)" guide to follow an example use case with the app. However, to optimize one's use of `tidyCDISC`, we highly recommend reading the following articles that take a deeper look into the topics presented in the "Get Started" tutorial: +You can start using the demo version of the app here: [tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/). Note the demo version disables the **Data Upload** feature and, instead, uses CDISC pilot data. If you'd like to upload your own study data, we recommend installing `tidyCDISC` from CRAN (instructions below) to run the app locally or deploy it in your preferred environment. Please review the "[Get Started](https://Biogen-Inc.github.io/tidyCDISC/articles/tidyCDISC.html)" guide to follow an example use case with the app. However, to optimize one's use of `tidyCDISC`, we highly recommend reading the following articles that take a deeper look into the topics presented in the "Get Started" tutorial: - [00 Data Upload](https://Biogen-Inc.github.io/tidyCDISC/articles/x00_Data_Upload.html) @@ -106,7 +106,7 @@ We're confident the `tidyCDISC` application can save you time. If there is some ## Install the `tidyCDISC` R package -As a reminder, you can start using the demo version of the app here: [tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/) without any installation required. However, if you choose to upload your own study data OR export & run R code from the Table Generator, you will need the `tidyCDISC` package installed on your machine locally. Execute the following code to install the package to your local machine: +As a reminder, you can start using the demo version of the app right now: [launch tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/) without any installation required. However, if you choose to upload your own study data OR export & run R code from the Table Generator, you will need the `tidyCDISC` package installed on your machine. Execute the following code to install the package: ```{r, eval=FALSE} # Install from CRAN @@ -119,7 +119,7 @@ remotes::install_github("Biogen-Inc/tidyCDISC") With a simple `library(tidyCDISC)` you can access all the exported functions from `tidyCDISC` that help users reproduce analysis performed in the app. Or, you can run the application locally (or deploy it in an `app.R` file) using: ```{r, eval=FALSE} -# Run the application +# Launch the application tidyCDISC::run_app() ``` diff --git a/README.md b/README.md index 8f174c67..b72f8891 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ [![R-CMD-check](https://github.com/Biogen-Inc/tidyCDISC/workflows/R-CMD-check/badge.svg)](https://github.com/Biogen-Inc/tidyCDISC/actions) [![OS -Health](https://img.shields.io/badge/OS%20Health-71-yellowgreen)](https://openpharma.github.io/GithubMetrics/) -[![riskmetric](https://img.shields.io/badge/riskmetric-0.50-orange)](https://pharmar.github.io/riskmetric/) +Health](https://img.shields.io/badge/OS%20Health-86-green)](https://openpharma.github.io/GithubMetrics/) +[![riskmetric](https://img.shields.io/badge/riskmetric-0.31-brightgreen)](https://pharmar.github.io/riskmetric/) `tidyCDISC` is a shiny app to easily create custom tables and figures @@ -30,43 +30,42 @@ However, this is secondary to the app’s primary purpose: providing rich exploratory capabilities for clinical studies. High-level features of the app allow users to produce customized tables using a point-and-click interface, examine trends in patient populations with dynamic figures, -and supply visualizations that narrow in on single patient profile. +and supply visualizations that narrow in on a single patient profile. -The beauty of this application is that the user doesn’t have to write a -lick of code to gather abundant insights from the study data, so it aims -to serve a large population of clinical personnel with varying levels of -programming experience. For example: +The beauty of the application: users don’t have to write a lick of code +to gather abundant insights from their study data. Thus, `tidyCDISC` +aims to serve a large population of clinical personnel with varying +levels of programming experience. For example: -- A **clinical head**, with presumably no programming skills but the - most domain expertise, can explore results without asking a +- A **clinical head**, with presumably no programming experience (but + the most domain expertise) can explore results without asking a statistician or programmer to build tables & figures. -- A **statistician** can use the application to make tables/figures - instantly, cutting down on statistical programming requests for excess - tables that aren’t required, but just “nice to see”. +- A **statistician** can use the application to make tables / figures + instantly, cutting down on excess statistical programming requests for + tables that aren’t required, but are “nice to see”.
- A **statistical programmer** can use `tidyCDISC` to perform - preliminary QC programming prior to writing code in a validated - process. Users who’ve leverage `tidyCDISC` for routine trial analysis - tend to report **significant time savings, about 95%**, when - performing programming duties. + preliminary QC programming prior to writing their own code in a + validated process. Users who leverage `tidyCDISC` for routine trial + analysis report **significant time savings, about 95%** on average, + when performing their programming duties.
-For a high-level overview of the app with 10-minute demo, please review -the following conference presentation on `tidyCDISC`at **R/Medicine -2020**: +For a high-level overview of the app with brief 10-minute demo, please +review the following presentation on `tidyCDISC`at **Shiny Conf 2022**:
-[![tidyCDISC @ -R/Medicine](man/figures/tidyCDISC_RMedicine_thumbnail.png)](https://youtu.be/QeHSjw-vU3U?t=103) +[![tidyCDISC @ Shiny Conf +2022](man/figures/tidyCDISC_RMedicine_thumbnail.png)](https://www.youtube.com/watch?v=0K8PCeKDbrI)
@@ -77,11 +76,12 @@ R/Medicine](man/figures/tidyCDISC_RMedicine_thumbnail.png)](https://youtu.be/QeH As previously mentioned, `tidyCDISC` can only accept data sets that conform to CDISC ADaM standards with some minor flexibility (see [upload requirements](https://Biogen-Inc.github.io/tidyCDISC/articles/x00_Data_Upload.html) -for more details). At this time, the app only accepts sas7bdat files. +for more details). At this time, the app is designed to accept +`sas7bdat` files only. If you’re looking to regularly generate R code for tables, the -`tidyCDISC` app has a built-in export feature that downloads an R script -to reproduce any analysis performed in the app. +`tidyCDISC` app offers a handy feature to export an R script for full +reproducibility of analyses performed in the app.
@@ -89,7 +89,7 @@ to reproduce any analysis performed in the app. You can start using the demo version of the app here: [tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/). Note the demo -version disables the **Data Upload** feature and instead uses the CDISC +version disables the **Data Upload** feature and, instead, uses CDISC pilot data. If you’d like to upload your own study data, we recommend installing `tidyCDISC` from CRAN (instructions below) to run the app locally or deploy it in your preferred environment. Please review the @@ -125,12 +125,12 @@ message with your question or request! ## Install the `tidyCDISC` R package -As a reminder, you can start using the demo version of the app here: -[tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/) without any -installation required. However, if you choose to upload your own study -data OR export & run R code from the Table Generator, you will need the -`tidyCDISC` package installed on your machine locally. Execute the -following code to install the package to your local machine: +As a reminder, you can start using the demo version of the app right +now: [launch tidyCDISC](https://rinpharma.shinyapps.io/tidyCDISC/) +without any installation required. However, if you choose to upload your +own study data OR export & run R code from the Table Generator, you will +need the `tidyCDISC` package installed on your machine. Execute the +following code to install the package: ``` r # Install from CRAN @@ -146,7 +146,7 @@ in the app. Or, you can run the application locally (or deploy it in an `app.R` file) using: ``` r -# Run the application +# Launch the application tidyCDISC::run_app() ``` diff --git a/scripts/riskmetric.R b/scripts/riskmetric.R index dd23d26c..24fdd574 100644 --- a/scripts/riskmetric.R +++ b/scripts/riskmetric.R @@ -2,36 +2,46 @@ library(glue) library(dplyr) library(riskmetric) -riskmetric_score <- "tidyCDISC" %>% +assessed <- "tidyCDISC" %>% pkg_ref() %>% as_tibble() %>% - pkg_assess() %>% + pkg_assess() + +# riskmetric doesn't appear to be picking up certain metrics +# temporarily setting their weights to zero +metrics <- assessed %>% pkg_score() %>% + select(-c(package, version, pkg_ref, pkg_score)) %>% + t +metric_weights <- ifelse(is.na(metrics[,1]), 0, 1) + +riskmetric_score <- assessed %>% + pkg_score(weights = metric_weights) %>% pull("pkg_score") %>% round(2) template <- "https://img.shields.io/badge/{label}-{sprintf('%.2f', value)}-{colour}" badge_riskmetric = case_when( - riskmetric_score >= .9 ~ as.character(glue( + riskmetric_score >= .1 ~ as.character(glue( template, label = "riskmetric", colour = "brightgreen", value = riskmetric_score )), - riskmetric_score >= .8 ~ as.character(glue( + riskmetric_score >= .2 ~ as.character(glue( template, label = "riskmetric", colour = "green", value = riskmetric_score )), - riskmetric_score >= .6 ~ as.character(glue( + riskmetric_score >= .4 ~ as.character(glue( template, label = "riskmetric", colour = "yellowgreen", value = riskmetric_score )), - riskmetric_score >= .4 ~ as.character(glue( + riskmetric_score >= .6 ~ as.character(glue( template, label = "riskmetric", colour = "orange", From 9866b891dd4285d3f2986a55a6ad9e087a6964e6 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 11:37:45 -0500 Subject: [PATCH 74/92] refresh dependency list --- DESCRIPTION | 47 +++++++++++++++++++++++------------------------ dev/02_dev.R | 7 ++++++- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 7fe7f0e8..4d80e016 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,36 +2,35 @@ Package: tidyCDISC Title: Quick Table Generation & Exploratory Analyses on ADaM-Ish Datasets Version: 0.2.0 Authors@R: c( - person("Aaron", "Clark", , "clark.aaronchris@gmail.com", - role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0123-0970")), + person("Aaron", "Clark", , "clark.aaronchris@gmail.com", role = c("aut", "cre"), + comment = c(ORCID = "0000-0002-0123-0970")), person("Nate", "Mockler", , "nate.mockler@biogen.com", role = c("ccp", "led")), person("Maya", "Gans", , "maya.gans@biogen.com", role = "aut"), person("Robert", "Krajcik", , "robert.krajcik@biogen.com", role = "ctb"), person("Marly", "Gotti", , "marly.cormar@biogen.com", role = "ctb"), - person(given = "Jeff", family = "Thompson", - email = "jeff.thompson51317@gmail.com", role = "ctb"), + person("Jeff", "Thompson", , "jeff.thompson51317@gmail.com", role = "ctb"), person("Biogen", "Inc", role = "cph") ) Description: Provides users a quick exploratory dive into common visualizations without writing a single line of code given the users - data follows the Analysis Data Model (ADaM) standards put forth by - the Clinical Data Interchange Standards Consortium - (CDISC) . Prominent modules/ features of the application are the Table - Generator, Population Explorer, and the Individual Explorer. The Table - Generator allows users to drag and drop variables and desired statistics - (frequencies, means, ANOVA, t-test, and other summary statistics) into - bins that automagically create stunning tables with validated - information. The Population Explorer offers various plots to visualize - general trends in the population from various vantage points. Plot - modules currently include scatter plot, spaghetti plot, box plot, - histogram, means plot, and bar plot. Each plot type allows the user to - plot uploaded variables against one another, and dissect the - population by filtering out certain subjects. Last, the Individual - Explorer establishes a cohesive patient narrative, allowing the user - to interact with patient metrics (params) by visit or plotting - important patient events on a timeline. All modules allow for concise - filtering & downloading bulk outputs into html or pdf formats to save - for later. + data follows the Analysis Data Model (ADaM) standards put forth by the + Clinical Data Interchange Standards Consortium (CDISC) + . Prominent modules/ features of the + application are the Table Generator, Population Explorer, and the + Individual Explorer. The Table Generator allows users to drag and drop + variables and desired statistics (frequencies, means, ANOVA, t-test, + and other summary statistics) into bins that automagically create + stunning tables with validated information. The Population Explorer + offers various plots to visualize general trends in the population + from various vantage points. Plot modules currently include scatter + plot, spaghetti plot, box plot, histogram, means plot, and bar plot. + Each plot type allows the user to plot uploaded variables against one + another, and dissect the population by filtering out certain subjects. + Last, the Individual Explorer establishes a cohesive patient + narrative, allowing the user to interact with patient metrics (params) + by visit or plotting important patient events on a timeline. All + modules allow for concise filtering & downloading bulk outputs into + html or pdf formats to save for later. License: AGPL (>= 3) URL: https://Biogen-Inc.github.io/tidyCDISC/ BugReports: https://github.com/Biogen-Inc/tidyCDISC/issues @@ -65,11 +64,11 @@ Imports: tippy (== 0.1.0) Suggests: knitr, - pkgdown, spelling, testthat +VignetteBuilder: + knitr Encoding: UTF-8 Language: en-US LazyData: true RoxygenNote: 7.2.0 -VignetteBuilder: knitr diff --git a/dev/02_dev.R b/dev/02_dev.R index 8ceba21e..2278e99b 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -230,7 +230,12 @@ usethis::use_revdep() # Update dependencies in DESCRIPTION # install.packages("attachment") -attachment::att_amend_desc() +# library(dplyr) +# library(shiny) +# ?attachment::att_amend_desc +attachment::att_amend_desc(pkg_ignore = + c("diffdf","remotes","stats","tools","utils")) + # # Run tests and examples (usually done with check) # devtools::test() From 5a79194e808ccd20a36aaad3e716cafa7fe212f8 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 12:05:44 -0500 Subject: [PATCH 75/92] added return values for two func's and officially exported data examples --- NAMESPACE | 2 ++ R/data-example.R | 2 ++ R/mod_tableGen_utils.R | 13 +++++++++---- man/std_footnote.Rd | 3 +++ man/tg_gt.Rd | 3 +++ 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 728c434c..1ea9261e 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,6 +5,8 @@ export(col_for_list_expr) export(common_rownames) export(data_to_filter) export(data_to_use_str) +export(example_dat1) +export(example_dat2) export(get_levels) export(prep_adae) export(prep_adsl) diff --git a/R/data-example.R b/R/data-example.R index d6c13001..df8242f4 100644 --- a/R/data-example.R +++ b/R/data-example.R @@ -8,6 +8,7 @@ #' \item{BDS}{data frame, pre-processed BDS dataset} #' \item{totals}{data frame, contains totals by grouping variable for pre-processed data} #' } +#' @export "example_dat1" #' Example Data Set 2 @@ -20,4 +21,5 @@ #' \item{col_names}{vector, the column names} #' \item{col_totals}{vector, totals corresponding to each column} #' } +#' @export "example_dat2" \ No newline at end of file diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 5fe9e555..cf8782ae 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -465,14 +465,17 @@ prep_blocks <- function(blockData) { #' @param data The `gt` table object to append the footnote #' @param source The source of the data in the table #' +#' @return a `gt` object +#' #' @export #' @keywords tabGen_repro std_footnote <- function(data, source) { gt::tab_footnote(data, - tags$div(HTML("Source:", source), - shiny::tags$span(shiny::HTML(" Run Date:", toupper(format(Sys.Date(), "%d%b%Y"))), - style="float:right"), - style="text-align:left")) + tags$div(HTML("Source:", source), + shiny::tags$span( + shiny::HTML(" Run Date:", toupper(format(Sys.Date(), "%d%b%Y"))), + style="float:right"), + style="text-align:left")) } #' Create the gt table object for TG @@ -484,6 +487,8 @@ std_footnote <- function(data, source) { #' @param total_df A data frame containing the totals by grouping variable #' @param group A character denoting the grouping variable #' +#' @return a data.frame containing output polished for presentation in `gt` +#' #' @export #' @keywords tabGen_repro tg_gt <- function(tg_datalist, blockData, total_df, group) { diff --git a/man/std_footnote.Rd b/man/std_footnote.Rd index d673b03a..ada1f962 100644 --- a/man/std_footnote.Rd +++ b/man/std_footnote.Rd @@ -11,6 +11,9 @@ std_footnote(data, source) \item{source}{The source of the data in the table} } +\value{ +a `gt` object +} \description{ Creates a footnote with a source on the left and date run on the right. } diff --git a/man/tg_gt.Rd b/man/tg_gt.Rd index e02eda8c..3ee75f70 100644 --- a/man/tg_gt.Rd +++ b/man/tg_gt.Rd @@ -15,6 +15,9 @@ tg_gt(tg_datalist, blockData, total_df, group) \item{group}{A character denoting the grouping variable} } +\value{ +a data.frame containing output polished for presentation in `gt` +} \description{ A wrapper for other functions to create the `gt` object from the data } From 09e89dcb25be7c91ba840e03f3732751cc6ed377 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 12:43:15 -0500 Subject: [PATCH 76/92] add @export to cdisc pilot data roxygen --- NAMESPACE | 5 +++++ R/data-phuse_TDF_ADaM.R | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 1ea9261e..d086eeb3 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,10 @@ # Generated by roxygen2: do not edit by hand +export(adae) +export(adlbc) +export(adsl) +export(adtte) +export(advs) export(app_methods) export(col_for_list_expr) export(common_rownames) diff --git a/R/data-phuse_TDF_ADaM.R b/R/data-phuse_TDF_ADaM.R index c2377d91..60399dc4 100644 --- a/R/data-phuse_TDF_ADaM.R +++ b/R/data-phuse_TDF_ADaM.R @@ -5,7 +5,7 @@ #' #' @source , downloaded 2020-06-17 #' @format Data frame with 254 features and 51 fields -#' +#' @export "adsl" @@ -16,7 +16,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,740 features and 58 fields -#' +#' @export "adlbc" @@ -27,7 +27,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields -#' +#' @export "advs" @@ -38,7 +38,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields -#' +#' @export "adae" @@ -49,5 +49,5 @@ #' @source , downloaded 2021-01-26 #' #' @format Data frame with 32,740 features and 58 fields -#' +#' @export "adtte" \ No newline at end of file From 8f9abb888a88c21e4ea6eb7490493bf58bbee67a Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 12:47:42 -0500 Subject: [PATCH 77/92] update gather_rules roxygen to not produce an RD --- R/golem_utils_ui.R | 7 ++++ R/mod_dataComplyRules_fct_helpers.R | 2 +- man/gather_rules.Rd | 54 ----------------------------- 3 files changed, 8 insertions(+), 55 deletions(-) delete mode 100644 man/gather_rules.Rd diff --git a/R/golem_utils_ui.R b/R/golem_utils_ui.R index 7bd04769..38ef4672 100644 --- a/R/golem_utils_ui.R +++ b/R/golem_utils_ui.R @@ -246,40 +246,47 @@ col_12 <- function(...){ column(12, ...) } +#' @noRd #' @importFrom shiny column col_10 <- function(...){ column(10, ...) } +#' @noRd #' @importFrom shiny column col_8 <- function(...){ column(8, ...) } +#' @noRd #' @importFrom shiny column col_6 <- function(...){ column(6, ...) } +#' @noRd #' @importFrom shiny column col_4 <- function(...){ column(4, ...) } +#' @noRd #' @importFrom shiny column col_3 <- function(...){ column(3, ...) } +#' @noRd #' @importFrom shiny column col_2 <- function(...){ column(2, ...) } +#' @noRd #' @importFrom shiny column col_1 <- function(...){ column(1, ...) diff --git a/R/mod_dataComplyRules_fct_helpers.R b/R/mod_dataComplyRules_fct_helpers.R index 37f0ac0c..a866ed36 100644 --- a/R/mod_dataComplyRules_fct_helpers.R +++ b/R/mod_dataComplyRules_fct_helpers.R @@ -79,7 +79,7 @@ df_incl_rules <- #' #' @family dataComply Functions #' @keywords internal -#' +#' @noRd gather_rules <- function(input, output, session, all_df_rules = list(error = c(""), warn = c("") ), expl_rules = list( list(error = c(""), warn = c("")) ), diff --git a/man/gather_rules.Rd b/man/gather_rules.Rd deleted file mode 100644 index abec8785..00000000 --- a/man/gather_rules.Rd +++ /dev/null @@ -1,54 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/mod_dataComplyRules_fct_helpers.R -\name{gather_rules} -\alias{gather_rules} -\title{Gather Rules For Help UI} -\usage{ -gather_rules( - input, - output, - session, - all_df_rules = list(error = c(""), warn = c("")), - expl_rules = list(list(error = c(""), warn = c(""))), - df_incl_rules = list(list(error = c(""), warn = c(""))), - df_incl_rules_except_tte = list(list(error = c(""), warn = c(""))) -) -} -\arguments{ -\item{input, output, session}{Internal parameters for {shiny}.} - -\item{all_df_rules}{A double-nested list: inner list is named list of -variables names that should result in \code{error} or \code{warn} if -variables do not exist or are missing for ANY data frame. Outer list is -unnamed.} - -\item{expl_rules}{A double-nested list: outer list is a named list -dataframes. Inner list (for each data frame) contains named lists of -variables names that should result in \code{error} or \code{warn} if -variables do not exist or are missing for the specified parent data frame} - -\item{df_incl_rules}{A double-nested list: outer list is a named list -variable names used to identify a particular class of data frame. For -example, the variable name PARAMCD would id BDS class data frames, and the -inner list would contain a named lists of variables names that should -result in \code{error} or \code{warn} if variables do not exist or are -missing for the implied parent data frame.} - -\item{df_incl_rules_except_tte}{A double-nested list: outer list is a named -list variable names used to identify a particular class of data frame. For -example, the variable name PARAMCD would id BDS class data frames WHERE -Time to event (TTE) is an exception, and the inner list would contain a -named lists of variables names that should result in \code{error} or -\code{warn} if variables do not exist or are missing for the implied parent -data frame.} -} -\value{ -An shiny tagList -} -\description{ -Gather Rules into a shiny tagList to be included in the UI for "help" -purposes, conditionally containing different required and/or recommended rule -sets (if they exist). -} -\concept{dataComply Functions} -\keyword{internal} From 0a9c114112ea96194f474812a79fb2550753892d Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 12:58:13 -0500 Subject: [PATCH 78/92] Add return values for example data --- R/data-example.R | 2 ++ man/example_dat1.Rd | 3 +++ man/example_dat2.Rd | 3 +++ 3 files changed, 8 insertions(+) diff --git a/R/data-example.R b/R/data-example.R index df8242f4..2ff9dc72 100644 --- a/R/data-example.R +++ b/R/data-example.R @@ -9,6 +9,7 @@ #' \item{totals}{data frame, contains totals by grouping variable for pre-processed data} #' } #' @export +#' @return a list, containing three data.frames "example_dat1" #' Example Data Set 2 @@ -22,4 +23,5 @@ #' \item{col_totals}{vector, totals corresponding to each column} #' } #' @export +#' @return a list of length 3 "example_dat2" \ No newline at end of file diff --git a/man/example_dat1.Rd b/man/example_dat1.Rd index 0c571d75..c59d26d3 100644 --- a/man/example_dat1.Rd +++ b/man/example_dat1.Rd @@ -15,6 +15,9 @@ A list with 3 elements: \usage{ example_dat1 } +\value{ +a list, containing three data.frames +} \description{ Pre-processed data for purposes of demonstrating \link[tidyCDISC]{app_methods}. } diff --git a/man/example_dat2.Rd b/man/example_dat2.Rd index e20a1cd5..b85640e8 100644 --- a/man/example_dat2.Rd +++ b/man/example_dat2.Rd @@ -15,6 +15,9 @@ A list with 3 elements: \usage{ example_dat2 } +\value{ +a list of length 3 +} \description{ Pre-processed data for the purposes of demonstrating \link[tidyCDISC]{col_for_list_expr}. } From 08b4da416818ab0bf2bcfe6cd81abbe1b26f67a6 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 13:00:42 -0500 Subject: [PATCH 79/92] create return values for cdisc pilot data --- R/data-phuse_TDF_ADaM.R | 5 +++++ man/adae.Rd | 3 +++ man/adlbc.Rd | 3 +++ man/adsl.Rd | 3 +++ man/adtte.Rd | 3 +++ man/advs.Rd | 3 +++ 6 files changed, 20 insertions(+) diff --git a/R/data-phuse_TDF_ADaM.R b/R/data-phuse_TDF_ADaM.R index 60399dc4..6805b87f 100644 --- a/R/data-phuse_TDF_ADaM.R +++ b/R/data-phuse_TDF_ADaM.R @@ -5,6 +5,7 @@ #' #' @source , downloaded 2020-06-17 #' @format Data frame with 254 features and 51 fields +#' @return a data.frame #' @export "adsl" @@ -16,6 +17,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,740 features and 58 fields +#' @return a data.frame #' @export "adlbc" @@ -27,6 +29,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields +#' @return a data.frame #' @export "advs" @@ -38,6 +41,7 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields +#' @return a data.frame #' @export "adae" @@ -49,5 +53,6 @@ #' @source , downloaded 2021-01-26 #' #' @format Data frame with 32,740 features and 58 fields +#' @return a data.frame #' @export "adtte" \ No newline at end of file diff --git a/man/adae.Rd b/man/adae.Rd index d0d61d98..65e5457d 100644 --- a/man/adae.Rd +++ b/man/adae.Rd @@ -13,6 +13,9 @@ Data frame with 32,139 features and 34 fields \usage{ adae } +\value{ +a data.frame +} \description{ Adverse Events Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adlbc.Rd b/man/adlbc.Rd index 10f135ce..403a8a1d 100644 --- a/man/adlbc.Rd +++ b/man/adlbc.Rd @@ -13,6 +13,9 @@ Data frame with 32,740 features and 58 fields \usage{ adlbc } +\value{ +a data.frame +} \description{ Laboratory Results Chemistry Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adsl.Rd b/man/adsl.Rd index e3cba0f3..5cde1759 100644 --- a/man/adsl.Rd +++ b/man/adsl.Rd @@ -13,6 +13,9 @@ Data frame with 254 features and 51 fields \usage{ adsl } +\value{ +a data.frame +} \description{ Subject Level Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adtte.Rd b/man/adtte.Rd index 7664d1e6..bdbda693 100644 --- a/man/adtte.Rd +++ b/man/adtte.Rd @@ -13,6 +13,9 @@ Data frame with 32,740 features and 58 fields \usage{ adtte } +\value{ +a data.frame +} \description{ Time to Event Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/advs.Rd b/man/advs.Rd index b65bde29..c52eb4e0 100644 --- a/man/advs.Rd +++ b/man/advs.Rd @@ -13,6 +13,9 @@ Data frame with 32,139 features and 34 fields \usage{ advs } +\value{ +a data.frame +} \description{ Vital Signs Analysis Data from PHUSE Test Data Factory Project's GitHub. } From 61a102f85eff0dfcc5754258f279ec7482288d71 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 13:04:22 -0500 Subject: [PATCH 80/92] fix spelling issues/errors --- NEWS.md | 2 +- inst/WORDLIST | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/NEWS.md b/NEWS.md index 65fdc5af..dbc302d1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,7 @@ # tidyCDISC 0.2.0 (CRAN Release) * Clean up JS to `RECIPE` input (aka 'standard analyses') drop down. * Created "ALL" as dropdown option for standard analysis 41 instead of listing all available weeks. -* added protocol / study id in prominent locaiton on each tab +* added protocol / study id in prominent location on each tab * designed special `ATPT` variable integration in the Table Generator (when present in data) * added `OS Health` & `riskmetric` badges to the `README` * engineered "cleaner" function that creates the table generator output from the block data diff --git a/inst/WORDLIST b/inst/WORDLIST index f47bdeef..60a2fc9d 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -20,12 +20,14 @@ Agg BDS CDISC CMD +Conf DIY DT Downloader EVENTTYP IDEAFilter Ish +JS Kaplan Ns OCCD @@ -44,7 +46,6 @@ RTF SMEs TDF TG -TTE TestDataFactory UI USUBJID @@ -64,7 +65,6 @@ boxPlot callModule checkGroup checkboxInput -dataComply df dropdown droppability @@ -96,6 +96,7 @@ png pre radioButtons reproducibility +riskmetric sas selectInput selectable @@ -104,7 +105,6 @@ snagit stan submodule tableGen -tagList tibble ui un From e71231974fd60b113ff632b94d2e5768987ad0b1 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Wed, 1 Feb 2023 14:04:05 -0500 Subject: [PATCH 81/92] Revert back to using non exported Rd for data help docs --- NAMESPACE | 7 ------- R/data-example.R | 4 ---- R/data-phuse_TDF_ADaM.R | 10 ---------- dev/02_dev.R | 37 +++++++++++++++++++++++-------------- man/adae.Rd | 3 --- man/adlbc.Rd | 3 --- man/adsl.Rd | 3 --- man/adtte.Rd | 3 --- man/advs.Rd | 3 --- man/example_dat1.Rd | 3 --- man/example_dat2.Rd | 3 --- 11 files changed, 23 insertions(+), 56 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index d086eeb3..728c434c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,17 +1,10 @@ # Generated by roxygen2: do not edit by hand -export(adae) -export(adlbc) -export(adsl) -export(adtte) -export(advs) export(app_methods) export(col_for_list_expr) export(common_rownames) export(data_to_filter) export(data_to_use_str) -export(example_dat1) -export(example_dat2) export(get_levels) export(prep_adae) export(prep_adsl) diff --git a/R/data-example.R b/R/data-example.R index 2ff9dc72..d6c13001 100644 --- a/R/data-example.R +++ b/R/data-example.R @@ -8,8 +8,6 @@ #' \item{BDS}{data frame, pre-processed BDS dataset} #' \item{totals}{data frame, contains totals by grouping variable for pre-processed data} #' } -#' @export -#' @return a list, containing three data.frames "example_dat1" #' Example Data Set 2 @@ -22,6 +20,4 @@ #' \item{col_names}{vector, the column names} #' \item{col_totals}{vector, totals corresponding to each column} #' } -#' @export -#' @return a list of length 3 "example_dat2" \ No newline at end of file diff --git a/R/data-phuse_TDF_ADaM.R b/R/data-phuse_TDF_ADaM.R index 6805b87f..16e6fd18 100644 --- a/R/data-phuse_TDF_ADaM.R +++ b/R/data-phuse_TDF_ADaM.R @@ -5,8 +5,6 @@ #' #' @source , downloaded 2020-06-17 #' @format Data frame with 254 features and 51 fields -#' @return a data.frame -#' @export "adsl" @@ -17,8 +15,6 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,740 features and 58 fields -#' @return a data.frame -#' @export "adlbc" @@ -29,8 +25,6 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields -#' @return a data.frame -#' @export "advs" @@ -41,8 +35,6 @@ #' @source , downloaded 2020-06-17 #' #' @format Data frame with 32,139 features and 34 fields -#' @return a data.frame -#' @export "adae" @@ -53,6 +45,4 @@ #' @source , downloaded 2021-01-26 #' #' @format Data frame with 32,740 features and 58 fields -#' @return a data.frame -#' @export "adtte" \ No newline at end of file diff --git a/dev/02_dev.R b/dev/02_dev.R index 2278e99b..3fecaeab 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -251,6 +251,11 @@ rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran")) # , "--no-build-vigne # Check content # remotes::install_github("ThinkR-open/checkhelper") tags <- checkhelper::find_missing_tags() + # Ignore these objects... we are merely just trying to create help docs, + # so @export should not be used, yet Rd's are needed. + # Ref: https://stackoverflow.com/questions/26697727/what-does-error-in-namespaceexportns-exports-undefined-exports-mean + # Doc available but need to choose between `@export` or `@noRd`: + # example_dat1, example_dat2, adsl, adlbc, advs, adae, adtte View(tags) # Check spelling @@ -275,20 +280,24 @@ devtools::check_win_devel() # Doesn't really apply to tidyCDISC since it's never been published to CRAN # Check reverse dependencies # remotes::install_github("r-lib/revdepcheck") -usethis::use_git_ignore("revdep/") -usethis::use_build_ignore("revdep/") - -devtools::revdep() -library(revdepcheck) -# In another session -id <- rstudioapi::terminalExecute("Rscript -e 'revdepcheck::revdep_check(num_workers = 4)'") -rstudioapi::terminalKill(id) -# See outputs -revdep_details(revdep = "pkg") -revdep_summary() # table of results by package -revdep_report() # in revdep/ -# Clean up when on CRAN -revdep_reset() +# usethis::use_git_ignore("revdep/") # use once +# usethis::use_build_ignore("revdep/") # use once + +# returns vector of pkg names that depend on tidyCDISC +devtools::revdep(pkg = "tidyCDISC", + dependencies = c("Depends","Imports")) + +# if applicable... continue: +# library(revdepcheck) +# # In another session +# id <- rstudioapi::terminalExecute("Rscript -e 'revdepcheck::revdep_check(num_workers = 4)'") +# rstudioapi::terminalKill(id) +# # See outputs +# revdep_details(revdep = "pkg") +# revdep_summary() # table of results by package +# revdep_report() # in revdep/ +# # Clean up when on CRAN +# revdep_reset() # Update NEWS # Bump version manually and add list of changes diff --git a/man/adae.Rd b/man/adae.Rd index 65e5457d..d0d61d98 100644 --- a/man/adae.Rd +++ b/man/adae.Rd @@ -13,9 +13,6 @@ Data frame with 32,139 features and 34 fields \usage{ adae } -\value{ -a data.frame -} \description{ Adverse Events Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adlbc.Rd b/man/adlbc.Rd index 403a8a1d..10f135ce 100644 --- a/man/adlbc.Rd +++ b/man/adlbc.Rd @@ -13,9 +13,6 @@ Data frame with 32,740 features and 58 fields \usage{ adlbc } -\value{ -a data.frame -} \description{ Laboratory Results Chemistry Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adsl.Rd b/man/adsl.Rd index 5cde1759..e3cba0f3 100644 --- a/man/adsl.Rd +++ b/man/adsl.Rd @@ -13,9 +13,6 @@ Data frame with 254 features and 51 fields \usage{ adsl } -\value{ -a data.frame -} \description{ Subject Level Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/adtte.Rd b/man/adtte.Rd index bdbda693..7664d1e6 100644 --- a/man/adtte.Rd +++ b/man/adtte.Rd @@ -13,9 +13,6 @@ Data frame with 32,740 features and 58 fields \usage{ adtte } -\value{ -a data.frame -} \description{ Time to Event Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/advs.Rd b/man/advs.Rd index c52eb4e0..b65bde29 100644 --- a/man/advs.Rd +++ b/man/advs.Rd @@ -13,9 +13,6 @@ Data frame with 32,139 features and 34 fields \usage{ advs } -\value{ -a data.frame -} \description{ Vital Signs Analysis Data from PHUSE Test Data Factory Project's GitHub. } diff --git a/man/example_dat1.Rd b/man/example_dat1.Rd index c59d26d3..0c571d75 100644 --- a/man/example_dat1.Rd +++ b/man/example_dat1.Rd @@ -15,9 +15,6 @@ A list with 3 elements: \usage{ example_dat1 } -\value{ -a list, containing three data.frames -} \description{ Pre-processed data for purposes of demonstrating \link[tidyCDISC]{app_methods}. } diff --git a/man/example_dat2.Rd b/man/example_dat2.Rd index b85640e8..e20a1cd5 100644 --- a/man/example_dat2.Rd +++ b/man/example_dat2.Rd @@ -15,9 +15,6 @@ A list with 3 elements: \usage{ example_dat2 } -\value{ -a list of length 3 -} \description{ Pre-processed data for the purposes of demonstrating \link[tidyCDISC]{col_for_list_expr}. } From 7088662a3a4244b26fb290b21411a103515641db Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Thu, 2 Feb 2023 14:37:59 -0500 Subject: [PATCH 82/92] update cran-comments with latest info --- cran-comments.md | 96 ++++++------------------------------------------ dev/02_dev.R | 6 ++- 2 files changed, 15 insertions(+), 87 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index 83855c9f..b23a626c 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,19 +1,12 @@ -## Re-submission 2022-08-29 (Afternoon) -This is a re-submission. In this version I have: +## Submission of `v0.2.0` +This is a new CRAN release, it's predecessor being `v0.1.0` which currently has a [failing R Check on CRAN](https://www.r-project.org/nosvn/R.check/r-devel-linux-x86_64-debian-clang/tidyCDISC-00check.html). This version fixes that (minor) bug. -* fixed a spelling error in the DESCRIPTION file's description field. +### R CMD Check +0 errors | 0 warnings | 1 note -* Ran both `spelling::spell_check_package()` & `usethis::use_spell_check()` to make sure there were no other spelling errors. - -#### R CMD Check -0 errors | 0 warnings | 2 notes - -The 2 `NOTE`s included: +The 1 `NOTE`s included: ``` checking CRAN incoming feasibility ... NOTE - Maintainer: 'Aaron Clark ' - - New submission checking package dependencies ... NOTE Imports includes 25 non-default packages. @@ -21,81 +14,14 @@ checking package dependencies ... NOTE them becoming unavailable. Move as many as possible to Suggests and use conditionally. ``` +#### Test Environments -Notice that `NOTE` #2 existed in our initial submission attempt and we provided a justification of it's existence. - -## Re-submission 2022-08-29 (Morning) -This is a re-submission. In this version I have: - -* Explained acronyms in the description text such as 'ADaM' and 'CDISC', providing URL links. - -* Used `TRUE` & `FALSE` (instead of `T` & `F`) where needed (man/app_heatmap.Rd). - -* Added \value to .Rd files that were exported, explaining the results. Also decided to not export a few methods. - -* Added small executable examples to .Rd files of exported functions to illustrate use. - -* Suppressed some unneeded `print()`/`cat()` messages. - -* Incorporated immediate reverting to old options using `on.exit()` after a function changed users settings with `options()` call. Note there is still one instance where we called `options()` without an immediate `on.exit()` but that code is in the context of a downloadable R script that never get's executed in the application. That is, the user can only download the R script and run it in an interactive R session. So, if they user doesn't want the `options()` line of code, no function is forcing them to do so. - -* Switched from using `installed.packages()` to `find.package()` as the prior can be slow on windows or some network-mounted file systems, especially when thousands of packages are installed. - -The tidyCDISC dev team chose to leave one piece of code AS-IS after receiving comments from the CRAN team. Specifically: -``` -Please do not install packages in your functions, examples or vignette. -This can make the functions,examples and cran-check very slow. -> -R/mod_tableGen.R -``` - -We left one instance of `install.packages()` AS-IS because that code is solely included in a function that organizes code into a downloadable R script. Thus, the code never get's executed in the application - the user will have to first download the R script from the application (in their browser) and pull it open in an interactive R session in order to run. So it should never bog down functions, examples, and CRAN-checks. If the user doesn't want to run the `install.packages()` line of code, no function is forcing them to do so. However, our app user base is predominantly SAS-programmers with limited R experience, so our goal for the R script is to reproduce outputs delivered in the app with 100% automation & no manual intervention. - -#### R CMD Check -0 errors | 0 warnings | 2 notes - -The 2 `NOTE`s included: -``` -checking CRAN incoming feasibility ... NOTE - Maintainer: 'Aaron Clark ' - - New submission - -checking package dependencies ... NOTE - Imports includes 25 non-default packages. - Importing from so many packages makes the package vulnerable to any of - them becoming unavailable. Move as many as possible to Suggests and - use conditionally. -``` - -Notice that `NOTE` #2 existed in our initial submission attempt and we provided a justification of it's existence. - -## Initial Submission 2022-08-05 -This is the first ever CRAN submission of `tidyCDISC`- a large, multifaceted shiny application designed using the `golem` framework. - -The application can perform many typical pharma-industry tasks in the clinical reporting pipeline. As such, many tasks require much documentation (aka vignettes), especially considering our users are primarily SAS programmers who are tentative around the validation of R outputs. To counter act that, we've added ~11 vignettes for users (& developer on-boarding) which take ~3 minutes of compute time to build. These vignettes include lots of `GIF`s and `PNG`s, bloating the installed package size so we've chosen to put nearly the entire `vignettes/` folder in the `.Rbuildignore`. However, our `README` is comprehensive, with lots of links to the vignettes hosted on our `pkgdown` site [here](https://biogen-inc.github.io/tidyCDISC/). - -#### R CMD check results -0 errors | 0 warnings | 2 notes - -The 2 `NOTE`s included: -``` -checking CRAN incoming feasibility ... NOTE - Maintainer: 'Aaron Clark ' - - New submission - -checking package dependencies ... NOTE - Imports includes 25 non-default packages. - Importing from so many packages makes the package vulnerable to any of - them becoming unavailable. Move as many as possible to Suggests and - use conditionally. -``` - -To address `NOTE` #2: `tidyCDISC` is (nearly) a "one stop shop" application for clinical reporting in the pharmaceutical space. As such, it leverages many modules to perform many tasks. Many tasks require many packages. While preparing for CRAN submission, we've surgically paired down the dependency list from 35 packages to 25 that (I feel) are necessary. And those that remain are primarily "mainstream" packages, meaning they are maintained by reputable & well known authors & dev teams in the R community. - +* Github action performing linux check with old, current, and devel release of R +* Github action performing windows and macOS check with current R release +* Local windows `devtools::check()` +* RHub Check - -#### Downstream dependencies +### Downstream dependencies There are none. diff --git a/dev/02_dev.R b/dev/02_dev.R index 3fecaeab..c3aa5e68 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -251,11 +251,13 @@ rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran")) # , "--no-build-vigne # Check content # remotes::install_github("ThinkR-open/checkhelper") tags <- checkhelper::find_missing_tags() - # Ignore these objects... we are merely just trying to create help docs, + # Ignore below objects... we are merely just trying to create help docs, # so @export should not be used, yet Rd's are needed. - # Ref: https://stackoverflow.com/questions/26697727/what-does-error-in-namespaceexportns-exports-undefined-exports-mean + # Ref: https://stackoverflow.com/questions/26697727/what-does-error-in-namespaceexportns-exports-undefined-exports-mean # Doc available but need to choose between `@export` or `@noRd`: # example_dat1, example_dat2, adsl, adlbc, advs, adae, adtte + # if you do include it, you'll get this during r-cmd-check: + # https://github.com/Biogen-Inc/tidyCDISC/actions/runs/4067293486/jobs/7004470694#step:6:69 View(tags) # Check spelling From f3ec3434c5b6db02b4f5d9c36a5fc0f5ba574c17 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Thu, 2 Feb 2023 15:20:58 -0500 Subject: [PATCH 83/92] remove extra pngs in /man/figures that were not needed --- R/mod_tableGen_fct_methods.R | 26 ++++++++++-------- data-raw/examples_data.R | 1 + dev/02_dev.R | 3 +- man/app_methods.Rd | 24 ++++++++-------- .../demo_tidyCDISC_button_dark2lite.png | Bin 5970 -> 0 bytes .../demo_tidyCDISC_button_dark2lite_aura.PNG | Bin 34700 -> 0 bytes .../demo_tidyCDISC_button_lite2dark_aura.PNG | Bin 35690 -> 0 bytes ...idyCDISC_button_lite2dark_aura_cropped.png | Bin 35537 -> 0 bytes .../demo_tidyCDISC_button_solid_blue.png | Bin 5737 -> 0 bytes .../demo_tidyCDISC_button_solid_blue_aura.PNG | Bin 31861 -> 0 bytes 10 files changed, 30 insertions(+), 24 deletions(-) delete mode 100644 man/figures/demo_tidyCDISC_button_dark2lite.png delete mode 100644 man/figures/demo_tidyCDISC_button_dark2lite_aura.PNG delete mode 100644 man/figures/demo_tidyCDISC_button_lite2dark_aura.PNG delete mode 100644 man/figures/demo_tidyCDISC_button_lite2dark_aura_cropped.png delete mode 100644 man/figures/demo_tidyCDISC_button_solid_blue.png delete mode 100644 man/figures/demo_tidyCDISC_button_solid_blue_aura.PNG diff --git a/R/mod_tableGen_fct_methods.R b/R/mod_tableGen_fct_methods.R index 9e5a83d3..706ca76c 100644 --- a/R/mod_tableGen_fct_methods.R +++ b/R/mod_tableGen_fct_methods.R @@ -21,28 +21,30 @@ #' @export #' @keywords tabGen_repro #' -#' @examples -#' data(example_dat1, package = "tidyCDISC") +#' @examples +#' if(interactive()){ +#' data(example_dat1, package = "tidyCDISC") #' -#' # Create non-missing table section -#' app_methods("NON_MISSING", -#' structure("USUBJID", class = c("character", "ADSL")), NA, -#' "TRT01P", example_dat1$AE, example_dat1$totals) +#' # Create non-missing table section +#' app_methods("NON_MISSING", +#' structure("USUBJID", class = c("character", "ADSL")), NA, +#' "TRT01P", example_dat1$AE, example_dat1$totals) #' -#' # Create ANOVA table section -#' app_methods("ANOVA", +#' # Create ANOVA table section +#' app_methods("ANOVA", #' structure("TEMP", class = c("character", "BDS")), "Week 2", #' "TRT01P", example_dat1$BDS, example_dat1$totals) #' -#' # Create change table section -#' app_methods("CHG", +#' # Create change table section +#' app_methods("CHG", #' structure("WEIGHT", class = c("character", "BDS")), "Week 12", #' "TRT01P", example_dat1$BDS, example_dat1$totals) #' -#' # Create mean table section -#' app_methods("MEAN", +#' # Create mean table section +#' app_methods("MEAN", #' structure("PULSE", class = c("character", "BDS")), "Baseline", #' "TRT01P", example_dat1$BDS, example_dat1$totals) +#' } app_methods <- function(agg, column, week, group, data, totals, filter = NA) { # informative error in case the selected variable doesn't exist in data # if no data in the source, do not run the pmap, just show this msg: diff --git a/data-raw/examples_data.R b/data-raw/examples_data.R index 40c43fa7..83c3bf51 100644 --- a/data-raw/examples_data.R +++ b/data-raw/examples_data.R @@ -51,6 +51,7 @@ col_total <- total_df$n_tot example_dat1 <- list(AE = ae_data, BDS = bds_data, totals = total_df) +# rm(list=setdiff(ls(), "example_dat1")) usethis::use_data(example_dat1) tg_table <- purrr::pmap(list( diff --git a/dev/02_dev.R b/dev/02_dev.R index c3aa5e68..dc417a36 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -246,7 +246,8 @@ attachment::att_amend_desc(pkg_ignore = pkgbuild::build() pkgbuild::build(vignettes = FALSE) # check build size quickly devtools::check() -rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran")) # , "--no-build-vignettes" +# rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran")) # , "--no-build-vignettes" +rcmdcheck::rcmdcheck(args = c("--as-cran")) # Check content # remotes::install_github("ThinkR-open/checkhelper") diff --git a/man/app_methods.Rd b/man/app_methods.Rd index fde9627d..9b060c49 100644 --- a/man/app_methods.Rd +++ b/man/app_methods.Rd @@ -39,27 +39,29 @@ and use the metadata associated with each column block for the function's arguments } \examples{ -data(example_dat1, package = "tidyCDISC") +if(interactive()){ + data(example_dat1, package = "tidyCDISC") -# Create non-missing table section -app_methods("NON_MISSING", - structure("USUBJID", class = c("character", "ADSL")), NA, - "TRT01P", example_dat1$AE, example_dat1$totals) + # Create non-missing table section + app_methods("NON_MISSING", + structure("USUBJID", class = c("character", "ADSL")), NA, + "TRT01P", example_dat1$AE, example_dat1$totals) -# Create ANOVA table section -app_methods("ANOVA", + # Create ANOVA table section + app_methods("ANOVA", structure("TEMP", class = c("character", "BDS")), "Week 2", "TRT01P", example_dat1$BDS, example_dat1$totals) -# Create change table section -app_methods("CHG", + # Create change table section + app_methods("CHG", structure("WEIGHT", class = c("character", "BDS")), "Week 12", "TRT01P", example_dat1$BDS, example_dat1$totals) -# Create mean table section -app_methods("MEAN", + # Create mean table section + app_methods("MEAN", structure("PULSE", class = c("character", "BDS")), "Baseline", "TRT01P", example_dat1$BDS, example_dat1$totals) } +} \concept{tableGen Functions} \keyword{tabGen_repro} diff --git a/man/figures/demo_tidyCDISC_button_dark2lite.png b/man/figures/demo_tidyCDISC_button_dark2lite.png deleted file mode 100644 index e2a15aebcf2a1f3595a02b563e6e3f67878c01bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5970 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%0Dw9o) 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 diff --git a/man/figures/demo_tidyCDISC_button_lite2dark_aura_cropped.png b/man/figures/demo_tidyCDISC_button_lite2dark_aura_cropped.png deleted file mode 100644 index 457c0c9c1ce4ca676fca3e111b4fcfc05d0e125e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35537 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 bTE_neJPrP;?o^S{00000NkvXXu0mjf!0$sa diff --git a/man/figures/demo_tidyCDISC_button_solid_blue_aura.PNG b/man/figures/demo_tidyCDISC_button_solid_blue_aura.PNG deleted file mode 100644 index 92521621109369a727885175cdbecf0036690e61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31861 zcmXV1c|4Tg+a^iK5+T`2ma>+j>?up4gsfvzp%UUcS&`Vz|aYMMcG={Z!q6ii&y{c)xw| z0`SvM|2`V{MeS>#^_Z%xpZ72D;k>ijb2TceiUh_ZTUy{Vz4ucyUn(l*wzC&?r`LA} zDk>O*wz}G@0ILlI-Df_doz5pL*N61gT_3N0-{gX-5d>|t>RE#>3SIg8<@zmyd~v>W zPf2_RPp`inqL+PoQS##BN6kW?KA#@{hKfRW8)ko^w!yQ+nZu0o76-~kAHugE(vJxA zqI=34*-3aR#1`{OB%a8pPoTZPICA#!ifBBMC)kQ0(L5QJ(0ZyanDkVUt)@mO-Y!os z4neD_*vxjDEk=DZ23alq2A`lJ4(4RtpwjsQJnN#>I+og=q@0UIUrv3P^i*i5|6QqM z%+26`+7(sTS6xh7&qnjQ?(U(*`!{bO20{BsuQeH%Q$6UWt(*A5T%KMG0xI-yMw=~KXF**v{awUhEZWOflln(M6BLI) zeEMP2^6CQTpiy)39bjy8>S8scmNh5t)-jobgV&&nD!4v}M09NHxmpI(p|cqv%|KvC z1@lkH>UWJQ2Ps&yxhs*h?k2YMV~7R;AUn*d#W?z6BctXu*UPPAYzO4mI>0D{mn5F{ zG=~qjCg&C-)f0eh7`LpwG_k23YFqQrZ#Cu)_Wy~%PT;vBY1Q;iHw#+A>%@@`>z+=* zSI<_QnucR4*8AP+>U^z4giF}nGFLj@lU*@u@P~~k`j$l3kWI_fC5f*R5`S+dJkCY7k($;4gX)cp#z0r&7^Y zwn(C6*UZ%8cf{zX5)gUN@asD4#ChPEB7RN@4citM+ZM|UsWv!TaVcPuV4J`xKBT$P z1!Hl^k}=N6(Ev@X`C~6`j4^@WU~c*n$Vy%$t*^eRpqXhngzg@YyZ`2~k^O$DFZr+ygj%!YCX-zI2MYf({jxiODqb@eo zu-VbGl^tzedvn?J*yJq8w$~ZhiFdE46~j2eWNwLCC5cCp617z}+77nexMwGn769o( zPDl$6*%JPx7T3?MYXz;YrBS1V`{{INH3SPtURKPC7PArUZ+%f8Nt+l&n;S`65hWZJ zDQwIsv0uE50S2%~ekL%RVzeVhWg!Szetpv+%dJZ z_h&^;y4d=g*zR0IUh}dIx%CX2`3@>2|^A1jat1$&vDu6eDlKO#r%jnUM_JDkfgx$jC{CSCl@2n4FQ zR*{-ZgnTiH>u*{3IUN`nU&gVx&qd@2>s&Tv3o=!URu??xF&6J>UQ6m2e`ri+hIwUL zY6J^*lI2Badf7Jq7nh}GIftTR1_R^yxrq0)oQ&#>jCM9O2w@rj!amdP7-`qdVA9Lz9bm@NW&JMPOE6f39bxdxilBiNyo*g&iS*M4#g6ZdW%5^ zdEfM$764-);hMJoIu-u?<7&p@)WxNZC+Dp5f|;DF`R_akNVl%M2r~Tl@AWeR;Zba> z$Uy50&1(ewIf0AKba5;q0^SmLf~jbD=9)#Rbgo7Uo14vKP6T}e#(ie9ZzNmt;#1hD zSX}v=nv;ra^f1Ytow0Fy>vFT_&eZ~UO!8ZJ@$|sp_*=r@nr#hRb|+hS_Jy;oQV9sj zy@kEqr}{_j8ezH>Mr02Y*3&m#5G(P1)tz-lzEPw_F`KbC06&NM^=q5e1LK<3s$r$& zjVF_nmtY%CJBUE4JCOXA&kppU;eYM7B)~OozzmMI?7wY9^=w6_=^|OK@w}A7zGYGu zC{aldV*;mMF+=9lNVrIrynfZe13;<(*-*@2EUnZygPi;nSsK_pu5SGxthBghX43qU zJ7U+Lch7v_^Orkmcha*YY~3=6{E_Yb;GehL!zJ9ql?e`JN7_zdHZ&b{NlbTm0_3g- z4<3AR3LDt$&PTS}(-$Kj>vNpOs0&I)Em;{MGv~K<-j50!w_R=IKL~PhyM0R>GUrxb ze)x7@&DL}4j+R;L*nOP5Pe(r(dCA@9id+RJ*hhlUegG#$w9zFnl_-5ZoO7i1w2jH# z%O`7hCXcosx)Y zoXcW50OQb_IvxEYK&o7AMb&LZ*|6-M5!Bd66>8^uE+S|v7XYF#ZfeuQ7An+fC0bI( z&D)!1JUPKQCBZpt<)RDA*r z+wrZR9f8XGji1S#!!36~4)D1v;DxuU-Evg!-qWSFE zKMITJI7M11GG(Hv>7TgP<(hBj=9)SeRytbqerl50 z9p~)%GF^|#H?egZn9-%)?Wa1yo$ZQT7^mDmL7f_E5T^Q9?)r}_^-K-`h%YqhvE`_% zbi)KI^Jz;S-5M5KPJyV#sta>eQ6}})3=GQ-zKWTiiuW-Q~QMEHLrfIAgR$5_n zaRv&c@eYb=`9`FCA6t!q-}rY60%49r?hU8hU&8qcb{D;$OjJBqEiczIneueWHHR^U zWbvv5!hH7e_S!wknH(&?dO0?S&a_NIBCV&@C$q)%yv65ar}Sfu zQ)Q;Bo2P!u)TF1IitjmJI-6`;6@&C%30rYp$j6@cer9Z|NMEZ+7UD`Mnb1wU+YbFo zBkd>d&k2)z=rK5HQ=?WEMq+Oh`S|?SSyl`5tWx(F#3g={?EvdTFEN`LHcHho&NSy1 zSE}4RCJd^2Tk8D#S@tM4H+($EDsnEvD?RPX@_ijF!yn5$wu&m6YGh0$QhQf49B~Kw zcq68UdM=VVlcS!=oTpE&Yg^qD-X)r$_c-UfLFKpbA^ePu^6hqfMRHmTcSj z6_6K9*)A6)`%!ylOuZCtOm?Kr5rK#YfDSQS4G$Vj(xFt_pIUjH=|Lhm*|RQwms74N zgnZn+B|4C8D((03)!JDB$+=YdrnKtB?1kq4c6%qRNE=77QifGIN2Zokb+@3e$dB+?sF#& zK}BxY1Bwo*$TD<}4xTg((Ot4(uS2~=^ z_o_{!VQZ>RvDOdlME@OZ7_}Vt+vnK`8ynHt?5ogLLX5;sKbr!gBXcYR=6fHe%j5Bc zdX@Gnd_+`62WI@JdHDI}NEWc<6l6nhII!fkuyXF2Y^=Gx8|!8zCD}Pw`evZ?o}dq% z)u!@o$g+~Kd*th-*Q|=t#zU9nkm1GsV9vwBMgJAK95zfUuS^_XRo3S zHv@gVG&g6|`V40r`vRX~8HRuS(Iyb+R$7=Z?Zw!@mqbTi)F{*M;sd@$R2qy^kqx|z zSIuNl^a~o28|&&>3%9rl2XTn`LAbnm*`t_kyCJzRQY-wi-5c7mkGX zV#w?nqW;ia0=PP7zEm*#m9f{nrvh15I#{cd%_%>NZr=ogaPb*nSAwHC z8vHN7(f;w2Bnrpo3;P)wTeny-EkW?^lh{_~KE1a&*HvS{;b_A(v&Z9)ega_>(p%Cr zM)y?-&B)(X6fM>w6+MrMopGqG~iKf{OvnK%n#+aX)z zO%^OOQO+z_=FkBZ8OCvAv$?6Nu1Vu)d-Q3(SMvgz!Bj;|A}#E9;GA1{DOXMEoxcxy zR4o4)lPBB1&l!=$0=|TsbaQbu$k`fi)<99R*2;+@ke#Pybi=Al$DK53%acu7rleH#HYeSS zrj0gBQ_=pHk=d0edl=)pQCOG-< z@m$;mptClS)zWI$m!1kGU+B${L4Mu|WOAQ5thaHy0B=mgJe!GAu_RXq6^5gLbQI%D z=k!5g9IzxJ#>mIy^a?;$UK^F4?@C#XKDOF9E4ppbxr&~{YM+5s_BkQQ?$w$x;bD>S z+QYxbYeAzX-*ij>;BLPwqb_?46i28+1|?{c0gagwava)?A;r;%KV&z!YE2Dkyb|+I z&s618x>kh{e6sW(ZX|eqgUr&ZL!!AFkh1 zY5~#x1dgrB4{!xRwyLirni$v?Slr0i4G6zt1E-M9nkjGsIf&>B* zLcOdl?4I#T_5zX%g+v%))u^GHV7o`zKp>9!Wp)&U@nU819U04@3}#%9MP$E2S$7^# z4^R>`%x!4$T}=#;F-(%PadSHR*T{06BwNhj^sP(1-ERl1v!+x?9?z+)POJ`$cPC$d z#~b|%Oh$#HEMeJm+xY(T*6KvDfc01>d|9@uCb2K&8CIsq)gczKk>1LDagPQCUjPJT zhM{PEG&`-Hf$#osK_NZRB4uM<;l+GK-aI#WZk2_Vn^)vGZ+Hi`RkyS6=joE1bu;PW z?~l1i*m*gKhm~mhXH<3b*hP_GaTuUuRy-f>cNec3k&QPSZConUWEZuwP0Y17Hy{b;W$eeWbT81ZLr# zT6Z zpns0z4U!7Arx`zMgW|%Zc^j!Lb6WgQUE|$uCWTz;jS)oh{=_zn!aR+SboaypIRIjU zw_TD4*kBVxOd-B(X3K|SM>pm&=HD0DhX5MqYw#yFMMbI({#!_RqKLmV7!zwy1gd~& ztX+&3G?1PwSfM{Fxs~bij!<86E!RW#8cF`firmn)ADJ8~Fhh zp#MN0mR28&d0MCyZO zm|07qKgo(Xi9tOkitQ@ZadDslAE_Kmx7ah6MEC%45Q>krpeNLr+qXRCJtjuEQ> zevcOy${2LUyeeA62NmfteaB)(;v_K6l4xgoWxZuFA8}ufx|CWGQFtv^Emw`SV56z! z-iSocchRc4FB+du)rE$9k?AE2sag!ZY8t+y%Xi_Sse7gWN(q=%vj>1}atR+;pDCUG zqZ?S4_gCyDM0z*Z$AomJt}q7IgF75J_@g+&Rx|X8`xU`mi@+>?^5sz`pgg*3VqkIq zFLnd#BmVR%&(|)-N)$~MP)eluT7L8rEiWs;>$n25+cC`;WH5C_tL{D*Q3( znUPDMT752KKaVO&iG_#;2* zw1mFSYw~&LPB>%!-7x)-7P)k7Q{Kf_ZvEUNx3?TkDUB%@IXYv&Rn=r^A$r&vHs*#? zS2i$|p9O&_ipILVJvixZt|X|{c$trhbwM{K8cXf_1K45Qy0;vSIDXVYy0uA{N7vn6 z#%|wH#{S&^1@sG(3TJIT(EwMj{4yQV#oCer%6lo?MLv^C-PJ}#J-Gb(FIlx=A>z_+ zp$*13Y2(n~pGm{$W*6WjJy?MAP{US!Wt;7F|0GQ6W{5OY*bixy+cqeuMz;-2B8F^5u?k@4cD;(j&L z@ea3vHsd4y=DDZ1m*j;;o4wox#*w0UL;mcHo^Hvx{HOU$HWd>_rp#tA;{No==jwez zfmcVlzgh>$u{_rVXf#zq1Lw>6lt9_eICPp~JwzH(k}lVSSNe zOmXW#Ycy~_**|jNq5}HzkvZ3^BQfaI1Rz=FTwb*0I{zA>QPcW2jfme7Auf&Fb$O|I z-`10rT!W2t$ZI#mAs&z8qA`kiD<{BQhf?j%RRYB?0E)hj{}zJ-uLtUEKAf*VpYW(T z#mcPc<|gag-H>|gAT8D@N67g)@L!F0*}}fFNyS~VftYs8Pmiyg8tt4s*0u3^^R;xD zE7+&`2`vi^7bQ?{2cBf*$w4xXFniTf-}j7m8;b|v4I2x?3VT0^${sE%dc<0$*vyh% z^7qm26W?*)=glZn$H@&n7j26&p;~G<~{r3ewTQ@620VK`MH&i0J@i zLLdPbjH|Z}2dbb@Hn$hN!vYsqJs;axP#QflaqI_`KGWcCoD}M&OQl2hSW`yG_nc_=bGbYb!Hi6b!K8!bjW7mhheP5UYjve?|R0N>=*(@|&Bp9m>bVOI94R{BqeG5P&Y8lo(~5 zH5WS+`=l;PrCMr7P-pWZs|7VD5ZqH{lWZ|Som7`Ui#rs5MfV)!%sxuBaJ`)YCDu7M zzokCA!6Q97e!{1&JgqR&p_&8LC@k1lsylQH9CZN$JCS1;8v<%y7NnL1oMk@UDIfj-I>*(nyq+(2*mevznY zPnN;^TBlS$z=2X{kNnIW$9Wt^FE2WdCPB_F08ej@sE(+OJQ>j#(HhYn>2-UIlMshs zX3JQH9VNTn#))Zo^iXwiVLjT71>}N#3J{VTUA23?GQYolMi*6PFt9eZojSJ>?0=eC zbHB)5p5EXT7vn4vR!`JyO65SIqv;@L7o%)1MfIiiALy%A;XMVu4^!%kX2`c-t(s)fAJV6+ek4YrKegDV~_E|q1kJsbB#{0;8;-zgX2j2fz_NyH0w0oWlRO z3}B+EoLCSKeQc@{iwFWT@=E=C;rHU*Y(-aTSEN)ov~Ef`aKz6tS*vthc;5*P76*@2 zx0yMjcU45e$}dI0h%XWqTz|(3FZB4WCk9!eh-q_M{}lQ6qA4S1H?rn0P4unHgO5Ju zFX!$C)fGy1pUESv7!9tC_1_3KCj_wu+Ktn9!-FPeU`d|184v{*WLC6jE8n0&qvu=s z<-^(i`S_z?4TQ#TqdI5FZlFBlqh$!7Cv6xL#3(8^!8luSu<|WwFoG&2i2H1Xq6M!} z%tce47y_G;%G(Pj@GVJ?|8BuwTI)OO`wpk#3C)Ki;XSekx zdJiwe84ZlgR&-&+Yy@;{5m+NM`=d5axox4EI> z;r40s!KgAj>B-V6;eexaG_bKZu-8&&m-vip5^JR=nh$G)te36O09!8Jf9w5zW3t#P zet->n&xZvxjQt~AvEK6P26$u4h)@Hf^lsJ)wsjACTBgnS`mLXY$@{JEZK&^QT8&C^E!ZLO#VIDv464aY!3jS zYY7POd^Kp?F~B0`uMDgdL^6F(dWI@%GURJ2xYYmW z#|zN9l9$v0c&G9rEM~f@ow)==z3qj~Y>mHAF(u#%`3@B6Q7?Gig))9Dqg2-H$IWlz zRDUUlGH79iiWk>B#;omeyt{w#zhd3~jyix&n~i5v-Zg+XWGlu~7jFREqfjP#B|0D6 z1WQBKU)mfqG=!?1O;E#z#x#}nZa%zWY55+73nB|O{2i+R6y(52pKyj9k1sR1yWjjb z4pvi7z?Vnl(Q?;urXGi z&f5XlZ9yFEnk2xiJDC!*)$33EYTO1u@ljZR`I#B#C>?@NLo8<12bRN%p3RW4>kI<{ zHsL$g3@El9=)Flrp=8^N^8K{&Qfuz~ko|lA3(WG%j9tO~Qa6-W@RNvNsf&tn7<>6_ zoO6`n5V6W_+{&0>MYJL`ACA;>nzBS7Q+~zE1EF@2qH)?HVC7~BpkTOI09lJd4w7w) z>IaT{Kckj^g0ztN{_ANwv=s^I*NZpg&BrEpo|!>b;v6^(0+;<3ZOO@^9R!NaspXrRg%LtCO%D?rO9**w=QDl(TN56SIV6}W2 zIM9~yq_yB(6=^U!q69?xf%WI+hZ9KUhmL#96%dKGVyti4JWU7ysMz{Tq20q6Yl2%s z!;>29n|!6vsk?$+s^a8d?Bo+2_NCvQWuHXLRiBlqI4Mqqq+uK}^CrFKH#@r$Z|wm< zdGa4nq&lNAOMAC~6u831g28BBYdnw*MGKA&E7fKhI}}cV9Ss1DGX7@a6~RTXZOSp= zyhf7aUK53*f^^3syXp9062zKqpTsD0xUsU7hx*oY=+z{23iU|VJze4USx}B%vLblDOa;8YK7kt3V`~RcKHWm% zqfKSpjCE&BAG)bO`#k`!roEy@!CmFYohOCnohM@sNq?!2=x1QhR1OA&0wH8ca#u=I z+D&HO+tyciA!fequMdLGcp>)EOCNgd(-5p+MXE{*oC3`RgGIo#U2!<+PPewn!uB!) z>6>806%I7OTf5G8ke!oy%lA>(?bP`<9np?^D#E*239NyO`bpygMcc?OxA)@$DJ<5! z(x(~TC7%zbelNwLt*?^M!1n|^H9F##8LF|;ooSc>&$Pu->_jj)ny>$FnjK1UrNAl$ zd$*$2hiumwGkCa;=$HYx=N}5_+Q!thxA4V^D#yLJgIFwz#ja_dHOYj;kpWKV5@&a7 zfI;ZWrzNYbuSp9u+<7rmyKXAK`~|mEg|@azQw;SOa6B#3(hs}qyG%!(6!+?J99Nd$ z`ISKMxKZ9ywIg5tk;P$Q)ZTH^YDs!BKKn@RSaxl3)TDL&gWHyt)T}hf`ZV?f)bo9V z^1Um3ijOY`9e#v3EVMg2uB+Mz48?a2sQuboy_vD!WJV_7U3~uCrbLo{r{}rNB%{`6 zjd{#`p-mqeHma|GF#~p;zwpkDick1q3y$(fwaF_>-#hWE^j|*f{Bb zWxP)?8itN%Bpg{ao^^J%i-PB3X@KO>4><;i1HylNyi?>~k%nmkbb4ZHx-xZM8s=&& zaQToZvlENc$gWezTaQ0|J*)9;X1TUna}SjuVlAm>y#t!?-)roqEK2$ks+AqvJv;kO z8>E~OcNIcJLaTUpetzCvJ;iUNS(OfaRkpTrt-=%I`qNS%4bLu+}~Dk=XSV7(a7IQxRZO}r#h6{w<3 zR+r#ycm;}ZY6lkDtMsswSiXo)1(uxy08mSLV%Ux)lGG?HR!xD>1anW{dyY4 zJR#TV*P&NWL7^4MT<$oNU8FZs@50w83*BGE(mg$j*5VPnwV0bun!51rozSw6r#;x& zQc;}{$4>P}9rkYFyvHA^y71x-NuzSfOCce48_vc7Gja_ll7Y_?iZ}NjSwZ(~_kZ!% zUX|?}y+gP3tB*^xml=(-AhrJvk&8z3ZRi`~vmxuJ7IqEFe?z$M6UIJm`!?|&|0_8# zNxeG1;7mwCq5R{&0!?hqr$L1;;o3)Yj}GElnhJ5wdeFB(11E0TMdhUfLZQ*_x#U^E z+~8F@qK18Dua(wbMmKC|2Q>8Exz97!T6b)2)7fykd@OOtyK)})FXTke^gVHJzI-&L~W+8F++ITP2 z*)m65HJMR!1i#xE*o?uf(o|NQrNF2j-O++^`E>Q{vw1mUWnT9$yA* zj1W~-PogZ5>>j+NZcDECWHq&R-+b)ZY?$>*d~SFD_*^jtTiBa^oR+Mix(%22g&z5S zeJLk9^XX3^uV^s=Y#%WlHA7L&FgyJ*w1{xVcO6R+qFJ`qJp(CJw6pHjsbC0J!wULoCyIo)Y+W*=*TQ$;rtj~2)*qSVk|bFao_oUFgN}<85(>SPtc)j5hJs95LSCr5utHbAaGB4a z;tjL-4A*yAdDIw+2|gH!?TuiEuPKd*(E%+>;%nF(1uag~AS1Kg&d~2K32;YVP)+t- z4Uz1???(hs#1p08S?zz2dF831rdKf`IfU&hb_LJN_oIXBKk(oE!k;x?y;e~-^9|J7 zB0Ae{y&ZAeXRD=2FT}aFpPS<_B(5iS-IJ|7#EkXuRp20Zz%Lz2w;7$Mr0V1&Upu3T zRg-}a-X!^)c}M)UOBGzfXEdnJiQy}I%C5+3-@!~5SkVR;z@3P8>XjHi z_7y-wcY*$LOMF*Quf0(D;rOuK>HG_=9!t?vbthb1LPHR)U*_-U-%B-lp|?V>?KAE# zy*TXU0?TWupeT}+#2HA}DG z-|jVp_TL zJ%8_o@x;D@*_$jzhse@_6pk8~Wqv3nI=GGge97zcL&3+i^^^m?v%)~Q%(e%->r9(!1&PSN3tIqym)0*|S#lLZmTTC@F z;^LIvNa@j2kN))A!)3E3#>`x|yQ=%k6`w92?#wR5aPLTuZjCAXU{RVP;_@4*_Gg<3 z4S_F)6^EjWMuZb;1#xg~dmLYXH=E+;lrsZ*P(Bc6SzuLwjcXYFt#Ua5uDTMlSC5@w z-!eTHj@_D@-q-tw#6ljv65&5p&Ilf8AUtHlM)&M^}gS9!rr`jW@?n zh>AYgXb;C?Te@Dz`%|Ma9&pB`iM+*`>BP;IM9cD&8z6*8@iF1ze%~)>mt2J*8Jp@8eGf=$KMQ!RRvEQ-vq(D&VGk z(~t!yT^G6Oq__k*Do<}JW<_-F>@~1feRcBhOOwf-SDk+osfz)WjT_W=5171C$E>FX zYJ&YsYEV8_&Um=RJ#k-tS+j1he|G}9g(uVa>>ZQdr89<=EatJ`tGTRF+7i|ShM>d6 zR`AZ*gGb9siHM^H2)AS7GMY2j9 zp`&~|q3aeS@Z;dG+lEuv@y^q&5AJO3KCd#dEEz)5W2ZmloVu}b!#NFJrr9BXfdd4x z-?3^JO}Zf)cfay%c+7XsL&897WP8$$?32{?KZSCKa0wNHXNHXLH{H+^TkhcfBA?A= z)x=TNx^FNtT~v=4dS1>r58FvVN5kAly+mf4j#8cd+noY%j%|@W3#u4R;?DThQ+`Rs z;K0|lx9Vl&Yb+|P_rD!dHaRHS*Qa119A*nTQ@w>DKJGr3qIdL87aYuj+Azr+To&Gs zPPQd#ze^~sy6u3(^BhO>tUO>By?aKP zZhahf`1Jv`RCn0flOif0sCs%*Pp-JZBhs1K;K_a$EB1=;y@gfLRmSz6>wVYi<1g2C z9U5YlH@f#^?4sh*u^!`Pb|_0|6L5+0of0**vw&?Uyz;Ua-C=wCHn~tT`vL6lF0Hz^mJyU4gcE> zm9`>%RPaG{$3$i=VXEhD6j2bp0ZDXkScxGQ%yacPQyPrNu7V>j%}649WhDcG#=e6+2~lb@{mCv0euY6QVLLk?-E@XOZ#u4XgK;{Ro9!1;cBhCIaQk zK9HUt&D%`9!*EaZW8~3596Mh3&r%eo3 zuV^E>Nn)?aKRKS?Qv3v3o<(I;@w2y>3D?0fqhX#9>;IpbiT}Q>;lJKzJ zGU2$AElj*oxZ-S4)1%IS%{}iw_q>zvP;a&H@kgGc@s57UPZE#Vtg)KQ*09Jss&T!r zI7v~)a&n5d?bb>>NY1xkZy-DcV>92{im^?yKmku8pa#{if48 z7`SkIRRx?VvO6FY8KYc6LtS3E&PdihUia5++GaI_9sgdDP)iLmT|It)AAk}aGP z)#=jEj9#4HnrHNx>8f(2JX(p~-x~CPkH2+yCi~zM;cWrov5$0s(n0&dfQWpNtV-QS z(ZQO6=_5mKNOrM~kiG5ztQqN7GbZnccUl zolp(_ef?Jo(R~%=NU#A^$J7=oCV|S<(M0N$e0($`iv(Ujje*Y%W`(l9`Z50CG;AwQ((Nb-w zEbImd*S~IC5o#L+Um^!TV67uh2|@@$GC^sZ&WVy25q_=d&DiEzzK9P|7ygj0S9N+x z3%pZxetuQ#l&1;Npm?w%b3FMGUvy7Zx=^4t3FezH{G@gE_LKKGAyu4{N!{t3qr+IK z>cz*iBCyk%dH>cNdzw5HTitT8Pm9`Y;=qQV6t0uGCywvZ%(hwG6l6dTAuYgjR6Xf) zR8-zobz@B7*CBcBoqpvaMfIldK+`w(pS{+OeL7`TK~A4x{{3xgU$4tt4%w`qhRoBG zI|e6yAAY34|5#ZMCH(>!@_(X1O&Ba&pN?0Ost4jo^V#)w@B;&vjXmZ|mW=|#IklS1 z`xE1>CsIP|Uf@~_rJ}8qjgbnIE;00#+do++Rvj|@Ph*I;t3(HWD6_tY{-IIjS7@wW zGR#t%zE%A~&r|g|zcCb)UAuaH;&pYH3}tOL?Q7wT=rFdr9X?qhz%9j=oz(f52>D>L zlp5SL=uJG9Ir@NRP7CC+GEiw8OK|9@2(kLsyE@x%4JGqawl?6zkQd>DgNX8<$HLvT zjE&%U{IfXBZe~OoEN}ktVz<6d6l0W!Tk&OiJ3aN_wO6+f`hTLVgP%yDch&ZtqCqgP z@O`Q;y;en`U*rGUJLC+OE}km`uZuaF@%faOUz|I4D^SNFF?gf4dz^Cp%qxij4)#|u zR(~CI16+GMR++WKifNs2|Je(H6Q=#mqk;Ej!8%Ex@Yn3Ep|jU&CA~X2)tbZZek~S= z>Q}j=a_5Hk`0`iAQ=_>w8EC7M%;K0=kG&{UvLtx6$ynl?^~7JHy5%pj4!`(jS!O9! zo7ciB!W88=>Q0IUSENO_c#&$o?Tu^ED-L!M*n#Inu7$?MlLSav?7fpMF7Er*tS@f8 z-j>{TF|#RBlQ~_{dqd&~dG2|79KVyRoEm!^vmKIn(Q!sY<;J#jb*zLpA%bZrwdg^Y zNL=~L!_1B}7S;7zTf_{N`L4m+L}MuHUl!>H62f`{5M+rA>6{GZoB({E^Y~R|6Qjfq z(}Y)p;jg~JrGI=0iAG=#7}U_&l~0UFC*YTZra!_@bXUrT^f&93WDiv+?oa=#0WoE8 zFFOt6yVvmZmEK3SDCKv*2Y4$^Z`9q|-yXiP|2th}o<&=9;*D+y_lYDoh63vzx-;_) zHDr0haFejE!YJC?SIc6BerfM}?)v7IteLQCZ@amnU8f=GBc&_np(<=vLG^{y^$V6M zH+Qc)O8AFvmFx9>YSno$e`&7Gp}%RWL(M)!jc^#^UgQvISMb#&pI_@E>x22(zehhW zYjl+HL9aj+!0HvKB&-Q;$#uWYlc)Fe1xVk?n(ohu5Hh2SX}-yeVVbSh1AcwJd9^uR zfbK3G@zRIchh56vTqj3g`x+M+Wwr?gOMikn)2s=#Udht|NMaT`N5VeATF)t-$*$?% zon7d>e4K$GG|Y8)-NC)EN8V6`-z@a| z>y&aKo!r{l7?!8<_^^HxI>WNrqLY)gtQc%gVpVwUW(ZMZd_w5xbDm=z{9AOW=Xzal z6THjgE611~zq>hcWu+@cdi=CPr_?jjv9{;YI3pb`Hi@@7M|aoO)hKuJ(F&&*2wnaml8^ zTIK1Tze--dy_>_Hsb9Ax(=FPCb=ugEmGQ{(L#a%O@+NjjXE( zd<;&yL#v|DUh4{!Cnk84i0X<)pa5gh@BtRkp($t*tc71|uAXHMXPLfwLR@Yx4O2Xq z*Tm7zdlhAy=x1|oFDUWUTxPvIuB-R3PaMJm(hZUOhw3hOvh*DQIh@i!lE=%eOjLL& z)tkXzp9mZmY}OaYTGSxBB7LLcgWrA*Z9X7R7=sB`1hEhA9q|kHzf@l&cBnQvt~yA$ z!7_Pt(!WM%ibltsn;z%APbhf5pn8DX7RD*f(8Mo%SnAc8eq#4fQ>pty;fWrCEx9$` zo7Xg?vuQEgt5Ut8laF4U6cA^zlxkdvE@)KR> zD;4K`l%BGmMP>b4(O+BqYk2?UD5Pg{)AORxkIdq`-qfbgdA-7Cr67Hd6XDA#30JN|7{ z>)1+fvh}3Z1u5XbU~3?)cU8N*=ihr_)(0~I7Q2jG&OtgcvB7`zBKM}to1f{CzLa3m zi~IoN5Vv++uQse)od_zNClg3%pI9`5MY?w51Whh%S@E4TNO?b*`zHOaU)dWp7tiz< z#dnpme|@(ZJJ3VmG5*9YDs@Ym^dLcZ(wBOFirKB}0py{%%7X=k3ESD(p5v9{9M~N& zUxu#*!uE#Xb+exM|i}f)gK&LSMK?O{_|kXdrXJ4=1_}yT5u5*|&Q{435g3 zOf`11PX@Rd8mvC2M4q0s!B1{)GbT#~_8*oXTlnYB9roNS0N=(rODstr|DLaos(AHc zejx9$mESc)dptz>{GVFU?l%?TjCn@jz+aMWs?sJQp&=QeF)7KSlQ+J#Fy&qeBk@^!mMVqAZJOdg|bZpm7XG*X<#LK@EV?y6zpIC5kDq0nbKzM1SHaEY_ zHS3k#-j4Ky9_O6A=)ZQDuj>YzQ~r=aPPhlr%^vKW=HL10Mah9Tg_ga=N(UKQwN2gM zV)W$?GK*Iw=})j$v^3U4#n_eG7BIIOUsKG*PPyC;X+OXJCqAk>f)4iB2~q!gH9L)~ z&hPhiO0`BAy#-h8o6^B*y2mC`sHjjL_NzR#zDyaxi$gNowfp!2%t~_MZl+d0){}PP zbuR{AtSBIQNJ16pHaaBs@!ostaP&-VP3Qf%*(3Zxoq8D`D_-T1leOF-0{6tw$L=Cb&r>Ev2AIw$h#+&T$&7DkWgO zeOO&s40oI>v3G~{nvhja3h0D;Czx15B2PWB(u8etj!x>DZ`xv8lhKV`9iI5Y-3gjn zcge!Ak&;9to5F8-)~Tv57B6&mAy|FpF`a=5T9l06=> zdAa<4Hc6{L(Vv{UaHH%XZ9QN<49cGIEqm&mowMFo>zy_qoh`odsJOg0+Prh7NP~BU zdt2r)c&^iAcmJW_c@BjH6R#-~m966l#}u4rqSy5B>(i){gUIQEy(A_UzeZ8iX9s>M zq1j=>{1}8Xhu18TvtuS2_{aPWq21x*;HKNZ=sH&c8U<1_{)vvno}$v_c)BL!c@^&oSvbq}c{>Q=h4~g~ zMA9h^5ffzN^X83R=_1MR==75t;v-v8h+VZq&i1Ue#Ye2(mH?+=)AiPfI0Pl|@nY%w z_c>7%N7d^lkox98@jxgphS*Xs+RtME<>B#68<`z@7*MW-zec8(9VhOke27{hdYLYC z-kmuqJWeKQ&%~ztDu%}eS3(Qhkc~wt7huGu!_aI$qm4DuXhHssPlJ#h& ziMe<==4>uAKg3s`Zr>g0GM0v&dx3N`Av3qjyBK$xa_)Vzl5Xk=3Lt*x;!$}39EczZ zHCvafodqU!f%`+*lK))@T!CiA9B-pPOL7q^;*Uu9>$~?Nya#{+QT5{IPpvC#5)WGi zA4ssh<5f7A;$-K>1h7Kq`Zs46xl$(BIa66WnLnM*RDRKIa=Z};?Q50seZ1EgGk-{8 z=3-!PUB_`-K`d-^=XRS*zk*ooLP?(j9Tu{6dYlvqCele`?_l~Ff|NsBZ zY_d}hGP6rj9JB}_RE}|S>|{h_AA1#wI2mP?@=9?y$2xKB5hs}$2iatt z=sE^*pIi!N)zXd?P=sr($$kn7F_IMGo)?38K?1DAIV>nHXqvI5uzB@78XXFNa% zOV51mIC^@;b+th%BRkMQ+)oSPyI$#X%JVh9NeJS<(I8gGQI0V}vwXO0km3Bh@%GOB zob;RLA9fUdFv(Ds5!60j@#G?`&$Ybx@4@j;$%h#uk5;RYiy(+)Q~RBCLR}mrE#3wQ z82o!*5WQ8tKZnSSCD>dI0*BkzKRD=}|4c+4(7QFd_~UiL8h+yD#_!$u6z2bmvLBg9 zm%&iN`~cFpvELOr7PY3w^o`Lznd=vS=BcljpV;mlhR2i|Fi$?UotkLWij0rM)6LR5 z(g(zN9yQZ$e5c(c2tiAw@+Q}}Fv?b`w7Q`B9-+sZIpO1lLMGXVD|0_v*81Kr-c8C8 zru&}s_XUc+etU2(K7bE;bguVAl{W4e-%Pl-uE=vJCsX&U*UUKY$!m{Z3}1Notja2M zx1(v3!zk>!;cs-J`hAHV^X4}5h1h7Jjk&g)E$+f2>!+s|IOg;uN?auuH?JFT^rm(~n;sS5EZGypjyHzYZ&k*b zxV2{PFW;};T8^(Yxgfl6GNSRoym!)BbcWn9C{So~e@Tzh9p9PDw5_&+T1W`_sNfb> zo~M~1?Y{^1Yp-Pd)1cCXLW&fs(#9eS4y*gj}^Tt9n*ID%)GxcN9)!0Oakhnwq#?-8G=VuE|$t(sd$z3PC zUn9m2S5>Q@UzxcO?tXm^9X>AKp6d%QTgEPp^mO`h%w!5FJqpV%){*pDX_hJGw>&E} z9XYOgW1Ypi4TQ<>U{UYRYsB~SX~?;~`-y=d=FfB8G-YLMt(nef2Cm8dWF zvh{y5{l`t;K!c=dL}lUlweQFJBTxGHl1+5VG*m8td49)<2sen?0K^J6jVgc(meq;11{3IT#y1`9SMvY`k%~#VgIrt33J7 z!d|SCTFrJMeFkF*>(p7?89E%pjf@-+9(cLt3BLxz@sp{PM#nfk($u6FGGt|(e(u9s z&8mp{wcJtUJK;@mP?!VhPCr}SFv8($M!tAMuY&N4fUFm^IvU%)qr_LHV9sw*ZwZ|7Yn@&Ix`b5r z+448wTlt2ZYxc!<5;(j#yV;@1rktXACgpf+{5!`3g+GrdL8t&W1*@5i#wpl0*7mCs zCVlZ8LI&DDP$AFnZs0dbJwa1};B42=XRYpK!*5luDV$e?u{M*^BO}S9x-0B{$HgRI@|f>Y?6cPS=|g$xOM-noEt7#;goW zJ)Aj*df}pCf3=*Hf;?L_eb&3>J1yrzZmY(Zj1p z?=#UAEyg|_F~c_+%%i-^VSox`4H~&kh~u45;0c&eYORo?qlByuE`YdVQs$pu@{%H z&#p3YWGT$4RT|-4ANj1u;X(?~Mv@z&{;xxJ8qYY92OMD8$Hca>!!Kv!Zd^_X5SV)G z4B4e*@gK4WQGVZas++@oQcU-)4s5^SldLK1c&r>L1jp;EyX9*>`0r`n@vH2zws+Rr zA#OQN^Y0xA!cUP!3cKay&WBG$UN0m_wlR4Tcm>%}=BZpF)?a+H{bXR|ud1UzfYH&G z%KpE~+R*UgEr+(t#^kl61c&FbC3)eWWzUDDy>$f)9!yvXjcB133o$J-* zT_G`4^njO8RmC4)(t8yroI8rE?ET^3H5P36`I`@GFWTg0JxLR;J~|-WqnzuYzlyC< z*dNU4`dL#s+*YTn8BsOVVdgW~`dQ@&V$roG54FuzaO_sMtgjntM|HF28Cl3bzwG~k zxXN7m)McY$Q>H%rRq=ii?;P3Ngm7usK=R^5uyL+%IF`IQUYRPhZ|1T7UM6ppoOyRw zlb2TH*reK{KP%^IpT{@&#xiP{Kr0_^kbcw`UELlF7g%J@_;oC zRn$9?KRG$n9`mV(%Bsoz_a{yT$Hu+f`7yhVbyCB+CCArJW8CoM0eV1--Y>k z7x-ft_f@`{&mS}S>hihTuJ8qD4#e4xMmERfXBxb+UfJx(FrnDYL>r~<%9C2|AB>)J zy575YG`Oe+uJPwTl3IE&UI8s_*Ei&$8Su;drl)*E7m0lavvvJ}%q+Iid5JyOhPiGT zus)y>?T9KE+83}Nc)Gs2-K=AsTYI>by{Rz{ssNUJGr=lX-#6HTd#b& z<98g3YPh+6Yd2x?y_SouMwk1E%nTbZeb|+?v+9d->sIRoI4zS>s{StT)5SRb z)xSei$=7SImp_DZMG3PO|73481~d8U3}V&sX1)2L)pYIjsZ`tE)DT}U7p&vtPTpM2 zitFX?>C;3(>-EjK72l+_Bf{MswFQ~ZZ+rTPkpDE3}mi*pc8ZB^b9o z?7vX;bN6BtgSV%9yXKW33N6oe0|&?7mwB<(t=Y@Er?cR#;$cOnMUq-$T~@A~sL4xo z{A`msLt5K5U`KVIE`6EZ$l5&fcbDW;z=lnJn(wvG@Vs*FO1cn_(iOF$P+zZ+E2LYd zUgcrVMd0GBCc!4}x!#IbZ3E&CdF_=T-ZpOaGVmF%0;2cb{??Mtbr{(>_r)$(@Ag;X z%^RiA8EN%LpS%cXT-c3TkNaHd=g>zBso@-XdXy1&Zgu40{M^La!aZb{3~DzMju>^1 zFuEET@#D&cj>FWoZQOw5)x#37C1UDey8J90eK` z$H8COM}$mxvN+$LTrBf6(QvQrVvqgSz}Q6>WJloB<-O6~Z?`el<#E00T`yD6lxu+R z=t)h6XxuZYQo%5h8sFzE4K5l>nW<6FcVWX}uD3VhZ97YHI+$&22x!`3DGbcCCRrb7Ql!2qZQV!mLR7@^W;}BIk5!)nR*L9piO4jeVcWz zsxtApJSs2J1l@9Mcjt+B^e$XkP$_OrY*=M-0y_J3&03XqdWX@|acUUp5QYl1p5HzC*oqB7Mz4&UFRqmkViT`k zo&M{{c_Ab7=V*{|*4Pu_=~Xd@kn_eq!fIjbb<=-mg{AYhMe8|jC!eIavy>(WwLcL5 z&3*XXy-O?G{ee!GI_Dosg!F7N-V|HTv;c1K$H5JL^*;ycTKx_m2U{xbO$UorUF;dG zBM+K*fp8Kk9qN`DlFgvB<6!b_7GX4mS_e@mzer0#*hwk(5!m&&s;f+dJIwj-RnZu9#2)L##C4 zwc0L){m}k{p^GObk_0pi_zFfBQl8PJTRdrQxcO%!d^EoD-`owy zZqktLneb=fhKR{oh#_lc`;)#%wyVX9 zzQP|Ua0GkGQ_^f-)GX_IB<}k(vA@S8aD2@x(-3O0^c3krY=^oXM$Y!G8iYMOvTRm2 zgq>I$sCzkm->n@6Rkn~)f7R-Ir0Q*!8ZNv-zx;SK`f1_dG1~Ja2&_o9E;VT-sc7;- zVIe?$@HY_Ka?gmoW^IOr2UvfmUxmy2ovi97_C0p6s77KPRo)OU>|bHIB6LO8imP|} z0s;L3Mm`ek(h7dHvH}`v5+dW^VYU|(%F0@u*k;gWsXw1 zc|e0%9N8x=wB7Qm@}1I=s6g$)!Q)JAc&{ zRzG!U9jDg_?fvSi8B;mqs3y2lux@N=Um9OUqT#hhwoG`27IqPTQkvVLP399RXq0 zbslRZdZ$XXNy>F-Tv5=_<6GhdfkvL89}v2K0z-?*7o8^N>PUtm>z9{A!%r{m77{xr zY*)WWKLv$9XAa~XyHIR&8JG~-C6|0c(y77c{K!70MIf_SP;AFV6Q8{}B}1a9+`dIw zyQ%&JuT0Q@|H0NfAxQ5uLbZ;S_`1#_U#1K`n-q6v$KM$uuE<$A4tLU9bezW9N))Yn ze<-e6cs%Wnxg^L+em>!?D(dQZ0ZaG`&0H%jVrSrMMEOkJUsXe*FFV zOFx`(yK2OFPlc;{Nkua|>Kk`bq}P42zmPUKAdmtF1iVmbU}{vcLr+5wf*0S=;|a7m zvn!$g3hQElM4u4obBONK4iVh-pVa`)3>fC z2{oND3xaI#mQ!bHW}d^U%T>aY+78J&quEdT-qbpZ1^LwNP@?AyRv}8IT4_1H%Vx_d zzNTLIGOA2qJV9&qSVQBODkLCVFe*!cph_Kpq)vV(e|N-BJ*+!)=h~1@ z2p>}NZj@L6bL}Q-#B4Fe;oU^KO`NjaPK9&eSKW;1>Ff%iY&h$07yfFJ8;>#qIyD6l z6b!a61Q_-*G7kv6M4DzYX8V9(hWad?cweqU+~SZ~bR}Hx@hu#}Nl1I;xJD4FnGd3_ z_sSfe_1q_~J$OqTOdfhO@oA{CG5Ayr`Vv4gK!^}5^bI%*!Y7P>*D7+i0LKXCK>2}a z>rMx8kghg(rFIz`B=g&f60HQP@T!Js01hJ0JJ+^7A*y%}9AfKO<3S6h6p1Zr>Hnvp z^weUlbwNk}lSSQeVA^3C&5@P+Ul0jGhkUG!w8)sP1Tw?D+7gIG($gNTfDk*tG10L$ zrb@c%;W(}?p!&jk)@`cPHc&NHa{iZ6VPvcEngj^q9=2#TpUCz+N3s1TWvO$$EiY-8 zs}EZeN+?LbtzD9O0)XY>b>wLM1hxfUnp@+*$8~G`4lmW(#P!rPa4tCck>vdStgNu` zXLKZssUx7zo_^(`fV`YO6f6i$U0km8G zD_`#pl!PAjc!_m-g=uiKQdOY$>49$UF#?C!d9Q90=k@H61Y2&b;XnU34lPRtJjhql z{__7GEc4N081x_S8&7=5J|TlP(2`Sqm0qg87FNigb*^Gme(%TArY<VnDsHOtooy_S0DQ z{a+UU?}>jyDEtO1#_3b=Ui6`J;PY`Mpjb)-@g4p{Xp6HuRJ9@fnjo2JkqZZf-3MmK zVFqJU3DDro#t`QNS4O>gpfx+A21-9GWqbl`py_jha0kNN@Vzp-|0l4lG+Z+eAO&@< zfj$QREXa@d`^2wd*Uf0}ej56g2k_Fc z*?EI-GOt6%?9okM8_FoXzrpdB_6hwG>DimURMn+oVNqe}uu*XI?YalJ?#UV0M|clB zZr1@v6&8{1#;OZ~uHf;S2l@6_7B}=xDR&oJo5QPUA`)sMa$&Ndm))*kjNrIvKNxzAIOz ztK7Z(4Ma>lO19HP*J)l-RjIP3Cb$Xj;S---6q|5maIbBZ+U>&TkRpI?3IZ+5Xf$S}8%xpF&ko3BM1^Ps-1|vFy4#IKmS$TIV-} zZec5iE6V{_DH<;O$Z0LRBmUtP5fG8k#7Jr^mxVeEbZz9QPwndHr#KYsKX;tr##g!@ z)~P0>U)T`7)oLoPRh=qs?)zN+Y@T>;EsRCG6h17q_oW7Gh_@}dv2csvWV+vQ05jqP zN>#{5f(=)?-%6$=&?TDlpzwmwJE=y;uwW#WBA^$<_h{qHZD9hhL`Mv)gH??7w2QCl0JOOP-CLBQGI>xPq1gc|<_$xu5_}h^AvMwGp;i0FN33({_$9ro13+_GygZ5rd8I+?KG$>GsnES5m01M}@ zjvht()=2hHa7Dki!|-WP%8_OD7?QGsYnryGo7w$p%l(!7W_P~7aWXH=Rw;Nnw0iBc zmC7=~%IBE3e6F^!I=LtHDV>YSTPYXD?hudkZ0OJ~Tnwt0SaAxye zS%3d#BSS+*^UA#>F5%rqBlW88Jd*I!zefA_a;_eif9s3;z#hJ*$D|ib$x8XoZM=4f zlt`(kPh8iuRO)J)&+9UNr|$mLY7@Q*sV?=qMxt|LaAS0f8{!(^8Q>cb7&tX>dO&y} zx8a28GgFjlmgxu6BGYnHylIOPb0xbfM!kj`C zfmf73P}wrnZ$9k?RfZb~3iC+-Ch*zi`pKUHrGw3vG_)Ump`rV;QS*y?OYj+kX_JI( z0<#E9x^$3yuw*eHPwXTJ(8`Ck32@jc)19i{(-G(9>=bQV$muc6Du3Jlc1+HDuI{#` z;hdF<-ioZ8@4zK}h$?3#rz%&aNkJ07aav9IL0#d%NT^=}!z$h{@Et#x?rgLkww2VE zb5?jd9XsV##wez#e7K9HR|eYSoMLesC<uj)0?VBAh7yXGw{Bj>T4AA|>B) zDZL572QS8;DBb|6BT`*|W2L z1J3#ozqjKSdO!cWt5>&c2v$AP+bZM1>BPaOL!lFiKXQIx|8@Vl1PBJQ#bnQQ-WZfS zry}15nf?oi0DRh6c762h<_I=<>3Wy~!uTX|m;#|ik0W!ZQp8|uR#dBIgr={(+0xn( zk9aS5!j#ADs-KQ|$VvvfuH$UO(I>9`l)Fa4UyE;=hhhBWFmnV&!iuD3e zpH-|N9lN5WE0HbMzg^&`z9gISm_Y+=M;@P>I}ji9(Z$A6Sve`9Id*Y^8)QhO%T@{A2#;w{jA> zHufOfO!ufuzZ^~Z0BGMoa2Z}Q8I^p^w3>7TNJkQ1L7_DmM59dSJy-E#1wqPzHn}cQ zdJbaO@2|N6?xDnV=3*WB4X`Y~BAo#8?5o&1{YCU1-Rbz(ZHR&NwuDi(vHW$nO_R;R zg^IK*yw%@@D<;)O7~L(}3E$ z%*jD_mBsyk-!mlo$O0IYjs4YunE;~53qi1I@#`=C<>!M2_Z#M9D=O*c%6^Sxo=gBk z+IL9Pe?BJo)sm=TN}W}cyI_w-5Wf~_(R|0M8P|`S+1t5oK1wc53#I%Yw zgwsWD`m7?ODa4GN4_e6jX1^09wnT+$V$aorPku}OOOS2em#McQ9QTDje+Ywr{!o8e zVmo(n=#8GDy}ZtwJ~98su&*-#qoS`ffPfz?`M&T&O|i&oIM~8?JFEa^kWI$i&-n@O zp7Bmd(5(*i5TVl z6n(SIC-?;ZD#6RWA?4Lyf;<=jfe8=-pFUQw4Cs#W%ow-I@XVMnQ}$be`0;U|ZbK?z z1xcqL+*)={p9;l!LOyU5005qr@v?4Px3C)v-2OYeoPVSL4J?$Cd_4#VQUc_`e&tSC z4&eNPNj(FvL|7m|t{3>|VXUeT3xbfVb@EYQWDVFb+Hx)H;i=DO@tiLuCeqj`GbA`D z3k0(jzq$poH}s{qA=r_{#foYO)nShkH_nTZ$oQfT^pDDVzI1hN4YwSAFdDdLP(Wc# z%;2411jsUg_#LP5eFgv*B?7hO%UcmT%MttcSm3hXU);yiS6yset<^fOWhWmX4cKnO zDEl_VEy}%%b4gRzPg+$=blj)78g81iOx&JG06fB=vfbw0ex|omu;YX}8dGxYH8XPC z4X+6Petk&}`H?bWqFpk7rJm#9?>Aldy6lyoOi6X?bUPt#EryL~p$&HpSHbET`{?8S z<-(>%72oy2v?}j62}XM0YIk=X04>uDd+{G;@J)&=upujv9zd#UiPzKrNmzFn&R5U2 zn#%%TOhbCc%?D6>OW@aLf6|cb z=(Yb0v<%71mzDijb$%OzZPK}m0Iv;}j0lRx(vD6cF)Ix@R92gY_g{rk>XFLwdlgFc zsJZJl8wk*vF2G#484EHa4Th1Hm>5w;jQZJ4Y!-^Y6wU8>k;wKi`K5W5t(u8y_+wA^ z?u(#ck1e{LCivgG_$>jJqMRQ9M42yF!H2)~9_SPR$_f=FM$)tk?Z{>UEFkAwhOL~y zJltS-bRpQ3w!Td{9H5~Bj#np&cxp3hSLWFU&GdD5YYbu=_PbTmY9GXW&Fm-4R= ziD{lz#UF)$L$!O9jA~Y?cS}-q5%+(0F^~H%6{fwk33mAmEJH~LB%7k)S|XKj26p24 z!(MjvvI?OP3#$fhquh8d0 z$Yq%{6n*3a_t=o%x$*8?6=qA?qwj@|b$nV``|Y>(jr?UFCcMKrLc3}FD^Da@CwEPheF-;2~h z4pg5PfXkjwm1}^yyTs=bv<>$V2X;w&irVWWV)Lt5Md>5)8^qnxTx|!xM&}!HuNllY?A_A zO!$?xGy!4%|r zM*mc*dy*mmT~@gwuJA|Y1Yb%J>={BggR@55@9{ygOc@|b0td4@`X=1*;B$;(hTN@r zaN^P!ne!UfVZ*pOUlN7$=~!Caf%G= z@Jk1*Rd%<;$0G&H+is7}%nto7=yA;3giXnL>*|8xzox}0>8-Ofbt+Jn-x9Y84$ueK z7sK(yas12u&8WOm&X@6TFqQ{h?iEPkh@ z@Gw;S004eHNs(w?7=YlSF9Q%|YzfCpK@C(5>-cRj4oUl=M?$YJi&2rjtnm;`P6Z}< z3uP|@lu7rc0>DV?-Vz)K1>40V3feAr20_1RoYEl|J7of74MaJrieueIGCit$& z1u>|TX5Iid^m5LV{-dxYuU4&9#XL97rtkGluv7mdem$xRlj#h|l_LvvXtpYZWeW0* zyJDG&UY7$v9`>RK(7lm>Fb-A(1tpa=_>Z1#CAkg`F1e2X$DO|Gz~u2sk^Jtc^>rHb z(Jj#HIGEFr*1Jhl8{W~R;jBeL!W_V-y1S|Ei0wIT^ipm7+23OpPiyFZ|?x3 z+CMCma-fOZrsB7+R{R&3BA8OmYU6H`-upPCL=_O43rb$5uk<7F11+!wD*Bt=pGLrc z?V3#cooqqqqsm{2{;NR%TQ2cDQ6Hf@X|(~#??KfGhNW*s8b69NKGqDGUR=RA2*vvf zB7TSnlt;|}*X3$UPqqGs=N)xFD&qUi5*T2bVmz=uJD5F2?PsCgz_UrQXeo&5e`a&efZFbxroju$>|RQ(Yvt%| zn=Cb3QlkF&L2J!74gET&w(bWfGIv38A3z;<#mbZ4@u>+p&vB9ok6;u8K*#F>VmdAg za2ykIL6k2T=4|#7jK6miSUtp%9?dS(Y`V5l{NF)?uidS}1Xk{8Ztt(SUth59GrQ># zO5g#LEqz*0Iq*C9`%eZoq%hl88ij5Z_sJ2)34%}zuZN5X5p_51*H4CIv3pGtd;JWy zX>*%8rIyq5S+5(VJr;C+@6D}xVWNPGpH_BG&Zv0S=HnO^P{LGohj`k71d@JqeXpg$ z;jP{4dVhYTkN~<3S!%gJqr80yd$C6rWV)d;{@Hh;0p!1TM&{ccVP5=s50B>W0y!Mc%OX!pbu9{aYU4t+*0w>~E4WL= z@kc_f5I~-zd#y5ZrM4)qYxwcI0(N2LAaTdRcck2tC-B671Agzy%wK!!tmhug#7CieXHUJ@JPX` zw)Tpir?#RIrDv<^i3hW~h+Dtk$=`6fYr-2`e%GZQt6i4spmYx`c+kQizSItSk57%I z@lIxrexvjmBJa$+Cu7eXr}f!D>3x-az?{#wC|+wC;PbdkmsjD6i2*)yLn!`rQ(~og zpgla~!Qq2l)f-s9*5Nbgn}|7^6m?!O0GAT1OWzDUt^*U`Z$UdPCkSI^`!$eOXb|k| zPkDR-8KhcF-sYIb8f%^t4^R&5b!&oyb!VOQGyXb)u@(8&hz$N~uj*=_vbyX7CdL+CQYi}NyD zs4s-x!cqG_y@wAilp8@2GhTbg+Jqz^o8+B!N)7Ts{u9`aNM4NEby~xje4`Z^jJQxd zUsGoV-p-png!3?%CZx+W!`u1rx8QNHOyk z(|>Vvr{XKlAo{KLG9Q9I9@93&V;kUM^F39)H`vA9-Xeyxwznu%V>59kr?r+5v>V7t zqvYQx&9oQqghCTh_jD*?CX{#b;BbaX4RbwrE|Omh!{WRi|A{zv-;zf#l0UAVmFged zwWfGBf%b@bl_Iu;(zEqL#9$})G_-wH)yUfgXU@0W8W_J(HVDz$ORMo?ceca2l0!Wm zHKUdAxHxzp!Q{VYX%QlCnsk7j$ybh;OV#usbylyX*yy!NS`R5MkH#?_3=5sd#yPcW zO>OQ-lOb`;$5mwvolyLiq)~6s-q(jgoR(cQ^;N{vbEMb*d#?-WJsMSi39s$FdYgb#TZU{_OF~s>-n;U-&ATtyqF)lX;WFE{qjq4FjMpEWMg{gmKx7NrIN^ zP7EEgERuuajF{S!2oAZn6FDG5RdE7`hh6l9bhHWI6pApz+vC7naZaJ{khl2CEpaVI zln=M12YvcxLaAu|&|ZxbDcyne79CJ5EmsvcI_ltX;trhq(5`A@kAnrWZQ|i4)lE|&av4gas+3wM@X@+#m}$D z7w*L<(#z9?3c=VVQv9RZ9*Zd8_+b}A958O!?F_mM( z{_x#8-eToU6TaVP0TI3L=LbD-{32;hWTDw{+6OtSRMxKB(YG>z({g7lEptf3=#+EQ zV=N1;Wxr)ezE#NG^hl|o@F@N^{g0pQ#FbbRy<+Fwl##j>xYcgHArc)+gxtPx=G%}&um_#s< zOVL9oF4SM0YFrb)S_iB%8j zZ107RZ>x?DdD%{e9_@zNank;{e4ALK1AQR^mY%%s_A+gGn&Cc?Tr_8d8<~$smkV`QDrYz2VL=gM19g8QL^cbxvVHt3DTV`gL5XSL5(CTZvGPZPlS+ z2ix*c<6YHBWMnn{`5w#WA*oS&J|5@^Xv7yg6nIN}p3am>1s6yW*v5ovXUgNcBU-Ed zHPVD8{haf<0jSC15zD`}ifr=`vg}4$+8DG9pKo-_DScLtpw^;mTlMXrw=L-nSLWqR zTLpWP%F21b=467tlCwj3*vrJ{7=<^}vayS5CUB{=F@4~IiS|Y?Y8#$BVOa9T&R}BF zuI)UJtDxl%f!O&FGfTz0mRj`1JNpNVBpJ+h+MojrXBFxqVpng6pyupcIe$A55)Cmj z#~4@;2@W#+7#h1sI!jYowY>;X^u`EA4LgHrdzN{779m+Cd4M>@H#$`DV-A{^Q)36! zU`(Ot`yN``+v$TYjmzpqhd;O@_H|g`1r;qId7uXIx;brDNNmof#ycu@w6vCM=d?lY zy<3fR>5P}{;_d7SC`Q9?;vj$#Akdl8cdal7`55a0j0TgX4MTm{!NK?C^F?D3gF%h8 zG?{v@G3IxmFRJ*Ub~4xPspMXV;U_i%lIOt>_B$NT?vJSc`%{2D}7xLF2GBERP>HOuHG;{O5fPTB@RDF_n0M7-N#)Xy&Q8+LGWP+5Zz`smR)Sn2!l|w68R>_v@W; zmsta*wQpR;H80o42Hm8l!+h3P<-kOau_O|H`nOxe-Kcg%+kxtEEj9rY2X9 zYSv^CUg(J|Og;u>$sllEK;Vh49qj|Y^z*v*1d!lH+!dp7mk-v!2NO(eT*kx>u7f)Icqf>Y~{ROx$PCZd1;cUNMa;~^L*s@OP=D*ytT1x)xYLUA3GL`HK zh2NW_aO?`+HFSo*|L+Y7#r`0_tp`ZL+IbQ*Le?$#bMSa4Ga>;zzT}}@(}aQo_Dh6R zD9DzG#QagFFEV6@v1P>$E`V&P&RbP|Y7WCq(v_^1Vu6%{<1)$PPV;JjReoIApwxR+nsx=1t(!ruq z<~^%r?|oXfiQE_|C-5{H*u@&wqC|6Q5i|4}c%gPp_xKg2kf+m$Ag&_3$?YaTM#GXH zG+$_F1&FyMvV3M0&@pf3dH2blAOf09tythbZ4uI(YQkYXIPj31*K&4|1NSf=<0}MU zG~gPOE^+^hoocZgHO+C$BM`)gL4kJ^2A@thqQ)Ai79Ve20%?PfoVQqkpOPj01r@G< z0O&_>FgjF5 zcdoccUEGzu=MG-HmQmD;@&N8Cgf2)0Z2}sY@dmyn^Tj7<=AW@LUYfjw&Ufkpg>qg#B) zwrIvM>PK~F9`$gyO++>Eh=GuagVWv>3!vX1Km41B{%G% F{y!mYk(vMi From 045d52f79fde70c33e5a3c6514c14d68ea28cf18 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Thu, 2 Feb 2023 15:33:34 -0500 Subject: [PATCH 84/92] shrunk example_dat1 & 2 by subsetting the adsl down to oonly 25 patients for the purposes of shrinking the installed pkg size. --- data-raw/examples_data.R | 5 ++--- data/example_dat1.rda | Bin 233990 -> 38991 bytes data/example_dat2.rda | Bin 4533 -> 4614 bytes 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/data-raw/examples_data.R b/data-raw/examples_data.R index 83c3bf51..82ac0960 100644 --- a/data-raw/examples_data.R +++ b/data-raw/examples_data.R @@ -1,5 +1,5 @@ datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) -pre_adsl <- tidyCDISC::prep_adsl(datalist$ADSL, input_recipe = 'NONE') +pre_adsl <- tidyCDISC::prep_adsl(datalist$ADSL[1:25,], input_recipe = 'NONE') # Create AE data set pre_adae <- datalist %>% tidyCDISC::prep_adae(pre_adsl$data, 'NONE') @@ -51,7 +51,6 @@ col_total <- total_df$n_tot example_dat1 <- list(AE = ae_data, BDS = bds_data, totals = total_df) -# rm(list=setdiff(ls(), "example_dat1")) usethis::use_data(example_dat1) tg_table <- purrr::pmap(list( @@ -92,4 +91,4 @@ tg_table2 <- example_dat2 <- list(TG_table = tg_table2, col_names = col_names, col_totals = col_total) -usethis::use_data(example_dat2) \ No newline at end of file +usethis::use_data(example_dat2) diff --git a/data/example_dat1.rda b/data/example_dat1.rda index 0696265e8a6c1fc290b0e0e96b921fc96f9de50c..0fcf4afb15f80ce4c1303cd3972e3ce3d7ac9508 100644 GIT binary patch literal 38991 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%0AD74~u#}%?7E<+>@TkonqtH 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 diff --git a/data/example_dat2.rda b/data/example_dat2.rda index 028cfb6ff8ddd8b6b569df96ed602ce168a66af8..b454f9477eab59ef44e80ccfec4a897c8fcbeef3 100644 GIT binary patch literal 4614 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 Xr{XkB=gGlp^cAOM*<(j$qMH8?1TTNm literal 4533 zcmb7^cU%&P`^WosjWe&hZ^J#VEA%{EP=nfYs1`M_Domr z0~7Z??)|Iaz1_Wyy|?vydpno*?Yk6cH=?|^Z}Zgt%P!wXha1igfA0U!zWpu-GWK&$ zxHxleT>j?|mwhfb{=Ts9|LVv8|6;#?>MxhF_WSJHrww9%@rG%4uQG12o?QW5XS`s& zZvRCEBPhA=@W(^y^}lj5%wTs~HQ1Y%ahWH(baESv@Y;`ZI6##aeD%cvfuk2j2%5X0@qu>Q zk-Ij}g{%Wio{L}Jz;t`yz*IR2CQmrWOn7Wg7$NX~##cqQq4aRzE51EP*1NJsSRJ39>$g$yRIip2&k@8RfYPsC<5HaQj|P5sxVO%YLR-YM91E+T(5L{3y#A zAtf=pPo4+A4TAQ$-hV>S6USs7`d*kn&ei+!hR!Q4M2@(rKMWK{&;Qa9BvfN z7KhbuyirBIqxrDNleP;(>%R1uyBg9~mgm`jWNQmn;lq4FG9zQ6qcv}F%i4z9Vm+1D zoLj+Js0sd|W6Kwqrn6>wPcydf&GJU=wR@7Mf;6S363qLiUDjc@6(B;@+J&zs5koUq z&7^Q~H6NKsd{q7TkX<~H7r23qkVecz7qW*Z1!=j0!ER|tSm<3ZZa(-0f({Wzhi5;A z2?i&s=K>3aMs#%z`@>(D-J2?ExR@yL3X2tI#&|S>J(a5#m#hT{`? zvRbxb*avrSX+D>cnQ|qsaJGnw@k|D_bsfFFeHBpkFq&&5TO$UYH98vS^@}8UaBgX+ z2I0A}<{l_H`QRiFwtDaSUUY0Hptb0~vMG%Po~&r1r3ht8-$=NfNp}0(zGHKD5J@~Z zj>p?Fvr)`S$uaI;iu~sm5nhoYkgY|UvOI@l@MYt51JNt~B9X*nmG$UPt_31|{N`sNt@zXtKXw^mo-5&vIsQ#050jSeO})ymuj;zHKBx9buvOUeVPX_wt>T_G z*9$10sp$EN3ST4E3=MO8A4;`SAG~b%{ndW>^@A#Ie;|41gn~PG45?U!Ym!&M$$ZxK z-~y>BGu2qj_{@p6)3AknXIWKQebP<}0NdpURh?h;XL9|?KT$tq0=<+(=abbPX3@|u zK3;*pec3gp3_2DM>;-eycCA`l^`Ck*_wL5~0SphCy>Lvnd zmDONohQ2um88k^rYEA;_6<{zTXAvmNl`2xfu}Nw`b_R*wYYI>T1zd5KFsUuyFD*cp z?rcuvjx?0N?Q2o%nmq}KBxsEUn;-nrJ!PIn+eF5~H_YMdM@BfikHz63tZ-$ckkD8# z%G8QJ2=B2w$%*d3L#_SR%T_Jx4u>ah56&-lHkd6{4-{SV)AT|%7xt;ZIqx^DvqHkx z2W?$6qSlo*bLgy5xFWrKEkB6g=V)qM%N$OC2Rwk4_sPcpJV7ExaT+#f{;>pBB!oon12!b~eGc7H6Xu<-`EKuBB>f3H< zBJ!mt9|I35jfiLvJdGDM$V01EP(={1q-2FD->W8 z?$wgrqkB&hg6==Mg>~y?7icx4>h_vGVLFqk1tm^}FTIQ1PB<>3SK{^U`s8Xbq_@Hg z*q=w!eJ`oG34c9^C1c5YB|`b>5%IIgl1l?_B-^BNQy@wCLZ1po8`PGIRRX=qOjP=# z1)!wm>s*`&bSnNUD)3fdtMMUr;!y=qfrq=Y5n9<{_osqpvjTl;8#(hDL^Khbk{VyC zu6mJR7PO(Wl(+pf($)D`9&`AI9F;(ZUqAfCe3`iPW6vG0$dcJx+Zj58xH!73 zsl+sTOJlE(J%uSWFjRyQL?e zV#8)G@5!^}r30Kg-JFcrx5>9OHK!A{UWDjy!(_j%Hf~-Ka-YT$Y7^hIE!Z3OPHJw`CrWk1PJ1H7rS$$~8`(bVE4<8|M}cn zwSSkFu74mzp*Mp5v>E5+&ozZrl}(xL>Yf&;J{8JB5TP7sgZ#5PnQel&;^xxlruikH z=vCEDX(MHntf(LtdN+sQyu6eCxb>FMe=X>iLEh$X+gBI$H#}g{ZxSslitF(o^OFMA z(miIdmll{~kSpgXj~dh^vhnhgmCp)NoOA5dx`NoccQH8SkUEh1KS~F z@22j<$&084pdp~>(xa7^sll3 zpW1Up#FSU+>=@(n-Hz~oPu%kivCxAJ6RrkF19S(zMtnLnZJZD!_bU7ZSE!JGS$Gqz>`Jq!K(AQoiJKPeu)WP3kndI)n8i}UR!jmPIfdb)_%ha&)u-~I4R~U zmR*1ICWRaQMEycg+O?*N>aKX&wEc&AaBuAg>vI|b(*ufrfVQgOE9JygMk}WN2&=Pw zUDLXCAo6L8wdU})|Mu(#>cEDl&EkW%vR2WkPd-NG;#%7lV>E;w&(i{mWrOV}IU@7uvuimMoknI4={fz=)RPX6Qh_j|XNas&@ulJmH7iPQnT=U;Ol>9?; z)C%&fLC6d;jyzcj^$zQCo4K2XT!;{I$I2Ts?mx z@FgDh$ehzRXY)kEaapJygC~#wHC8IITz!fqm6t#4d)oTIh}MQyYM5)CfITe!;A#nJ zwrc>&_s0oHRKX@)HKQZP_*HLK=Ajb!%|Lr?{ur`KsI22%aRdHi^6}$xNL(p_{q%b} z9YLG`HK&N;@u(UPNp)IWQyoiRN7+&Z&KS|EeXhpcvg|y7Y^T`EZTdM%u;^D05=o;j zN#OogZLrwV)wIH^r{621PBcx7N`cy)!KexBIam6(oc_1l*yt!2Q7KPY9@vwLLM2n}#r+?8u3mS+_SbDy1Q zd1H`^17jzAU?ltG`39-*wEc(NyVCpN+{7X*DfOG2Pj2^=sk%m`)o|0Agx1(!tcN|)V?SQQL$0lI?Qkn~#IK$gALB2Ix*5wguAMmPR92L&VQOXFuDMxsG8?w`e#dXp zH4C?4hSpiJ%Zev}s3xtr^k#H_{C>wB(d2Tk&mtBcqO4oH4x+YPw8;w;=(~~I(8@;I zKoaJC%p++5IXjo<*yJ#o8l8MhsLk%m8Sb|;P9(^%%}_?dOEZP97!8T=n(&W$t7;cp zOW1$5Qw9U~tco`?mh-_qDNSRdjs7hJY9eq`M#|{^s@Xpf2Nmb2?kFZlP0@wIDVkht zp{89aX9KuxxxSW%FNMBXD7PpUw6hH$VECbS+L3PZ0_6A*(N+M9_+k`>X#rtcfKOXM z2A(&B`g+AaKn&Gg-R#U=s17f~M8#bd}se#}PK{AYX^ zVpo3P*k3|J%UqUWeN3Ne^toc$MJ?P0@^H)?;7gnzeZ{gH1vs9OzT_ZqTP?S2L#w&% zPFevM>NXlCS$#^R>%9t#Wjk&sw@lU7C->*{n@VydqN4c9h`J&tACHNLN0*E|dDkAdn# zv)o}u@zt=#ZMhhMf9x=^*p`8poH0;TxmdexWEg247x8g69K&AhWH&c3QyH}@i;fDO zXM$eUO*-6_BhN{m2@ERk=azW|$-!g%<>xw}J;1|PD+XU>=SI#aGAyQ746cUiQO+0u zH5G3l`f~|w5qaaBG(jwNnjB5>nZ7(Hxjb3*-+#{D&vP0h=SoDsOw>*0ak+ovo*!L^ z2=&j~DJ*h|Mr1mb-}I^T%U1N%$(Xf1LPQ?XP+5;hg?^he<@MBVh_0-mviuFNXJvBb z7iK)_zIl}7pWu$r8Muk7V>NI6&N2-)q2%@$bc)>e@@e{zF2CS-NYZW)AL WdFf^9vNyJPgLUM@DUVvkOaB8Fl}k7P From 053ef5185a4b7018815e6fa6d4f1441c25bf5a72 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 07:42:42 -0500 Subject: [PATCH 85/92] update cran comments and rhub check code --- cran-comments.md | 15 +++++++++------ dev/02_dev.R | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index b23a626c..b2f6190f 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,27 +1,30 @@ -## Submission of `v0.2.0` +# Submission of `v0.2.0` This is a new CRAN release, it's predecessor being `v0.1.0` which currently has a [failing R Check on CRAN](https://www.r-project.org/nosvn/R.check/r-devel-linux-x86_64-debian-clang/tidyCDISC-00check.html). This version fixes that (minor) bug. -### R CMD Check +## R CMD Check 0 errors | 0 warnings | 1 note The 1 `NOTE`s included: ``` -checking CRAN incoming feasibility ... NOTE - checking package dependencies ... NOTE Imports includes 25 non-default packages. Importing from so many packages makes the package vulnerable to any of them becoming unavailable. Move as many as possible to Suggests and use conditionally. ``` -#### Test Environments + +To address the note: there have been no additional dependencies introduced to the package since the last CRAN release (`v0.1.0`). For reference, here was my justification for this note previously: + +> `tidyCDISC` is (nearly) a "one stop shop" application for clinical reporting in the pharmaceutical space. As such, it leverages many modules to perform many tasks. Many tasks require many packages. While preparing for CRAN submission, we've surgically paired down the dependency list from 35 packages to 25 that (I feel) are necessary. And those that remain are primarily "mainstream" packages, meaning they are maintained by reputable & well known authors & dev teams in the R community. + +### Test Environments * Github action performing linux check with old, current, and devel release of R * Github action performing windows and macOS check with current R release * Local windows `devtools::check()` * RHub Check -### Downstream dependencies +## Downstream dependencies There are none. diff --git a/dev/02_dev.R b/dev/02_dev.R index dc417a36..52d5c638 100644 --- a/dev/02_dev.R +++ b/dev/02_dev.R @@ -273,7 +273,7 @@ urlchecker::url_update() # check on other distributions # _rhub first_chk <- devtools::check_rhub() -cran_chk <- rhub::check_for_cran(check_args = c("--as-cran", "--no-build-vignettes")) +cran_chk <- rhub::check_for_cran(check_args = c("--as-cran")) rhub::check_on_windows(check_args = "--force-multiarch") rhub::check_on_solaris() From 0a578a7f9f3ff3d1281932b59131e05966c5ea40 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Fri, 3 Feb 2023 08:25:11 -0500 Subject: [PATCH 86/92] Do not export create_gt_table() --- R/mod_tableGen_utils.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index c33e5f24..2ffd12dd 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -583,8 +583,7 @@ tg_guide <- cicerone::Cicerone$ #' @param col_total A vector of column totals #' @param subtitle The table subtitle #' -#' @export -#' @keywords tabGen_repro +#' @noRd create_gt_table <- function(data, input_table_title, input_table_footnote, col_names, col_total, subtitle) { data %>% From 0c8dc231d4c01c027715b67bd11d2dcbc950a853 Mon Sep 17 00:00:00 2001 From: Teresa Wilson <16843423+tdwils@users.noreply.github.com> Date: Fri, 3 Feb 2023 08:26:38 -0500 Subject: [PATCH 87/92] Update documentation --- NAMESPACE | 1 - man/create_gt_table.Rd | 33 --------------------------------- 2 files changed, 34 deletions(-) delete mode 100644 man/create_gt_table.Rd diff --git a/NAMESPACE b/NAMESPACE index f5d41568..728c434c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -3,7 +3,6 @@ export(app_methods) export(col_for_list_expr) export(common_rownames) -export(create_gt_table) export(data_to_filter) export(data_to_use_str) export(get_levels) diff --git a/man/create_gt_table.Rd b/man/create_gt_table.Rd deleted file mode 100644 index 95e27544..00000000 --- a/man/create_gt_table.Rd +++ /dev/null @@ -1,33 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/mod_tableGen_utils.R -\name{create_gt_table} -\alias{create_gt_table} -\title{Create a `gt` table object} -\usage{ -create_gt_table( - data, - input_table_title, - input_table_footnote, - col_names, - col_total, - subtitle -) -} -\arguments{ -\item{data}{The data frame used to create the table} - -\item{input_table_title}{The Shiny input with the table title} - -\item{input_table_footnote}{The Shiny input with the table footnote(s)} - -\item{col_names}{A vector of column names} - -\item{col_total}{A vector of column totals} - -\item{subtitle}{The table subtitle} -} -\description{ -Create a `gt` table object from the data that will then be used to generate -output in specific formats -} -\keyword{tabGen_repro} From 9e1fa2f93a5e936ec8a3f29ff0d3d54de09f1098 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 09:43:05 -0500 Subject: [PATCH 88/92] updated authorship for v0.2.0 --- DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 4d80e016..64f6f707 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -4,11 +4,12 @@ Version: 0.2.0 Authors@R: c( person("Aaron", "Clark", , "clark.aaronchris@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0123-0970")), + person("Jeff", "Thompson", , "jeff.thompson51317@gmail.com", role = "aut"), + person("Teresa", "Wilson", , "teresadwilson@gmail.com", role = "aut"), person("Nate", "Mockler", , "nate.mockler@biogen.com", role = c("ccp", "led")), person("Maya", "Gans", , "maya.gans@biogen.com", role = "aut"), person("Robert", "Krajcik", , "robert.krajcik@biogen.com", role = "ctb"), person("Marly", "Gotti", , "marly.cormar@biogen.com", role = "ctb"), - person("Jeff", "Thompson", , "jeff.thompson51317@gmail.com", role = "ctb"), person("Biogen", "Inc", role = "cph") ) Description: Provides users a quick exploratory dive into common From f2bd2a304ca0cf696cae604a040e175d44a3c78a Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 10:01:24 -0500 Subject: [PATCH 89/92] set slow examples (run time >5s) to if(interactive()) --- R/mod_tableGen_utils.R | 56 ++++++++++++++++++++++++------------------ man/data_to_filter.Rd | 12 +++++---- man/data_to_use_str.Rd | 20 ++++++++------- man/prep_adae.Rd | 12 +++++---- man/prep_bds.Rd | 10 +++++--- 5 files changed, 63 insertions(+), 47 deletions(-) diff --git a/R/mod_tableGen_utils.R b/R/mod_tableGen_utils.R index 51e8a43d..af80f0d0 100644 --- a/R/mod_tableGen_utils.R +++ b/R/mod_tableGen_utils.R @@ -11,12 +11,14 @@ #' @return A data frame containing the BDS data bound by rows. #' #' @examples -#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, -#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +#' if(interactive()) { +#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, +#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) #' -#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') +#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') #' -#' prep_bds(datalist, ADSL = pre_adsl$data) +#' prep_bds(datalist, ADSL = pre_adsl$data) +#' } prep_bds <- function(datafile, ADSL) { init <- sapply(datafile, function(x) "PARAMCD" %in% colnames(x) & !("CNSR" %in% colnames(x))) BDS <- datafile[init[substr(names(init),1,4) != "ADTT"]] # remove TTE class df's because `AVISIT` col doesn't exist in that class of df @@ -154,13 +156,15 @@ clean_ADAE <- function(datafile, ADSL) { #' @keywords tabGen_repro #' #' @examples -#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, -#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +#' if(interactive()) { +#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, +#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) #' -#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') +#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') #' -#' # Create AE data set -#' prep_adae(datalist, pre_adsl$data, input_recipe = 'NONE') +#' # Create AE data set +#' prep_adae(datalist, pre_adsl$data, input_recipe = 'NONE') +#' } prep_adae <- function(datafile, ADSL, input_recipe) { #, stan_table_num stan_table_num <- numeric_stan_table(input_recipe) dat <- clean_ADAE(datafile = datafile, ADSL = ADSL) @@ -351,12 +355,14 @@ check_params <- function(datafile, param_vector) { #' @keywords tabGen_repro #' #' @examples -#' datalist <- list(ADSL = tidyCDISC::adsl, ADAE = tidyCDISC::adae, -#' ADVS = tidyCDISC::advs, ADLBC = tidyCDISC::adlbc, -#' ADTTE = tidyCDISC::adtte) -#' -#' # Returns combined dataset -#' data_to_filter(datalist, c("ADSL", "ADAE")) +#' if(interactive()) { +#' datalist <- list(ADSL = tidyCDISC::adsl, ADAE = tidyCDISC::adae, +#' ADVS = tidyCDISC::advs, ADLBC = tidyCDISC::adlbc, +#' ADTTE = tidyCDISC::adtte) +#' +#' # Returns combined dataset +#' data_to_filter(datalist, c("ADSL", "ADAE")) +#' } data_to_filter <- function(datafile, input_filter_df) { select_dfs <- datafile[input_filter_df] @@ -398,16 +404,18 @@ data_to_filter <- function(datafile, input_filter_df) { #' @keywords tabGen_repro #' #' @examples -#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, -#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +#' if(interactive()) { +#' datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, +#' ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) #' -#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') -#' pre_adae <- prep_adae(datalist, pre_adsl$data, 'NONE') -#' ae_data <- pre_adae$data -#' bds_data <- prep_bds(datalist, ADSL = pre_adsl$data) -#' -#' all.equal(data_to_use_str("ADAE", ae_data, bds_data), ae_data) -#' all.equal(data_to_use_str("ADSL", ae_data, bds_data), bds_data) +#' pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') +#' pre_adae <- prep_adae(datalist, pre_adsl$data, 'NONE') +#' ae_data <- pre_adae$data +#' bds_data <- prep_bds(datalist, ADSL = pre_adsl$data) +#' +#' all.equal(data_to_use_str("ADAE", ae_data, bds_data), ae_data) +#' all.equal(data_to_use_str("ADSL", ae_data, bds_data), bds_data) +#' } data_to_use_str <- function(x, ae_data, bds_data) { if (x == "ADAE") { ae_data } else bds_data diff --git a/man/data_to_filter.Rd b/man/data_to_filter.Rd index 27b61db9..e0b0c228 100644 --- a/man/data_to_filter.Rd +++ b/man/data_to_filter.Rd @@ -18,11 +18,13 @@ A `data.frame` object based on the reduction of `datafile` from `input_filter_df The smallest possible data set we could filter to semi-join later } \examples{ -datalist <- list(ADSL = tidyCDISC::adsl, ADAE = tidyCDISC::adae, - ADVS = tidyCDISC::advs, ADLBC = tidyCDISC::adlbc, - ADTTE = tidyCDISC::adtte) +if(interactive()) { + datalist <- list(ADSL = tidyCDISC::adsl, ADAE = tidyCDISC::adae, + ADVS = tidyCDISC::advs, ADLBC = tidyCDISC::adlbc, + ADTTE = tidyCDISC::adtte) -# Returns combined dataset -data_to_filter(datalist, c("ADSL", "ADAE")) + # Returns combined dataset + data_to_filter(datalist, c("ADSL", "ADAE")) +} } \keyword{tabGen_repro} diff --git a/man/data_to_use_str.Rd b/man/data_to_use_str.Rd index e83f03b1..6c176694 100644 --- a/man/data_to_use_str.Rd +++ b/man/data_to_use_str.Rd @@ -20,15 +20,17 @@ A `data.frame` object containing data of the AE variety if `x == "ADAE"` or one Function to clean and combine ADAE dataset with ADSL } \examples{ -datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, - ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +if(interactive()) { + datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, + ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) -pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') -pre_adae <- prep_adae(datalist, pre_adsl$data, 'NONE') -ae_data <- pre_adae$data -bds_data <- prep_bds(datalist, ADSL = pre_adsl$data) - -all.equal(data_to_use_str("ADAE", ae_data, bds_data), ae_data) -all.equal(data_to_use_str("ADSL", ae_data, bds_data), bds_data) + pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') + pre_adae <- prep_adae(datalist, pre_adsl$data, 'NONE') + ae_data <- pre_adae$data + bds_data <- prep_bds(datalist, ADSL = pre_adsl$data) + + all.equal(data_to_use_str("ADAE", ae_data, bds_data), ae_data) + all.equal(data_to_use_str("ADSL", ae_data, bds_data), bds_data) +} } \keyword{tabGen_repro} diff --git a/man/prep_adae.Rd b/man/prep_adae.Rd index ddf39729..49b63291 100644 --- a/man/prep_adae.Rd +++ b/man/prep_adae.Rd @@ -20,12 +20,14 @@ A `list` containing a `data.frame` object and character vector specifying the pr Function to pre-filter the ADAE depending on the stan table selected } \examples{ -datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, - ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +if(interactive()) { + datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, + ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) -pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') + pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') -# Create AE data set -prep_adae(datalist, pre_adsl$data, input_recipe = 'NONE') + # Create AE data set + prep_adae(datalist, pre_adsl$data, input_recipe = 'NONE') +} } \keyword{tabGen_repro} diff --git a/man/prep_bds.Rd b/man/prep_bds.Rd index 22815e7d..aa37f558 100644 --- a/man/prep_bds.Rd +++ b/man/prep_bds.Rd @@ -18,11 +18,13 @@ A data frame containing the BDS data bound by rows. A function to combine all BDS data frames into one large data set. } \examples{ -datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, - ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) +if(interactive()) { + datalist <- list(ADSL = tidyCDISC::adsl, ADVS = tidyCDISC::advs, + ADAE = tidyCDISC::adae, ADLBC = tidyCDISC::adlbc) -pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') + pre_adsl <- prep_adsl(datalist$ADSL, input_recipe = 'NONE') -prep_bds(datalist, ADSL = pre_adsl$data) + prep_bds(datalist, ADSL = pre_adsl$data) +} } \keyword{tabGen_repro} From 91fdc3346b9821cd62064d23539a546cb06336fd Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 10:09:29 -0500 Subject: [PATCH 90/92] updated news to include rtf option, plus general cleaning --- NEWS.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 2955e591..3e386936 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,13 +1,14 @@ # tidyCDISC 0.2.0 (CRAN Release) -* Clean up JS to `RECIPE` input (aka 'standard analyses') drop down. -* Created "ALL" as dropdown option for standard analysis 41 instead of listing all available weeks. +* Added RTF export option for download from the Table Generator. +* Cleaned up JS to 'standard analyses' drop down. +* Created "ALL" as dropdown option for 'standard analysis' Table 41 instead of auto populating all available weeks in the drop zone. * added protocol / study id in prominent location on each tab -* designed special `ATPT` variable integration in the Table Generator (when present in data) +* designed `ATPT` variable integration in the Table Generator (when present in data) * added `OS Health` & `riskmetric` badges to the `README` -* engineered "cleaner" function that creates the table generator output from the block data -* table generator output automatically updates the table name when a standard analysis is selected +* engineered more user-friendly function to create the table generator output from the block data +* ensured Table Generator output automatically updates the table name when a 'standard analysis' is selected * Fixed some Population Explorer filtering issues * Added an `app.R` file so that shiny app can be ran directly from `shiny::runGitHub()` or `runUrl()` From 0c4589be779d14d882f821696c5189a9fffd087e Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 10:22:23 -0500 Subject: [PATCH 91/92] want pkgdown gha to run for PRs agains --- .github/workflows/pkgdown.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 08b6cee3..2458444b 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -4,7 +4,7 @@ on: push: branches: [main, master] pull_request: - branches: [main, master, for_cranny] + branches: [main, master, devel] release: types: [published] workflow_dispatch: From 28d491abe08f2de531135898818c583104843399 Mon Sep 17 00:00:00 2001 From: AARON-CLARK Date: Fri, 3 Feb 2023 11:55:13 -0500 Subject: [PATCH 92/92] checking cran-submission file into git --- CRAN-SUBMISSION | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 CRAN-SUBMISSION diff --git a/CRAN-SUBMISSION b/CRAN-SUBMISSION new file mode 100644 index 00000000..3e5e6caa --- /dev/null +++ b/CRAN-SUBMISSION @@ -0,0 +1,3 @@ +Version: 0.2.0 +Date: 2023-02-03 16:27:30 UTC +SHA: d30f87b5819d7624f7ef1a8527430cbe747255ce