Skip to contents

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
#> → 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 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 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 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 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
#> → 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:a1f3e31b6963f934887d0ab72c67bf75
#> → 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:b094834d8d33a2e7497310ea6c20be42
#> → FG:   -> label
#> → FG: module checksum updated:c32394429882d840dae2f7f79ad78781
#> → FG: module isgood: 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:04606036731221a578caed08a5dbd6e4

# To create a new empty figure you can do this:
state = FG_new_fig(state)
#> → FG: module checksum updated:4f5a5b7f5b7366fe618bbd8182938f5b
# }