Skip to contents

Takes an NCA state object and appends any reportable elements for the specified report type. On NCA analyses that are in a "good" state will be reported. Those not in a good state will be ignored.

Usage

NCA_append_report(state, rpt, rpttype, gen_code_only = FALSE)

Arguments

state

NCA state from NCA_fetch_state()

rpt

Report with the current content of the report which will be appended to in this function. For details on the structure see the documentation for formods::FM_generate_report()

rpttype

Type of report to generate (supported "xlsx", "pptx", "docx").

gen_code_only

Boolean value indicating that only code should be generated (FALSE).

Value

list containing the following elements

  • isgood: Return status of the function.

  • hasrptele: Boolean indicator if the module has any reportable elements.

  • code: Code to create report elements.

  • msgs: Messages to be passed back to the user.

  • rpt: Report with any additions passed back to the user.

Examples

# We need a state object to use below
sess_res = NCA_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: f280116ab6b4488df6de76aff513a83f
#> → DM: State initialized
#> → DM: ds checksum updated: 641fcbc6616d24d05acded4317a3bb12
#> → DM: module checksum updated: 78099100dae67cc0fee50517ea72a920
#> → 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: ff40ebe433a9dd4e528b8caccd2763c8
#> → DM: module checksum updated: 7452a3378b85b8ed905768231a11eebe
#> → DM: added element idx: 1
#> → DM: loading element idx: 2
#> → DM: ds checksum updated: aeb23d9bfc30eb24d76265fa90c25474
#> → DM: module checksum updated: f2ab965e771e0a289b5c9b4ba337cbf7
#> → DM: added element idx: 2
#> → DM: loading element idx: 3
#> → DM: ds checksum updated: da68330e62e2f3d617272d922d91be9a
#> → DM: module checksum updated: d925874d05bf0d49c55cee1f4b4842ed
#> → DM: added element idx: 3
#> → DM: loading element idx: 4
#> → DM: ds checksum updated: 3c3d900ece8af8a7ec584b5a1c14419c
#> → DM: module checksum updated: ee2a1494881ab04cf295bc88fb2b066e
#> → 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: data view checksum updated: 
#> → DW:   old: 
#> → DW:   new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:a9496b622f92f683cc8c69f65ac1ece4
#> → DW: State initialized
#> → DW: data view checksum updated: 
#> → DW:   old: 
#> → DW:   new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:0955d1f9a1922b95277b4ad1df38e987
#> → DW: data view checksum updated: 
#> → DW:   old: 
#> → DW:   new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:3d3523604fcde20ce1792b16611bdba2
#> → DW: data view checksum updated: 
#> → DW:   old: 
#> → DW:   new: e19ddb59715ba77afdd1907053aa5d14
#> → DW: module checksum updated:dfec3d5aa14c2716ccf367706931693f
#> → DW: loading data view idx: 1
#> → DW:   -> setting data source: myDS
#> → DW: setting name: Observations
#> → DW: module checksum updated:4d9fd3d913355669d14e0ac710b0b5dc
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: e19ddb59715ba77afdd1907053aa5d14
#> → DW:   new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:2aba88838dee694a3d2813ed9f2837d2
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW:   new: 278da634fa74dc23eae6db31314e0324
#> → DW: module checksum updated:c181a352a2bd3592494d917b87057086
#> → DW:   -> mutate
#> → DW: data view checksum updated: 
#> → DW:   old: 278da634fa74dc23eae6db31314e0324
#> → DW:   new: a164ecd5a527b2b38058230c1daa0080
#> → DW: module checksum updated:048df4e8afa9494121e72808981c842c
#> → DW: loading data view idx: 2
#> → DW:   -> setting data source: myDS
#> → DW: setting name: PK 3mg SD IV
#> → DW: module checksum updated:c54c6fc20ff13fd14fbb61c786f65078
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: e19ddb59715ba77afdd1907053aa5d14
#> → DW:   new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:496c1149f14ec1c48d4ddbc5aec72a72
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW:   new: 278da634fa74dc23eae6db31314e0324
#> → DW: module checksum updated:d65a6b3c16bea4262f7fb15a1d961512
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 278da634fa74dc23eae6db31314e0324
#> → DW:   new: 00bd5f01d02d634acf134cf01970a1c3
#> → DW: module checksum updated:f90816b8f2ef9aeaad82e4a00880e536
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 00bd5f01d02d634acf134cf01970a1c3
#> → DW:   new: a01562e32a19fd4b10f88ace089346c6
#> → DW: module checksum updated:452fc9d9131592650a93b4b49de961d1
#> → DW: loading data view idx: 3
#> → DW:   -> setting data source: myDS
#> → DW: setting name: PK 3mg SD IV (NCA)
#> → DW: module checksum updated:3b177ed09a80dfaf15c9f3dde8b9a8fb
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: e19ddb59715ba77afdd1907053aa5d14
#> → DW:   new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:ce7e35b3bc2e1f53088ae7edd5b4345e
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW:   new: 198f7d878f23121868e677c0b86a5f3c
#> → DW: module checksum updated:64a5146d5e7070664557a7ff3d80f6f0
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 198f7d878f23121868e677c0b86a5f3c
#> → DW:   new: 4326a7b6b9040676b320b387ba5b8ad9
#> → DW: module checksum updated:2cf968d6e72262f9274ea0389f717e84
#> → DW: loading data view idx: 4
#> → DW:   -> setting data source: myDS
#> → DW: setting name: PKPD 3mg SD IV (NCA)
#> → DW: module checksum updated:67e9d6e6b2e085808be155613f8efe20
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: e19ddb59715ba77afdd1907053aa5d14
#> → DW:   new: 0017bd7cdc15ff708408b2d60672ef88
#> → DW: module checksum updated:a7a211de4eb91c91098a1f20e62bec73
#> → DW:   -> filter
#> → DW: data view checksum updated: 
#> → DW:   old: 0017bd7cdc15ff708408b2d60672ef88
#> → DW:   new: 198f7d878f23121868e677c0b86a5f3c
#> → DW: module checksum updated:306f66790aca305ff1b715f34802610e
#> → DW:   -> filter
#> → DW: module isgood: TRUE
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → NCA:   dest:   file.path("config","report.docx")
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → NCA:   dest:   file.path("config","report.pptx")
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → NCA:   dest:   file.path("config","report.yaml")
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → NCA:   dest:   file.path("config","report.docx")
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → NCA:   dest:   file.path("config","report.pptx")
#> → NCA: including file
#> → NCA:   source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → NCA:   dest:   file.path("config","report.yaml")
#> → NCA: State initialized
#> → NCA: State initialized
#> → NCA: loading element idx: 1
#> → NCA:   -> setting name: PK Example
#> → NCA:   -> notes found and set
#> → NCA:   -> setting data source: DW_myDS_3
#> → NCA: module checksum updated:87e9bf7cae52913d38f093b2a7e3698c
#> → NCA: NCA_add_int: append
#> → NCA: analysis fresh flag set to FALSE
#> → NCA: analysis checksum updated:2b24044a5e3a59775770021e3aec300f
#> → NCA: nca run successful
#> Warning: Ignoring unknown aesthetics: text
#> Warning: Ignoring unknown parameters: `text`
#> Warning: Ignoring unknown parameters: `text`
#> Warning: Ignoring unknown aesthetics: text
#> Warning: Ignoring unknown parameters: `text`
#> Warning: Ignoring unknown parameters: `text`
#> Warning: Ignoring unknown aesthetics: text
#> Warning: Ignoring unknown parameters: `text`
#> Warning: Ignoring unknown parameters: `text`
#> → NCA: module checksum updated:358be68c3c2fd2fa429860a9b1d24168
#> → NCA: added element idx: 1
#> → NCA: module isgood: TRUE
#> → # preload_complete is good: TRUE ------------------------------------------
state = sess_res$state

# here we need an empty report object for tabular data
rpt = list(summary = list(), sheets=list())

# Now we append the report indicating we want
# Excel output:
rpt_res = NCA_append_report(state,
  rpt           = rpt,
  rpttype       = "xlsx",
  gen_code_only = TRUE)

# Shows if report elements are present
rpt_res$hasrptele
#> [1] TRUE

# Code chunk to generate report element
cat(paste(rpt_res$code, collapse="\n"))
#> # Reporting NCA results xlsx ==============================================
#> ### PK Example ############################################################
#> 
#> # NCA_1_tb_ind_params
#> nart_res  = 
#>   nca_append_report_tbls(
#>      rpt               = rpt,
#>      stres             = NCA_1_table_ind_params,
#>      rpttype           = "xlsx",
#>      text_format       = "md",
#>      tab_id            = "NCA_1_tb_ind_params",
#>      tab_desc          = stringr::str_replace_all(
#>        string  = "===NCADESC=== Individual Parameters",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_single    = stringr::str_replace_all(
#>        string  = "===NCADESC=== (Individual Parameters)",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_multiple  = stringr::str_replace_all(
#>        string  = "===NCADESC=== (Individual Parameters, ===TABNUM=== of ===TABTOT===)",
#>        pattern = "===NCADESC===", "PK Example"),
#>      flag_map  = NCA_1_flag_map) 
#> 
#> # pulling the reporting object out of the result
#> rpt = nart_res[["rpt"]] 
#> 
#> # NCA_1_tb_ind_obs
#> nart_res  = 
#>   nca_append_report_tbls(
#>      rpt               = rpt,
#>      stres             = NCA_1_table_ind_obs,
#>      rpttype           = "xlsx",
#>      text_format       = "md",
#>      tab_id            = "NCA_1_tb_ind_obs",
#>      tab_desc          = stringr::str_replace_all(
#>        string  = "===NCADESC=== Individual Data",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_single    = stringr::str_replace_all(
#>        string  = "===NCADESC===, Individual Data",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_multiple  = stringr::str_replace_all(
#>        string  = "===NCADESC===, Individual Data (===TABNUM=== of ===TABTOT===)",
#>        pattern = "===NCADESC===", "PK Example"),
#>      flag_map  = NCA_1_flag_map) 
#> 
#> # pulling the reporting object out of the result
#> rpt = nart_res[["rpt"]] 
#> 
#> # NCA_1_tb_ind_obs_flags
#> nart_res  = 
#>   nca_append_report_tbls(
#>      rpt               = rpt,
#>      stres             = NCA_1_table_ind_obs_flags,
#>      rpttype           = "xlsx",
#>      text_format       = "md",
#>      tab_id            = "NCA_1_tb_ind_obs_flags",
#>      tab_desc          = stringr::str_replace_all(
#>        string  = "===NCADESC=== Manually Flagged Records",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_single    = stringr::str_replace_all(
#>        string  = "===NCADESC===, Manually Flagged Records ",
#>        pattern = "===NCADESC===", "PK Example"),
#>      caption_multiple  = stringr::str_replace_all(
#>        string  = "===NCADESC===, Manually Flagged Records (===TABNUM=== of ===TABTOT===)",
#>        pattern = "===NCADESC===", "PK Example"),
#>      flag_map  = NCA_1_flag_map) 
#> 
#> # pulling the reporting object out of the result
#> rpt = nart_res[["rpt"]] 
#> 
#> # Raw NCA results
#> rpt[["sheets"]][["NCA_1_tb_raw_nca"]] = as.data.frame(NCA_1_res)
#> rpt[["summary"]] = rbind(rpt[["summary"]],
#>   data.frame(
#>     Sheet_Name  = "NCA_1_tb_raw_nca",
#>     Description = "PK Example Raw NCA Results"
#>   )
#> )