Skip to contents

Takes the current state of the app and builds a script to reproduce the analysis within the app.

Usage

FM_fetch_app_code(session, state, mod_ids)

Arguments

session

Shiny session variable

state

module state after yaml read

mod_ids

Vector of module IDs and order they are needed (used for code generation).

Value

list with the following elements:

  • isgood: Boolean indicating the whether code generation was successful (TRUE)

  • msgs: Any messages generated

  • code: Code to regenerate the app

Examples

# We need a Shiny session object to use this function:
sess_res = DW_test_mksession()
#> → ASM: including file
#> → ASM:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → ASM:   dest:   file.path("config","report.docx")
#> → ASM: including file
#> → ASM:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → ASM:   dest:   file.path("config","report.pptx")
#> → ASM: including file
#> → ASM:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → ASM:   dest:   file.path("config","report.yaml")
#> → ASM: State initialized
#> → ASM: setting word placeholders: 
#> → ASM:   -> setting docx ph: HEADERLEFT = left header
#> → ASM:   -> setting docx ph: HEADERRIGHT = right header
#> → ASM:   -> setting docx ph: FOOTERLEFT = left footer
#> → ASM: module isgood: TRUE
#> → UD: including file
#> → UD:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → UD:   dest:   file.path("config","report.docx")
#> → UD: including file
#> → UD:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → UD:   dest:   file.path("config","report.pptx")
#> → UD: including file
#> → UD:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → UD:   dest:   file.path("config","report.yaml")
#> → UD: State initialized
#> → UD: module checksum updated:897d952fecbc804999396a96f9df4b20
#> → UD: module isgood: TRUE
#> → DM: including file
#> → DM:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DM:   dest:   file.path("config","report.docx")
#> → DM: including file
#> → DM:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DM:   dest:   file.path("config","report.pptx")
#> → DM: including file
#> → DM:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DM:   dest:   file.path("config","report.yaml")
#> → DM: module checksum updated: 441abbd92e02d893eb5136ccdfcc717d
#> → DM: State initialized
#> → DM: ds checksum updated: 641fcbc6616d24d05acded4317a3bb12
#> → DM: module checksum updated: 5c077c5702479f330bf233040eb4a51b
#> → DM: adding preload sources
#> → DM:  - file added: TEST_DATA.xlsx
#> → DM: added: TEST_DATA.xlsx
#> → DM:  - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_PC.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_PC.csv
#> → DM:  - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_EX.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_EX.csv
#> → DM:  - url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_DM.csv
#> → DM: url added: https://raw.githubusercontent.com/john-harrold/formods/refs/heads/master/inst/test_data/SDTM_DM.csv
#> → DM: loading element idx: 1
#> → DM: ds checksum updated: 90805ca6c41a39696e1572d9b0a75868
#> → DM: module checksum updated: e23d5c825540acc0ebc26cb74c8b151a
#> → DM: added element idx: 1
#> → DM: loading element idx: 2
#> → DM: ds checksum updated: 4d09a03c0a6a1d4626cdb18ea135afc7
#> → DM: module checksum updated: 870fc687ef513c33727ce933114660e2
#> → DM: added element idx: 2
#> → DM: loading element idx: 3
#> → DM: ds checksum updated: bee1592ffa94f63916eac4bb0044400f
#> → DM: module checksum updated: d4eafc58d86d27c91ed630ffbf19351e
#> → DM: added element idx: 3
#> → DM: loading element idx: 4
#> → DM: ds checksum updated: 23a03805b5654940b121a87c51b1c3e7
#> → DM: module checksum updated: 7c5c9d9817e8207530adc8b567949e5f
#> → DM: added element idx: 4
#> → DM: module isgood: TRUE
#> → DW: including file
#> → DW:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DW:   dest:   file.path("config","report.docx")
#> → DW: including file
#> → DW:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DW:   dest:   file.path("config","report.pptx")
#> → DW: including file
#> → DW:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DW:   dest:   file.path("config","report.yaml")
#> → DW: State initialized
#> → DW: module checksum updated:a9496b622f92f683cc8c69f65ac1ece4
#> → DW: loading data view idx: 1
#> → DW:   -> setting data source: myDS
#> → DW: module checksum updated:dfec3d5aa14c2716ccf367706931693f
#> → DW: setting name: Observations
#> → DW: module checksum updated:4d9fd3d913355669d14e0ac710b0b5dc
#> → DW:   -> filter
#> → DW: module checksum updated:2aba88838dee694a3d2813ed9f2837d2
#> → DW:   -> filter
#> → DW: module checksum updated:c181a352a2bd3592494d917b87057086
#> → DW:   -> mutate
#> → DW: module checksum updated:048df4e8afa9494121e72808981c842c
#> → DW: loading data view idx: 2
#> → DW:   -> setting data source: myDS
#> → DW: module checksum updated:048df4e8afa9494121e72808981c842c
#> → DW: setting name: PK 3mg SD IV
#> → DW: module checksum updated:c54c6fc20ff13fd14fbb61c786f65078
#> → DW:   -> filter
#> → DW: module checksum updated:496c1149f14ec1c48d4ddbc5aec72a72
#> → DW:   -> filter
#> → DW: module checksum updated:d65a6b3c16bea4262f7fb15a1d961512
#> → DW:   -> filter
#> → DW: module checksum updated:f90816b8f2ef9aeaad82e4a00880e536
#> → DW:   -> filter
#> → DW: module checksum updated:452fc9d9131592650a93b4b49de961d1
#> → DW: loading data view idx: 3
#> → DW:   -> setting data source: myDS
#> → DW: module checksum updated:452fc9d9131592650a93b4b49de961d1
#> → DW: setting name: PK 3mg SD IV (NCA)
#> → DW: module checksum updated:3b177ed09a80dfaf15c9f3dde8b9a8fb
#> → DW:   -> filter
#> → DW: module checksum updated:ce7e35b3bc2e1f53088ae7edd5b4345e
#> → DW:   -> filter
#> → DW: module checksum updated:64a5146d5e7070664557a7ff3d80f6f0
#> → DW:   -> filter
#> → DW: module checksum updated:2cf968d6e72262f9274ea0389f717e84
#> → DW: loading data view idx: 4
#> → DW:   -> setting data source: myDS
#> → DW: module checksum updated:2cf968d6e72262f9274ea0389f717e84
#> → DW: setting name: PKPD 3mg SD IV (NCA)
#> → DW: module checksum updated:67e9d6e6b2e085808be155613f8efe20
#> → DW:   -> filter
#> → DW: module checksum updated:a7a211de4eb91c91098a1f20e62bec73
#> → DW:   -> filter
#> → DW: module checksum updated:306f66790aca305ff1b715f34802610e
#> → DW:   -> filter
#> → DW: module checksum updated:306f66790aca305ff1b715f34802610e
#> → DW: module isgood: TRUE
#> → # preload_complete is good: TRUE ------------------------------------------
session = sess_res$session
state   = sess_res$state
app_code = FM_fetch_app_code(session = session,
                             state   = state,
                             mod_ids = c("UD", "DW"))
cat(app_code$code)
#> # formods automated output ------------------------------------------------
#> # https://formods.ubiquity.tools/
#> rm(list=ls())
#> library("dplyr")
#> library("janitor")
#> library("readxl")
#> library("rio")
#> library("tidyr")
#> 
#> 
#> # This reporting object has the formatting  
#> # information for table generation
#> rpt  = onbrand::read_template(
#>   template = file.path("config", "report.docx"),
#>   mapping  = file.path("config", "report.yaml"))
#> 
#> # Loading data ------------------------------------------------------------
#> myDS = rio::import(file="TEST_DATA.xlsx", which="DATA")
#> myDS = janitor::clean_names(myDS, case="none")
#> 
#> # Data wrangling ----------------------------------------------------------
#> # Observations ============================================================
#> DW_myDS_1 = myDS
#> DW_myDS_1 = dplyr::filter(DW_myDS_1,EVID == 0)
#> DW_myDS_1 = dplyr::filter(DW_myDS_1,DV != 0)
#> DW_myDS_1 = dplyr::mutate(DW_myDS_1,IDCMT = paste0(ID, ', ', CMT))
#> 
#> # PK 3mg SD IV ============================================================
#> DW_myDS_2 = myDS
#> DW_myDS_2 = dplyr::filter(DW_myDS_2,EVID == 0)
#> DW_myDS_2 = dplyr::filter(DW_myDS_2,DV != 0)
#> DW_myDS_2 = dplyr::filter(DW_myDS_2,Cohort %in% c("SD 3 mg IV"))
#> DW_myDS_2 = dplyr::filter(DW_myDS_2,CMT %in% c("C_ng_ml"))
#> 
#> # PK 3mg SD IV (NCA) ======================================================
#> DW_myDS_3 = myDS
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,EVID == 0)
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,Cohort %in% c("SD 3 mg IV"))
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,CMT %in% c("C_ng_ml"))
#> 
#> # PKPD 3mg SD IV (NCA) ====================================================
#> DW_myDS_4 = myDS
#> DW_myDS_4 = dplyr::filter(DW_myDS_4,EVID == 0)
#> DW_myDS_4 = dplyr::filter(DW_myDS_4,Cohort %in% c("SD 3 mg IV"))
#> DW_myDS_4 = dplyr::filter(DW_myDS_4,CMT %in% c("C_ng_ml", "BM_ng_ml"))
#>