Exploratory Web Apps for Analyzing Clinical Trial Data
OTHER License
Bot releases are visible (Hide)
module_specific
in teal::teal_slices
documentation.?snapshot
.reporter_previewer_module
to customize default values through srv_args
.reporter_previewer_module
in a list of modules to override default one.filter
argument in teal::init
requires teal_slices
object now. Details in documentation of teal::init
.filters
argument in module
and replaced it with datanames
. Details in documentation of teal::module
scda
package dependency from examples.Full Changelog: https://github.com/insightsengineering/teal/compare/v0.13.0...v0.14.0
Published by github-actions[bot] over 1 year ago
datasets
argument in modules
has been deprecated and will be removed in a future release. Please use data
argument instead. data
is of type tdata
; see "Creating custom modules" vignettes and function documentation of teal::new_tdata
for further details.chunks
in teal.code
, the teal
framework now uses their replacement (qenv
) instead. The documentation in teal
has been updated to reflect this and custom modules written with chunks
should be updated to use qenv
.chunks
in teal.code
, get_rcode
, get_rcode_srv
, and get_rcode_ui
have been removed.validate_inputs
function that transfers input validation messages to app output.modules
argument of init
accepts teal_module
type of object. There is no need to wrap up a single module in modules()
or list()
.module_nested_tabs
so that only active modules are calculated in a teal app.scda.2022
.teal
applications.rlang
instead of digest
package to calculate the hash (which has been moved from teal.data
and teal.slice
). There is now an explicit hashing check in the reproducible code output.root_modules
, default_filter
, bookmarkableShinyApp
, as well as deprecated logging mechanism, including the functions log_app_usage
and .log
.teal
app with bslib::run_with_themer
.srv_nested_tabs
documentation.header
and footer
arguments in init
to empty text.workflow_dispatch
event by @walkowif in https://github.com/insightsengineering/teal/pull/773
bookmarkableShinyApp
by @chlebowa in https://github.com/insightsengineering/teal/pull/782
shinyvalidate
improvements by @chlebowa in https://github.com/insightsengineering/teal/pull/786
shinyvalidate
improvements reopened by @chlebowa in https://github.com/insightsengineering/teal/pull/788
validate_inputs
by @chlebowa in https://github.com/insightsengineering/teal/pull/793
Full Changelog: https://github.com/insightsengineering/teal/compare/v0.12.0...v0.13.0
Published by github-actions[bot] about 2 years ago
bslib
bootstrap themes in teal::init
apps, please read more in the new teal-bs-themes
vignette.filterable
attributes for the per-dataset lists in the filter
argument of init
.teal_module
to have data
argument which receives a list of reactive filter data with "code"
and "join_keys"
attributes.teal_module
to have filter_panel_api
argument which receives a FilterPanelAPI
object.module_teal
to reflect changes in teal.slice
.teal_module
to no longer receive datasets
object in the ...
argument. In order to use datasets
in the teal_module
please specify datasets
explicitly.merge_expression
argument in get_rcode_srv
function and removed it in get_rcode
function.session
argument in get_rcode
function.module(..., filters = NULL)
by @gogonzo in https://github.com/insightsengineering/teal/pull/694
_pkgdown.y[a]ml
by @insights-engineering-bot in https://github.com/insightsengineering/teal/pull/699
Full Changelog: https://github.com/insightsengineering/teal/compare/v0.11.1...v0.12.0
Published by github-actions[bot] over 2 years ago
reporter_previewer_module
to wrap the teal.reporter
package previewer functionality as a teal
module.teal
to support modules
which include reporting. If any module
which supports reporting is included then a reporter_previewer_module
is included.module()
and the server
argument is now a function where the second argument can be ...
or datasets
.bookmarkableShinyApp
. In future releases the teal
framework will stop supporting shiny bookmarking (which has not officially been supported); it may be officially supported in the future. Note the filter panel in teal.slice
retains its ability to save and restore its state if used in a standalone shiny
app with bookmarking.pkgdown
configuration.shinytest
app tests.Published by cicdguy over 2 years ago
HTML
identifiers of teal
modules - now each nested module receives its own shiny
namespace.raw_dataset
, raw_dataset_connector
, named_dataset
, named_dataset_file
, named_dataset_connector
, relational_dataset
, relational_dataset_file
, relational_dataset_connector
, key
, as_cdisc
, as_cdisc_relational
.rcd_connection
and rcd_data
; scda_dataset_connectors
can be passed into cdisc_data
and teal_data
directly.rcd_dataset_connector
and rcd_cdisc_dataset_connector
with scda_dataset_connector
and scda_cdisc_dataset_connector
respectively.teal_show_js_log
option into teal.show_js_log
to match options naming convention.%is_in%
and stop_shiny
internal utility functions.logger
package.register_logger
, which registers a logger in a given namespace.teal
framework.pid
and shiny session token into footnote so app developers can identify logs for apps.Added print methods to the DatasetConnector
, RelationalData
, RelationalDataconnector
and JoinKeys
classes and added input validation to the implementation of the print method that was already in the Dataset
object.
Added public facing constructor functions for CDISCDataConnector
, RelationalDataConnector
, and DataConnection
classes.
Modified data_extract_spec
to allow both the filter
and select
parameters to be NULL
, which results in the data_extract_ui
acting as if a filter_spec
with all variables as possible choices had been supplied as the filter
argument and a select_spec
with the multiple
parameter set to TRUE
had been supplied as the select
argument.
Added support of the full screen for a module
when the filters
argument is equal NULL
.
Added support for shiny::moduleServer
passed to the server
parameter of teal::module
.
Added teal.threshold_slider_vs_checkboxgroup
as an R option: if a categorical variable has more than this number of unique values, the filter panel uses a drop-down select input instead of a checkbox group.
Extended the FilteredData
API to allow managing filter states programmatically and not only from the UI of a teal
application.
Hid the buttons to remove filters from all datasets and each dataset when there are no active filters.
Updated init
to accept RelationalData
, data.frame
, MultiAssayExperiment
, Dataset
, DatasetConnector
, list
or a function returning a named list as data input.
choices_selected
now correctly removes duplicates from the array passed to its choices
parameter.FilterState
in case of using MultiAssayExperiment::subsetByColData
. Now single condition for variable containing NA
values is !is.na(var) & var == <condition>
.DatasetConnector
being dependent on other Dataset
or DatasetConnector
objects.teal
application.module_nested_tabs
to fix the issue with the filter panel not reacting to an input change in a nested module.updateOptionalSelectInput
no longer sets input to NULL
when logical
value is passed to selected
.JoinKeys
when key name between two Dataset
object differs.JavaScript
console logs to the R
console when teal.show_js_log = TRUE
.mae_dataset()
in favor of more general dataset()
constructor.teal
applications users can apply using R
options.label
argument of select_spec
and filter_spec
.FilteredDataset::get_data
to accept logical input only.teal.devel
in the documentation.Teal
prefix to all public R6
classes to avoid name collisions with other packages.utils.nest
and replaced its functionality in teal
with equivalents from the checkmate
package and base R
.shiny
server functions of DataConnection
, RelationalDataConnector
, DatasetConnector
, and RelationalData
with the shiny::moduleServer
equivalents.teal
application via ui_teal_with_splash
and srv_teal_with_splash
is now no longer recommended because it doesn't support new features (e.g. logging, bookmarking). Use init
instead.shiny
version >= 1.7.Published by insights-engineering-bot about 3 years ago
MultiAssayExperiment
to the teal::init
using mae_dataset
function or throughMultiAssayExperiment
objects. Filters can be set on a subject levelcolData
of MAE
object) and on a experiment level (colData
and rowData
of an assay).cdse_dataset_connector
to create delayed data objects from CDSE
.datasetdb_dataset_connector
to create delayed data objects from DataSetDB
.ricepass_connection
to create delayed data objects from entimICE
via ricepass
.Dataset
type determines an appearance and a functionality of related filters and filters summary.Datasets
are passed (by reference) from DDL
to FilteredData
skipping extracting data andmutate_dataset
multiple times on the same DatasetConnector
or Dataset
object.get_code
function to not reproduce its raw data set.filter_spec
to allow no variable selection upon app initialization, where the first possible value was previously selected.modules
parameter of teal::init
function can also receive a list
except root_modules
split
and merge
methods to the JoinKeys
object.all_choices()
as a possible argument to the selected
parameter of filter_spec
, select_spec
and choices_selected
indicating that all choices are selected.append
method of a CodeClass
object has been modified to print a warning message when the argument does not result in any code being added because it is duplicated.Dataset
and DatasetConnector
objects.teal_data
to return a CDISCData
object whenever any of its arguments is a type of CDISCData
object.LICENCE
and README
with new package references.get_hash
to the Dataset
class returning the MD5 hash of the object stored inside the Dataset
object.random.cdisc.data
with scda
in examples and tests.JoinKeys
in Dataset
and DatasetConnector
classes.error_on_lintr: TRUE
to .lintr
%>%
is now exported such that downstream code and packages can use it.rice
package from the documentation.Published by insights-engineering-bot about 3 years ago
mutate_data
with RelationalDataConnector
.as_cdisc
to behave similarly to cdisc_dataset
when called on a Dataset
object.data_extract_spec
UI elements. Both are now compressed to <data name>.<column name>
if they don't change during runtime of the app.ADSAFTTE
to the list of recognized ADaM dataset names.data_extract_spec
's doc string showcasing app users can choose a variable used for filtering in the encoding panel.Date
or datetime
column is selected from a filter_spec
.Published by insights-engineering-bot about 3 years ago
teal
app to initialize without data. The data are then loaded from within the teal app.DatasetConnector
, DataConnector
) to connect to various data sources, including:rice
API - rice_cdisc_data
and rice_dataset
RDS
files - rds_data
and rds_dataset
labels
argument of cdisc_data
function. Labels should now already be present in the data passed to the cdisc_data
function. This can be achieved using the var_relabel
function.Published by insights-engineering-bot about 3 years ago
arm_ref_comp
objects.width
argument in optionalSelectInput
.code_dataset_connector
and code_cdisc_dataset_connector
functions which enable the creation of new delayed data objects given a string of code.csv_dataset_connector
and csv_cdisc_dataset_connector
.set_ui_input
method of RawDatasetConnector
and NamedDatasetConnector
to handle user defined shiny inputs.Keep Inf
checkbox for numerical filter items. Keep NA
and Keep Inf
checkbox doesn't appear if there are no missing or infinite values.RelationalData
class with abstract class RelationalDataCollection
and rename RelationalDataList
class as RelationalData
. The data
argument to teal::init
is now always a RelationalData
object.fun_cdisc_dataset_connector
to enable providing a custom function which returning a dataset.code
and script
arguments from as_relational
wrapper. This is intended to be done with mutate_dataset
functionality.filer
argument in init
has added a validation step to ensure compatibility with the rest of the app. Variables inherited from ADSL have to be specified only for ADSL dataset.get_code
results.pull_fun
of DataConnection
produces an error.Published by insights-engineering-bot about 3 years ago
python_dataset_connector
to create delayed data objects from python scripts or directly from python code.python_dataset_connector
is not yet ready to be deployed on RSConnect because it does not contain numpy
and pandas
, which are Python
libraries used in python_dataset_connector
.Date
and Datetime
variables in the Filter Panel.date
and datetime
filter widgets to reset the value to the original.check_key_duplicates
, which creates a short summary about rows with duplicated primary key (row numbers and the number of duplicates)character
and factor
variables in the Filter Panel.module_filter_panel
, not only those of types numeric
, logical
, factor
, character
and Date
mutate_data
to accept the whole scope of objects for vars
.teal::init
function documentation to state that custom css loading code with htmltools::htmlDependency
should be included in the header
argument rather than inside ui
arguments of modules.data_extract_spec
.drop_keys
to filter_spec
to decide whether to drop or keep keys columns on single filter on those columns.keys
to variable_choices
. keys
specifies the names of the variables, which should have the new key icon shown next to them in the variable drop down menus in the left-hand side encoding panels instead of the icon appropriate for their original R variable type. variable_choices
now also works with RelationalDataset
and RelationalDatasetConnector
objects.include_factors
option in get_class_colnames
in RawDataset
.Published by insights-engineering-bot about 3 years ago
FilteredData
class.JoinKeys
class (with join_keys()
constructors and join_key()
constructor for its elements) to store joining key columns between datasets.dataset()
constructor, added cdisc_dataset()
constructor and as_cdisc()
conversion function.keys()
).get_keys()
and set_keys()
functions to extract and manipulate datasets primary keys respectively.filtered_data_new
, filtered_data_set
and filtered_data_set_filters
.teal::cdisc_dataset
and other teal::RelationalDataset
constructors should now be shown when getting the code from teal::cdisc_data
objects and other teal::RelationalData
objects.variable_choices
to use datasets with missing labels.NULL
to selected
argument of select_spec
function.Published by insights-engineering-bot about 3 years ago
snowflake
connection and connectors.DataConnection
s will now try to close their connections.filter_spec
function: the parameter choices
is no longer mandatory (the function will take all possible choices by default) and the vars
parameter additionally accepts the choices_selected
and allows to change the variables for filtering using the UI elements in the encoding panel.value_choices
function to handle edge case when "NA"
and NA
values exist in the character
column that choices are derived from.\Callable
class.