Merges default app options with the changes made in the UI
Usage
NCA_fetch_state(
id,
input,
session,
FM_yaml_file,
MOD_yaml_file,
id_ASM,
id_UD,
id_DW,
react_state
)
Arguments
- id
Shiny module ID
- input
Shiny input variable
- session
Shiny session variable
- FM_yaml_file
App configuration file with FM as main section.
- MOD_yaml_file
Module configuration file with MC as main section.
- id_ASM
ID string for the app state management module used to save and load app states
- id_UD
ID string for the upload data module used to save and load app states
- id_DW
ID string for the data wrangling module used to save and load app states
- react_state
Variable passed to server to allow reaction outside of module (
NULL
)
Value
list containing the current state of the app including default values from the yaml file as well as any changes made by the user. The list has the following structure:
yaml: Full contents of the supplied yaml file.
MC: Module components of the yaml file.
NCA:
ana_cntr: Analysis counter.
anas: List of analyses: Each analysis has the following structure:
ana_dsview: Dataset view/ID (name from DSV) selected as a data source for this analysis.
ana_scenario: Analysis scenario selected in the UI
checksum: checksum of the analysis (used to detect changes in the analysis).
code: Code to generate analysis from start to finish or error messages if code generation/analysis failed.
code_components: List containing the different components from code
col_conc: Column from ana_dsview containing the concentration data.
col_dose: Column from ana_dsview containing the dose amount.
col_dur: Column from ana_dsview containing the infusion duration or N/A if unused.
col_group: Columns from ana_dsview containing other grouping variables.
col_id: Column from ana_dsview containing the subject IDs.
col_ntime: Column from ana_dsview containing the nominal time values
col_route: Column from ana_dsview containing the dosing route.
col_time: Column from ana_dsview containing the time values.
id: Character id (
ana_idx
).idx: Numeric id (
1
).include_units: Boolean variable indicating in units should included in the analysis.
interval_range: Vector with the first element representing he beginning of the interval and the second element containing the end of the interval.
intervals: List of the intervals to include.
isgood: Current status of the analysis.
key: Analysis key acts as a title/caption (user editable)
msgs: Messages generated when checking configuration and analysis options.
nca_config: List of NCA configuration options for this analysis.
nca_object_name: Prefix for NCA objects associated with this analyis.
nca_parameters: NCA parameters selected for calculation in the UI.
notes: Analysis notes (user editable)
objs: List of names and values for objects created with generated code.
sampling: Sampling method either "sparse" or "serial"
units_amt: Amount units.
units_conc: Concentration units.
units_dose: Dosing units.
units_time: Time units.
current_ana: Currently selected analysis (list name element from anas).
DSV: Available data source views (see
FM_fetch_ds
)checksum: This is an MD5 sum of the module (checksum of the analysis checksums).
nca_config: List of PKNCA configuration options for this analysis.
nca_parameters: List with two elements
choices: List consisting of "Common Parameters" and "Other" (used for grouping in the UI). Each of these is a list of text parameter names with a value of the PKNCA parameter name.
summary: Summary table with the following columns:
parameter: PKNCA Paramter name.
text: Name used in text output.
md: Name used markdown output.
latex: Name used in latex output.
description: Verbose textual description of the parameter.
ui: Current value of form elements in the UI.
ui_ana_map: Map between UI element names and analysis in the object you get from
NCA_fetch_current_ana
ui_ids: Vector of UI elements for the module.
ui_hold: List of hold elements to disable updates before a full ui referesh is complete.
MOD_TYPE: Character data containing the type of module
"NCA"
id: Character data containing the module id module in the session variable.
FM_yaml_file: App configuration file with FM as main section.
MOD_yaml_file: Module configuration file with MC as main section.
Examples
library(ruminate)
# Module IDs
id = "NCA"
id_UD = "UD"
id_DW = "DW"
id_ASM = "ASM"
# We need session and input variables to be define
sess_res = NCA_test_mksession(session=list(),
id = id,
id_UD = id_UD,
id_DW = id_DW,
id_ASM = id_ASM,
full_session=FALSE)
#> → 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
#> → 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: Parameter specified in YAML is not a valid PKNCA parameter: sparse_se
#> ✖ NCA: Parameter specified in YAML is not a valid PKNCA parameter: sparse_df
#> → 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 analysis scenario: sd_iv
#> → NCA: NCA_add_int: append
#> → NCA: NCA_add_int: append
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> → NCA: module checksum updated:647e4878c80e08a468313bf2e45eb074
# Extracting the session and input variables
session = sess_res$session
input = sess_res$input
react_state = list()
# We also need configuration files
FM_yaml_file = system.file(package = "formods", "templates", "formods.yaml")
MOD_yaml_file = system.file(package = "ruminate", "templates", "NCA.yaml")
# Getting the current module state
state = NCA_fetch_state(id = id,
input = input,
session = session,
FM_yaml_file = FM_yaml_file,
MOD_yaml_file = MOD_yaml_file,
id_ASM = id_ASM,
id_UD = id_UD,
id_DW = id_DW,
react_state = react_state)
# Pulls out the active analysis
current_ana = NCA_fetch_current_ana(state)
# This will get the dataset associated with this analysis
ds = NCA_fetch_ana_ds(state, current_ana)
# After making changes you can update those in the state
state = NCA_set_current_ana(state, current_ana)
# You can use this to check the current analysis
current_ana = NCA_process_current_ana(state)
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
#> Warning: NAs introduced by coercion
# This will pull out the code for the module
fc_res = NCA_fetch_code(state)
# This will use patterns defined for the site to detect
# columns. In this example we are detecting the id column:
id_col = NCA_find_col(
patterns = state[["MC"]][["detect_col"]][["id"]],
dscols = names(ds$DS))
#> Warning: Unknown or uninitialised column: `DS`.
# This creates a new analysis
state = NCA_new_ana(state)