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(session=list())
#> → 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
#> → 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:5b0f0b05ee3ac7336a74c564bb6efdad
#> → DW: module checksum updated:65801ab4b3c645aabf7edf91fc2f0d2c
#> → DW: module checksum updated:7fb2dd3b16b1780c4c24f64d658dd7c7
#> → DW: module checksum updated:5ab04ea00be44c0040695a4ed6243c90
#> → DW: module checksum updated:960db107cfe9db93578f79f0ae6283e2
#> → DW: module checksum updated:f0b5d122dcb04f207cba233253b61c4b
#> → DW: module checksum updated:189ed77a84bd9fcdd7b26abff8bea34a
#> → DW: module checksum updated:669ec77d50652669cd3fcfd949469b37
#> → DW: module checksum updated:dd6cafa0be3b6b195d230a11e9f07f9f
#> → DW: module checksum updated:5c2022c376ca8f56b839347156559890
#> → DW: module checksum updated:43640500a04674debd8e2399056c384a
#> → DW: module checksum updated:f81c45ac1ef4e7b43153d8c8eaf7aed6
#> → DW: module checksum updated:207cde891d98e20c4afbb7fb5fb0aba2
#> → DW: module checksum updated:0a673e81c01cbbf33533dd65d6baf9e3
#> → DW: module checksum updated:af3f3aefd0115ed9dfdd4d6ef9d5182f
#> → DW: module checksum updated:b0ccaee21e859322df0bf79d00c4b347
#> → DW: module checksum updated:2d3d6e9e38be6dea813b2d4d679e34b5
#> → DW: module checksum updated:2b60dd49b48a4e65200dc7241ad270e3
#> → DW: module checksum updated:3c92f397181a4fcdbdf2bd7dd7425e77
#> → DW: module checksum updated:92b81d7573def603649370b87c123b55
#> → DW: module checksum updated:9210264aabc0339e832b0c6bcfda32af
#> → DW: module checksum updated:fe62fde1e7e738a1a35c479de9d5007b
#> → DW: module checksum updated:ff3edcd4c1e58c96ea2707361916ffbc
#> → DW: module checksum updated:b6cdfcef0432c5d9b1fa2bd46122ffa2
#> → DW: module checksum updated:4fa4283f1fd8fd6cf6e6e7df0669723a
#> → DW: module checksum updated:cf3e139cef554b2d09dca619ee6aff41
#> → DW: module checksum updated:a9154d91a9e4b5d21f9585a6f68dd083
#> → DW: module checksum updated:4b5c6ad66658ddfa92d10ae1b0b7afa8
#> → DW: module checksum updated:591ac875a490b66a1fa7f4e7d4ba1c62
#> → DW: module checksum updated:afa3ca309cc3e6a48f542f4e8eadd54a
#> → DW: module checksum updated:5c918dd4f53a4f1e56115abb09c4f332
#> → DW: module checksum updated:159ddf8c8cd26b178dfda5434bbecfa1
#> → DW: module checksum updated:8bb3c97e700998f2f73353189bd07831
#> → DW: module checksum updated:a1eceffec3ff7d9f9961683b3d07088b
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("readr")
#> library("readxl")
#> 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 = readxl::read_excel(path="TEST_DATA.xlsx", sheet="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 MD SC (first dose) ===============================================
#> DW_myDS_3 = myDS
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,EVID == 0)
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,DV != 0)
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,Cohort %in% c("MD 3 mg SC"))
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,DOSE_NUM == 1)
#> DW_myDS_3 = dplyr::filter(DW_myDS_3,CMT %in% c("C_ng_ml"))
#> 
#> # Parameters ==============================================================
#> DW_myDS_4 = myDS
#> DW_myDS_4 = dplyr::group_by(DW_myDS_4,ID)
#> DW_myDS_4 = dplyr::filter(DW_myDS_4,row_number()==1)
#> DW_myDS_4 = dplyr::select(DW_myDS_4,ID, DOSE, DOSE_STR, Cohort, ROUTE, ka, CL, Vc, Vp, Q)
#> DW_myDS_4 = tidyr::pivot_longer(DW_myDS_4, cols      = c("ka", "CL", "Vc", "Vp", "Q"), names_to  = "parameter", values_to = "values")
#> 
#> # PK/PD 3mg SD IV w/BQL ===================================================
#> DW_myDS_5 = myDS
#> DW_myDS_5 = dplyr::filter(DW_myDS_5,EVID == 0)
#> DW_myDS_5 = dplyr::filter(DW_myDS_5,Cohort %in% c("SD 3 mg IV"))
#> 
#> # PK/PD 3mg MD SC (first dose) w/BQL ======================================
#> DW_myDS_6 = myDS
#> DW_myDS_6 = dplyr::filter(DW_myDS_6,EVID == 0)
#> DW_myDS_6 = dplyr::filter(DW_myDS_6,Cohort %in% c("MD 3 mg SC"))
#> DW_myDS_6 = dplyr::filter(DW_myDS_6,DOSE_NUM == 1)
#> 
#> # PK 3mg SD IV w/BQL ======================================================
#> DW_myDS_7 = myDS
#> DW_myDS_7 = dplyr::filter(DW_myDS_7,EVID == 0)
#> DW_myDS_7 = dplyr::filter(DW_myDS_7,Cohort %in% c("SD 3 mg IV"))
#> DW_myDS_7 = dplyr::filter(DW_myDS_7,CMT %in% c("C_ng_ml"))
#> 
#> # PK 3mg SD IV w/BQL w/dosing =============================================
#> DW_myDS_8 = myDS
#> DW_myDS_8 = dplyr::filter(DW_myDS_8,Cohort %in% c("MD 3 mg IV"))
#>