From a6f93a48c3aef989f7837c23172f8f6aa0393012 Mon Sep 17 00:00:00 2001 From: LDSamson Date: Tue, 4 Jun 2024 17:54:00 +0200 Subject: [PATCH 01/20] Add filepaths to golem-config.yml --- .Rbuildignore | 3 ++- .gitignore | 3 ++- R/app_config.R | 10 ++++++---- inst/golem-config.yml | 10 ++++++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index f08d4913..c9e969bd 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -14,4 +14,5 @@ _\.new\.png$ ^docs$ ^dev$ ^Meta$ -^pkgdown$ \ No newline at end of file +^pkgdown$ +^test_data$ \ No newline at end of file diff --git a/.gitignore b/.gitignore index eb753332..fafba94f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ inst/doc /doc/ /Meta/ *.sqlite -/pkgdown/ \ No newline at end of file +/pkgdown/ +/test_data/ \ No newline at end of file diff --git a/R/app_config.R b/R/app_config.R index c728412c..8535b553 100644 --- a/R/app_config.R +++ b/R/app_config.R @@ -16,10 +16,12 @@ app_sys <- function(...) { #' Read App Config #' #' @param value Value to retrieve from the config file. -#' @param config GOLEM_CONFIG_ACTIVE value. If unset, R_CONFIG_ACTIVE. -#' If unset, "default". +#' @param config GOLEM_CONFIG_ACTIVE value. If unset, R_CONFIG_ACTIVE. If unset, +#' "default". #' @param use_parent Logical, scan the parent directory for config file. -#' @param file Location of the config file +#' @param file Location of the config file. Can be set with the option +#' 'CONFIG_PATH' so that a study-specific config.yml file can be provided at +#' runtime, without rebuilding the application's package from source. #' #' @noRd get_golem_config <- function( @@ -33,7 +35,7 @@ get_golem_config <- function( ), use_parent = TRUE, # Modify this if your config file is somewhere else - file = app_sys("golem-config.yml") + file = Sys.getenv("CONFIG_PATH", app_sys("golem-config.yml")) ) { config::get( value = value, diff --git a/inst/golem-config.yml b/inst/golem-config.yml index 5c813760..11cf8777 100644 --- a/inst/golem-config.yml +++ b/inst/golem-config.yml @@ -2,7 +2,17 @@ default: golem_name: clinsight golem_version: 0.0.0.9001 app_prod: no + data_folder: test_data + study_data: !expr clinsight::clinsightful_data + meta_data: !expr clinsight::metadata + user_db: test_user_db.sqlite + credentials_db: test_credentials_db.sqlite production: app_prod: yes + data_folder: study_data + study_data: study_data.rds + meta_data: metadata.xlsx + user_db: user_db.sqlite + credentials_db: credentials_db.sqlite dev: golem_wd: !expr golem::pkg_path() From d7eb3f69bcabc3fdb1e692214b8d0b4ff55bab7a Mon Sep 17 00:00:00 2001 From: LDSamson Date: Thu, 6 Jun 2024 13:41:59 +0200 Subject: [PATCH 02/20] Configure run_app to use the config file arguments. --- R/app_server.R | 11 ------ R/run_app.R | 90 ++++++++++++++++++++++++++++++++++++-------------- man/run_app.Rd | 18 +++------- 3 files changed, 70 insertions(+), 49 deletions(-) diff --git a/R/app_server.R b/R/app_server.R index 4fa22be2..3327b000 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -19,11 +19,9 @@ app_server <- function( ){ meta <- golem::get_golem_options("meta") merged_data <- golem::get_golem_options("data") - if(is.character(merged_data)) merged_data <- readRDS(merged_data) user_db <- golem::get_golem_options("user_db") credentials_db <- golem::get_golem_options("credentials_db") test_mode <- golem::get_golem_options("test_mode") - app_data <- get_appdata(merged_data) app_vars <- get_meta_vars(data = app_data, meta = meta) app_tables <- lapply( @@ -32,15 +30,6 @@ app_server <- function( }) check_appdata(app_data, meta) - if(!file.exists(user_db)){ - warning("no database found. New database will be created") - db_create(get_review_data(merged_data), db_path = user_db) - } else{ - if(!test_mode){ - db_update(get_review_data(merged_data), db_path = user_db, data_synched = FALSE) - } - } - res_auth <- authenticate_server( test_mode = test_mode, sites = app_vars$Sites$site_code, diff --git a/R/run_app.R b/R/run_app.R index 30206164..701ff509 100644 --- a/R/run_app.R +++ b/R/run_app.R @@ -1,12 +1,8 @@ #' Run the Shiny Application #' -#' @param meta A data frame containing metadata. -#' @param data Either a data frame or a character string with the path to the -#' app data in .rds format. -#' @param user_db Character string. Path to the app database. If not existing, -#' will be created based on app data and metadata, with all data labeled as -#' 'new'/not yet reviewed. -#' @param credentials_db Character string. Path to the credentials database. +#' @param data_folder Character string. The folder in which all data resides is +#' usually set in the config.yml file. However, this can be overwritten if a +#' path is set in this argument. Useful for testing purposes. #' @param credentials_pwd Character string with the credentials' database #' password. #' @param test_mode Logical, whether to run the application in test mode. @@ -21,32 +17,71 @@ run_app <- function( options = list(), enableBookmarking = NULL, uiPattern = "/", - meta = metadata, - data = clinsightful_data, - user_db = "user_db.sqlite", - credentials_db = "credentials_db.sqlite", + data_folder = NULL, credentials_pwd = Sys.getenv("DB_SECRET"), test_mode = FALSE, ... ) { + data_folder <- data_folder %||% get_golem_config("data_folder") %||% "." + if(!dir.exists(data_folder)){ dir.create(data_folder) } + + data <- get_golem_config("study_data") + meta <- get_golem_config("meta_data") + user_db <- file.path(data_folder, get_golem_config("user_db")) + credentials_db <- file.path(data_folder, get_golem_config("credentials_db")) + + ## Verify study data if(is.character(data)){ - stopifnot("Data file does not exist." = file.exists(data)) + if(!dir.exists(data_folder)){ + stop("Folder '", data_folder, "' does not exist.\n") + } + data_path <- file.path(data_folder, data) + if(!file.exists(data_path)) stop(paste0("Cannot find '", data_path, "'.")) stopifnot( - "Invalid data format. Expecting a file .rds format" = grepl("rds$", tolower(basename(data))) + "Invalid data format. Expecting a file .rds format" = + tolower(tools::file_ext(data)) == "rds" ) - } else{ - stopifnot("Invalid data format. Expecting a data frame." = is.data.frame(data) ) + data <- readRDS(data_path) + } + stopifnot("Expecting study data to be in data frame format." = is.data.frame(data) ) + ### TODO: Add tests to check if data is in correct format. Stop if this is not the case. + + ## Verify metadata + if(is.character(meta)){ + meta_path <- file.path(data_folder, meta) + meta_type <- tolower(tools::file_ext(meta)) + stopifnot("For metadata, only .xlsx or .rds format is allowed" = meta_type %in% c("rds", "xlsx")) + rds_file <- paste0(tools::file_path_sans_ext(meta), ".rds") + rds_path <- file.path(data_folder, rds_file) + if(!file.exists(meta_path) & !file.exists(rds_path)) { + stop(paste0("Cannot find '", meta_path, "'.")) + } + if(meta_type == "xlsx" & !file.exists(rds_path)){ + return({ + cat("Reading metadata and creating a new .rds file\n") + meta <- get_metadata(meta_path) + saveRDS(meta, rds_path) + }) + } + if(meta_type == "xlsx"){ + cat("Reading metadata from '", rds_path, "'. Delete this .rds file if '", + meta, "' should be used instead.\n", sep = "") + } + meta <- readRDS(rds_path) } - stopifnot("User database directory does not exist" = dir.exists(dirname(user_db))) - stopifnot("metadata should be provided in list format" = inherits(meta, "list")) + stopifnot("Expecting metadata to be in a list format" = inherits(meta, "list")) - shinymanager::set_labels( - language = "en", - "Please authenticate" = "Login to continue" - ) - options("shinymanager.pwd_validity" = 90) - options("shinymanager.pwd_failure_limit" = 5) + ## Verify user database + if(!file.exists(user_db)){ + warning("No user database found. New database will be created") + db_create(get_review_data(data), db_path = user_db) + } else{ + if(!test_mode){ + db_update(get_review_data(data), db_path = user_db, data_synched = FALSE) + } + } + ## Verify credentials database, if applicable if(!test_mode){ stopifnot("Credentials database directory does not exist" = dir.exists(dirname(credentials_db))) stopifnot("No valid credentials database pwd provided" = is.character(credentials_pwd)) @@ -57,6 +92,13 @@ run_app <- function( ) } + shinymanager::set_labels( + language = "en", + "Please authenticate" = "Login to continue" + ) + options("shinymanager.pwd_validity" = 90) + options("shinymanager.pwd_failure_limit" = 5) + with_golem_options( app = shinyApp( ui = authenticate_ui(test_mode = test_mode), @@ -70,7 +112,7 @@ run_app <- function( meta = meta, data = data, user_db = user_db, - credentials_db = credentials_db, + credentials_db = credentials_db, credentials_pwd = credentials_pwd, test_mode = test_mode, ... diff --git a/man/run_app.Rd b/man/run_app.Rd index 050d0d70..419ccb80 100644 --- a/man/run_app.Rd +++ b/man/run_app.Rd @@ -9,10 +9,7 @@ run_app( options = list(), enableBookmarking = NULL, uiPattern = "/", - meta = metadata, - data = clinsightful_data, - user_db = "user_db.sqlite", - credentials_db = "credentials_db.sqlite", + data_folder = NULL, credentials_pwd = Sys.getenv("DB_SECRET"), test_mode = FALSE, ... @@ -39,16 +36,9 @@ request to determine whether the \code{ui} should be used to handle the request. Note that the entire request path must match the regular expression in order for the match to be considered successful.} -\item{meta}{A data frame containing metadata.} - -\item{data}{Either a data frame or a character string with the path to the -app data in .rds format.} - -\item{user_db}{Character string. Path to the app database. If not existing, -will be created based on app data and metadata, with all data labeled as -'new'/not yet reviewed.} - -\item{credentials_db}{Character string. Path to the credentials database.} +\item{data_folder}{Character string. The folder in which all data resides is +usually set in the config.yml file. However, this can be overwritten if a +path is set in this argument. Useful for testing purposes.} \item{credentials_pwd}{Character string with the credentials' database password.} From 5efb10490cc0e3f7ef08288f843783a65d146e77 Mon Sep 17 00:00:00 2001 From: LDSamson Date: Thu, 6 Jun 2024 13:44:09 +0200 Subject: [PATCH 03/20] Fix tests and fix run_dev --- dev/run_dev.R | 12 +++---- tests/testthat/fixtures/make_testdb.R | 13 +++++-- .../fixtures/testapp-authentication/app.R | 22 +++++------- tests/testthat/fixtures/testapp-raw/app.R | 33 +++++++++++------- tests/testthat/fixtures/testapp/app.R | 24 ++++++------- tests/testthat/fixtures/testdb.sqlite | Bin 757760 -> 757760 bytes tests/testthat/test-app_server.R | 2 ++ tests/testthat/test-get_meta_vars.R | 2 +- tests/testthat/test-golem-recommended.R | 20 +++++++---- 9 files changed, 73 insertions(+), 55 deletions(-) diff --git a/dev/run_dev.R b/dev/run_dev.R index 68af0ec3..50b455e4 100644 --- a/dev/run_dev.R +++ b/dev/run_dev.R @@ -13,18 +13,14 @@ golem::document_and_reload(export_all = TRUE) # Run the application load_and_run_app <- function(){ - # withr call here does not work since the tempfile gets deleted during app initialization. - # different option below, using onStop() within the run_app() function to clean up. - temp_folder <- tempdir() - db_path <- file.path(temp_folder, "testdb.sqlite") + temp_folder <- tempfile(tmpdir = tempdir()) + dir.create(temp_folder) run_app( - meta = metadata, - data = clinsightful_data, - user_db = db_path, + data_folder = temp_folder, test_mode = TRUE, onStart = \(){onStop(\(){unlink(temp_folder, recursive = TRUE)})} ) } -load_and_run_app() \ No newline at end of file +withr::with_envvar(list("GOLEM_CONFIG_ACTIVE" = "dev"), load_and_run_app()) \ No newline at end of file diff --git a/tests/testthat/fixtures/make_testdb.R b/tests/testthat/fixtures/make_testdb.R index ba428a03..7764fd07 100644 --- a/tests/testthat/fixtures/make_testdb.R +++ b/tests/testthat/fixtures/make_testdb.R @@ -6,6 +6,15 @@ rev_data <- get_review_data(clinsightful_data) db_path <- file.path(data_folder, "testdb.sqlite") db_create(rev_data, db_path) # fixed synch time needed for snapshots: -DBI::dbWriteTable(get_db_connection(db_path), "db_synch_time", - data.frame("synch_time" = "2024-01-10"), overwrite = TRUE) +db_temp_connect(db_path, { + DBI::dbWriteTable( + con, + "db_synch_time", + data.frame("synch_time" = "2024-01-10"), + overwrite = TRUE + ) +}) +# To inspect the table, you can run something like this: +# all_tables <- db_temp_connect(db_path, DBI::dbListTables(con)) +# db_temp_connect(db_path, lapply(all_tables, \(x){dplyr::tbl(con, x)})) diff --git a/tests/testthat/fixtures/testapp-authentication/app.R b/tests/testthat/fixtures/testapp-authentication/app.R index f821af8b..74e4f964 100644 --- a/tests/testthat/fixtures/testapp-authentication/app.R +++ b/tests/testthat/fixtures/testapp-authentication/app.R @@ -4,25 +4,19 @@ library(pkg_name, character.only = TRUE) load_and_run_app <- function(){ # withr call here does not work since the tempfile gets deleted during app initialization. # different option below, using onStop() within the run_app() function to clean up. - temp_folder <- tempdir() + temp_folder <- tempfile(tmpdir = tempdir()) + dir.create(temp_folder) # Mimic data loading in production version: - data_path <- file.path(temp_folder, "clinsightful_data.rds") - saveRDS(clinsightful_data, data_path) - - db_path <- file.path(temp_folder, "testdb.sqlite") - file.copy("../testdb.sqlite", db_path) - - credentials_path <- file.path(temp_folder, "credentials.sqlite") - file.copy("credentials.sqlite", credentials_path) + saveRDS(clinsightful_data, file.path(temp_folder, "study_data.rds")) + saveRDS(metadata, file.path(temp_folder, "metadata.rds")) + file.copy("../testdb.sqlite", file.path(temp_folder, "user_db.sqlite")) + file.copy("credentials.sqlite", file.path(temp_folder, "credentials_db.sqlite")) run_app( - meta = metadata, - data = data_path, - user_db = db_path, - credentials_db = credentials_path, + data_folder = temp_folder, credentials_pwd = "1234", test_mode = FALSE, onStart = \(){onStop(\(){unlink(temp_folder, recursive = TRUE)})} ) } -load_and_run_app() +withr::with_envvar(list("GOLEM_CONFIG_ACTIVE" = "production"), load_and_run_app()) diff --git a/tests/testthat/fixtures/testapp-raw/app.R b/tests/testthat/fixtures/testapp-raw/app.R index 8289fd79..b5f847aa 100644 --- a/tests/testthat/fixtures/testapp-raw/app.R +++ b/tests/testthat/fixtures/testapp-raw/app.R @@ -5,16 +5,25 @@ datapath <- "data1pt" # For interactive use: # datapath <- app_sys("tests/testthat/fixtures/csvtestdata") -merged_data <- merge_meta_with_data(get_raw_data( - data_path = datapath, column_specs = metadata$column_specs)) -data_folder <- tempdir() -data_path <- file.path(data_folder, "merged_data.rds") -saveRDS(merged_data, data_path) -db_path <- file.path(data_folder, "testdb.sqlite") +load_and_run_app <- function(){ + data_folder <- tempdir() + temp_folder <- tempfile(tmpdir = tempdir()) + dir.create(temp_folder) + merged_data <- merge_meta_with_data( + get_raw_data( + data_path = datapath, + column_specs = metadata$column_specs + ), + meta = metadata + ) + saveRDS(merged_data, file.path(data_folder, "study_data.rds")) + saveRDS(metadata, file.path(data_folder, "metadata.rds")) + + run_app( + data_folder = data_folder, + test_mode = TRUE, + onStart = \(){onStop(\(){unlink(data_folder, recursive = TRUE)})} + ) +} -run_app( - data = data_path, - user_db = db_path, - test_mode = TRUE, - onStart = \(){onStop(\(){unlink(data_folder, recursive = TRUE)})} -) +withr::with_envvar(list("GOLEM_CONFIG_ACTIVE" = "production"), load_and_run_app()) \ No newline at end of file diff --git a/tests/testthat/fixtures/testapp/app.R b/tests/testthat/fixtures/testapp/app.R index f4b19240..2bc0fdd2 100644 --- a/tests/testthat/fixtures/testapp/app.R +++ b/tests/testthat/fixtures/testapp/app.R @@ -2,24 +2,24 @@ pkg_name <- "clinsight" library(pkg_name, character.only = TRUE) load_and_run_app <- function(){ - # withr call here does not work since the tempfile gets deleted during app initialization. + # Note 1: withr call here does not work since the tempfile gets deleted during app initialization. # different option below, using onStop() within the run_app() function to clean up. - temp_folder <- tempdir() + # Note 2: Creating a temp folder with a random name within the main tempdir + # ensures that we can safely unlink the folder in interactive mode, without + # deleting temporary files from (for example) renv. Inspired by + # withr::with_tempdir(). + temp_folder <- tempfile(tmpdir = tempdir()) + dir.create(temp_folder) # Mimic data loading in production version: - data_path <- file.path(temp_folder, "clinsightful_data.rds") - saveRDS(clinsightful_data, data_path) - - db_folder <- tempdir() - db_path <- file.path(temp_folder, "testdb.sqlite") - file.copy("../testdb.sqlite", db_path) + saveRDS(clinsightful_data, file.path(temp_folder, "study_data.rds")) + saveRDS(metadata, file.path(temp_folder, "metadata.rds")) + file.copy("../testdb.sqlite", file.path(temp_folder, "user_db.sqlite")) run_app( - meta = metadata, - data = data_path, - user_db = db_path, + data_folder = temp_folder, test_mode = TRUE, onStart = \(){onStop(\(){unlink(temp_folder, recursive = TRUE)})} ) } -load_and_run_app() +withr::with_envvar(list("GOLEM_CONFIG_ACTIVE" = "production"), load_and_run_app()) \ No newline at end of file diff --git a/tests/testthat/fixtures/testdb.sqlite b/tests/testthat/fixtures/testdb.sqlite index 506a172f6d86cf45298d62f2757cf1105411faa0..c2d06519c51cb642cb8eaeaccc57483ab23f4eef 100644 GIT binary patch literal 757760 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 UU^bh(IIP-Q4Zn|fXle2P0^EHW>i_@% literal 757760 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 ~* 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 diff --git a/tests/testthat/test-app_server.R b/tests/testthat/test-app_server.R index 2c44e382..f704eb36 100644 --- a/tests/testthat/test-app_server.R +++ b/tests/testthat/test-app_server.R @@ -3,6 +3,7 @@ describe( { it("Can load the server without errors", { db_path <- withr::local_tempfile(fileext = ".sqlite") + file.copy(testthat::test_path("fixtures/testdb.sqlite"), db_path) app_session <- MockShinySession$new() app_session$options$golem_options <- list( "meta" = metadata, @@ -21,6 +22,7 @@ describe( it("Can change main tabs by clicking on the tab, and will save the result in an internal reactive value.", { db_path <- withr::local_tempfile(fileext = ".sqlite") + file.copy(testthat::test_path("fixtures/testdb.sqlite"), db_path) app_session <- MockShinySession$new() app_session$options$golem_options <- list( diff --git a/tests/testthat/test-get_meta_vars.R b/tests/testthat/test-get_meta_vars.R index 1e01dcad..68bc5f31 100644 --- a/tests/testthat/test-get_meta_vars.R +++ b/tests/testthat/test-get_meta_vars.R @@ -9,7 +9,7 @@ describe( it("errors with incorrect input", { expect_error(get_meta_vars(mtcars, metadata)) expect_error(get_meta_vars(appdata, mtcars)) - expect_error(get_meta_vars(list(), mtcars), + expect_error(get_meta_vars(list(), metadata), "Empty list with data provided") }) } diff --git a/tests/testthat/test-golem-recommended.R b/tests/testthat/test-golem-recommended.R index 52f8e227..b9815938 100644 --- a/tests/testthat/test-golem-recommended.R +++ b/tests/testthat/test-golem-recommended.R @@ -69,13 +69,21 @@ test_that( describe( "app launches", { - it("errors if required data is not available", { - expect_error(run_app(data = "unknown_path" ), "Data file does not exist") - # provide incorrect existing file: - expect_error( - run_app(data = testthat::test_path("fixtures/testdb.sqlite")), - "Invalid data format" + it("Errors if required data is not available", { + temp_folder <- tempfile(tmpdir = tempdir()) + dir.create(temp_folder) + + withr::with_envvar( + list("GOLEM_CONFIG_ACTIVE" = "production"), + expect_error( + run_app( + data_folder = temp_folder, + test_mode = TRUE, + onStart = \(){onStop(\(){unlink(temp_folder, recursive = TRUE)})} + ), + "Cannot find" ) + ) }) } ) From 6494f216d965879084bbd5574fb8cebcdc9b43fe Mon Sep 17 00:00:00 2001 From: LDSamson Date: Fri, 7 Jun 2024 09:14:53 +0200 Subject: [PATCH 04/20] Remove unused function --- NAMESPACE | 1 - R/fct_data_tests.R | 30 ------------------------------ inst/_pkgdown.yml | 1 - 3 files changed, 32 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 5fc58c47..fdadf40f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -13,7 +13,6 @@ export(adjust_colnames) export(app_ui) export(bind_rows_custom) export(check_appdata) -export(check_available_data) export(clean_dates) export(collapse_column_vals) export(collapse_fct_levels) diff --git a/R/fct_data_tests.R b/R/fct_data_tests.R index 7a859a2c..c30d751c 100644 --- a/R/fct_data_tests.R +++ b/R/fct_data_tests.R @@ -53,33 +53,3 @@ check_appdata <- function( cat("data check completed.\n") } - -#' Check available data -#' -#' Checks if data is loaded in memory and if not, provides an informative error -#' message. -#' -#' @param required_data A character vector with objects that are required. -#' @param env The environment to check in. -#' -#' @return Nothing if the checks are passed. If not, will throw an error. -#' @export -#' -#' @examples -#' # check_available_data("missing_data_frame") -#' # Error in check_available_data("missing_data_frame") : -#' # The following data objects are required to run the app properly, -#' # but are missing: missing_data_frame -#' -check_available_data <- function( - required_data = c("appdata", "apptables", "vars", "db_path"), - env = globalenv() -){ - stopifnot(is.character(required_data)) - missing_dfs <- required_data[!required_data %in% ls(envir = env)] - if(!length(missing_dfs) == 0) stop( - "The following data objects are required to run the app properly, but are missing: ", - paste0(missing_dfs, collapse = ", ") - ) -} - diff --git a/inst/_pkgdown.yml b/inst/_pkgdown.yml index d9c5aab6..5935de3e 100644 --- a/inst/_pkgdown.yml +++ b/inst/_pkgdown.yml @@ -95,7 +95,6 @@ reference: - adjust_colnames - bind_rows_custom - check_appdata - - check_available_data - filter_data - clean_dates - collapse_column_vals From a589a48ee22aa03dd6e950a219d76c5fb3089de5 Mon Sep 17 00:00:00 2001 From: LDSamson Date: Tue, 4 Jun 2024 17:53:29 +0200 Subject: [PATCH 05/20] Fix calls to metadata so that external metadata can be used --- NAMESPACE | 1 + R/app_server.R | 17 ++++++++++++---- R/fct_SQLite.R | 11 +++-------- R/fct_appdata.R | 4 ++-- R/fct_data_helpers.R | 7 ++++--- R/fct_figures.R | 25 ++++++++++++------------ R/global.R | 2 +- R/mod_header_widgets.R | 14 ++++++++----- R/mod_study_forms.R | 18 ++++++++++------- data-raw/create_random_data.R | 2 +- dev/improve_figures.qmd | 2 +- man/db_create.Rd | 4 ++-- man/fig_timeline.Rd | 5 +++-- man/merge_meta_with_data.Rd | 4 ++-- man/mod_header_widgets_server.Rd | 12 ++++++++---- man/mod_header_widgets_ui.Rd | 6 +++--- man/mod_study_forms_server.Rd | 7 ++++++- tests/testthat/test-fct_appdata.R | 8 ++++---- tests/testthat/test-fig_timeline.R | 2 +- tests/testthat/test-mod_header_widgets.R | 9 ++++++--- tests/testthat/test-mod_study_forms.R | 12 ++++++++---- 21 files changed, 101 insertions(+), 71 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index fdadf40f..ed136c23 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -46,6 +46,7 @@ export(get_db_connection) export(get_ggplot_layer_names) export(get_max_time) export(get_meta_vars) +export(get_metadata) export(get_raw_data) export(get_review_data) export(get_static_overview_data) diff --git a/R/app_server.R b/R/app_server.R index 3327b000..d759eb43 100644 --- a/R/app_server.R +++ b/R/app_server.R @@ -18,11 +18,13 @@ app_server <- function( session ){ meta <- golem::get_golem_options("meta") + if(is.character(meta)) meta <- readRDS(meta) merged_data <- golem::get_golem_options("data") user_db <- golem::get_golem_options("user_db") credentials_db <- golem::get_golem_options("credentials_db") test_mode <- golem::get_golem_options("test_mode") - app_data <- get_appdata(merged_data) + + app_data <- get_appdata(merged_data, meta = meta) app_vars <- get_meta_vars(data = app_data, meta = meta) app_tables <- lapply( setNames(names(app_data), names(app_data)), \(x){ @@ -73,7 +75,7 @@ app_server <- function( static_overview_data <- get_static_overview_data( data = app_data, expected_general_columns = unique( - with(metadata$items_expanded, item_name[item_group == "General"]) + with(meta$items_expanded, item_name[item_group == "General"]) ) ) # think of using the pool package, but functions such as row_update are not yet supported. @@ -180,13 +182,20 @@ app_server <- function( lapply(app_vars$groups, \(x){mod_study_forms_server( id = paste0("sf_", simplify_string(x)), r = r, form = x, - form_items = app_vars$items[[x]], table_names = app_vars$table_names + form_items = app_vars$items[[x]], table_names = app_vars$table_names, + item_info = meta$groups[meta$groups$item_group == x, ] ) }) |> unlist(recursive = FALSE) mod_start_page_server("start_page_1", r, rev_data, navinfo, app_vars$all_forms, app_vars$table_names) - mod_header_widgets_server("header_widgets_1", r, rev_data, navinfo) + mod_header_widgets_server( + id = "header_widgets_1", + r = r, + rev_data = rev_data, + navinfo = navinfo, + events = meta$events + ) # Only initiate the sidebar after successful login, because it contains a # modal that pops up if data is out of synch. Modals interfere with shinymanager. diff --git a/R/fct_SQLite.R b/R/fct_SQLite.R index fc9b81d7..f52c1fdc 100644 --- a/R/fct_SQLite.R +++ b/R/fct_SQLite.R @@ -48,8 +48,8 @@ db_temp_connect <- function(db_path, code, drv = RSQLite::SQLite()){ #' Creates application database. To create a database with all data flagged as #' 'new', use the default settings of `reviewed`, `reviewer`, and `status`. #' -#' @param data Either a data frame with review data (Usually created with -#' [get_review_data()]), or a character path to the raw data files. +#' @param data A data frame with review data (Usually created with +#' [get_review_data()]). #' @param db_path A character vector with the path to the database to be #' created. #' @param reviewed Character vector. Sets the reviewed tag in the review @@ -74,11 +74,6 @@ db_create <- function( stopifnot(!file.exists(db_path)) stopifnot(reviewed %in% c("Yes", "No", "")) stopifnot(is.data.frame(data) || is.character(data)) - if(!is.data.frame(data)){ - data <- get_raw_data(data) |> - merge_meta_with_data() |> - get_review_data() - } df <- data |> dplyr::mutate( reviewed = reviewed, @@ -147,7 +142,7 @@ db_update <- function( cat("Start adding new rows to database\n") updated_review_data <- update_review_data( review_df = review_data, - latest_review_data = data, #get_review_data(merge_meta_with_data(data), common_vars), + latest_review_data = data, common_vars = common_vars, edit_time_var = edit_time_var ) diff --git a/R/fct_appdata.R b/R/fct_appdata.R index d88ef1ee..fc69cda5 100644 --- a/R/fct_appdata.R +++ b/R/fct_appdata.R @@ -104,8 +104,8 @@ get_raw_data <- function( #' @export #' merge_meta_with_data <- function( - data = raw_data, - meta = metadata, + data, + meta, expected_columns = c("LBORNR_Lower", "LBORNR_Upper", "LBORRESU", "LBORRESUOTH", "LBREASND", "unit", "lower_limit", "upper_limit", "LBCLSIG") diff --git a/R/fct_data_helpers.R b/R/fct_data_helpers.R index 0fe00f1c..9bc677b1 100644 --- a/R/fct_data_helpers.R +++ b/R/fct_data_helpers.R @@ -12,6 +12,7 @@ #' ignored if the variable `expand_tab_items` is left empty. #' #' @return A list with data frames. +#' @export #' get_metadata <- function( filepath, @@ -137,7 +138,7 @@ fix_multiple_choice_vars <- function( #' get_meta_vars <- function(data = appdata, meta = metadata){ stopifnot(inherits(data, "list")) - stopifnot(inherits(metadata, "list")) + stopifnot(inherits(meta, "list")) if(length(data) == 0) stop("Empty list with data provided") vars <- list() # add metadata variables: @@ -148,7 +149,7 @@ get_meta_vars <- function(data = appdata, meta = metadata){ split(~item_group) |> lapply(\(x){setNames(simplify_string(x$item_name), x$item_name)}) vars$groups <- meta$groups$item_group - common_forms <- c("Adverse events", "Medical History", "Medication", "Conc. Procedures") + common_forms <- unique(meta$common_forms$item_group) vars$all_forms <- data.frame( "main_tab" = c( rep("Common events", times = length(common_forms)), @@ -161,7 +162,7 @@ get_meta_vars <- function(data = appdata, meta = metadata){ vars$subject_id <- order_string(get_unique_vars(data, "subject_id")[[1]]) vars$Sites <- get_unique_vars(data, c("site_code", "region")) |> dplyr::arrange(factor(site_code, levels = order_string(site_code))) - vars$table_names <- setNames(metadata$table_names$raw_name, metadata$table_names$table_name) + vars$table_names <- setNames(meta$table_names$raw_name, meta$table_names$table_name) vars } diff --git a/R/fct_figures.R b/R/fct_figures.R index f86c4daf..76d488eb 100644 --- a/R/fct_figures.R +++ b/R/fct_figures.R @@ -80,32 +80,32 @@ fig_boxplots <- function( } #' Create timeline -#' -#' Function to create a simple timeline figure using `ggplot2`. +#' +#' Function to create a simple timeline figure using `ggplot2`. #' #' @param data Data frame to use. -#' @param meta_data Metadata file with all possible time points. +#' @param events Data frame containing information about all events. Used +#' to create the right labels in the timeline figure. #' #' @return A ggplot2 object. #' @export -#' +#' fig_timeline <- function( data, - meta_data = metadata + events ){ stopifnot(is.data.frame(data)) - stopifnot(is.list(meta_data)) + stopifnot(is.data.frame(events)) completed_events <- data |> dplyr::filter(!is.na(event_name), - event_label %in% meta_data$events$event_label) |> + event_label %in% events$event_label) |> dplyr::slice_head(n = 1, by = c(event_name, item_name)) |> # 051022 LSA ensures only one item per event dplyr::count(event_name, event_label) |> dplyr::mutate( - all_data = factor(as.numeric(n == length(meta_data$items$item_name))), - event_label = factor(event_label, levels = meta_data$events$event_label) + event_label = factor(event_label, levels = events$event_label) ) - all_events <- meta_data$events |> + all_events <- events |> dplyr::mutate(event_name = factor(event_name, levels = event_name), event_label = factor(event_label, levels = event_label)) uneven_events <- all_events[1:length(all_events$event_name) %% 2 == 0, ] @@ -150,10 +150,9 @@ fig_timeline <- function( ) + ggplot2::geom_point( data = completed_events, - ggplot2::aes(fill = all_data), + fill = "grey80", size = 6, pch = 21 - ) + - ggplot2::scale_fill_manual(values = c("0" = "grey80", "1" = "black")) + ) } } diff --git a/R/global.R b/R/global.R index 1cc8df7a..2c5d7ce0 100644 --- a/R/global.R +++ b/R/global.R @@ -10,7 +10,7 @@ global <- quote({ if(!file.exists(data_local)){ warning("No data found. Trying to rebuild raw data from remote source") merged_data <- merge_meta_with_data(get_raw_data( - data_path = raw_data_remote, column_specs = metadata$column_specs)) + data_path = raw_data_remote, column_specs = metadata$column_specs), metadata) cat("saving raw data locally\n") saveRDS(merged_data, data_local) if(!file.exists(data_local)) stop("Could not save data set locally.") diff --git a/R/mod_header_widgets.R b/R/mod_header_widgets.R index d3012d2f..31af1e24 100644 --- a/R/mod_header_widgets.R +++ b/R/mod_header_widgets.R @@ -34,9 +34,9 @@ mod_header_widgets_ui <- function(id){ #' timeline figure showing the number of visits that the patient performed. The #' value box with adverse events also serves as a link to the adverse events #' form. Furthermore, clicking on the box with forms to review will trigger -#' [mod_navigate_review_server()], opening a modal that shows the forms that need -#' review and the queries that are open of the active participant, to which you -#' can directly navigate to. +#' [mod_navigate_review_server()], opening a modal that shows the forms that +#' need review and the queries that are open of the active participant, to which +#' you can directly navigate to. #' #' @param id Character string, used to connect the module UI with the module #' Server. @@ -45,12 +45,16 @@ mod_header_widgets_ui <- function(id){ #' @param navinfo Reactive values created with [shiny::reactiveValues()]. Used #' to send back information about the page change to the server, when clicking #' on the adverse event box. +#' @param events Data frame containing all events. Used to extract the right +#' labels for the visits in the compact timeline in the header_widgets. See +#' [fig_timeline()]. #' #' @seealso [mod_header_widgets_ui()] -mod_header_widgets_server <- function(id, r, rev_data, navinfo){ +mod_header_widgets_server <- function(id, r, rev_data, navinfo, events){ stopifnot(is.reactivevalues(r)) stopifnot(is.reactivevalues(navinfo)) stopifnot(is.reactivevalues(rev_data)) + stopifnot(is.data.frame(events)) moduleServer( id, function(input, output, session){ ns <- session$ns @@ -124,7 +128,7 @@ mod_header_widgets_server <- function(id, r, rev_data, navinfo){ golem::cat_dev("plot datapoints figure\n") fig_timeline( data = selected_individual_data(), - meta_data = metadata + events = events ) }, height = 60 diff --git a/R/mod_study_forms.R b/R/mod_study_forms.R index 26720c38..0dbfaea7 100644 --- a/R/mod_study_forms.R +++ b/R/mod_study_forms.R @@ -104,6 +104,9 @@ mod_study_forms_ui <- function(id, form, form_items){ #' interactive tables. #' @param id_item Character vector containing the column names of the columns #' that can uniquely identify one item/row. +#' @param item_info A data frame containing the names of the study forms (in the +#' column `item_group`), and the columns `item_scale` `use_unscaled_limits`, +#' which are used to customize the way the figures are shown in the page. #' #' @seealso [mod_study_forms_ui()] #' @@ -114,12 +117,15 @@ mod_study_forms_server <- function( form_items, id_item = c("subject_id", "event_name", "item_group", "form_repeat", "item_name"), - table_names = NULL + table_names = NULL, + item_info ){ stopifnot(is.reactivevalues(r)) stopifnot(is.character(form), length(form) == 1) stopifnot(is.character(form_items)) stopifnot(is.character(id_item)) + stopifnot(is.data.frame(item_info)) + names(form_items) <- names(form_items) %||% form_items moduleServer(id, function(input, output, session){ ns <- session$ns @@ -141,7 +147,7 @@ mod_study_forms_server <- function( paste0("Warning: no data found in the database for the form '", form, "'.") )) df <- r$filtered_data[[form]] - if(is.null(df)) return(NULL) + status_df <- r$review_data |> dplyr::filter(item_group == form) |> dplyr::select(dplyr::all_of(c(id_item, "edit_date_time", "status", "reviewed"))) |> @@ -179,7 +185,7 @@ mod_study_forms_server <- function( ############################### Outputs: ################################### dynamic_figure <- reactive({ req(nrow(fig_data()) > 0) - scale_yval <- as.logical(with(metadata$groups, item_scale[item_group == form])) + scale_yval <- as.logical(item_info[["item_scale"]][1]) %||% FALSE yval <- ifelse(scale_yval, "value_scaled", "item_value") validate(need( fig_data()[[yval]], @@ -195,10 +201,8 @@ mod_study_forms_server <- function( id_to_highlight = r$subject_id, point_size = "reviewed", height = ceiling(0.5*length(unique(fig_data()$item_name))*125+150), - scale = as.logical(with(metadata$groups, item_scale[item_group == form])), - use_unscaled_limits = as.logical( - with(metadata$groups, use_unscaled_limits[item_group == form]) - ) + scale = scale_yval, + use_unscaled_limits = as.logical(item_info[["use_unscaled_limits"]][1]) %||% FALSE ) }) diff --git a/data-raw/create_random_data.R b/data-raw/create_random_data.R index 675d0e54..e3f9af79 100644 --- a/data-raw/create_random_data.R +++ b/data-raw/create_random_data.R @@ -21,7 +21,7 @@ randomized_raw_data <- raw_data |> subject_id = new_id, dplyr::everything(), -subject_id, -site_code ) -merged_data <- merge_meta_with_data(randomized_raw_data) +merged_data <- merge_meta_with_data(randomized_raw_data, metadata) ####################### Randomize continuous data ####################### random_continuous <- merged_data |> diff --git a/dev/improve_figures.qmd b/dev/improve_figures.qmd index fd6c63dd..bac21008 100644 --- a/dev/improve_figures.qmd +++ b/dev/improve_figures.qmd @@ -17,7 +17,7 @@ library(ggplot2) library(plotly) pkgname <- "clinsight" library(pkgname, character.only = TRUE) -merged_data <- merge_meta_with_data(clinsightful_data) +merged_data <- merge_meta_with_data(clinsightful_data, metadata) appdata <- get_appdata(merged_data) vars <- get_meta_vars(data = appdata, meta = metadata) apptables <- lapply( diff --git a/man/db_create.Rd b/man/db_create.Rd index bb99d7fd..66db2a72 100644 --- a/man/db_create.Rd +++ b/man/db_create.Rd @@ -7,8 +7,8 @@ db_create(data, db_path, reviewed = "No", reviewer = "", status = "new") } \arguments{ -\item{data}{Either a data frame with review data (Usually created with -\code{\link[=get_review_data]{get_review_data()}}), or a character path to the raw data files.} +\item{data}{A data frame with review data (Usually created with +\code{\link[=get_review_data]{get_review_data()}}).} \item{db_path}{A character vector with the path to the database to be created.} diff --git a/man/fig_timeline.Rd b/man/fig_timeline.Rd index 73cff9f1..b7a6d193 100644 --- a/man/fig_timeline.Rd +++ b/man/fig_timeline.Rd @@ -4,12 +4,13 @@ \alias{fig_timeline} \title{Create timeline} \usage{ -fig_timeline(data, meta_data = metadata) +fig_timeline(data, events) } \arguments{ \item{data}{Data frame to use.} -\item{meta_data}{Metadata file with all possible time points.} +\item{events}{Data frame containing information about all events. Used +to create the right labels in the timeline figure.} } \value{ A ggplot2 object. diff --git a/man/merge_meta_with_data.Rd b/man/merge_meta_with_data.Rd index 2f5e531a..f2df36dd 100644 --- a/man/merge_meta_with_data.Rd +++ b/man/merge_meta_with_data.Rd @@ -5,8 +5,8 @@ \title{Merge metadata with raw data} \usage{ merge_meta_with_data( - data = raw_data, - meta = metadata, + data, + meta, expected_columns = c("LBORNR_Lower", "LBORNR_Upper", "LBORRESU", "LBORRESUOTH", "LBREASND", "unit", "lower_limit", "upper_limit", "LBCLSIG") ) diff --git a/man/mod_header_widgets_server.Rd b/man/mod_header_widgets_server.Rd index 043fee88..38fc7f57 100644 --- a/man/mod_header_widgets_server.Rd +++ b/man/mod_header_widgets_server.Rd @@ -4,7 +4,7 @@ \alias{mod_header_widgets_server} \title{Header widgets - Shiny module Server} \usage{ -mod_header_widgets_server(id, r, rev_data, navinfo) +mod_header_widgets_server(id, r, rev_data, navinfo, events) } \arguments{ \item{id}{Character string, used to connect the module UI with the module @@ -17,6 +17,10 @@ Server.} \item{navinfo}{Reactive values created with \code{\link[shiny:reactiveValues]{shiny::reactiveValues()}}. Used to send back information about the page change to the server, when clicking on the adverse event box.} + +\item{events}{Data frame containing all events. Used to extract the right +labels for the visits in the compact timeline in the header_widgets. See +\code{\link[=fig_timeline]{fig_timeline()}}.} } \description{ A shiny module. Used to show user information of the active user in value @@ -30,9 +34,9 @@ updated data is available), the number of forms that need a review, and a timeline figure showing the number of visits that the patient performed. The value box with adverse events also serves as a link to the adverse events form. Furthermore, clicking on the box with forms to review will trigger -\code{\link[=mod_navigate_review_server]{mod_navigate_review_server()}}, opening a modal that shows the forms that need -review and the queries that are open of the active participant, to which you -can directly navigate to. +\code{\link[=mod_navigate_review_server]{mod_navigate_review_server()}}, opening a modal that shows the forms that +need review and the queries that are open of the active participant, to which +you can directly navigate to. } \seealso{ \code{\link[=mod_header_widgets_ui]{mod_header_widgets_ui()}} diff --git a/man/mod_header_widgets_ui.Rd b/man/mod_header_widgets_ui.Rd index 7a10c9fe..a74c79eb 100644 --- a/man/mod_header_widgets_ui.Rd +++ b/man/mod_header_widgets_ui.Rd @@ -22,9 +22,9 @@ updated data is available), the number of forms that need a review, and a timeline figure showing the number of visits that the patient performed. The value box with adverse events also serves as a link to the adverse events form. Furthermore, clicking on the box with forms to review will trigger -\code{\link[=mod_navigate_review_server]{mod_navigate_review_server()}}, opening a modal that shows the forms that need -review and the queries that are open of the active participant, to which you -can directly navigate to. +\code{\link[=mod_navigate_review_server]{mod_navigate_review_server()}}, opening a modal that shows the forms that +need review and the queries that are open of the active participant, to which +you can directly navigate to. } \seealso{ \code{\link[=mod_header_widgets_server]{mod_header_widgets_server()}} diff --git a/man/mod_study_forms_server.Rd b/man/mod_study_forms_server.Rd index e151b2da..8c84debd 100644 --- a/man/mod_study_forms_server.Rd +++ b/man/mod_study_forms_server.Rd @@ -10,7 +10,8 @@ mod_study_forms_server( form, form_items, id_item = c("subject_id", "event_name", "item_group", "form_repeat", "item_name"), - table_names = NULL + table_names = NULL, + item_info ) } \arguments{ @@ -42,6 +43,10 @@ that can uniquely identify one item/row.} \item{table_names}{An optional character vector. If provided, will be used within \code{\link[=datatable_custom]{datatable_custom()}}, to improve the column names in the final interactive tables.} + +\item{item_info}{A data frame containing the names of the study forms (in the +column \code{item_group}), and the columns \code{item_scale} \code{use_unscaled_limits}, +which are used to customize the way the figures are shown in the page.} } \description{ A shiny module. Used to display figures and tables of a study-specific form diff --git a/tests/testthat/test-fct_appdata.R b/tests/testthat/test-fct_appdata.R index 98dd57de..46488231 100644 --- a/tests/testthat/test-fct_appdata.R +++ b/tests/testthat/test-fct_appdata.R @@ -14,17 +14,17 @@ describe( raw_data <- suppressWarnings(get_raw_data(data_path)) it("Produces a data frame without errors", { - expect_true(is.data.frame(merge_meta_with_data(raw_data))) - expect_equal(nrow(merge_meta_with_data(raw_data)), 543) + expect_true(is.data.frame(merge_meta_with_data(raw_data, metadata))) + expect_equal(nrow(merge_meta_with_data(raw_data, metadata)), 543) expect_true( all(metadata$raw_column_names$col_new[1:6] %in% - names(merge_meta_with_data(raw_data))) + names(merge_meta_with_data(raw_data, metadata))) ) }) it(paste0("Scenario 1. Given a data frame with raw data,", "I expect that the output will be the same as recorded in a snapshot."), { - df <- merge_meta_with_data(raw_data) + df <- merge_meta_with_data(raw_data, metadata) expect_snapshot(df[c(1, 1000, 2000, 3000, 4000, 5000), ]) expect_snapshot(df) }) diff --git a/tests/testthat/test-fig_timeline.R b/tests/testthat/test-fig_timeline.R index fd01f4b2..27a20260 100644 --- a/tests/testthat/test-fig_timeline.R +++ b/tests/testthat/test-fig_timeline.R @@ -1,6 +1,6 @@ test_that("fig_timeline() creates a valid ggplot2 figure object", { - expect_true(ggplot2::is.ggplot(fig_timeline(clinsightful_data))) + expect_true(ggplot2::is.ggplot(fig_timeline(clinsightful_data, events = metadata$events))) # TODO: check if it should error with empty dataframe? #expect_error(fig_timeline(data = appdata[0,])) }) diff --git a/tests/testthat/test-mod_header_widgets.R b/tests/testthat/test-mod_header_widgets.R index e6499f85..3599dd0c 100644 --- a/tests/testthat/test-mod_header_widgets.R +++ b/tests/testthat/test-mod_header_widgets.R @@ -24,7 +24,8 @@ describe( ) ), rev_data = reactiveValues(), - navinfo = reactiveValues() + navinfo = reactiveValues(), + events = metadata$events ) testServer(mod_header_widgets_server, args = testargs, { ns <- session$ns @@ -87,7 +88,8 @@ describe( ) }) ), - navinfo = reactiveValues() + navinfo = reactiveValues(), + events = metadata$events ) testServer(mod_header_widgets_server, args = testargs, { @@ -143,7 +145,8 @@ describe( ) }) ), - navinfo = reactiveValues() + navinfo = reactiveValues(), + events = metadata$events ) testServer(mod_header_widgets_server, args = testargs, { diff --git a/tests/testthat/test-mod_study_forms.R b/tests/testthat/test-mod_study_forms.R index d5805601..2457f321 100644 --- a/tests/testthat/test-mod_study_forms.R +++ b/tests/testthat/test-mod_study_forms.R @@ -20,7 +20,8 @@ describe( r = reactiveValues(), form = "Vital signs", id_item = "", - form_items = "" + form_items = "", + item_info = data.frame() ) testServer(mod_study_forms_server, args = testargs , { ns <- session$ns @@ -59,7 +60,8 @@ describe( form = "Vital signs", id_item = c("subject_id", "event_name", "item_group", "form_repeat", "item_name"), - form_items = form_items + form_items = form_items, + item_info = metadata$groups[metadata$groups$item_group == "Vital signs", ] ) it("Scenario 1 | Given subject id is set to NLD_05_561, and form filter set to 'pulse' and 'bmi', I expect that [fig_data] contains a data frame with only items 'BMI' and 'Pulse', @@ -153,7 +155,8 @@ describe( form = "Vital signs", id_item = c("subject_id", "event_name", "item_group", "form_repeat", "item_name"), - form_items = with(metadata$study_forms, item_name[item_group == "Vital signs"]) + form_items = with(metadata$study_forms, item_name[item_group == "Vital signs"]), + item_info = metadata$groups[metadata$groups$item_group == "Vital signs", ] ) it( @@ -209,7 +212,8 @@ describe( form = "Vital signs", id_item = c("subject_id", "event_name", "item_group", "form_repeat", "item_name"), - form_items = form_items + form_items = form_items, + item_info = metadata$groups[metadata$groups$item_group == "Vital signs", ] ) } test_app <- shinyApp(test_ui, test_server) From c10e223b54dfe25a9778fadf21f87554b66f2f20 Mon Sep 17 00:00:00 2001 From: LDSamson Date: Fri, 7 Jun 2024 09:15:28 +0200 Subject: [PATCH 06/20] Add test to see that custom metadata can be used. Fix other tests --- R/mod_study_forms.R | 2 +- man/check_available_data.Rd | 30 -- tests/testthat/_snaps/app_feature_04.md | 35 +- .../app_feature_04/app-feature-4-001.json | 317 ++++-------------- .../app_feature_04/app-feature-4-001_.png | Bin 132310 -> 107695 bytes .../app_feature_04/app-feature-4-002.json | 317 ++++-------------- tests/testthat/_snaps/get_meta_vars.md | 6 +- .../testapp-raw/altered_metadata.xlsx | Bin 0 -> 54647 bytes tests/testthat/fixtures/testapp-raw/app.R | 17 +- tests/testthat/test-app_feature_04.R | 40 ++- 10 files changed, 175 insertions(+), 589 deletions(-) delete mode 100644 man/check_available_data.Rd create mode 100644 tests/testthat/fixtures/testapp-raw/altered_metadata.xlsx diff --git a/R/mod_study_forms.R b/R/mod_study_forms.R index 0dbfaea7..dd00d72a 100644 --- a/R/mod_study_forms.R +++ b/R/mod_study_forms.R @@ -215,7 +215,7 @@ mod_study_forms_server <- function( datatable_custom(table_data_active(), table_names, escape = FALSE) }) - if(form == "Vital signs"){ + if(form %in% c("Vital signs", "Vitals adjusted")){ shiny::exportTestValues( table_data = table_data_active(), fig_data = fig_data() diff --git a/man/check_available_data.Rd b/man/check_available_data.Rd deleted file mode 100644 index d7306de7..00000000 --- a/man/check_available_data.Rd +++ /dev/null @@ -1,30 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/fct_data_tests.R -\name{check_available_data} -\alias{check_available_data} -\title{Check available data} -\usage{ -check_available_data( - required_data = c("appdata", "apptables", "vars", "db_path"), - env = globalenv() -) -} -\arguments{ -\item{required_data}{A character vector with objects that are required.} - -\item{env}{The environment to check in.} -} -\value{ -Nothing if the checks are passed. If not, will throw an error. -} -\description{ -Checks if data is loaded in memory and if not, provides an informative error -message. -} -\examples{ -# check_available_data("missing_data_frame") -# Error in check_available_data("missing_data_frame") : -# The following data objects are required to run the app properly, -# but are missing: missing_data_frame - -} diff --git a/tests/testthat/_snaps/app_feature_04.md b/tests/testthat/_snaps/app_feature_04.md index f083823b..90c43816 100644 --- a/tests/testthat/_snaps/app_feature_04.md +++ b/tests/testthat/_snaps/app_feature_04.md @@ -1,24 +1,23 @@ -# Feature 4 | Load data from raw csv files. As a user, I want to be able to load data from the raw csv file output from the EDC system, and show this data in the application.: Scenario 1 | Load raw data from Viedoc and display in application from one patient. Given raw CSV data exported from the EDC system from patient [IME-9600-002], with, at both Screening and Visit 2 the [Systolic blood pressure] being 99, [Diastolic Blood Pressure] 77, [Pulse] 77, [Resp] 9, and [Temperature] 37.5, and (only at screening) [Weight] 70kg, and that I browse to the 'Study data' tabI expect that I see the Vital signs page of patient 'IME-9600-002', and that I see a figure with the data displayed, and that I see a table with the data displayed after clicking on the table view, and that the data for the figure and table in the app is the same as the raw data in the CSV files. +# Feature 4 | Load data from raw csv files. As a user, I want to be able to load data from the raw csv file output from the EDC system, and show this data in the application.: Scenario 1 | Load raw data with custom metadata. Given raw CSV data exported from the EDC system from patient [9600-002], and with metadata in which total visits is restricted to V0-V10, and with only the study_forms 'Response' and 'Vitals adjusted' in the metadataand with, at both Screening and Visit 2 the [Systolic blood pressure] being 99, [Diastolic Blood Pressure] 77, [Pulse] 77, [Resp] 9, and [Temperature] 37.5, and (only at screening) [Weight] 70kg, and that I browse to the 'Study data' tabI expect that I see the Vital signs page of patient [9600-002]', and that the compact header timeline shows visits V0-V10and that I see a figure with the data displayed, and that I see a table with the data displayed after clicking on the table view, and that the data for the figure and table in the app is the same as the raw data in the CSV files. Code fig_data Output - # A tibble: 13 x 9 - subject_id event_name event_date item_group item_name item_value item_unit - - 1 9600-002 Screening 2022-01-01 Vital signs Systolic b~ 99 mmHg - 2 9600-002 Visit 2 2022-09-11 Vital signs Systolic b~ 99 mmHg - 3 9600-002 Screening 2022-01-01 Vital signs Diastolic ~ 77 mmHg - 4 9600-002 Visit 2 2022-09-11 Vital signs Diastolic ~ 77 mmHg - 5 9600-002 Screening 2022-01-01 Vital signs Pulse 77 beats/min - 6 9600-002 Visit 2 2022-09-11 Vital signs Pulse 77 beats/min - 7 9600-002 Screening 2022-01-01 Vital signs Resp 9 breaths/~ - 8 9600-002 Visit 2 2022-09-11 Vital signs Resp 9 breaths/~ - 9 9600-002 Screening 2022-01-01 Vital signs Temperature 37.5 °C - 10 9600-002 Visit 2 2022-09-11 Vital signs Temperature 37.5 °C - 11 9600-002 Screening 2022-01-01 Vital signs Weight cha~ 0 % - 12 9600-002 Screening 2022-01-01 Vital signs BMI 22.1 kg/m2 - 13 9600-002 Screening 2022-01-01 Vital signs Weight 70 kg + # A tibble: 12 x 9 + subject_id event_name event_date item_group item_name item_value item_unit + + 1 9600-002 Screening 2022-01-01 Vitals adjus~ Systolic~ 99 mmHg + 2 9600-002 Visit 2 2022-09-11 Vitals adjus~ Systolic~ 99 mmHg + 3 9600-002 Screening 2022-01-01 Vitals adjus~ Diastoli~ 77 mmHg + 4 9600-002 Visit 2 2022-09-11 Vitals adjus~ Diastoli~ 77 mmHg + 5 9600-002 Screening 2022-01-01 Vitals adjus~ Pulse 77 beats/min + 6 9600-002 Visit 2 2022-09-11 Vitals adjus~ Pulse 77 beats/min + 7 9600-002 Screening 2022-01-01 Vitals adjus~ Resp 9 breaths/~ + 8 9600-002 Visit 2 2022-09-11 Vitals adjus~ Resp 9 breaths/~ + 9 9600-002 Screening 2022-01-01 Vitals adjus~ Temperat~ 37.5 °C + 10 9600-002 Visit 2 2022-09-11 Vitals adjus~ Temperat~ 37.5 °C + 11 9600-002 Screening 2022-01-01 Vitals adjus~ BMI 22.1 kg/m2 + 12 9600-002 Screening 2022-01-01 Vitals adjus~ Weight 70 kg # i 2 more variables: lower_lim , upper_lim --- @@ -37,6 +36,6 @@ 2 77* beats/min 9* breaths/min 37.5* °C `Weight change since screening` BMI Weight - 1 0* % 22.09* kg/m2 70* kg + 1 22.09* kg/m2 70* kg 2 diff --git a/tests/testthat/_snaps/app_feature_04/app-feature-4-001.json b/tests/testthat/_snaps/app_feature_04/app-feature-4-001.json index fe7b296e..7b00436c 100644 --- a/tests/testthat/_snaps/app_feature_04/app-feature-4-001.json +++ b/tests/testthat/_snaps/app_feature_04/app-feature-4-001.json @@ -1,9 +1,9 @@ { "input": { - "sf_vital_signs-switch_view": "graph" + "sf_vitals_adjusted-switch_view": "graph" }, "output": { - "main_sidebar_1-navigate_forms_1-form_name": "

Vital signs<\/b><\/center>", + "main_sidebar_1-navigate_forms_1-form_name": "
Vitals adjusted<\/b><\/center>", "navigate_participants_1-subject_info": { "html": "
\n
\n
\n
\n
\n <\/i>\n <\/div>\n <\/div>\n
\n
\n

9600-002<\/p>\n

Female, 36yrs.<\/p>\n <\/div>\n <\/div>\n <\/div>\n <\/div>\n