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: 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: e2e04c45683f84c60c45d00409fba9e5
#> → DM: module checksum updated: 30c5c769094461b8429ae74d945a7475
#> → DM: added element idx: 1
#> → DM: loading element idx: 2
#> → DM: ds checksum updated: 0c86b581d03912f460cbeea336549296
#> → DM: module checksum updated: 8441bb1328d1f3e70ea0a2a225d928ac
#> → DM: added element idx: 2
#> → DM: loading element idx: 3
#> → DM: ds checksum updated: fa1936986890fa1e2249a515af6c6a1d
#> → DM: module checksum updated: 71c7997a784fb1e18821566a6f48d93b
#> → DM: added element idx: 3
#> → DM: loading element idx: 4
#> → DM: ds checksum updated: f3e7318dc6fcfe26c771926426bda982
#> → DM: module checksum updated: aa43a368fcf9e70905d31a0553dbda83
#> → 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:706f73ba06ce522a0a4f4f473990ec1d
#> → 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:70169a1373a79220b530946d45927517
#> → FG: -> label
#> → FG: module checksum updated:d23494beafc200fa90812e7aed89aaf2
#> → 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:5336a448aa27f8dd249b2e72a4282eda
# To create a new empty figure you can do this:
state = FG_new_fig(state)
#> → FG: module checksum updated:a15812682d8d1a6dbc588bdb8a865d74
# }