Takes the current state and rebuilds the active figure. If the elements table has a row flagged for deletion, it will be deleted. If the cmd input is not NULL it will attempt to append that element to the figure.
Usage
FG_build(
state,
del_row = NULL,
cmd = NULL,
pll = NULL,
element = "unknown",
desc = "unknown"
)
Arguments
- state
FG state from
FG_fetch_state()
- del_row
Row number to be deleted (NULL if no rows need to be deleted)
- cmd
String containing the plotting command. Set to NULL to initialize a new figure or force a rebuild after a dataset update.
- pll
Preload list for the plotting command. Set to NULL to initialize a new figure or force a rebuild after a dataset update.
- element
Short name for the figure element being performed, eg. point
- desc
Verbose description for the action being performed
Value
State with the build result stored in the current figure. Pull out the figure to inspect it:
current_fig = FG_fetch_current_fig(state)
Look at this logical object to test if the build worked.
current_fig[["add_isgood"]]
Examples
# \donttest{
library(formods)
# Within shiny both session and input variables will exist,
# this creates examples here for testing purposes:
sess_res = FG_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: 0cc906570cc2b59c9119c429de647914
#> → DM: module checksum updated: 5c33742ed18f5cbb14b419f69997b670
#> → DM: added element idx: 1
#> → DM: loading element idx: 2
#> → DM: ds checksum updated: 9b8e205cf27f7246551d0c8e73ab507a
#> → DM: module checksum updated: 3013d169298d76e9128efc34ae7bef3b
#> → DM: added element idx: 2
#> → DM: loading element idx: 3
#> → DM: ds checksum updated: 4fa5d32d3aceb0ddc5e9afe9db3d7909
#> → DM: module checksum updated: 0f106a9708ca85d9a156b295992f6998
#> → DM: added element idx: 3
#> → DM: loading element idx: 4
#> → DM: ds checksum updated: f4e80fca30cca3b8446c49b39e04a425
#> → DM: module checksum updated: f0b491eef1899667f4a87f31c892e9d5
#> → 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
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → FG: dest: file.path("config","report.docx")
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → FG: dest: file.path("config","report.pptx")
#> → FG: including file
#> → FG: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → FG: dest: file.path("config","report.yaml")
#> → FG: State initialized
#> → FG: module checksum updated:e4fe93612226373aeea18bed5c2ae6b3
#> → FG: loading figure idx: 1
#> → FG: setting name: 3 mg SD IV
#> → FG: -> setting data source: DW_myDS_2
#> → FG: -> line
#> → FG: module checksum updated:62549c0b98d27b11cd671c1f3b9e1b69
#> → FG: -> label
#> → FG: module checksum updated:23ae7aa9069391832465051435287dd3
#> → FG: module isgood: TRUE
#> → # preload_complete is good: TRUE ------------------------------------------
session = sess_res$session
input = sess_res$input
# This will create a populated FG state object:
state = sess_res$state
# This sets the current active figure to Fig_1
state[["FG"]][["current_fig"]] = "Fig_1"
# If this is a paginated figure, and we can access a specific
pg_1 = FG_extract_page(state, 1)
#> → FG: unable to extract figure page, no facet elements found
#> → FG: figure id: Fig_1
# This will give you access to the current figure directly:
current_fig = FG_fetch_current_fig(state)
# For example this will set the key for that figure:
current_fig$key = "Individual profiles by cohort (multiple pages)"
# Once you're done you can put it back into the state:
state = FG_set_current_fig(state, current_fig)
# If you made any changes to the actual figure, this will
# force a rebuild of the current figure:
state = FG_build( state=state, del_row = NULL, cmd = NULL)
#> → FG: module checksum updated:514d68ebcb2ccaeefa6d8b90dda8f072
# To create a new empty figure you can do this:
state = FG_new_fig(state)
#> → FG: module checksum updated:ebf86dad48aecb0d4390d7c9c6be4631
# }